@cyanheads/mcp-ts-core 0.1.0-beta.12

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 (485) hide show
  1. package/CLAUDE.md +583 -0
  2. package/LICENSE +201 -0
  3. package/README.md +287 -0
  4. package/biome.json +103 -0
  5. package/dist/app.d.ts +82 -0
  6. package/dist/app.d.ts.map +1 -0
  7. package/dist/app.js +222 -0
  8. package/dist/app.js.map +1 -0
  9. package/dist/cli/init.d.ts +8 -0
  10. package/dist/cli/init.d.ts.map +1 -0
  11. package/dist/cli/init.js +161 -0
  12. package/dist/cli/init.js.map +1 -0
  13. package/dist/config/index.d.ts +349 -0
  14. package/dist/config/index.d.ts.map +1 -0
  15. package/dist/config/index.js +464 -0
  16. package/dist/config/index.js.map +1 -0
  17. package/dist/context.d.ts +119 -0
  18. package/dist/context.d.ts.map +1 -0
  19. package/dist/context.js +144 -0
  20. package/dist/context.js.map +1 -0
  21. package/dist/index.d.ts +8 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +9 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/mcp-server/prompts/prompt-registration.d.ts +33 -0
  26. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -0
  27. package/dist/mcp-server/prompts/prompt-registration.js +91 -0
  28. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -0
  29. package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts +49 -0
  30. package/dist/mcp-server/prompts/utils/newPromptDefinition.d.ts.map +1 -0
  31. package/dist/mcp-server/prompts/utils/newPromptDefinition.js +39 -0
  32. package/dist/mcp-server/prompts/utils/newPromptDefinition.js.map +1 -0
  33. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +37 -0
  34. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -0
  35. package/dist/mcp-server/prompts/utils/promptDefinition.js +2 -0
  36. package/dist/mcp-server/prompts/utils/promptDefinition.js.map +1 -0
  37. package/dist/mcp-server/resources/resource-registration.d.ts +27 -0
  38. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -0
  39. package/dist/mcp-server/resources/resource-registration.js +85 -0
  40. package/dist/mcp-server/resources/resource-registration.js.map +1 -0
  41. package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts +84 -0
  42. package/dist/mcp-server/resources/utils/newResourceDefinition.d.ts.map +1 -0
  43. package/dist/mcp-server/resources/utils/newResourceDefinition.js +40 -0
  44. package/dist/mcp-server/resources/utils/newResourceDefinition.js.map +1 -0
  45. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts +32 -0
  46. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.d.ts.map +1 -0
  47. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js +103 -0
  48. package/dist/mcp-server/resources/utils/newResourceHandlerFactory.js.map +1 -0
  49. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +94 -0
  50. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -0
  51. package/dist/mcp-server/resources/utils/resourceDefinition.js +2 -0
  52. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -0
  53. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +14 -0
  54. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -0
  55. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +111 -0
  56. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -0
  57. package/dist/mcp-server/roots/roots-registration.d.ts +22 -0
  58. package/dist/mcp-server/roots/roots-registration.d.ts.map +1 -0
  59. package/dist/mcp-server/roots/roots-registration.js +25 -0
  60. package/dist/mcp-server/roots/roots-registration.js.map +1 -0
  61. package/dist/mcp-server/server.d.ts +34 -0
  62. package/dist/mcp-server/server.d.ts.map +1 -0
  63. package/dist/mcp-server/server.js +62 -0
  64. package/dist/mcp-server/server.js.map +1 -0
  65. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts +42 -0
  66. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.d.ts.map +1 -0
  67. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js +70 -0
  68. package/dist/mcp-server/tasks/core/sessionAwareTaskStore.js.map +1 -0
  69. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts +109 -0
  70. package/dist/mcp-server/tasks/core/storageBackedTaskStore.d.ts.map +1 -0
  71. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js +209 -0
  72. package/dist/mcp-server/tasks/core/storageBackedTaskStore.js.map +1 -0
  73. package/dist/mcp-server/tasks/core/taskManager.d.ts +103 -0
  74. package/dist/mcp-server/tasks/core/taskManager.d.ts.map +1 -0
  75. package/dist/mcp-server/tasks/core/taskManager.js +144 -0
  76. package/dist/mcp-server/tasks/core/taskManager.js.map +1 -0
  77. package/dist/mcp-server/tasks/core/taskTypes.d.ts +11 -0
  78. package/dist/mcp-server/tasks/core/taskTypes.d.ts.map +1 -0
  79. package/dist/mcp-server/tasks/core/taskTypes.js +13 -0
  80. package/dist/mcp-server/tasks/core/taskTypes.js.map +1 -0
  81. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts +108 -0
  82. package/dist/mcp-server/tasks/utils/taskToolDefinition.d.ts.map +1 -0
  83. package/dist/mcp-server/tasks/utils/taskToolDefinition.js +14 -0
  84. package/dist/mcp-server/tasks/utils/taskToolDefinition.js.map +1 -0
  85. package/dist/mcp-server/tools/tool-registration.d.ts +49 -0
  86. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -0
  87. package/dist/mcp-server/tools/tool-registration.js +269 -0
  88. package/dist/mcp-server/tools/tool-registration.js.map +1 -0
  89. package/dist/mcp-server/tools/utils/newToolDefinition.d.ts +73 -0
  90. package/dist/mcp-server/tools/utils/newToolDefinition.d.ts.map +1 -0
  91. package/dist/mcp-server/tools/utils/newToolDefinition.js +45 -0
  92. package/dist/mcp-server/tools/utils/newToolDefinition.js.map +1 -0
  93. package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts +33 -0
  94. package/dist/mcp-server/tools/utils/newToolHandlerFactory.d.ts.map +1 -0
  95. package/dist/mcp-server/tools/utils/newToolHandlerFactory.js +107 -0
  96. package/dist/mcp-server/tools/utils/newToolHandlerFactory.js.map +1 -0
  97. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +118 -0
  98. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -0
  99. package/dist/mcp-server/tools/utils/toolDefinition.js +2 -0
  100. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -0
  101. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +34 -0
  102. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -0
  103. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +68 -0
  104. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -0
  105. package/dist/mcp-server/transports/ITransport.d.ts +15 -0
  106. package/dist/mcp-server/transports/ITransport.d.ts.map +1 -0
  107. package/dist/mcp-server/transports/ITransport.js +2 -0
  108. package/dist/mcp-server/transports/ITransport.js.map +1 -0
  109. package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
  110. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  111. package/dist/mcp-server/transports/auth/authFactory.js +43 -0
  112. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  113. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +24 -0
  114. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  115. package/dist/mcp-server/transports/auth/authMiddleware.js +69 -0
  116. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  117. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
  118. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  119. package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
  120. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  121. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +19 -0
  122. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  123. package/dist/mcp-server/transports/auth/lib/authTypes.js +2 -0
  124. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  125. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +18 -0
  126. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  127. package/dist/mcp-server/transports/auth/lib/authUtils.js +64 -0
  128. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  129. package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts +25 -0
  130. package/dist/mcp-server/transports/auth/lib/checkScopes.d.ts.map +1 -0
  131. package/dist/mcp-server/transports/auth/lib/checkScopes.js +34 -0
  132. package/dist/mcp-server/transports/auth/lib/checkScopes.js.map +1 -0
  133. package/dist/mcp-server/transports/auth/lib/claimParser.d.ts +34 -0
  134. package/dist/mcp-server/transports/auth/lib/claimParser.d.ts.map +1 -0
  135. package/dist/mcp-server/transports/auth/lib/claimParser.js +58 -0
  136. package/dist/mcp-server/transports/auth/lib/claimParser.js.map +1 -0
  137. package/dist/mcp-server/transports/auth/lib/withAuth.d.ts +25 -0
  138. package/dist/mcp-server/transports/auth/lib/withAuth.d.ts.map +1 -0
  139. package/dist/mcp-server/transports/auth/lib/withAuth.js +30 -0
  140. package/dist/mcp-server/transports/auth/lib/withAuth.js.map +1 -0
  141. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
  142. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  143. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
  144. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  145. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +14 -0
  146. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  147. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +86 -0
  148. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  149. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +14 -0
  150. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  151. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +113 -0
  152. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  153. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
  154. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  155. package/dist/mcp-server/transports/http/httpErrorHandler.js +112 -0
  156. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  157. package/dist/mcp-server/transports/http/httpTransport.d.ts +47 -0
  158. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  159. package/dist/mcp-server/transports/http/httpTransport.js +396 -0
  160. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  161. package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
  162. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  163. package/dist/mcp-server/transports/http/httpTypes.js +2 -0
  164. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  165. package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts +21 -0
  166. package/dist/mcp-server/transports/http/protectedResourceMetadata.d.ts.map +1 -0
  167. package/dist/mcp-server/transports/http/protectedResourceMetadata.js +44 -0
  168. package/dist/mcp-server/transports/http/protectedResourceMetadata.js.map +1 -0
  169. package/dist/mcp-server/transports/http/sessionIdUtils.d.ts +33 -0
  170. package/dist/mcp-server/transports/http/sessionIdUtils.d.ts.map +1 -0
  171. package/dist/mcp-server/transports/http/sessionIdUtils.js +54 -0
  172. package/dist/mcp-server/transports/http/sessionIdUtils.js.map +1 -0
  173. package/dist/mcp-server/transports/http/sessionStore.d.ts +87 -0
  174. package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -0
  175. package/dist/mcp-server/transports/http/sessionStore.js +209 -0
  176. package/dist/mcp-server/transports/http/sessionStore.js.map +1 -0
  177. package/dist/mcp-server/transports/manager.d.ts +22 -0
  178. package/dist/mcp-server/transports/manager.d.ts.map +1 -0
  179. package/dist/mcp-server/transports/manager.js +62 -0
  180. package/dist/mcp-server/transports/manager.js.map +1 -0
  181. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +44 -0
  182. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  183. package/dist/mcp-server/transports/stdio/stdioTransport.js +63 -0
  184. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  185. package/dist/services/graph/core/GraphService.d.ts +205 -0
  186. package/dist/services/graph/core/GraphService.d.ts.map +1 -0
  187. package/dist/services/graph/core/GraphService.js +231 -0
  188. package/dist/services/graph/core/GraphService.js.map +1 -0
  189. package/dist/services/graph/core/IGraphProvider.d.ts +295 -0
  190. package/dist/services/graph/core/IGraphProvider.d.ts.map +1 -0
  191. package/dist/services/graph/core/IGraphProvider.js +8 -0
  192. package/dist/services/graph/core/IGraphProvider.js.map +1 -0
  193. package/dist/services/graph/types.d.ts +107 -0
  194. package/dist/services/graph/types.d.ts.map +1 -0
  195. package/dist/services/graph/types.js +8 -0
  196. package/dist/services/graph/types.js.map +1 -0
  197. package/dist/services/llm/core/ILlmProvider.d.ts +86 -0
  198. package/dist/services/llm/core/ILlmProvider.d.ts.map +1 -0
  199. package/dist/services/llm/core/ILlmProvider.js +2 -0
  200. package/dist/services/llm/core/ILlmProvider.js.map +1 -0
  201. package/dist/services/llm/providers/openrouter.provider.d.ts +187 -0
  202. package/dist/services/llm/providers/openrouter.provider.d.ts.map +1 -0
  203. package/dist/services/llm/providers/openrouter.provider.js +302 -0
  204. package/dist/services/llm/providers/openrouter.provider.js.map +1 -0
  205. package/dist/services/llm/types.d.ts +16 -0
  206. package/dist/services/llm/types.d.ts.map +1 -0
  207. package/dist/services/llm/types.js +9 -0
  208. package/dist/services/llm/types.js.map +1 -0
  209. package/dist/services/speech/core/ISpeechProvider.d.ts +92 -0
  210. package/dist/services/speech/core/ISpeechProvider.d.ts.map +1 -0
  211. package/dist/services/speech/core/ISpeechProvider.js +34 -0
  212. package/dist/services/speech/core/ISpeechProvider.js.map +1 -0
  213. package/dist/services/speech/core/SpeechService.d.ts +87 -0
  214. package/dist/services/speech/core/SpeechService.d.ts.map +1 -0
  215. package/dist/services/speech/core/SpeechService.js +135 -0
  216. package/dist/services/speech/core/SpeechService.js.map +1 -0
  217. package/dist/services/speech/providers/elevenlabs.provider.d.ts +77 -0
  218. package/dist/services/speech/providers/elevenlabs.provider.d.ts.map +1 -0
  219. package/dist/services/speech/providers/elevenlabs.provider.js +199 -0
  220. package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -0
  221. package/dist/services/speech/providers/whisper.provider.d.ts +94 -0
  222. package/dist/services/speech/providers/whisper.provider.d.ts.map +1 -0
  223. package/dist/services/speech/providers/whisper.provider.js +240 -0
  224. package/dist/services/speech/providers/whisper.provider.js.map +1 -0
  225. package/dist/services/speech/types.d.ts +173 -0
  226. package/dist/services/speech/types.d.ts.map +1 -0
  227. package/dist/services/speech/types.js +8 -0
  228. package/dist/services/speech/types.js.map +1 -0
  229. package/dist/storage/core/IStorageProvider.d.ts +159 -0
  230. package/dist/storage/core/IStorageProvider.d.ts.map +1 -0
  231. package/dist/storage/core/IStorageProvider.js +2 -0
  232. package/dist/storage/core/IStorageProvider.js.map +1 -0
  233. package/dist/storage/core/StorageService.d.ts +22 -0
  234. package/dist/storage/core/StorageService.d.ts.map +1 -0
  235. package/dist/storage/core/StorageService.js +151 -0
  236. package/dist/storage/core/StorageService.js.map +1 -0
  237. package/dist/storage/core/storageFactory.d.ts +66 -0
  238. package/dist/storage/core/storageFactory.d.ts.map +1 -0
  239. package/dist/storage/core/storageFactory.js +122 -0
  240. package/dist/storage/core/storageFactory.js.map +1 -0
  241. package/dist/storage/core/storageValidation.d.ts +77 -0
  242. package/dist/storage/core/storageValidation.d.ts.map +1 -0
  243. package/dist/storage/core/storageValidation.js +303 -0
  244. package/dist/storage/core/storageValidation.js.map +1 -0
  245. package/dist/storage/providers/cloudflare/d1Provider.d.ts +94 -0
  246. package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -0
  247. package/dist/storage/providers/cloudflare/d1Provider.js +347 -0
  248. package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -0
  249. package/dist/storage/providers/cloudflare/kvProvider.d.ts +21 -0
  250. package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -0
  251. package/dist/storage/providers/cloudflare/kvProvider.js +183 -0
  252. package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -0
  253. package/dist/storage/providers/cloudflare/r2Provider.d.ts +28 -0
  254. package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -0
  255. package/dist/storage/providers/cloudflare/r2Provider.js +222 -0
  256. package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -0
  257. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +20 -0
  258. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -0
  259. package/dist/storage/providers/fileSystem/fileSystemProvider.js +282 -0
  260. package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -0
  261. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +21 -0
  262. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -0
  263. package/dist/storage/providers/inMemory/inMemoryProvider.js +139 -0
  264. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -0
  265. package/dist/storage/providers/supabase/supabase.types.d.ts +49 -0
  266. package/dist/storage/providers/supabase/supabase.types.d.ts.map +1 -0
  267. package/dist/storage/providers/supabase/supabase.types.js +8 -0
  268. package/dist/storage/providers/supabase/supabase.types.js.map +1 -0
  269. package/dist/storage/providers/supabase/supabaseProvider.d.ts +24 -0
  270. package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -0
  271. package/dist/storage/providers/supabase/supabaseProvider.js +209 -0
  272. package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -0
  273. package/dist/testing/index.d.ts +53 -0
  274. package/dist/testing/index.d.ts.map +1 -0
  275. package/dist/testing/index.js +132 -0
  276. package/dist/testing/index.js.map +1 -0
  277. package/dist/types-global/errors.d.ts +83 -0
  278. package/dist/types-global/errors.d.ts.map +1 -0
  279. package/dist/types-global/errors.js +113 -0
  280. package/dist/types-global/errors.js.map +1 -0
  281. package/dist/utils/formatting/diffFormatter.d.ts +227 -0
  282. package/dist/utils/formatting/diffFormatter.d.ts.map +1 -0
  283. package/dist/utils/formatting/diffFormatter.js +369 -0
  284. package/dist/utils/formatting/diffFormatter.js.map +1 -0
  285. package/dist/utils/formatting/index.d.ts +9 -0
  286. package/dist/utils/formatting/index.d.ts.map +1 -0
  287. package/dist/utils/formatting/index.js +9 -0
  288. package/dist/utils/formatting/index.js.map +1 -0
  289. package/dist/utils/formatting/markdownBuilder.d.ts +543 -0
  290. package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
  291. package/dist/utils/formatting/markdownBuilder.js +674 -0
  292. package/dist/utils/formatting/markdownBuilder.js.map +1 -0
  293. package/dist/utils/formatting/tableFormatter.d.ts +261 -0
  294. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
  295. package/dist/utils/formatting/tableFormatter.js +456 -0
  296. package/dist/utils/formatting/tableFormatter.js.map +1 -0
  297. package/dist/utils/formatting/treeFormatter.d.ts +344 -0
  298. package/dist/utils/formatting/treeFormatter.d.ts.map +1 -0
  299. package/dist/utils/formatting/treeFormatter.js +400 -0
  300. package/dist/utils/formatting/treeFormatter.js.map +1 -0
  301. package/dist/utils/internal/encoding.d.ts +42 -0
  302. package/dist/utils/internal/encoding.d.ts.map +1 -0
  303. package/dist/utils/internal/encoding.js +87 -0
  304. package/dist/utils/internal/encoding.js.map +1 -0
  305. package/dist/utils/internal/error-handler/errorHandler.d.ts +140 -0
  306. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -0
  307. package/dist/utils/internal/error-handler/errorHandler.js +318 -0
  308. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -0
  309. package/dist/utils/internal/error-handler/helpers.d.ts +98 -0
  310. package/dist/utils/internal/error-handler/helpers.d.ts.map +1 -0
  311. package/dist/utils/internal/error-handler/helpers.js +214 -0
  312. package/dist/utils/internal/error-handler/helpers.js.map +1 -0
  313. package/dist/utils/internal/error-handler/mappings.d.ts +85 -0
  314. package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -0
  315. package/dist/utils/internal/error-handler/mappings.js +234 -0
  316. package/dist/utils/internal/error-handler/mappings.js.map +1 -0
  317. package/dist/utils/internal/error-handler/types.d.ts +160 -0
  318. package/dist/utils/internal/error-handler/types.d.ts.map +1 -0
  319. package/dist/utils/internal/error-handler/types.js +6 -0
  320. package/dist/utils/internal/error-handler/types.js.map +1 -0
  321. package/dist/utils/internal/health.d.ts +60 -0
  322. package/dist/utils/internal/health.d.ts.map +1 -0
  323. package/dist/utils/internal/health.js +46 -0
  324. package/dist/utils/internal/health.js.map +1 -0
  325. package/dist/utils/internal/logger.d.ts +300 -0
  326. package/dist/utils/internal/logger.d.ts.map +1 -0
  327. package/dist/utils/internal/logger.js +573 -0
  328. package/dist/utils/internal/logger.js.map +1 -0
  329. package/dist/utils/internal/performance.d.ts +78 -0
  330. package/dist/utils/internal/performance.d.ts.map +1 -0
  331. package/dist/utils/internal/performance.js +227 -0
  332. package/dist/utils/internal/performance.js.map +1 -0
  333. package/dist/utils/internal/requestContext.d.ts +200 -0
  334. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  335. package/dist/utils/internal/requestContext.js +163 -0
  336. package/dist/utils/internal/requestContext.js.map +1 -0
  337. package/dist/utils/internal/runtime.d.ts +49 -0
  338. package/dist/utils/internal/runtime.d.ts.map +1 -0
  339. package/dist/utils/internal/runtime.js +90 -0
  340. package/dist/utils/internal/runtime.js.map +1 -0
  341. package/dist/utils/internal/startupBanner.d.ts +23 -0
  342. package/dist/utils/internal/startupBanner.d.ts.map +1 -0
  343. package/dist/utils/internal/startupBanner.js +34 -0
  344. package/dist/utils/internal/startupBanner.js.map +1 -0
  345. package/dist/utils/metrics/tokenCounter.d.ts +97 -0
  346. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  347. package/dist/utils/metrics/tokenCounter.js +162 -0
  348. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  349. package/dist/utils/network/fetchWithTimeout.d.ts +91 -0
  350. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
  351. package/dist/utils/network/fetchWithTimeout.js +305 -0
  352. package/dist/utils/network/fetchWithTimeout.js.map +1 -0
  353. package/dist/utils/pagination/pagination.d.ts +157 -0
  354. package/dist/utils/pagination/pagination.d.ts.map +1 -0
  355. package/dist/utils/pagination/pagination.js +191 -0
  356. package/dist/utils/pagination/pagination.js.map +1 -0
  357. package/dist/utils/parsing/csvParser.d.ts +84 -0
  358. package/dist/utils/parsing/csvParser.d.ts.map +1 -0
  359. package/dist/utils/parsing/csvParser.js +132 -0
  360. package/dist/utils/parsing/csvParser.js.map +1 -0
  361. package/dist/utils/parsing/dateParser.d.ts +103 -0
  362. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  363. package/dist/utils/parsing/dateParser.js +142 -0
  364. package/dist/utils/parsing/dateParser.js.map +1 -0
  365. package/dist/utils/parsing/frontmatterParser.d.ts +91 -0
  366. package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -0
  367. package/dist/utils/parsing/frontmatterParser.js +163 -0
  368. package/dist/utils/parsing/frontmatterParser.js.map +1 -0
  369. package/dist/utils/parsing/index.d.ts +15 -0
  370. package/dist/utils/parsing/index.d.ts.map +1 -0
  371. package/dist/utils/parsing/index.js +15 -0
  372. package/dist/utils/parsing/index.js.map +1 -0
  373. package/dist/utils/parsing/jsonParser.d.ts +115 -0
  374. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  375. package/dist/utils/parsing/jsonParser.js +177 -0
  376. package/dist/utils/parsing/jsonParser.js.map +1 -0
  377. package/dist/utils/parsing/pdfParser.d.ts +563 -0
  378. package/dist/utils/parsing/pdfParser.d.ts.map +1 -0
  379. package/dist/utils/parsing/pdfParser.js +775 -0
  380. package/dist/utils/parsing/pdfParser.js.map +1 -0
  381. package/dist/utils/parsing/thinkBlock.d.ts +31 -0
  382. package/dist/utils/parsing/thinkBlock.d.ts.map +1 -0
  383. package/dist/utils/parsing/thinkBlock.js +31 -0
  384. package/dist/utils/parsing/thinkBlock.js.map +1 -0
  385. package/dist/utils/parsing/xmlParser.d.ts +69 -0
  386. package/dist/utils/parsing/xmlParser.d.ts.map +1 -0
  387. package/dist/utils/parsing/xmlParser.js +140 -0
  388. package/dist/utils/parsing/xmlParser.js.map +1 -0
  389. package/dist/utils/parsing/yamlParser.d.ts +64 -0
  390. package/dist/utils/parsing/yamlParser.d.ts.map +1 -0
  391. package/dist/utils/parsing/yamlParser.js +129 -0
  392. package/dist/utils/parsing/yamlParser.js.map +1 -0
  393. package/dist/utils/scheduling/scheduler.d.ts +174 -0
  394. package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
  395. package/dist/utils/scheduling/scheduler.js +248 -0
  396. package/dist/utils/scheduling/scheduler.js.map +1 -0
  397. package/dist/utils/security/idGenerator.d.ts +189 -0
  398. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  399. package/dist/utils/security/idGenerator.js +301 -0
  400. package/dist/utils/security/idGenerator.js.map +1 -0
  401. package/dist/utils/security/index.d.ts +8 -0
  402. package/dist/utils/security/index.d.ts.map +1 -0
  403. package/dist/utils/security/index.js +8 -0
  404. package/dist/utils/security/index.js.map +1 -0
  405. package/dist/utils/security/rateLimiter.d.ts +171 -0
  406. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  407. package/dist/utils/security/rateLimiter.js +294 -0
  408. package/dist/utils/security/rateLimiter.js.map +1 -0
  409. package/dist/utils/security/sanitization.d.ts +430 -0
  410. package/dist/utils/security/sanitization.d.ts.map +1 -0
  411. package/dist/utils/security/sanitization.js +759 -0
  412. package/dist/utils/security/sanitization.js.map +1 -0
  413. package/dist/utils/telemetry/index.d.ts +12 -0
  414. package/dist/utils/telemetry/index.d.ts.map +1 -0
  415. package/dist/utils/telemetry/index.js +12 -0
  416. package/dist/utils/telemetry/index.js.map +1 -0
  417. package/dist/utils/telemetry/instrumentation.d.ts +62 -0
  418. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
  419. package/dist/utils/telemetry/instrumentation.js +223 -0
  420. package/dist/utils/telemetry/instrumentation.js.map +1 -0
  421. package/dist/utils/telemetry/metrics.d.ts +170 -0
  422. package/dist/utils/telemetry/metrics.d.ts.map +1 -0
  423. package/dist/utils/telemetry/metrics.js +205 -0
  424. package/dist/utils/telemetry/metrics.js.map +1 -0
  425. package/dist/utils/telemetry/semconv.d.ts +147 -0
  426. package/dist/utils/telemetry/semconv.d.ts.map +1 -0
  427. package/dist/utils/telemetry/semconv.js +159 -0
  428. package/dist/utils/telemetry/semconv.js.map +1 -0
  429. package/dist/utils/telemetry/trace.d.ts +141 -0
  430. package/dist/utils/telemetry/trace.d.ts.map +1 -0
  431. package/dist/utils/telemetry/trace.js +193 -0
  432. package/dist/utils/telemetry/trace.js.map +1 -0
  433. package/dist/utils/types/guards.d.ts +209 -0
  434. package/dist/utils/types/guards.d.ts.map +1 -0
  435. package/dist/utils/types/guards.js +229 -0
  436. package/dist/utils/types/guards.js.map +1 -0
  437. package/dist/utils/types/index.d.ts +6 -0
  438. package/dist/utils/types/index.d.ts.map +1 -0
  439. package/dist/utils/types/index.js +6 -0
  440. package/dist/utils/types/index.js.map +1 -0
  441. package/dist/worker.d.ts +59 -0
  442. package/dist/worker.d.ts.map +1 -0
  443. package/dist/worker.js +216 -0
  444. package/dist/worker.js.map +1 -0
  445. package/package.json +377 -0
  446. package/skills/README.md +38 -0
  447. package/skills/add-export/SKILL.md +49 -0
  448. package/skills/add-prompt/SKILL.md +97 -0
  449. package/skills/add-provider/SKILL.md +53 -0
  450. package/skills/add-resource/SKILL.md +107 -0
  451. package/skills/add-service/SKILL.md +113 -0
  452. package/skills/add-tool/SKILL.md +110 -0
  453. package/skills/api-auth/SKILL.md +173 -0
  454. package/skills/api-config/SKILL.md +68 -0
  455. package/skills/api-context/SKILL.md +321 -0
  456. package/skills/api-errors/SKILL.md +146 -0
  457. package/skills/api-services/SKILL.md +24 -0
  458. package/skills/api-services/references/graph.md +124 -0
  459. package/skills/api-services/references/llm.md +46 -0
  460. package/skills/api-services/references/speech.md +72 -0
  461. package/skills/api-testing/SKILL.md +263 -0
  462. package/skills/api-utils/SKILL.md +106 -0
  463. package/skills/api-utils/references/formatting.md +237 -0
  464. package/skills/api-utils/references/parsing.md +263 -0
  465. package/skills/api-utils/references/security.md +226 -0
  466. package/skills/api-workers/SKILL.md +165 -0
  467. package/skills/devcheck/SKILL.md +31 -0
  468. package/skills/maintenance/SKILL.md +52 -0
  469. package/skills/migrate-mcp-ts-template/SKILL.md +131 -0
  470. package/skills/release/SKILL.md +67 -0
  471. package/skills/setup/SKILL.md +89 -0
  472. package/skills/walkthrough-init/SKILL.md +50 -0
  473. package/templates/.env.example +17 -0
  474. package/templates/AGENTS.md +113 -0
  475. package/templates/CLAUDE.md +113 -0
  476. package/templates/_tsconfig.json +33 -0
  477. package/templates/biome.template.json +43 -0
  478. package/templates/package.json +26 -0
  479. package/templates/src/index.ts +16 -0
  480. package/templates/src/mcp-server/prompts/definitions/echo.prompt.ts +19 -0
  481. package/templates/src/mcp-server/resources/definitions/echo.resource.ts +30 -0
  482. package/templates/src/mcp-server/tools/definitions/echo.tool.ts +24 -0
  483. package/templates/vitest.config.ts +12 -0
  484. package/tsconfig.base.json +44 -0
  485. package/vitest.config.base.ts +38 -0
@@ -0,0 +1,563 @@
1
+ /**
2
+ * @fileoverview Provides a utility class for creating, modifying, and parsing PDF documents.
3
+ * Wraps the 'pdf-lib' npm library with structured error handling and logging.
4
+ * Uses 'unpdf' for robust text extraction compatible with Cloudflare Workers.
5
+ * @module src/utils/parsing/pdfParser
6
+ */
7
+ import type { PDFDocument, PDFFont, PDFImage, PDFPage, RGB } from 'pdf-lib';
8
+ import { type RequestContext } from '../../utils/internal/requestContext.js';
9
+ /**
10
+ * Options for adding a new page to a PDF document.
11
+ */
12
+ export interface AddPageOptions {
13
+ /**
14
+ * Height of the page in points (1/72 inch). Defaults to US Letter height (792 points).
15
+ */
16
+ height?: number;
17
+ /**
18
+ * Width of the page in points (1/72 inch). Defaults to US Letter width (612 points).
19
+ */
20
+ width?: number;
21
+ }
22
+ /**
23
+ * Options for drawing text on a PDF page.
24
+ */
25
+ export interface DrawTextOptions {
26
+ /**
27
+ * Text color as an RGB object. Defaults to black.
28
+ */
29
+ color?: RGB;
30
+ /**
31
+ * Font to use. Must be embedded first via embedFont().
32
+ * Defaults to Helvetica.
33
+ */
34
+ font?: PDFFont;
35
+ /**
36
+ * Line height multiplier for wrapped text. Defaults to 1.2.
37
+ */
38
+ lineHeight?: number;
39
+ /**
40
+ * Maximum width for text wrapping (in points). If specified, text will wrap.
41
+ */
42
+ maxWidth?: number;
43
+ /**
44
+ * Rotation angle in degrees. Defaults to 0.
45
+ */
46
+ rotate?: number;
47
+ /**
48
+ * Font size in points. Defaults to 12.
49
+ */
50
+ size?: number;
51
+ /**
52
+ * The text string to draw.
53
+ */
54
+ text: string;
55
+ /**
56
+ * X-coordinate (in points) of the text baseline start.
57
+ */
58
+ x: number;
59
+ /**
60
+ * Y-coordinate (in points) of the text baseline.
61
+ */
62
+ y: number;
63
+ }
64
+ /**
65
+ * Options for embedding an image into a PDF document.
66
+ */
67
+ export interface EmbedImageOptions {
68
+ /**
69
+ * Image format: 'png' or 'jpg'.
70
+ */
71
+ format: 'png' | 'jpg';
72
+ /**
73
+ * Image data as Uint8Array or ArrayBuffer.
74
+ */
75
+ imageBytes: Uint8Array | ArrayBuffer;
76
+ }
77
+ /**
78
+ * Options for drawing an embedded image on a page.
79
+ */
80
+ export interface DrawImageOptions {
81
+ /**
82
+ * Height of the image in points. Defaults to original height.
83
+ */
84
+ height?: number;
85
+ /**
86
+ * The embedded PDF image.
87
+ */
88
+ image: PDFImage;
89
+ /**
90
+ * Opacity (0-1). Defaults to 1 (fully opaque).
91
+ */
92
+ opacity?: number;
93
+ /**
94
+ * Rotation angle in degrees. Defaults to 0.
95
+ */
96
+ rotate?: number;
97
+ /**
98
+ * Width of the image in points. Defaults to original width.
99
+ */
100
+ width?: number;
101
+ /**
102
+ * X-coordinate (in points) of the image's top-left corner.
103
+ */
104
+ x: number;
105
+ /**
106
+ * Y-coordinate (in points) of the image's top-left corner.
107
+ */
108
+ y: number;
109
+ }
110
+ /**
111
+ * Page range specification for splitting PDFs.
112
+ */
113
+ export interface PageRange {
114
+ /**
115
+ * Ending page index (0-based, inclusive).
116
+ */
117
+ end: number;
118
+ /**
119
+ * Starting page index (0-based).
120
+ */
121
+ start: number;
122
+ }
123
+ /**
124
+ * Metadata extracted from a PDF document.
125
+ */
126
+ export interface PdfMetadata {
127
+ /**
128
+ * Document author.
129
+ */
130
+ author?: string;
131
+ /**
132
+ * Creation date (ISO 8601 string).
133
+ */
134
+ creationDate?: string;
135
+ /**
136
+ * Application that created the document.
137
+ */
138
+ creator?: string;
139
+ /**
140
+ * Keywords associated with the document.
141
+ */
142
+ keywords?: string;
143
+ /**
144
+ * Modification date (ISO 8601 string).
145
+ */
146
+ modificationDate?: string;
147
+ /**
148
+ * Total number of pages.
149
+ */
150
+ pageCount: number;
151
+ /**
152
+ * Application that produced the PDF.
153
+ */
154
+ producer?: string;
155
+ /**
156
+ * Document subject.
157
+ */
158
+ subject?: string;
159
+ /**
160
+ * Document title.
161
+ */
162
+ title?: string;
163
+ }
164
+ /**
165
+ * Options for setting PDF metadata.
166
+ */
167
+ export interface SetMetadataOptions {
168
+ /**
169
+ * Document author.
170
+ */
171
+ author?: string;
172
+ /**
173
+ * Application that created the document.
174
+ */
175
+ creator?: string;
176
+ /**
177
+ * Keywords associated with the document.
178
+ */
179
+ keywords?: string;
180
+ /**
181
+ * Application that produced the PDF.
182
+ */
183
+ producer?: string;
184
+ /**
185
+ * Document subject.
186
+ */
187
+ subject?: string;
188
+ /**
189
+ * Document title.
190
+ */
191
+ title?: string;
192
+ }
193
+ /**
194
+ * Options for filling PDF form fields.
195
+ */
196
+ export interface FillFormOptions {
197
+ /**
198
+ * Map of field names to their values.
199
+ */
200
+ fields: Record<string, string | boolean | number>;
201
+ /**
202
+ * Whether to flatten the form after filling (make it non-editable).
203
+ * Defaults to false.
204
+ */
205
+ flatten?: boolean;
206
+ }
207
+ /**
208
+ * Options for extracting text from a PDF document.
209
+ */
210
+ export interface ExtractTextOptions {
211
+ /**
212
+ * Whether to merge all pages into a single string.
213
+ * If true, returns text as a single string.
214
+ * If false, returns text as an array with one string per page.
215
+ * Defaults to false.
216
+ */
217
+ mergePages?: boolean;
218
+ }
219
+ /**
220
+ * Result from extracting text from a PDF document.
221
+ */
222
+ export interface ExtractTextResult {
223
+ /**
224
+ * Extracted text content.
225
+ * String array if mergePages is false (one entry per page).
226
+ * Single string if mergePages is true (all pages concatenated).
227
+ */
228
+ text: string | string[];
229
+ /**
230
+ * Total number of pages in the PDF.
231
+ */
232
+ totalPages: number;
233
+ }
234
+ /**
235
+ * Utility class for creating, modifying, and parsing PDF documents.
236
+ *
237
+ * Wraps the `pdf-lib` library for document creation/editing and `unpdf` for text
238
+ * extraction (Cloudflare Workers compatible). Most methods are async due to lazy
239
+ * loading of these peer dependencies. Install both with:
240
+ * `bun add pdf-lib unpdf`
241
+ */
242
+ export declare class PdfParser {
243
+ /**
244
+ * Creates a new blank PDF document.
245
+ *
246
+ * Async due to lazy loading of the `pdf-lib` peer dependency (`bun add pdf-lib`).
247
+ *
248
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
249
+ * @returns A new empty `PDFDocument` instance.
250
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
251
+ * @throws {McpError} With `InternalError` if document creation fails.
252
+ * @example
253
+ * ```typescript
254
+ * const doc = await pdfParser.createDocument();
255
+ * const page = pdfParser.addPage(doc);
256
+ * ```
257
+ */
258
+ createDocument(context?: RequestContext): Promise<PDFDocument>;
259
+ /**
260
+ * Loads an existing PDF document from raw bytes.
261
+ *
262
+ * Async due to lazy loading of the `pdf-lib` peer dependency (`bun add pdf-lib`).
263
+ *
264
+ * @param pdfBytes - The PDF file contents as `Uint8Array` or `ArrayBuffer`.
265
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
266
+ * @returns The loaded `PDFDocument` instance.
267
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
268
+ * @throws {McpError} With `ValidationError` if the bytes are not a valid PDF.
269
+ * @example
270
+ * ```typescript
271
+ * import { readFile } from 'node:fs/promises';
272
+ * const pdfBytes = await readFile('input.pdf');
273
+ * const doc = await pdfParser.loadDocument(pdfBytes);
274
+ * ```
275
+ */
276
+ loadDocument(pdfBytes: Uint8Array | ArrayBuffer, context?: RequestContext): Promise<PDFDocument>;
277
+ /**
278
+ * Adds a new blank page to a PDF document.
279
+ *
280
+ * Synchronous — does not load any peer dependencies.
281
+ *
282
+ * @param doc - The `PDFDocument` to add the page to.
283
+ * @param options - Optional page dimensions. Defaults to US Letter (612 × 792 points).
284
+ * @returns The newly added `PDFPage`.
285
+ * @example
286
+ * ```typescript
287
+ * const page = pdfParser.addPage(doc, { width: 600, height: 400 });
288
+ * ```
289
+ */
290
+ addPage(doc: PDFDocument, options?: AddPageOptions): PDFPage;
291
+ /**
292
+ * Embeds a standard PDF font into a document.
293
+ *
294
+ * `fontName` must be a key of `pdf-lib`'s `StandardFonts` enum (e.g. `'Helvetica'`,
295
+ * `'TimesRoman'`, `'Courier'`). Async due to lazy loading of `pdf-lib`
296
+ * (`bun add pdf-lib`).
297
+ *
298
+ * @param doc - The `PDFDocument` to embed the font into.
299
+ * @param fontName - A `StandardFonts` key. Defaults to `'Helvetica'`.
300
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
301
+ * @returns The embedded `PDFFont` ready to pass to `drawText`.
302
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
303
+ * @throws {McpError} With `InternalError` if the font name is invalid or embedding fails.
304
+ * @example
305
+ * ```typescript
306
+ * const font = await pdfParser.embedFont(doc, 'TimesRoman');
307
+ * ```
308
+ */
309
+ embedFont(doc: PDFDocument, fontName?: string, context?: RequestContext): Promise<PDFFont>;
310
+ /**
311
+ * Embeds a PNG or JPEG image into a PDF document for later rendering.
312
+ *
313
+ * Does not draw the image — call `drawImage` after embedding. Async due to lazy
314
+ * loading of `pdf-lib` (`bun add pdf-lib`).
315
+ *
316
+ * @param doc - The `PDFDocument` to embed the image into.
317
+ * @param options - Image bytes and format (`'png'` or `'jpg'`).
318
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
319
+ * @returns The embedded `PDFImage`, usable as the `image` option in `drawImage`.
320
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
321
+ * @throws {McpError} With `InternalError` if the image data is invalid or embedding fails.
322
+ * @example
323
+ * ```typescript
324
+ * import { readFile } from 'node:fs/promises';
325
+ * const imageBytes = await readFile('logo.png');
326
+ * const image = await pdfParser.embedImage(doc, { imageBytes, format: 'png' });
327
+ * pdfParser.drawImage(page, { image, x: 50, y: 700, width: 100, height: 50 });
328
+ * ```
329
+ */
330
+ embedImage(doc: PDFDocument, options: EmbedImageOptions, context?: RequestContext): Promise<PDFImage>;
331
+ /**
332
+ * Draws text on a PDF page with optional font, size, color, rotation, and word-wrap.
333
+ *
334
+ * When `maxWidth` is set, the text is split into words and wrapped across multiple
335
+ * lines; each line is rendered at decreasing Y positions by `size * lineHeight`.
336
+ * Async due to lazy loading of `pdf-lib` (`bun add pdf-lib`).
337
+ *
338
+ * @param page - The `PDFPage` to draw text on.
339
+ * @param options - Text content, baseline position (`x`, `y`), and styling.
340
+ * @returns A promise that resolves when drawing is complete.
341
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
342
+ * @example
343
+ * ```typescript
344
+ * const font = await pdfParser.embedFont(doc, 'Helvetica');
345
+ * await pdfParser.drawText(page, {
346
+ * text: 'Hello, World!',
347
+ * x: 50,
348
+ * y: 700,
349
+ * size: 30,
350
+ * font,
351
+ * color: rgb(0, 0.53, 0.71),
352
+ * });
353
+ * ```
354
+ */
355
+ drawText(page: PDFPage, options: DrawTextOptions): Promise<void>;
356
+ /**
357
+ * Draws a previously embedded image onto a PDF page.
358
+ *
359
+ * The image must first be embedded via `embedImage`. Width and height default to the
360
+ * image's intrinsic dimensions. Async due to lazy loading of `pdf-lib`
361
+ * (`bun add pdf-lib`).
362
+ *
363
+ * @param page - The `PDFPage` to draw the image on.
364
+ * @param options - The embedded image, position (`x`, `y`), dimensions, opacity, and rotation.
365
+ * @returns A promise that resolves when drawing is complete.
366
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
367
+ * @example
368
+ * ```typescript
369
+ * const image = await pdfParser.embedImage(doc, { imageBytes, format: 'png' });
370
+ * await pdfParser.drawImage(page, {
371
+ * image,
372
+ * x: 100,
373
+ * y: 500,
374
+ * width: 200,
375
+ * height: 150,
376
+ * });
377
+ * ```
378
+ */
379
+ drawImage(page: PDFPage, options: DrawImageOptions): Promise<void>;
380
+ /**
381
+ * Merges multiple PDF documents into a single new document.
382
+ *
383
+ * Pages are appended in the order the source buffers appear in the array. Undefined
384
+ * or falsy entries in the array are silently skipped. Async due to lazy loading of
385
+ * `pdf-lib` (`bun add pdf-lib`).
386
+ *
387
+ * @param pdfBytesArray - Source PDF files as `Uint8Array` or `ArrayBuffer` elements.
388
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
389
+ * @returns A new `PDFDocument` containing all pages from the input documents.
390
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
391
+ * @throws {McpError} With `InternalError` if any source PDF is invalid or merging fails.
392
+ * @example
393
+ * ```typescript
394
+ * import { readFile } from 'node:fs/promises';
395
+ * const pdf1 = await readFile('doc1.pdf');
396
+ * const pdf2 = await readFile('doc2.pdf');
397
+ * const merged = await pdfParser.mergePdfs([pdf1, pdf2]);
398
+ * const bytes = await pdfParser.saveDocument(merged);
399
+ * ```
400
+ */
401
+ mergePdfs(pdfBytesArray: (Uint8Array | ArrayBuffer)[], context?: RequestContext): Promise<PDFDocument>;
402
+ /**
403
+ * Splits a PDF document into multiple new documents based on page ranges.
404
+ *
405
+ * Each `PageRange` produces one output `PDFDocument` containing the pages from
406
+ * `start` to `end` (both 0-based, inclusive). Ranges may overlap. Async due to
407
+ * lazy loading of `pdf-lib` (`bun add pdf-lib`).
408
+ *
409
+ * @param pdfBytes - The source PDF as `Uint8Array` or `ArrayBuffer`.
410
+ * @param ranges - Page ranges to extract; each produces one output document.
411
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
412
+ * @returns An array of new `PDFDocument` instances, one per range, in order.
413
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` is not installed.
414
+ * @throws {McpError} With `InternalError` if the source PDF is invalid or a page index is out of bounds.
415
+ * @example
416
+ * ```typescript
417
+ * import { readFile } from 'node:fs/promises';
418
+ * const pdfBytes = await readFile('document.pdf');
419
+ * const [part1, part2] = await pdfParser.splitPdf(pdfBytes, [
420
+ * { start: 0, end: 4 },
421
+ * { start: 5, end: 9 },
422
+ * ]);
423
+ * ```
424
+ */
425
+ splitPdf(pdfBytes: Uint8Array | ArrayBuffer, ranges: PageRange[], context?: RequestContext): Promise<PDFDocument[]>;
426
+ /**
427
+ * Fills form fields in a PDF document.
428
+ *
429
+ * String and number values are set via `setText`; boolean values check/uncheck
430
+ * checkbox fields. Individual field errors are logged as warnings and skipped
431
+ * rather than aborting the whole operation. If `flatten` is true, the form is
432
+ * flattened after filling, making it non-editable. Synchronous.
433
+ *
434
+ * @param doc - The `PDFDocument` containing the AcroForm.
435
+ * @param options - Map of field names to values, plus optional `flatten` flag.
436
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
437
+ * @throws {McpError} With `InternalError` if the overall form operation fails.
438
+ * @example
439
+ * ```typescript
440
+ * pdfParser.fillForm(doc, {
441
+ * fields: {
442
+ * Name: 'John Doe',
443
+ * Age: 30,
444
+ * Subscribe: true,
445
+ * },
446
+ * flatten: true,
447
+ * });
448
+ * ```
449
+ */
450
+ fillForm(doc: PDFDocument, options: FillFormOptions, context?: RequestContext): void;
451
+ /**
452
+ * Extracts metadata from a PDF document.
453
+ *
454
+ * Reads title, author, subject, keywords, creator, producer, creation date, and
455
+ * modification date from the document's info dictionary. Optional fields are
456
+ * omitted from the result if not set. Synchronous — no peer dependency loading.
457
+ *
458
+ * @param doc - The `PDFDocument` to extract metadata from.
459
+ * @returns A `PdfMetadata` object; optional fields are absent if not set in the document.
460
+ * @example
461
+ * ```typescript
462
+ * const metadata = pdfParser.extractMetadata(doc);
463
+ * console.log(`${metadata.title} by ${metadata.author} (${metadata.pageCount} pages)`);
464
+ * ```
465
+ */
466
+ extractMetadata(doc: PDFDocument): PdfMetadata;
467
+ /**
468
+ * Sets metadata fields on a PDF document.
469
+ *
470
+ * Only fields present in `metadata` are written; omitted fields are left unchanged.
471
+ * Note: `keywords` is passed as a single-element array to `pdf-lib`'s `setKeywords`.
472
+ * Synchronous — no peer dependency loading.
473
+ *
474
+ * @param doc - The `PDFDocument` to update.
475
+ * @param metadata - Metadata values to set. Omitted fields are left unchanged.
476
+ * @example
477
+ * ```typescript
478
+ * pdfParser.setMetadata(doc, {
479
+ * title: 'My Document',
480
+ * author: 'John Doe',
481
+ * subject: 'Important Document',
482
+ * });
483
+ * ```
484
+ */
485
+ setMetadata(doc: PDFDocument, metadata: SetMetadataOptions): void;
486
+ /**
487
+ * Extracts text content from all pages of a PDF document using `unpdf`.
488
+ *
489
+ * Serializes the `PDFDocument` to bytes, then delegates to `unpdf`'s `extractText`,
490
+ * which is compatible with Cloudflare Workers and other serverless environments.
491
+ * Async due to lazy loading of both `pdf-lib` and `unpdf`
492
+ * (`bun add pdf-lib unpdf`).
493
+ *
494
+ * @param doc - The `PDFDocument` to extract text from.
495
+ * @param options - Optional extraction options. Set `mergePages: true` to get a
496
+ * single concatenated string instead of one string per page.
497
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
498
+ * @returns An `ExtractTextResult` with `totalPages` and `text` — a `string[]` (one
499
+ * per page) by default, or a single `string` when `mergePages` is `true`.
500
+ * @throws {McpError} With `ConfigurationError` if `pdf-lib` or `unpdf` is not installed.
501
+ * @throws {McpError} With `InternalError` if text extraction fails.
502
+ * @example
503
+ * ```typescript
504
+ * // Per-page array (default)
505
+ * const result = await pdfParser.extractText(doc);
506
+ * console.log(result.text[0]); // Text from first page
507
+ *
508
+ * // All pages concatenated into one string
509
+ * const merged = await pdfParser.extractText(doc, { mergePages: true });
510
+ * console.log(merged.text); // Full document text
511
+ * ```
512
+ */
513
+ extractText(doc: PDFDocument, options?: ExtractTextOptions, context?: RequestContext): Promise<ExtractTextResult>;
514
+ /**
515
+ * Serializes a PDF document to a `Uint8Array` for writing to disk or transmission.
516
+ *
517
+ * Async due to `pdf-lib`'s async `save()` implementation (cross-origin / Worker
518
+ * compatible). Does not reload peer dependencies if already cached.
519
+ *
520
+ * @param doc - The `PDFDocument` to serialize.
521
+ * @param context - Optional `RequestContext` for correlated logging and error metadata.
522
+ * @returns The complete PDF file as a `Uint8Array`.
523
+ * @throws {McpError} With `InternalError` if serialization fails.
524
+ * @example
525
+ * ```typescript
526
+ * import { writeFile } from 'node:fs/promises';
527
+ * const pdfBytes = await pdfParser.saveDocument(doc);
528
+ * await writeFile('output.pdf', pdfBytes);
529
+ * ```
530
+ */
531
+ saveDocument(doc: PDFDocument, context?: RequestContext): Promise<Uint8Array>;
532
+ }
533
+ /**
534
+ * Singleton instance of `PdfParser`.
535
+ *
536
+ * Provides PDF creation, editing, merging, splitting, form filling, metadata
537
+ * extraction, and text extraction. Requires `pdf-lib` for document operations
538
+ * and `unpdf` for text extraction — install both with: `bun add pdf-lib unpdf`
539
+ *
540
+ * @example
541
+ * ```typescript
542
+ * import { pdfParser } from '../../utils/parsing/pdfParser.js';
543
+ * import { writeFile } from 'node:fs/promises';
544
+ *
545
+ * const doc = await pdfParser.createDocument();
546
+ * const page = pdfParser.addPage(doc);
547
+ * const font = await pdfParser.embedFont(doc, 'Helvetica');
548
+ *
549
+ * await pdfParser.drawText(page, {
550
+ * text: 'Hello, World!',
551
+ * x: 50,
552
+ * y: 750,
553
+ * size: 30,
554
+ * font,
555
+ * });
556
+ *
557
+ * const pdfBytes = await pdfParser.saveDocument(doc);
558
+ * await writeFile('output.pdf', pdfBytes);
559
+ * ```
560
+ */
561
+ export declare const pdfParser: PdfParser;
562
+ export type { PDFDocument, PDFFont, PDFImage, PDFPage, RGB } from 'pdf-lib';
563
+ //# sourceMappingURL=pdfParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdfParser.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/pdfParser.ts"],"names":[],"mappings":"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"}