@cloudinary/asset-management-mcp 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (866) hide show
  1. package/README.md +143 -124
  2. package/_speakeasy/.github/action-inputs-config.json +53 -0
  3. package/_speakeasy/.github/action-security-config.json +88 -0
  4. package/bin/mcp-server.js +33434 -17290
  5. package/bin/mcp-server.js.map +286 -203
  6. package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.d.ts +2 -2
  7. package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.d.ts.map +1 -1
  8. package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.js +6 -12
  9. package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.js.map +1 -1
  10. package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.d.ts +2 -2
  11. package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.d.ts.map +1 -1
  12. package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.js +6 -12
  13. package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.js.map +1 -1
  14. package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.d.ts +2 -2
  15. package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.d.ts.map +1 -1
  16. package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.js +6 -12
  17. package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.js.map +1 -1
  18. package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.d.ts +2 -2
  19. package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.d.ts.map +1 -1
  20. package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.js +6 -12
  21. package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.js.map +1 -1
  22. package/esm/funcs/assetsDeleteBackupVersions.d.ts +2 -2
  23. package/esm/funcs/assetsDeleteBackupVersions.d.ts.map +1 -1
  24. package/esm/funcs/assetsDeleteBackupVersions.js +6 -14
  25. package/esm/funcs/assetsDeleteBackupVersions.js.map +1 -1
  26. package/esm/funcs/assetsDeleteResourcesByPublicId.d.ts +1 -2
  27. package/esm/funcs/assetsDeleteResourcesByPublicId.d.ts.map +1 -1
  28. package/esm/funcs/assetsDeleteResourcesByPublicId.js +6 -10
  29. package/esm/funcs/assetsDeleteResourcesByPublicId.js.map +1 -1
  30. package/esm/funcs/assetsDerivedDestroy.d.ts +1 -2
  31. package/esm/funcs/assetsDerivedDestroy.d.ts.map +1 -1
  32. package/esm/funcs/assetsDerivedDestroy.js +5 -12
  33. package/esm/funcs/assetsDerivedDestroy.js.map +1 -1
  34. package/esm/funcs/assetsDestroyByAssetId.d.ts +1 -2
  35. package/esm/funcs/assetsDestroyByAssetId.d.ts.map +1 -1
  36. package/esm/funcs/assetsDestroyByAssetId.js +5 -12
  37. package/esm/funcs/assetsDestroyByAssetId.js.map +1 -1
  38. package/esm/funcs/assetsDownloadAsset.d.ts +1 -2
  39. package/esm/funcs/assetsDownloadAsset.d.ts.map +1 -1
  40. package/esm/funcs/assetsDownloadAsset.js +6 -18
  41. package/esm/funcs/assetsDownloadAsset.js.map +1 -1
  42. package/esm/funcs/assetsDownloadBackupAsset.d.ts +1 -2
  43. package/esm/funcs/assetsDownloadBackupAsset.d.ts.map +1 -1
  44. package/esm/funcs/assetsDownloadBackupAsset.js +6 -25
  45. package/esm/funcs/assetsDownloadBackupAsset.js.map +1 -1
  46. package/esm/funcs/assetsExplicitAsset.d.ts +2 -2
  47. package/esm/funcs/assetsExplicitAsset.d.ts.map +1 -1
  48. package/esm/funcs/assetsExplicitAsset.js +6 -10
  49. package/esm/funcs/assetsExplicitAsset.js.map +1 -1
  50. package/esm/funcs/assetsGenerateArchive.d.ts +2 -2
  51. package/esm/funcs/assetsGenerateArchive.d.ts.map +1 -1
  52. package/esm/funcs/assetsGenerateArchive.js +6 -8
  53. package/esm/funcs/assetsGenerateArchive.js.map +1 -1
  54. package/esm/funcs/assetsGetResourceByAssetId.d.ts +1 -2
  55. package/esm/funcs/assetsGetResourceByAssetId.d.ts.map +1 -1
  56. package/esm/funcs/assetsGetResourceByAssetId.js +6 -10
  57. package/esm/funcs/assetsGetResourceByAssetId.js.map +1 -1
  58. package/esm/funcs/assetsGetResourceByPublicId.d.ts +1 -2
  59. package/esm/funcs/assetsGetResourceByPublicId.d.ts.map +1 -1
  60. package/esm/funcs/assetsGetResourceByPublicId.js +6 -10
  61. package/esm/funcs/assetsGetResourceByPublicId.js.map +1 -1
  62. package/esm/funcs/assetsListImages.d.ts +1 -2
  63. package/esm/funcs/assetsListImages.d.ts.map +1 -1
  64. package/esm/funcs/assetsListImages.js +6 -8
  65. package/esm/funcs/assetsListImages.js.map +1 -1
  66. package/esm/funcs/assetsListRawFiles.d.ts +1 -2
  67. package/esm/funcs/assetsListRawFiles.d.ts.map +1 -1
  68. package/esm/funcs/assetsListRawFiles.js +6 -8
  69. package/esm/funcs/assetsListRawFiles.js.map +1 -1
  70. package/esm/funcs/assetsListResourceTags.d.ts +1 -2
  71. package/esm/funcs/assetsListResourceTags.d.ts.map +1 -1
  72. package/esm/funcs/assetsListResourceTags.js +6 -10
  73. package/esm/funcs/assetsListResourceTags.js.map +1 -1
  74. package/esm/funcs/assetsListResourceTypes.d.ts +2 -2
  75. package/esm/funcs/assetsListResourceTypes.d.ts.map +1 -1
  76. package/esm/funcs/assetsListResourceTypes.js +5 -12
  77. package/esm/funcs/assetsListResourceTypes.js.map +1 -1
  78. package/esm/funcs/assetsListResourcesByAssetFolder.d.ts +1 -2
  79. package/esm/funcs/assetsListResourcesByAssetFolder.d.ts.map +1 -1
  80. package/esm/funcs/assetsListResourcesByAssetFolder.js +6 -12
  81. package/esm/funcs/assetsListResourcesByAssetFolder.js.map +1 -1
  82. package/esm/funcs/assetsListResourcesByAssetIDs.d.ts +1 -2
  83. package/esm/funcs/assetsListResourcesByAssetIDs.d.ts.map +1 -1
  84. package/esm/funcs/assetsListResourcesByAssetIDs.js +6 -12
  85. package/esm/funcs/assetsListResourcesByAssetIDs.js.map +1 -1
  86. package/esm/funcs/assetsListResourcesByContext.d.ts +1 -2
  87. package/esm/funcs/assetsListResourcesByContext.d.ts.map +1 -1
  88. package/esm/funcs/assetsListResourcesByContext.js +6 -12
  89. package/esm/funcs/assetsListResourcesByContext.js.map +1 -1
  90. package/esm/funcs/assetsListResourcesByModerationKindAndStatus.d.ts +2 -2
  91. package/esm/funcs/assetsListResourcesByModerationKindAndStatus.d.ts.map +1 -1
  92. package/esm/funcs/assetsListResourcesByModerationKindAndStatus.js +6 -10
  93. package/esm/funcs/assetsListResourcesByModerationKindAndStatus.js.map +1 -1
  94. package/esm/funcs/assetsListVideos.d.ts +1 -2
  95. package/esm/funcs/assetsListVideos.d.ts.map +1 -1
  96. package/esm/funcs/assetsListVideos.js +6 -8
  97. package/esm/funcs/assetsListVideos.js.map +1 -1
  98. package/esm/funcs/assetsRenameAsset.d.ts +2 -2
  99. package/esm/funcs/assetsRenameAsset.d.ts.map +1 -1
  100. package/esm/funcs/assetsRenameAsset.js +6 -10
  101. package/esm/funcs/assetsRenameAsset.js.map +1 -1
  102. package/esm/funcs/assetsRestoreResourcesByAssetIDs.d.ts +2 -2
  103. package/esm/funcs/assetsRestoreResourcesByAssetIDs.d.ts.map +1 -1
  104. package/esm/funcs/assetsRestoreResourcesByAssetIDs.js +6 -12
  105. package/esm/funcs/assetsRestoreResourcesByAssetIDs.js.map +1 -1
  106. package/esm/funcs/assetsUpdateResourceByAssetId.d.ts +1 -2
  107. package/esm/funcs/assetsUpdateResourceByAssetId.d.ts.map +1 -1
  108. package/esm/funcs/assetsUpdateResourceByAssetId.js +6 -10
  109. package/esm/funcs/assetsUpdateResourceByAssetId.js.map +1 -1
  110. package/esm/funcs/assetsUpdateResourceByPublicId.d.ts +1 -2
  111. package/esm/funcs/assetsUpdateResourceByPublicId.d.ts.map +1 -1
  112. package/esm/funcs/assetsUpdateResourceByPublicId.js +6 -10
  113. package/esm/funcs/assetsUpdateResourceByPublicId.js.map +1 -1
  114. package/esm/funcs/backupsDeleteBackupVersions.d.ts +2 -2
  115. package/esm/funcs/backupsDeleteBackupVersions.d.ts.map +1 -1
  116. package/esm/funcs/backupsDeleteBackupVersions.js +6 -14
  117. package/esm/funcs/backupsDeleteBackupVersions.js.map +1 -1
  118. package/esm/funcs/explodeExplodeResource.d.ts +2 -2
  119. package/esm/funcs/explodeExplodeResource.d.ts.map +1 -1
  120. package/esm/funcs/explodeExplodeResource.js +6 -10
  121. package/esm/funcs/explodeExplodeResource.js.map +1 -1
  122. package/esm/funcs/foldersCreateFolder.d.ts +1 -2
  123. package/esm/funcs/foldersCreateFolder.d.ts.map +1 -1
  124. package/esm/funcs/foldersCreateFolder.js +6 -10
  125. package/esm/funcs/foldersCreateFolder.js.map +1 -1
  126. package/esm/funcs/foldersDestroyFolder.d.ts +1 -2
  127. package/esm/funcs/foldersDestroyFolder.d.ts.map +1 -1
  128. package/esm/funcs/foldersDestroyFolder.js +6 -10
  129. package/esm/funcs/foldersDestroyFolder.js.map +1 -1
  130. package/esm/funcs/foldersListRootFolders.d.ts +2 -2
  131. package/esm/funcs/foldersListRootFolders.d.ts.map +1 -1
  132. package/esm/funcs/foldersListRootFolders.js +5 -10
  133. package/esm/funcs/foldersListRootFolders.js.map +1 -1
  134. package/esm/funcs/foldersSearchFolders.d.ts +2 -2
  135. package/esm/funcs/foldersSearchFolders.d.ts.map +1 -1
  136. package/esm/funcs/foldersSearchFolders.js +6 -10
  137. package/esm/funcs/foldersSearchFolders.js.map +1 -1
  138. package/esm/funcs/foldersSearchFoldersPost.d.ts +2 -2
  139. package/esm/funcs/foldersSearchFoldersPost.d.ts.map +1 -1
  140. package/esm/funcs/foldersSearchFoldersPost.js +6 -12
  141. package/esm/funcs/foldersSearchFoldersPost.js.map +1 -1
  142. package/esm/funcs/foldersShowFolder.d.ts +1 -2
  143. package/esm/funcs/foldersShowFolder.d.ts.map +1 -1
  144. package/esm/funcs/foldersShowFolder.js +6 -10
  145. package/esm/funcs/foldersShowFolder.js.map +1 -1
  146. package/esm/funcs/foldersUpdateFolder.d.ts +2 -2
  147. package/esm/funcs/foldersUpdateFolder.d.ts.map +1 -1
  148. package/esm/funcs/foldersUpdateFolder.js +6 -8
  149. package/esm/funcs/foldersUpdateFolder.js.map +1 -1
  150. package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.d.ts +2 -2
  151. package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.d.ts.map +1 -1
  152. package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.js +6 -10
  153. package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.js.map +1 -1
  154. package/esm/funcs/searchSearchAssets.d.ts +1 -2
  155. package/esm/funcs/searchSearchAssets.d.ts.map +1 -1
  156. package/esm/funcs/searchSearchAssets.js +5 -8
  157. package/esm/funcs/searchSearchAssets.js.map +1 -1
  158. package/esm/funcs/searchVisualSearchAssets.d.ts +1 -2
  159. package/esm/funcs/searchVisualSearchAssets.d.ts.map +1 -1
  160. package/esm/funcs/searchVisualSearchAssets.js +5 -12
  161. package/esm/funcs/searchVisualSearchAssets.js.map +1 -1
  162. package/esm/funcs/tagsListResourceTags.d.ts +1 -2
  163. package/esm/funcs/tagsListResourceTags.d.ts.map +1 -1
  164. package/esm/funcs/tagsListResourceTags.js +6 -10
  165. package/esm/funcs/tagsListResourceTags.js.map +1 -1
  166. package/esm/funcs/uploadDestroyAsset.d.ts +1 -2
  167. package/esm/funcs/uploadDestroyAsset.d.ts.map +1 -1
  168. package/esm/funcs/uploadDestroyAsset.js +6 -10
  169. package/esm/funcs/uploadDestroyAsset.js.map +1 -1
  170. package/esm/funcs/uploadText.d.ts +2 -2
  171. package/esm/funcs/uploadText.d.ts.map +1 -1
  172. package/esm/funcs/uploadText.js +6 -8
  173. package/esm/funcs/uploadText.js.map +1 -1
  174. package/esm/funcs/uploadUpload.d.ts +1 -2
  175. package/esm/funcs/uploadUpload.d.ts.map +1 -1
  176. package/esm/funcs/uploadUpload.js +6 -13
  177. package/esm/funcs/uploadUpload.js.map +1 -1
  178. package/esm/funcs/uploadUploadChunk.d.ts +1 -2
  179. package/esm/funcs/uploadUploadChunk.d.ts.map +1 -1
  180. package/esm/funcs/uploadUploadChunk.js +6 -13
  181. package/esm/funcs/uploadUploadChunk.js.map +1 -1
  182. package/esm/funcs/uploadUploadNoResourceType.d.ts +1 -2
  183. package/esm/funcs/uploadUploadNoResourceType.d.ts.map +1 -1
  184. package/esm/funcs/uploadUploadNoResourceType.js +5 -13
  185. package/esm/funcs/uploadUploadNoResourceType.js.map +1 -1
  186. package/esm/funcs/usageGetUsage.d.ts +1 -2
  187. package/esm/funcs/usageGetUsage.d.ts.map +1 -1
  188. package/esm/funcs/usageGetUsage.js +6 -8
  189. package/esm/funcs/usageGetUsage.js.map +1 -1
  190. package/esm/funcs/videoAnalyticsGetVideoViews.d.ts +2 -2
  191. package/esm/funcs/videoAnalyticsGetVideoViews.d.ts.map +1 -1
  192. package/esm/funcs/videoAnalyticsGetVideoViews.js +6 -8
  193. package/esm/funcs/videoAnalyticsGetVideoViews.js.map +1 -1
  194. package/esm/hooks/cloudConfig.d.ts +15 -0
  195. package/esm/hooks/cloudConfig.d.ts.map +1 -1
  196. package/esm/hooks/cloudConfig.js +28 -0
  197. package/esm/hooks/cloudConfig.js.map +1 -1
  198. package/esm/hooks/cloudinaryAuthHook.d.ts +25 -16
  199. package/esm/hooks/cloudinaryAuthHook.d.ts.map +1 -1
  200. package/esm/hooks/cloudinaryAuthHook.js +73 -172
  201. package/esm/hooks/cloudinaryAuthHook.js.map +1 -1
  202. package/esm/hooks/customHeadersHook.d.ts +13 -0
  203. package/esm/hooks/customHeadersHook.d.ts.map +1 -0
  204. package/esm/hooks/customHeadersHook.js +21 -0
  205. package/esm/hooks/customHeadersHook.js.map +1 -0
  206. package/esm/hooks/oauth2scopes.d.ts +16 -0
  207. package/esm/hooks/oauth2scopes.d.ts.map +1 -0
  208. package/esm/hooks/oauth2scopes.js +5 -0
  209. package/esm/hooks/oauth2scopes.js.map +1 -0
  210. package/esm/hooks/registration.d.ts.map +1 -1
  211. package/esm/hooks/registration.js +9 -7
  212. package/esm/hooks/registration.js.map +1 -1
  213. package/esm/hooks/responseHeadersHook.d.ts +15 -0
  214. package/esm/hooks/responseHeadersHook.d.ts.map +1 -0
  215. package/esm/hooks/responseHeadersHook.js +83 -0
  216. package/esm/hooks/responseHeadersHook.js.map +1 -0
  217. package/esm/hooks/userAgentHook.d.ts.map +1 -1
  218. package/esm/hooks/userAgentHook.js +7 -3
  219. package/esm/hooks/userAgentHook.js.map +1 -1
  220. package/esm/landing-page.d.ts +5 -0
  221. package/esm/landing-page.d.ts.map +1 -0
  222. package/esm/landing-page.js +1061 -0
  223. package/esm/landing-page.js.map +1 -0
  224. package/esm/lib/base64.d.ts +2 -2
  225. package/esm/lib/base64.d.ts.map +1 -1
  226. package/esm/lib/base64.js +2 -2
  227. package/esm/lib/base64.js.map +1 -1
  228. package/esm/lib/config.d.ts +9 -3
  229. package/esm/lib/config.d.ts.map +1 -1
  230. package/esm/lib/config.js +9 -3
  231. package/esm/lib/config.js.map +1 -1
  232. package/esm/lib/encodings.d.ts.map +1 -1
  233. package/esm/lib/encodings.js +10 -1
  234. package/esm/lib/encodings.js.map +1 -1
  235. package/esm/lib/env.d.ts +1 -1
  236. package/esm/lib/env.d.ts.map +1 -1
  237. package/esm/lib/env.js.map +1 -1
  238. package/esm/lib/schemas.d.ts +4 -4
  239. package/esm/lib/schemas.d.ts.map +1 -1
  240. package/esm/lib/schemas.js +2 -2
  241. package/esm/lib/schemas.js.map +1 -1
  242. package/esm/lib/sdks.js +2 -2
  243. package/esm/lib/sdks.js.map +1 -1
  244. package/esm/lib/security.js +3 -3
  245. package/esm/mcp-server/cli/start/command.d.ts.map +1 -1
  246. package/esm/mcp-server/cli/start/command.js +6 -0
  247. package/esm/mcp-server/cli/start/command.js.map +1 -1
  248. package/esm/mcp-server/cli/start/impl.d.ts +2 -13
  249. package/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
  250. package/esm/mcp-server/cli/start/impl.js +94 -32
  251. package/esm/mcp-server/cli/start/impl.js.map +1 -1
  252. package/esm/mcp-server/extensions.d.ts +4 -4
  253. package/esm/mcp-server/extensions.d.ts.map +1 -1
  254. package/esm/mcp-server/flags.d.ts +20 -0
  255. package/esm/mcp-server/flags.d.ts.map +1 -0
  256. package/esm/mcp-server/flags.js +5 -0
  257. package/esm/mcp-server/flags.js.map +1 -0
  258. package/esm/mcp-server/mcp-server.js +1 -1
  259. package/esm/mcp-server/prompts.d.ts +4 -7
  260. package/esm/mcp-server/prompts.d.ts.map +1 -1
  261. package/esm/mcp-server/prompts.js.map +1 -1
  262. package/esm/mcp-server/resources.d.ts +1 -2
  263. package/esm/mcp-server/resources.d.ts.map +1 -1
  264. package/esm/mcp-server/resources.js +8 -35
  265. package/esm/mcp-server/resources.js.map +1 -1
  266. package/esm/mcp-server/server.d.ts +8 -1
  267. package/esm/mcp-server/server.d.ts.map +1 -1
  268. package/esm/mcp-server/server.extensions.d.ts.map +1 -1
  269. package/esm/mcp-server/server.extensions.js +15 -26
  270. package/esm/mcp-server/server.extensions.js.map +1 -1
  271. package/esm/mcp-server/server.js +7 -4
  272. package/esm/mcp-server/server.js.map +1 -1
  273. package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.d.ts +1 -1
  274. package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.d.ts.map +1 -1
  275. package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.js +2 -3
  276. package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.js.map +1 -1
  277. package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.d.ts +1 -1
  278. package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.d.ts.map +1 -1
  279. package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.js +2 -3
  280. package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.js.map +1 -1
  281. package/esm/mcp-server/tools/assetsDerivedDestroy.d.ts +1 -1
  282. package/esm/mcp-server/tools/assetsDerivedDestroy.d.ts.map +1 -1
  283. package/esm/mcp-server/tools/assetsDerivedDestroy.js +2 -3
  284. package/esm/mcp-server/tools/assetsDerivedDestroy.js.map +1 -1
  285. package/esm/mcp-server/tools/assetsDestroyByAssetId.d.ts +1 -1
  286. package/esm/mcp-server/tools/assetsDestroyByAssetId.d.ts.map +1 -1
  287. package/esm/mcp-server/tools/assetsDestroyByAssetId.js +2 -3
  288. package/esm/mcp-server/tools/assetsDestroyByAssetId.js.map +1 -1
  289. package/esm/mcp-server/tools/assetsDownloadBackupAsset.d.ts +1 -1
  290. package/esm/mcp-server/tools/assetsDownloadBackupAsset.d.ts.map +1 -1
  291. package/esm/mcp-server/tools/assetsDownloadBackupAsset.js +4 -6
  292. package/esm/mcp-server/tools/assetsDownloadBackupAsset.js.map +1 -1
  293. package/esm/mcp-server/tools/assetsGenerateArchive.d.ts +7 -2
  294. package/esm/mcp-server/tools/assetsGenerateArchive.d.ts.map +1 -1
  295. package/esm/mcp-server/tools/assetsGenerateArchive.js +2 -3
  296. package/esm/mcp-server/tools/assetsGenerateArchive.js.map +1 -1
  297. package/esm/mcp-server/tools/assetsGetResourceByAssetId.d.ts +1 -1
  298. package/esm/mcp-server/tools/assetsGetResourceByAssetId.d.ts.map +1 -1
  299. package/esm/mcp-server/tools/assetsGetResourceByAssetId.js +3 -4
  300. package/esm/mcp-server/tools/assetsGetResourceByAssetId.js.map +1 -1
  301. package/esm/mcp-server/tools/assetsListImages.d.ts +42 -6
  302. package/esm/mcp-server/tools/assetsListImages.d.ts.map +1 -1
  303. package/esm/mcp-server/tools/assetsListImages.js +5 -5
  304. package/esm/mcp-server/tools/assetsListImages.js.map +1 -1
  305. package/esm/mcp-server/tools/assetsListRawFiles.d.ts +42 -6
  306. package/esm/mcp-server/tools/assetsListRawFiles.d.ts.map +1 -1
  307. package/esm/mcp-server/tools/assetsListRawFiles.js +5 -5
  308. package/esm/mcp-server/tools/assetsListRawFiles.js.map +1 -1
  309. package/esm/mcp-server/tools/assetsListResourceTags.d.ts +6 -2
  310. package/esm/mcp-server/tools/assetsListResourceTags.d.ts.map +1 -1
  311. package/esm/mcp-server/tools/assetsListResourceTags.js +4 -4
  312. package/esm/mcp-server/tools/assetsListResourceTags.js.map +1 -1
  313. package/esm/mcp-server/tools/assetsListVideos.d.ts +42 -6
  314. package/esm/mcp-server/tools/assetsListVideos.d.ts.map +1 -1
  315. package/esm/mcp-server/tools/assetsListVideos.js +5 -5
  316. package/esm/mcp-server/tools/assetsListVideos.js.map +1 -1
  317. package/esm/mcp-server/tools/assetsRenameAsset.d.ts +6 -2
  318. package/esm/mcp-server/tools/assetsRenameAsset.d.ts.map +1 -1
  319. package/esm/mcp-server/tools/assetsRenameAsset.js +2 -3
  320. package/esm/mcp-server/tools/assetsRenameAsset.js.map +1 -1
  321. package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.d.ts +1 -1
  322. package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.d.ts.map +1 -1
  323. package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.js +2 -3
  324. package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.js.map +1 -1
  325. package/esm/mcp-server/tools/foldersCreateFolder.d.ts.map +1 -1
  326. package/esm/mcp-server/tools/foldersCreateFolder.js +2 -3
  327. package/esm/mcp-server/tools/foldersCreateFolder.js.map +1 -1
  328. package/esm/mcp-server/tools/foldersDestroyFolder.d.ts.map +1 -1
  329. package/esm/mcp-server/tools/foldersDestroyFolder.js +2 -3
  330. package/esm/mcp-server/tools/foldersDestroyFolder.js.map +1 -1
  331. package/esm/mcp-server/tools/foldersSearchFolders.d.ts +3 -3
  332. package/esm/mcp-server/tools/foldersSearchFolders.d.ts.map +1 -1
  333. package/esm/mcp-server/tools/foldersSearchFolders.js +3 -4
  334. package/esm/mcp-server/tools/foldersSearchFolders.js.map +1 -1
  335. package/esm/mcp-server/tools/foldersUpdateFolder.d.ts +1 -1
  336. package/esm/mcp-server/tools/foldersUpdateFolder.d.ts.map +1 -1
  337. package/esm/mcp-server/tools/foldersUpdateFolder.js +2 -3
  338. package/esm/mcp-server/tools/foldersUpdateFolder.js.map +1 -1
  339. package/esm/mcp-server/tools/searchSearchAssets.d.ts +1 -1
  340. package/esm/mcp-server/tools/searchSearchAssets.d.ts.map +1 -1
  341. package/esm/mcp-server/tools/searchSearchAssets.js +2 -3
  342. package/esm/mcp-server/tools/searchSearchAssets.js.map +1 -1
  343. package/esm/mcp-server/tools/searchVisualSearchAssets.d.ts +1 -1
  344. package/esm/mcp-server/tools/searchVisualSearchAssets.d.ts.map +1 -1
  345. package/esm/mcp-server/tools/searchVisualSearchAssets.js +2 -3
  346. package/esm/mcp-server/tools/searchVisualSearchAssets.js.map +1 -1
  347. package/esm/mcp-server/tools/uploadUpload.d.ts +7 -2
  348. package/esm/mcp-server/tools/uploadUpload.d.ts.map +1 -1
  349. package/esm/mcp-server/tools/uploadUpload.js +2 -3
  350. package/esm/mcp-server/tools/uploadUpload.js.map +1 -1
  351. package/esm/mcp-server/tools/usageGetUsage.d.ts.map +1 -1
  352. package/esm/mcp-server/tools/usageGetUsage.js +2 -3
  353. package/esm/mcp-server/tools/usageGetUsage.js.map +1 -1
  354. package/esm/mcp-server/tools.d.ts +13 -7
  355. package/esm/mcp-server/tools.d.ts.map +1 -1
  356. package/esm/mcp-server/tools.js +215 -43
  357. package/esm/mcp-server/tools.js.map +1 -1
  358. package/esm/models/accesscontrolitem.d.ts +14 -3
  359. package/esm/models/accesscontrolitem.d.ts.map +1 -1
  360. package/esm/models/accesscontrolitem.js +6 -1
  361. package/esm/models/accesscontrolitem.js.map +1 -1
  362. package/esm/models/apierror.d.ts +2 -2
  363. package/esm/models/apierror.d.ts.map +1 -1
  364. package/esm/models/apierror.js +1 -2
  365. package/esm/models/apierror.js.map +1 -1
  366. package/esm/models/archiveresourcetype.d.ts +17 -2
  367. package/esm/models/archiveresourcetype.d.ts.map +1 -1
  368. package/esm/models/archiveresourcetype.js +6 -0
  369. package/esm/models/archiveresourcetype.js.map +1 -1
  370. package/esm/models/archivestoragetype.d.ts +17 -2
  371. package/esm/models/archivestoragetype.d.ts.map +1 -1
  372. package/esm/models/archivestoragetype.js +6 -0
  373. package/esm/models/archivestoragetype.js.map +1 -1
  374. package/esm/models/assetrelationinfo.d.ts +26 -3
  375. package/esm/models/assetrelationinfo.d.ts.map +1 -1
  376. package/esm/models/assetrelationinfo.js +13 -2
  377. package/esm/models/assetrelationinfo.js.map +1 -1
  378. package/esm/models/assetrelationsdeleteresponse.d.ts +1 -1
  379. package/esm/models/assetrelationsdeleteresponse.d.ts.map +1 -1
  380. package/esm/models/assetrelationsdeleteresponse.js.map +1 -1
  381. package/esm/models/assetrelationsresponse.d.ts +1 -1
  382. package/esm/models/assetrelationsresponse.d.ts.map +1 -1
  383. package/esm/models/assetrelationsresponse.js.map +1 -1
  384. package/esm/models/asyncuploadresponse.d.ts +12 -3
  385. package/esm/models/asyncuploadresponse.d.ts.map +1 -1
  386. package/esm/models/asyncuploadresponse.js +5 -1
  387. package/esm/models/asyncuploadresponse.js.map +1 -1
  388. package/esm/models/createassetrelationsbyassetidop.d.ts +4 -4
  389. package/esm/models/createassetrelationsbyassetidop.d.ts.map +1 -1
  390. package/esm/models/createassetrelationsbyassetidop.js.map +1 -1
  391. package/esm/models/createassetrelationsbypublicidop.d.ts +4 -4
  392. package/esm/models/createassetrelationsbypublicidop.d.ts.map +1 -1
  393. package/esm/models/createassetrelationsbypublicidop.js.map +1 -1
  394. package/esm/models/createfolderop.d.ts +4 -4
  395. package/esm/models/createfolderop.d.ts.map +1 -1
  396. package/esm/models/createfolderop.js +7 -5
  397. package/esm/models/createfolderop.js.map +1 -1
  398. package/esm/models/deleteassetrelationsbyassetidop.d.ts +4 -4
  399. package/esm/models/deleteassetrelationsbyassetidop.d.ts.map +1 -1
  400. package/esm/models/deleteassetrelationsbyassetidop.js.map +1 -1
  401. package/esm/models/deleteassetrelationsbypublicidop.d.ts +4 -4
  402. package/esm/models/deleteassetrelationsbypublicidop.d.ts.map +1 -1
  403. package/esm/models/deleteassetrelationsbypublicidop.js.map +1 -1
  404. package/esm/models/deletebackupversionsop.d.ts +7 -7
  405. package/esm/models/deletebackupversionsop.d.ts.map +1 -1
  406. package/esm/models/deletebackupversionsop.js +1 -2
  407. package/esm/models/deletebackupversionsop.js.map +1 -1
  408. package/esm/models/deleteresourcebypublicidsrequestunion.d.ts +47 -10
  409. package/esm/models/deleteresourcebypublicidsrequestunion.d.ts.map +1 -1
  410. package/esm/models/deleteresourcebypublicidsrequestunion.js +15 -0
  411. package/esm/models/deleteresourcebypublicidsrequestunion.js.map +1 -1
  412. package/esm/models/deleteresourcesbypublicidop.d.ts +4 -4
  413. package/esm/models/deleteresourcesbypublicidop.d.ts.map +1 -1
  414. package/esm/models/deleteresourcesbypublicidop.js.map +1 -1
  415. package/esm/models/deriveddestroyop.d.ts +2 -2
  416. package/esm/models/deriveddestroyop.d.ts.map +1 -1
  417. package/esm/models/deriveddestroyop.js +1 -2
  418. package/esm/models/deriveddestroyop.js.map +1 -1
  419. package/esm/models/deriveddestroyrequest.d.ts +1 -1
  420. package/esm/models/deriveddestroyrequest.d.ts.map +1 -1
  421. package/esm/models/deriveddestroyrequest.js.map +1 -1
  422. package/esm/models/deriveddestroyresponse.d.ts +12 -4
  423. package/esm/models/deriveddestroyresponse.d.ts.map +1 -1
  424. package/esm/models/deriveddestroyresponse.js +5 -1
  425. package/esm/models/deriveddestroyresponse.js.map +1 -1
  426. package/esm/models/destroyassetop.d.ts +15 -6
  427. package/esm/models/destroyassetop.d.ts.map +1 -1
  428. package/esm/models/destroyassetop.js +10 -5
  429. package/esm/models/destroyassetop.js.map +1 -1
  430. package/esm/models/destroybyassetidop.d.ts +2 -2
  431. package/esm/models/destroybyassetidop.d.ts.map +1 -1
  432. package/esm/models/destroybyassetidop.js.map +1 -1
  433. package/esm/models/destroyfolderop.d.ts +4 -4
  434. package/esm/models/destroyfolderop.d.ts.map +1 -1
  435. package/esm/models/destroyfolderop.js +5 -4
  436. package/esm/models/destroyfolderop.js.map +1 -1
  437. package/esm/models/destroyrequest.d.ts +1 -1
  438. package/esm/models/destroyrequest.d.ts.map +1 -1
  439. package/esm/models/destroyrequest.js +1 -1
  440. package/esm/models/destroyrequest.js.map +1 -1
  441. package/esm/models/destroyresponse.d.ts +14 -3
  442. package/esm/models/destroyresponse.d.ts.map +1 -1
  443. package/esm/models/destroyresponse.js +4 -0
  444. package/esm/models/destroyresponse.js.map +1 -1
  445. package/esm/models/direction.d.ts +10 -2
  446. package/esm/models/direction.d.ts.map +1 -1
  447. package/esm/models/direction.js +4 -0
  448. package/esm/models/direction.js.map +1 -1
  449. package/esm/models/downloadassetop.d.ts +3 -3
  450. package/esm/models/downloadassetop.d.ts.map +1 -1
  451. package/esm/models/downloadassetop.js +12 -11
  452. package/esm/models/downloadassetop.js.map +1 -1
  453. package/esm/models/downloadbackupassetop.d.ts +9 -9
  454. package/esm/models/downloadbackupassetop.d.ts.map +1 -1
  455. package/esm/models/downloadbackupassetop.js +9 -9
  456. package/esm/models/downloadbackupassetop.js.map +1 -1
  457. package/esm/models/errors/sdkvalidationerror.d.ts +1 -1
  458. package/esm/models/errors/sdkvalidationerror.d.ts.map +1 -1
  459. package/esm/models/errors/sdkvalidationerror.js +2 -49
  460. package/esm/models/errors/sdkvalidationerror.js.map +1 -1
  461. package/esm/models/explicitassetop.d.ts +53 -10
  462. package/esm/models/explicitassetop.d.ts.map +1 -1
  463. package/esm/models/explicitassetop.js +24 -29
  464. package/esm/models/explicitassetop.js.map +1 -1
  465. package/esm/models/exploderesourceop.d.ts +26 -9
  466. package/esm/models/exploderesourceop.d.ts.map +1 -1
  467. package/esm/models/exploderesourceop.js +7 -1
  468. package/esm/models/exploderesourceop.js.map +1 -1
  469. package/esm/models/extendedstoragetype.d.ts +37 -2
  470. package/esm/models/extendedstoragetype.d.ts.map +1 -1
  471. package/esm/models/extendedstoragetype.js +16 -0
  472. package/esm/models/extendedstoragetype.js.map +1 -1
  473. package/esm/models/fieldsspec.d.ts +58 -2
  474. package/esm/models/fieldsspec.d.ts.map +1 -1
  475. package/esm/models/fieldsspec.js +28 -0
  476. package/esm/models/fieldsspec.js.map +1 -1
  477. package/esm/models/folder.d.ts +1 -1
  478. package/esm/models/folder.d.ts.map +1 -1
  479. package/esm/models/folder.js +2 -3
  480. package/esm/models/folder.js.map +1 -1
  481. package/esm/models/folderslistresponse.d.ts +1 -1
  482. package/esm/models/folderslistresponse.d.ts.map +1 -1
  483. package/esm/models/folderslistresponse.js +3 -2
  484. package/esm/models/folderslistresponse.js.map +1 -1
  485. package/esm/models/folderssearchresponse.d.ts +1 -1
  486. package/esm/models/folderssearchresponse.d.ts.map +1 -1
  487. package/esm/models/folderssearchresponse.js +2 -2
  488. package/esm/models/folderssearchresponse.js.map +1 -1
  489. package/esm/models/generatearchiveop.d.ts +31 -9
  490. package/esm/models/generatearchiveop.d.ts.map +1 -1
  491. package/esm/models/generatearchiveop.js +17 -11
  492. package/esm/models/generatearchiveop.js.map +1 -1
  493. package/esm/models/getresourcebyassetidop.d.ts +3 -3
  494. package/esm/models/getresourcebyassetidop.d.ts.map +1 -1
  495. package/esm/models/getresourcebyassetidop.js +1 -1
  496. package/esm/models/getresourcebyassetidop.js.map +1 -1
  497. package/esm/models/getresourcebypublicidop.d.ts +3 -3
  498. package/esm/models/getresourcebypublicidop.d.ts.map +1 -1
  499. package/esm/models/getresourcebypublicidop.js +1 -1
  500. package/esm/models/getresourcebypublicidop.js.map +1 -1
  501. package/esm/models/getusageop.d.ts +3 -3
  502. package/esm/models/getusageop.d.ts.map +1 -1
  503. package/esm/models/getusageop.js.map +1 -1
  504. package/esm/models/getvideoviewsop.d.ts +26 -7
  505. package/esm/models/getvideoviewsop.d.ts.map +1 -1
  506. package/esm/models/getvideoviewsop.js +15 -6
  507. package/esm/models/getvideoviewsop.js.map +1 -1
  508. package/esm/models/info.d.ts +4 -4
  509. package/esm/models/info.d.ts.map +1 -1
  510. package/esm/models/info.js +11 -11
  511. package/esm/models/info.js.map +1 -1
  512. package/esm/models/listimagesop.d.ts +3 -3
  513. package/esm/models/listimagesop.d.ts.map +1 -1
  514. package/esm/models/listimagesop.js +10 -9
  515. package/esm/models/listimagesop.js.map +1 -1
  516. package/esm/models/listrawfilesop.d.ts +3 -3
  517. package/esm/models/listrawfilesop.d.ts.map +1 -1
  518. package/esm/models/listrawfilesop.js +10 -9
  519. package/esm/models/listrawfilesop.js.map +1 -1
  520. package/esm/models/listresourcesbyassetfolderop.d.ts +3 -3
  521. package/esm/models/listresourcesbyassetfolderop.d.ts.map +1 -1
  522. package/esm/models/listresourcesbyassetfolderop.js +2 -1
  523. package/esm/models/listresourcesbyassetfolderop.js.map +1 -1
  524. package/esm/models/listresourcesbyassetidsop.d.ts +3 -3
  525. package/esm/models/listresourcesbyassetidsop.d.ts.map +1 -1
  526. package/esm/models/listresourcesbyassetidsop.js.map +1 -1
  527. package/esm/models/listresourcesbycontextop.d.ts +3 -3
  528. package/esm/models/listresourcesbycontextop.d.ts.map +1 -1
  529. package/esm/models/listresourcesbycontextop.js +2 -1
  530. package/esm/models/listresourcesbycontextop.js.map +1 -1
  531. package/esm/models/listresourcesbymoderationkindandstatusop.d.ts +38 -7
  532. package/esm/models/listresourcesbymoderationkindandstatusop.d.ts.map +1 -1
  533. package/esm/models/listresourcesbymoderationkindandstatusop.js +18 -1
  534. package/esm/models/listresourcesbymoderationkindandstatusop.js.map +1 -1
  535. package/esm/models/listresourcetagsop.d.ts +4 -4
  536. package/esm/models/listresourcetagsop.d.ts.map +1 -1
  537. package/esm/models/listresourcetagsop.js +2 -1
  538. package/esm/models/listresourcetagsop.js.map +1 -1
  539. package/esm/models/listresourcetypesop.d.ts +18 -8
  540. package/esm/models/listresourcetypesop.d.ts.map +1 -1
  541. package/esm/models/listresourcetypesop.js +5 -0
  542. package/esm/models/listresourcetypesop.js.map +1 -1
  543. package/esm/models/listresponse.d.ts +1 -1
  544. package/esm/models/listresponse.d.ts.map +1 -1
  545. package/esm/models/listresponse.js +1 -1
  546. package/esm/models/listresponse.js.map +1 -1
  547. package/esm/models/listrootfoldersop.d.ts +3 -3
  548. package/esm/models/listrootfoldersop.d.ts.map +1 -1
  549. package/esm/models/listrootfoldersop.js.map +1 -1
  550. package/esm/models/liststoragetype.d.ts +19 -2
  551. package/esm/models/liststoragetype.d.ts.map +1 -1
  552. package/esm/models/liststoragetype.js +7 -0
  553. package/esm/models/liststoragetype.js.map +1 -1
  554. package/esm/models/listvideosop.d.ts +3 -3
  555. package/esm/models/listvideosop.d.ts.map +1 -1
  556. package/esm/models/listvideosop.js +10 -9
  557. package/esm/models/listvideosop.js.map +1 -1
  558. package/esm/models/nonfinalchunkuploadresponse.d.ts +1 -1
  559. package/esm/models/nonfinalchunkuploadresponse.d.ts.map +1 -1
  560. package/esm/models/nonfinalchunkuploadresponse.js +2 -4
  561. package/esm/models/nonfinalchunkuploadresponse.js.map +1 -1
  562. package/esm/models/renameassetop.d.ts +4 -4
  563. package/esm/models/renameassetop.d.ts.map +1 -1
  564. package/esm/models/renameassetop.js +8 -6
  565. package/esm/models/renameassetop.js.map +1 -1
  566. package/esm/models/resourcetype.d.ts +15 -2
  567. package/esm/models/resourcetype.d.ts.map +1 -1
  568. package/esm/models/resourcetype.js +5 -0
  569. package/esm/models/resourcetype.js.map +1 -1
  570. package/esm/models/resourceupdaterequest.d.ts +66 -11
  571. package/esm/models/resourceupdaterequest.d.ts.map +1 -1
  572. package/esm/models/resourceupdaterequest.js +22 -0
  573. package/esm/models/resourceupdaterequest.js.map +1 -1
  574. package/esm/models/restoreresourcesbyassetidsop.d.ts +3 -3
  575. package/esm/models/restoreresourcesbyassetidsop.d.ts.map +1 -1
  576. package/esm/models/restoreresourcesbyassetidsop.js +1 -1
  577. package/esm/models/restoreresourcesbyassetidsop.js.map +1 -1
  578. package/esm/models/restoreresponseunion.d.ts +17 -4
  579. package/esm/models/restoreresponseunion.d.ts.map +1 -1
  580. package/esm/models/restoreresponseunion.js +7 -1
  581. package/esm/models/restoreresponseunion.js.map +1 -1
  582. package/esm/models/schemecloudinaryauth.d.ts +1 -1
  583. package/esm/models/schemecloudinaryauth.d.ts.map +1 -1
  584. package/esm/models/schemecloudinaryauth.js +2 -1
  585. package/esm/models/schemecloudinaryauth.js.map +1 -1
  586. package/esm/models/searchassetsop.d.ts +2 -2
  587. package/esm/models/searchassetsop.d.ts.map +1 -1
  588. package/esm/models/searchassetsop.js +5 -4
  589. package/esm/models/searchassetsop.js.map +1 -1
  590. package/esm/models/searchfoldersop.d.ts +5 -5
  591. package/esm/models/searchfoldersop.d.ts.map +1 -1
  592. package/esm/models/searchfoldersop.js +6 -5
  593. package/esm/models/searchfoldersop.js.map +1 -1
  594. package/esm/models/searchfolderspostop.d.ts +3 -3
  595. package/esm/models/searchfolderspostop.d.ts.map +1 -1
  596. package/esm/models/searchfolderspostop.js +1 -1
  597. package/esm/models/searchfolderspostop.js.map +1 -1
  598. package/esm/models/searchparameters.d.ts +48 -10
  599. package/esm/models/searchparameters.d.ts.map +1 -1
  600. package/esm/models/searchparameters.js +22 -2
  601. package/esm/models/searchparameters.js.map +1 -1
  602. package/esm/models/searchresponse.d.ts +70 -21
  603. package/esm/models/searchresponse.d.ts.map +1 -1
  604. package/esm/models/searchresponse.js +41 -22
  605. package/esm/models/searchresponse.js.map +1 -1
  606. package/esm/models/searchsortpair.d.ts +10 -2
  607. package/esm/models/searchsortpair.d.ts.map +1 -1
  608. package/esm/models/searchsortpair.js +4 -0
  609. package/esm/models/searchsortpair.js.map +1 -1
  610. package/esm/models/security.d.ts +1 -1
  611. package/esm/models/security.d.ts.map +1 -1
  612. package/esm/models/security.js +1 -2
  613. package/esm/models/security.js.map +1 -1
  614. package/esm/models/showfolderop.d.ts +3 -3
  615. package/esm/models/showfolderop.d.ts.map +1 -1
  616. package/esm/models/showfolderop.js +7 -5
  617. package/esm/models/showfolderop.js.map +1 -1
  618. package/esm/models/storagetype.d.ts +15 -2
  619. package/esm/models/storagetype.d.ts.map +1 -1
  620. package/esm/models/storagetype.js +5 -0
  621. package/esm/models/storagetype.js.map +1 -1
  622. package/esm/models/storagetypeparameter.d.ts +15 -2
  623. package/esm/models/storagetypeparameter.d.ts.map +1 -1
  624. package/esm/models/storagetypeparameter.js +5 -0
  625. package/esm/models/storagetypeparameter.js.map +1 -1
  626. package/esm/models/textop.d.ts +71 -18
  627. package/esm/models/textop.d.ts.map +1 -1
  628. package/esm/models/textop.js +34 -14
  629. package/esm/models/textop.js.map +1 -1
  630. package/esm/models/updatefolderop.d.ts +7 -7
  631. package/esm/models/updatefolderop.d.ts.map +1 -1
  632. package/esm/models/updatefolderop.js +7 -5
  633. package/esm/models/updatefolderop.js.map +1 -1
  634. package/esm/models/updateresourcebyassetidop.d.ts +3 -3
  635. package/esm/models/updateresourcebyassetidop.d.ts.map +1 -1
  636. package/esm/models/updateresourcebyassetidop.js.map +1 -1
  637. package/esm/models/updateresourcebypublicidop.d.ts +3 -3
  638. package/esm/models/updateresourcebypublicidop.d.ts.map +1 -1
  639. package/esm/models/updateresourcebypublicidop.js.map +1 -1
  640. package/esm/models/uploadchunkop.d.ts +4 -4
  641. package/esm/models/uploadchunkop.d.ts.map +1 -1
  642. package/esm/models/uploadchunkop.js +7 -5
  643. package/esm/models/uploadchunkop.js.map +1 -1
  644. package/esm/models/uploadnoresourcetypeop.d.ts +3 -3
  645. package/esm/models/uploadnoresourcetypeop.d.ts.map +1 -1
  646. package/esm/models/uploadnoresourcetypeop.js.map +1 -1
  647. package/esm/models/uploadop.d.ts +4 -4
  648. package/esm/models/uploadop.d.ts.map +1 -1
  649. package/esm/models/uploadop.js +4 -2
  650. package/esm/models/uploadop.js.map +1 -1
  651. package/esm/models/uploadrequest.d.ts +133 -16
  652. package/esm/models/uploadrequest.d.ts.map +1 -1
  653. package/esm/models/uploadrequest.js +50 -33
  654. package/esm/models/uploadrequest.js.map +1 -1
  655. package/esm/models/uploadresourcetype.d.ts +23 -2
  656. package/esm/models/uploadresourcetype.d.ts.map +1 -1
  657. package/esm/models/uploadresourcetype.js +7 -6
  658. package/esm/models/uploadresourcetype.js.map +1 -1
  659. package/esm/models/uploadresponse.d.ts +3 -3
  660. package/esm/models/uploadresponse.d.ts.map +1 -1
  661. package/esm/models/uploadresponse.js +9 -10
  662. package/esm/models/uploadresponse.js.map +1 -1
  663. package/esm/models/usageresponse.d.ts +8 -8
  664. package/esm/models/usageresponse.d.ts.map +1 -1
  665. package/esm/models/usageresponse.js +20 -22
  666. package/esm/models/usageresponse.js.map +1 -1
  667. package/esm/models/visualsearchassetsop.d.ts +2 -2
  668. package/esm/models/visualsearchassetsop.d.ts.map +1 -1
  669. package/esm/models/visualsearchassetsop.js.map +1 -1
  670. package/esm/models/visualsearchparametersunion.d.ts +4 -4
  671. package/esm/models/visualsearchparametersunion.d.ts.map +1 -1
  672. package/esm/models/visualsearchparametersunion.js.map +1 -1
  673. package/esm/tool-names.d.ts +5 -0
  674. package/esm/tool-names.d.ts.map +1 -0
  675. package/esm/tool-names.js +96 -0
  676. package/esm/tool-names.js.map +1 -0
  677. package/esm/types/bigint.d.ts +6 -0
  678. package/esm/types/bigint.d.ts.map +1 -0
  679. package/esm/types/bigint.js +87 -0
  680. package/esm/types/bigint.js.map +1 -0
  681. package/manifest.json +143 -133
  682. package/package.json +8 -4
  683. package/src/funcs/assetRelationsCreateAssetRelationsByAssetId.ts +7 -29
  684. package/src/funcs/assetRelationsCreateAssetRelationsByPublicId.ts +7 -29
  685. package/src/funcs/assetRelationsDeleteAssetRelationsByAssetId.ts +7 -29
  686. package/src/funcs/assetRelationsDeleteAssetRelationsByPublicId.ts +7 -29
  687. package/src/funcs/assetsDeleteBackupVersions.ts +7 -32
  688. package/src/funcs/assetsDeleteResourcesByPublicId.ts +7 -27
  689. package/src/funcs/assetsDerivedDestroy.ts +7 -31
  690. package/src/funcs/assetsDestroyByAssetId.ts +7 -31
  691. package/src/funcs/assetsDownloadAsset.ts +7 -37
  692. package/src/funcs/assetsDownloadBackupAsset.ts +7 -47
  693. package/src/funcs/assetsExplicitAsset.ts +7 -27
  694. package/src/funcs/assetsGenerateArchive.ts +7 -26
  695. package/src/funcs/assetsGetResourceByAssetId.ts +7 -27
  696. package/src/funcs/assetsGetResourceByPublicId.ts +7 -27
  697. package/src/funcs/assetsListImages.ts +7 -25
  698. package/src/funcs/assetsListRawFiles.ts +7 -25
  699. package/src/funcs/assetsListResourceTags.ts +7 -27
  700. package/src/funcs/assetsListResourceTypes.ts +8 -32
  701. package/src/funcs/assetsListResourcesByAssetFolder.ts +7 -29
  702. package/src/funcs/assetsListResourcesByAssetIDs.ts +7 -29
  703. package/src/funcs/assetsListResourcesByContext.ts +7 -29
  704. package/src/funcs/assetsListResourcesByModerationKindAndStatus.ts +7 -31
  705. package/src/funcs/assetsListVideos.ts +7 -25
  706. package/src/funcs/assetsRenameAsset.ts +7 -27
  707. package/src/funcs/assetsRestoreResourcesByAssetIDs.ts +7 -29
  708. package/src/funcs/assetsUpdateResourceByAssetId.ts +7 -27
  709. package/src/funcs/assetsUpdateResourceByPublicId.ts +7 -27
  710. package/src/funcs/backupsDeleteBackupVersions.ts +7 -32
  711. package/src/funcs/explodeExplodeResource.ts +7 -27
  712. package/src/funcs/foldersCreateFolder.ts +7 -27
  713. package/src/funcs/foldersDestroyFolder.ts +7 -27
  714. package/src/funcs/foldersListRootFolders.ts +8 -30
  715. package/src/funcs/foldersSearchFolders.ts +7 -27
  716. package/src/funcs/foldersSearchFoldersPost.ts +7 -29
  717. package/src/funcs/foldersShowFolder.ts +7 -27
  718. package/src/funcs/foldersUpdateFolder.ts +7 -25
  719. package/src/funcs/moderationsListResourcesByModerationKindAndStatus.ts +7 -31
  720. package/src/funcs/searchSearchAssets.ts +7 -27
  721. package/src/funcs/searchVisualSearchAssets.ts +7 -31
  722. package/src/funcs/tagsListResourceTags.ts +7 -27
  723. package/src/funcs/uploadDestroyAsset.ts +7 -27
  724. package/src/funcs/uploadText.ts +7 -25
  725. package/src/funcs/uploadUpload.ts +7 -31
  726. package/src/funcs/uploadUploadChunk.ts +7 -31
  727. package/src/funcs/uploadUploadNoResourceType.ts +7 -33
  728. package/src/funcs/usageGetUsage.ts +7 -25
  729. package/src/funcs/videoAnalyticsGetVideoViews.ts +7 -25
  730. package/src/hooks/cloudConfig.ts +41 -0
  731. package/src/hooks/cloudinaryAuthHook.ts +96 -200
  732. package/src/hooks/customHeadersHook.ts +30 -0
  733. package/src/hooks/oauth2scopes.ts +19 -0
  734. package/src/hooks/registration.ts +10 -8
  735. package/src/hooks/responseHeadersHook.ts +98 -0
  736. package/src/hooks/userAgentHook.ts +18 -3
  737. package/src/landing-page.ts +1075 -0
  738. package/src/lib/base64.ts +2 -2
  739. package/src/lib/config.ts +10 -3
  740. package/src/lib/encodings.ts +12 -3
  741. package/src/lib/env.ts +1 -1
  742. package/src/lib/schemas.ts +10 -22
  743. package/src/lib/sdks.ts +2 -2
  744. package/src/lib/security.ts +3 -3
  745. package/src/mcp-server/cli/start/command.ts +7 -0
  746. package/src/mcp-server/cli/start/impl.ts +113 -47
  747. package/src/mcp-server/extensions.ts +6 -4
  748. package/src/mcp-server/flags.ts +24 -0
  749. package/src/mcp-server/mcp-server.ts +1 -1
  750. package/src/mcp-server/prompts.ts +9 -19
  751. package/src/mcp-server/resources.ts +9 -44
  752. package/src/mcp-server/server.extensions.ts +16 -27
  753. package/src/mcp-server/server.ts +10 -4
  754. package/src/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.ts +2 -4
  755. package/src/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.ts +2 -4
  756. package/src/mcp-server/tools/assetsDerivedDestroy.ts +2 -4
  757. package/src/mcp-server/tools/assetsDestroyByAssetId.ts +2 -4
  758. package/src/mcp-server/tools/assetsDownloadBackupAsset.ts +4 -7
  759. package/src/mcp-server/tools/assetsGenerateArchive.ts +2 -4
  760. package/src/mcp-server/tools/assetsGetResourceByAssetId.ts +3 -5
  761. package/src/mcp-server/tools/assetsListImages.ts +5 -8
  762. package/src/mcp-server/tools/assetsListRawFiles.ts +5 -8
  763. package/src/mcp-server/tools/assetsListResourceTags.ts +4 -7
  764. package/src/mcp-server/tools/assetsListVideos.ts +5 -8
  765. package/src/mcp-server/tools/assetsRenameAsset.ts +2 -4
  766. package/src/mcp-server/tools/assetsUpdateResourceByAssetId.ts +2 -4
  767. package/src/mcp-server/tools/foldersCreateFolder.ts +2 -4
  768. package/src/mcp-server/tools/foldersDestroyFolder.ts +2 -4
  769. package/src/mcp-server/tools/foldersSearchFolders.ts +3 -5
  770. package/src/mcp-server/tools/foldersUpdateFolder.ts +2 -4
  771. package/src/mcp-server/tools/searchSearchAssets.ts +2 -4
  772. package/src/mcp-server/tools/searchVisualSearchAssets.ts +2 -4
  773. package/src/mcp-server/tools/uploadUpload.ts +2 -4
  774. package/src/mcp-server/tools/usageGetUsage.ts +2 -4
  775. package/src/mcp-server/tools.ts +312 -92
  776. package/src/models/accesscontrolitem.ts +19 -14
  777. package/src/models/apierror.ts +4 -9
  778. package/src/models/archiveresourcetype.ts +12 -2
  779. package/src/models/archivestoragetype.ts +12 -2
  780. package/src/models/assetrelationinfo.ts +23 -12
  781. package/src/models/assetrelationsdeleteresponse.ts +1 -3
  782. package/src/models/assetrelationsresponse.ts +1 -3
  783. package/src/models/asyncuploadresponse.ts +22 -18
  784. package/src/models/createassetrelationsbyassetidop.ts +4 -12
  785. package/src/models/createassetrelationsbypublicidop.ts +4 -12
  786. package/src/models/createfolderop.ts +16 -26
  787. package/src/models/deleteassetrelationsbyassetidop.ts +4 -12
  788. package/src/models/deleteassetrelationsbypublicidop.ts +4 -12
  789. package/src/models/deletebackupversionsop.ts +10 -23
  790. package/src/models/deleteresourcebypublicidsrequestunion.ts +41 -24
  791. package/src/models/deleteresourcesbypublicidop.ts +4 -12
  792. package/src/models/deriveddestroyop.ts +7 -11
  793. package/src/models/deriveddestroyrequest.ts +5 -8
  794. package/src/models/deriveddestroyresponse.ts +10 -11
  795. package/src/models/destroyassetop.ts +29 -32
  796. package/src/models/destroybyassetidop.ts +2 -6
  797. package/src/models/destroyfolderop.ts +16 -26
  798. package/src/models/destroyrequest.ts +2 -6
  799. package/src/models/destroyresponse.ts +11 -7
  800. package/src/models/direction.ts +7 -2
  801. package/src/models/downloadassetop.ts +50 -52
  802. package/src/models/downloadbackupassetop.ts +26 -40
  803. package/src/models/errors/sdkvalidationerror.ts +2 -57
  804. package/src/models/explicitassetop.ts +66 -70
  805. package/src/models/exploderesourceop.ts +25 -24
  806. package/src/models/extendedstoragetype.ts +22 -2
  807. package/src/models/fieldsspec.ts +31 -2
  808. package/src/models/folder.ts +6 -7
  809. package/src/models/folderslistresponse.ts +6 -9
  810. package/src/models/folderssearchresponse.ts +7 -10
  811. package/src/models/generatearchiveop.ts +38 -30
  812. package/src/models/getresourcebyassetidop.ts +4 -10
  813. package/src/models/getresourcebypublicidop.ts +4 -10
  814. package/src/models/getusageop.ts +3 -15
  815. package/src/models/getvideoviewsop.ts +41 -39
  816. package/src/models/info.ts +15 -27
  817. package/src/models/listimagesop.ts +33 -40
  818. package/src/models/listrawfilesop.ts +33 -40
  819. package/src/models/listresourcesbyassetfolderop.ts +5 -12
  820. package/src/models/listresourcesbyassetidsop.ts +3 -9
  821. package/src/models/listresourcesbycontextop.ts +5 -12
  822. package/src/models/listresourcesbymoderationkindandstatusop.ts +27 -19
  823. package/src/models/listresourcetagsop.ts +6 -15
  824. package/src/models/listresourcetypesop.ts +16 -22
  825. package/src/models/listresponse.ts +2 -6
  826. package/src/models/listrootfoldersop.ts +3 -9
  827. package/src/models/liststoragetype.ts +13 -2
  828. package/src/models/listvideosop.ts +33 -40
  829. package/src/models/nonfinalchunkuploadresponse.ts +3 -7
  830. package/src/models/renameassetop.ts +18 -28
  831. package/src/models/resourcetype.ts +11 -2
  832. package/src/models/resourceupdaterequest.ts +78 -43
  833. package/src/models/restoreresourcesbyassetidsop.ts +4 -10
  834. package/src/models/restoreresponseunion.ts +17 -15
  835. package/src/models/schemecloudinaryauth.ts +5 -8
  836. package/src/models/searchassetsop.ts +11 -16
  837. package/src/models/searchfoldersop.ts +29 -45
  838. package/src/models/searchfolderspostop.ts +4 -10
  839. package/src/models/searchparameters.ts +51 -42
  840. package/src/models/searchresponse.ts +115 -114
  841. package/src/models/searchsortpair.ts +7 -2
  842. package/src/models/security.ts +6 -7
  843. package/src/models/showfolderop.ts +15 -23
  844. package/src/models/storagetype.ts +11 -2
  845. package/src/models/storagetypeparameter.ts +11 -4
  846. package/src/models/textop.ts +88 -72
  847. package/src/models/updatefolderop.ts +20 -32
  848. package/src/models/updateresourcebyassetidop.ts +3 -9
  849. package/src/models/updateresourcebypublicidop.ts +3 -9
  850. package/src/models/uploadchunkop.ts +30 -40
  851. package/src/models/uploadnoresourcetypeop.ts +3 -9
  852. package/src/models/uploadop.ts +12 -24
  853. package/src/models/uploadrequest.ts +126 -76
  854. package/src/models/uploadresourcetype.ts +19 -8
  855. package/src/models/uploadresponse.ts +16 -23
  856. package/src/models/usageresponse.ts +35 -56
  857. package/src/models/visualsearchassetsop.ts +2 -6
  858. package/src/models/visualsearchparametersunion.ts +4 -12
  859. package/src/tool-names.ts +95 -0
  860. package/src/types/bigint.ts +87 -0
  861. package/tsconfig.json +0 -1
  862. package/esm/lib/matchers.d.ts +0 -66
  863. package/esm/lib/matchers.d.ts.map +0 -1
  864. package/esm/lib/matchers.js +0 -212
  865. package/esm/lib/matchers.js.map +0 -1
  866. package/src/lib/matchers.ts +0 -354
@@ -1,239 +1,135 @@
1
- import {CloudConfig} from "./cloudConfig.js";
2
- import {BeforeRequestContext, BeforeRequestHook} from "./types.js";
3
-
4
- export class CloudinaryAuthHook
5
- implements BeforeRequestHook {
6
-
7
- private readonly cloudConfig: CloudConfig;
8
-
9
- constructor() {
10
- this.cloudConfig = new CloudConfig();
1
+ import { CloudConfig } from "./cloudConfig.js";
2
+ import { BeforeRequestContext, BeforeRequestHook } from "./types.js";
3
+
4
+ /**
5
+ * Attaches Cloudinary authentication to every outgoing request.
6
+ *
7
+ * Priority:
8
+ * 1. OAuth2 Bearer token (if provided via security source)
9
+ * 2. Basic auth (apiKey:apiSecret) — works for all endpoints including upload
10
+ *
11
+ * Also preprocesses JSON request bodies to convert local `file://` URIs
12
+ * into base64 data URIs so uploads work with local file paths.
13
+ */
14
+ export class CloudinaryAuthHook implements BeforeRequestHook {
15
+ private readonly config: CloudConfig;
16
+
17
+ constructor(config: CloudConfig) {
18
+ this.config = config;
11
19
  }
12
20
 
13
- async beforeRequest(hookCtx: BeforeRequestContext, request: Request): Promise<Request> {
14
- let security = hookCtx.securitySource;
15
- // Resolve the security source if it's a function (for dynamic token refresh)
16
- if (typeof security === 'function') {
17
- security = await security();
18
- }
19
-
20
- // Prioritize OAuth2 bearer token if it's provided.
21
- if (security && typeof security === 'object' && 'oauth2' in security && typeof security.oauth2 === 'string') {
22
- const token = security.oauth2;
23
- if (token) {
24
- request.headers.set("Authorization", `Bearer ${token}`);
25
- return request;
26
- }
27
- }
28
-
29
- // Fallback to API key/secret signing if no OAuth token is present.
30
- let { apiKey, apiSecret } = this.cloudConfig;
31
-
32
- // Optionally merge user-supplied security overrides
33
- if (security) {
34
- // Handle custom cloudinaryAuth format
35
- if ('cloudinaryAuth' in security && security.cloudinaryAuth) {
36
- // Support both camelCase and snake_case for compatibility
37
- if (security.cloudinaryAuth.apiKey || security.cloudinaryAuth.api_key) {
38
- apiKey = security.cloudinaryAuth.apiKey || security.cloudinaryAuth.api_key;
39
- }
40
- if (security.cloudinaryAuth.apiSecret || security.cloudinaryAuth.api_secret) {
41
- apiSecret = security.cloudinaryAuth.apiSecret || security.cloudinaryAuth.api_secret;
42
- }
43
- }
44
- // Handle standard SDK security format (used by MCP server)
45
- else if ('apiKey' in security || 'apiSecret' in security) {
46
- if ('apiKey' in security && security.apiKey) {
47
- apiKey = security.apiKey;
48
- }
49
- if ('apiSecret' in security && security.apiSecret) {
50
- apiSecret = security.apiSecret;
51
- }
52
- }
53
- }
21
+ async beforeRequest(
22
+ hookCtx: BeforeRequestContext,
23
+ request: Request,
24
+ ): Promise<Request> {
25
+ const security = await this.resolveSecurity(hookCtx.securitySource);
54
26
 
55
- if (!apiKey || !apiSecret) {
27
+ // 1. OAuth2 Bearer token takes priority
28
+ if (this.isOAuth2Token(security)) {
29
+ request.headers.set("Authorization", `Bearer ${security.oauth2}`);
56
30
  return request;
57
31
  }
58
32
 
59
- if (this.SIGNED_PATHS.every(path => request.url.indexOf(path) === -1)) {
60
- // generate Authorization header using basic auth where apiKey:apiSecret is encoded in base64
61
- const authHeader = `Basic ${Buffer.from(`${apiKey}:${apiSecret}`).toString("base64")}`;
62
- request.headers.set("Authorization", authHeader);
33
+ // 2. Resolve API key / secret (env security overrides)
34
+ const { apiKey, apiSecret } = this.resolveCredentials(security);
35
+ if (!apiKey || !apiSecret) {
63
36
  return request;
64
37
  }
65
38
 
66
- // Extract query parameters regardless of body existence
67
- const url = new URL(request.url);
68
- const queryParams = this.paramsFromQuery(url.searchParams);
69
-
70
- // Handle case with only query parameters (no body)
71
- if (!request.body) {
72
- return this.signQueryOnlyRequest(request, apiKey, apiSecret, queryParams);
73
- }
74
-
75
- // if content-type is application/json, parse the body as json and add the signature, timestamp and apiKey to the body
76
- if (request.headers.get("Content-Type") === "application/json") {
77
- const preprocessedBody = await this.preprocessJsonRequest(request);
78
- return this.signJsonRequest(request, apiKey, apiSecret, queryParams, preprocessedBody);
79
- }
80
-
81
- // if content-type is multipart/form-data, parse the body as form data and add the signature, timestamp and apiKey to the body
82
- if (request.headers.get("Content-Type")?.startsWith("multipart/form-data")) {
83
- return this.signFormDataRequest(request, apiKey, apiSecret, queryParams);
84
- }
39
+ // Set Basic auth header
40
+ const encoded = Buffer.from(`${apiKey}:${apiSecret}`).toString("base64");
41
+ request.headers.set("Authorization", `Basic ${encoded}`);
85
42
 
86
- // Default case - just sign query parameters if any exist
87
- if (queryParams.length > 0) {
88
- return this.signQueryOnlyRequest(request, apiKey, apiSecret, queryParams);
89
- }
43
+ // Preprocess JSON bodies (e.g. convert file:// URIs to base64)
44
+ request = await this.preprocessBody(request);
90
45
 
91
46
  return request;
92
47
  }
93
48
 
94
- paramsFromQuery(searchParams: URLSearchParams): string[] {
95
- const params = [];
96
- for (const [key, value] of searchParams.entries()) {
97
- if (key !== "file" && key !== "cloud_name" && key !== "resource_type" && key !== "api_key" && key !== "signature" && key !== "timestamp") {
98
- params.push(`${key}=${value}`);
99
- }
100
- }
101
- return params;
102
- }
103
-
104
- async signQueryOnlyRequest(request: Request, apiKey: string, apiSecret: string, queryParams: string[]): Promise<Request> {
105
- const url = new URL(request.url);
106
- // Check if already signed
107
- if (url.searchParams.has("signature")) {
108
- return request;
109
- }
110
-
111
- const { signature, timestamp } = await this.computeSignature(queryParams, apiSecret);
112
- url.searchParams.set("signature", signature);
113
- url.searchParams.set("timestamp", timestamp.toString());
114
- url.searchParams.set("api_key", apiKey);
49
+ // --- Security resolution ---
115
50
 
116
- return new Request(url.toString(), request);
51
+ private async resolveSecurity(source: unknown): Promise<unknown> {
52
+ return typeof source === "function" ? source() : source;
117
53
  }
118
54
 
119
- async computeSignature(params: string[], apiSecret: string) {
120
- const crypto = await import('node:crypto');
121
- // Create a string with the parameters used in the POST request to Cloudinary:
122
- // All parameters added to the method call should be included except: file, cloud_name, resource_type and your api_key.
123
- // Sort all the parameters in alphabetical order.
124
- // Separate the parameter names from their values with an = and join the parameter/value pairs together with an &.
125
- // Append your API secret to the end of the string.
126
- // Create a hexadecimal message digest (hash value) of the string using an SHA cryptographic function.
127
- const timestamp = Math.floor(Date.now() / 1000);
128
- params.push(`timestamp=${timestamp}`);
129
- params.sort();
130
- const paramsString = params.join("&");
131
- const signature = crypto.createHash('sha256').update(`${paramsString}${apiSecret}`).digest('hex');
132
-
133
- return { signature, timestamp };
55
+ private isOAuth2Token(
56
+ security: unknown,
57
+ ): security is { oauth2: string } {
58
+ return (
59
+ typeof security === "object"
60
+ && security !== null
61
+ && "oauth2" in security
62
+ && typeof (security as any).oauth2 === "string"
63
+ && (security as any).oauth2.length > 0
64
+ );
134
65
  }
135
66
 
136
- paramsToSignFormData(form: FormData) {
137
- const params = [];
138
- for (const [key, value] of form.entries()) {
139
- if (key !== "file" && key !== "cloud_name" && key !== "resource_type" && key !== "api_key" && key !== "signature") {
140
- params.push(`${key}=${value}`);
141
- }
142
- }
143
- return params;
144
- }
67
+ private resolveCredentials(security: unknown): {
68
+ apiKey: string;
69
+ apiSecret: string;
70
+ } {
71
+ let { apiKey, apiSecret } = this.config;
145
72
 
146
- paramsToSignJson(json: Record<string, string>) {
147
- const params = [];
148
- for (const [key, value] of Object.entries(json)) {
149
- if (key !== "file" && key !== "cloud_name" && key !== "resource_type" && key !== "api_key" && key !== "signature") {
150
- params.push(`${key}=${value}`);
151
- }
73
+ if (!security || typeof security !== "object") {
74
+ return { apiKey, apiSecret };
152
75
  }
153
- return params;
154
- }
155
76
 
156
- async preprocessJsonRequest(request: Request): Promise<any> {
157
- const body = await request.json();
77
+ const sec = security as Record<string, any>;
158
78
 
159
- // Handle file:// URLs by converting to base64 data URIs
160
- if (body.file && typeof body.file === 'string' && body.file.startsWith('file://')) {
161
- body.file = await this.convertFileToDataUri(body.file);
79
+ // cloudinaryAuth format (camelCase and snake_case)
80
+ if (sec["cloudinaryAuth"]) {
81
+ const auth = sec["cloudinaryAuth"];
82
+ apiKey = auth.apiKey || auth.api_key || apiKey;
83
+ apiSecret = auth.apiSecret || auth.api_secret || apiSecret;
84
+ }
85
+ // Standard SDK security format (used by MCP server)
86
+ else if ("apiKey" in sec || "apiSecret" in sec) {
87
+ apiKey = sec["apiKey"] || apiKey;
88
+ apiSecret = sec["apiSecret"] || apiSecret;
162
89
  }
163
90
 
164
- return body;
91
+ return { apiKey, apiSecret };
165
92
  }
166
93
 
167
- async signJsonRequest(request: Request, apiKey: string, apiSecret: string, queryParams: string[] = [], preprocessedBody?: any) {
168
- const body = preprocessedBody || await request.json();
169
- if (body.signature) {
94
+ // --- Body preprocessing ---
95
+
96
+ /**
97
+ * For JSON requests, converts local `file://` URIs to inline base64
98
+ * data URIs so Cloudinary can accept the upload payload.
99
+ */
100
+ private async preprocessBody(request: Request): Promise<Request> {
101
+ if (request.headers.get("Content-Type") !== "application/json") {
170
102
  return request;
171
103
  }
172
104
 
173
- const bodyParams = this.paramsToSignJson(body);
174
- const allParams = [...bodyParams, ...queryParams];
175
- const { signature, timestamp } = await this.computeSignature(allParams, apiSecret);
176
- body.signature = signature;
177
- body.timestamp = timestamp;
178
- body.api_key = apiKey;
105
+ const body = await request.json();
106
+
107
+ if (
108
+ typeof body?.file === "string"
109
+ && body.file.startsWith("file://")
110
+ ) {
111
+ body.file = await this.readLocalFileAsDataUri(body.file);
112
+ return new Request(request, { body: JSON.stringify(body) });
113
+ }
114
+
179
115
  return new Request(request, { body: JSON.stringify(body) });
180
116
  }
181
117
 
182
- private async convertFileToDataUri(fileUrl: string): Promise<string> {
183
- // Remove 'file://' prefix to get the actual file path
184
- const filePath = fileUrl.replace(/^file:\/\//, '');
118
+ /**
119
+ * Reads a local file and returns it as a base64 data URI.
120
+ */
121
+ private async readLocalFileAsDataUri(fileUrl: string): Promise<string> {
122
+ const filePath = fileUrl.replace(/^file:\/\//, "");
185
123
 
186
124
  try {
187
- // Import required Node.js modules
188
- const { readFile } = await import('node:fs/promises');
189
-
190
- // Read the file as a buffer
191
- const fileBuffer = await readFile(filePath);
192
-
193
- // Convert to base64
194
- const base64Data = fileBuffer.toString('base64');
195
-
196
- // Use generic MIME type for all files
197
- const mimeType = 'application/octet-stream';
198
-
199
- // Return as data URI
200
- return `data:${mimeType};base64,${base64Data}`;
201
-
125
+ const { readFile } = await import("node:fs/promises");
126
+ const buffer = await readFile(filePath);
127
+ const base64 = buffer.toString("base64");
128
+ return `data:application/octet-stream;base64,${base64}`;
202
129
  } catch (error) {
203
- // If file reading fails, log error and return original URL
204
- console.error(`Failed to read file: ${filePath}`, error);
205
- throw new Error(`Failed to read file: ${filePath}. ${error instanceof Error ? error.message : String(error)}`);
130
+ throw new Error(
131
+ `Failed to read file: ${filePath}. ${error instanceof Error ? error.message : String(error)}`,
132
+ );
206
133
  }
207
134
  }
208
-
209
- async signFormDataRequest(request: Request, apiKey: string, apiSecret: string, queryParams: string[] = []) {
210
- const form = await request.clone().formData();
211
- if (form.get("signature")) {
212
- return request;
213
- }
214
-
215
- const bodyParams = this.paramsToSignFormData(form);
216
- const allParams = [...bodyParams, ...queryParams];
217
- const { signature, timestamp } = await this.computeSignature(allParams, apiSecret);
218
-
219
- // add the signature, timestamp and apiKey to the URL as query parameters
220
- const url = new URL(request.url);
221
- url.searchParams.set("signature", signature);
222
- url.searchParams.set("timestamp", timestamp.toString());
223
- url.searchParams.set("api_key", apiKey);
224
-
225
- // construct a new request with the same URL and the same form data and the same method
226
- // remove the basic authentication header
227
- const newHeaders = new Headers(request.headers);
228
- newHeaders.delete("Authorization");
229
- return new Request(url.toString(), request);
230
- }
231
-
232
- SIGNED_ACTIONS = [
233
- 'explicit', 'upload', 'download', 'destroy', 'sprite', 'tags', 'context', 'metadata_update', 'text', 'multi', 'explode',
234
- 'rename', 'create_slideshow', 'create_video', 'create_collage', 'generate_archive'];
235
-
236
- SIGNED_PATHS = ["image", "video", "raw", "auto", "asset"].flatMap(resourceType => this.SIGNED_ACTIONS.map(action => `${resourceType}/${action}`));
237
-
238
-
239
135
  }
@@ -0,0 +1,30 @@
1
+ import { BeforeRequestContext, BeforeRequestHook } from "./types.js";
2
+
3
+ /**
4
+ * Injects custom headers into every outgoing request to the Cloudinary API.
5
+ *
6
+ * Headers are read from `hookCtx.options.customHeaders` (a Record<string, string>),
7
+ * which is set by mcp-service when constructing the SDK via getSDK.
8
+ *
9
+ * When no custom headers are configured, this hook is a no-op.
10
+ */
11
+ export class CustomHeadersHook implements BeforeRequestHook {
12
+ async beforeRequest(
13
+ hookCtx: BeforeRequestContext,
14
+ request: Request,
15
+ ): Promise<Request> {
16
+ const customHeaders = (hookCtx.options as any)?.customHeaders as
17
+ | Record<string, string>
18
+ | undefined;
19
+
20
+ if (!customHeaders) {
21
+ return request;
22
+ }
23
+
24
+ for (const [name, value] of Object.entries(customHeaders)) {
25
+ request.headers.set(name, value);
26
+ }
27
+
28
+ return request;
29
+ }
30
+ }
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ /**
6
+ * Available scopes for the oauth2 OAuth 2.0 scheme (authorizationCode flow).
7
+ *
8
+ * @remarks
9
+ * OAuth2 Authorization Code flow for user authentication
10
+ */
11
+ export type OAuth2Scope =
12
+ /**
13
+ * Allows managing assets, including reading, updating, and deleting.
14
+ */
15
+ | "asset_management"
16
+ /**
17
+ * Allows uploading new assets.
18
+ */
19
+ | "upload";
@@ -1,5 +1,8 @@
1
- import { Hooks } from "./types.js";
1
+ import { CloudConfig } from "./cloudConfig.js";
2
2
  import { CloudinaryAuthHook } from "./cloudinaryAuthHook.js";
3
+ import { CustomHeadersHook } from "./customHeadersHook.js";
4
+ import { ResponseHeadersHook } from "./responseHeadersHook.js";
5
+ import { Hooks } from "./types.js";
3
6
  import { UserAgentHook } from "./userAgentHook.js";
4
7
  /*
5
8
  * This file is only ever generated once on the first generation and then is free to be modified.
@@ -8,12 +11,11 @@ import { UserAgentHook } from "./userAgentHook.js";
8
11
  */
9
12
 
10
13
  export function initHooks(hooks: Hooks) {
11
- // Add hooks by calling hooks.register{ClientInit/BeforeCreateRequest/BeforeRequest/AfterSuccess/AfterError}Hook
12
- // with an instance of a hook that implements that specific Hook interface
13
- // Hooks are registered per SDK instance, and are valid for the lifetime of the SDK instance
14
- const cloudinaryAuthHook = new CloudinaryAuthHook();
15
- hooks.registerBeforeRequestHook(cloudinaryAuthHook);
14
+ // Shared config parsed once from CLOUDINARY_URL and env vars
15
+ const config = new CloudConfig();
16
16
 
17
- const userAgentHook = new UserAgentHook();
18
- hooks.registerSDKInitHook(userAgentHook);
17
+ hooks.registerBeforeRequestHook(new CloudinaryAuthHook(config));
18
+ hooks.registerBeforeRequestHook(new CustomHeadersHook());
19
+ hooks.registerSDKInitHook(new UserAgentHook());
20
+ hooks.registerAfterSuccessHook(new ResponseHeadersHook(config.collectHeaders));
19
21
  }
@@ -0,0 +1,98 @@
1
+ import { CollectHeaders } from "./cloudConfig.js";
2
+ import { AfterSuccessContext, AfterSuccessHook } from "./types.js";
3
+
4
+ /**
5
+ * Checks whether a lowercased header name matches a single collect spec.
6
+ *
7
+ * Supported spec formats:
8
+ * - `"prefix:<value>"` → headerName.startsWith(value)
9
+ * - `"regex:<pattern>"` → new RegExp(pattern).test(headerName)
10
+ * - any other string → exact match
11
+ *
12
+ * Both headerName and spec are expected to be lowercased already.
13
+ */
14
+ function matchesSpec(headerName: string, spec: string): boolean {
15
+ if (spec.startsWith("prefix:")) {
16
+ return headerName.startsWith(spec.slice(7));
17
+ }
18
+ if (spec.startsWith("regex:")) {
19
+ try {
20
+ return new RegExp(spec.slice(6)).test(headerName);
21
+ } catch {
22
+ return false; // invalid regex — skip
23
+ }
24
+ }
25
+ return headerName === spec;
26
+ }
27
+
28
+ /**
29
+ * Captures response headers and injects them into the JSON body as `_headers`
30
+ * so they survive through the generated formatResult() and surface in MCP tool
31
+ * output. The set of headers to collect is driven by configuration:
32
+ * - `true` → collect every response header
33
+ * - `string[]` → collect only matching headers (exact name, prefix:, or regex:)
34
+ */
35
+ export class ResponseHeadersHook implements AfterSuccessHook {
36
+ private readonly collectHeaders: CollectHeaders;
37
+
38
+ constructor(collectHeaders: CollectHeaders) {
39
+ this.collectHeaders = collectHeaders;
40
+ }
41
+
42
+ async afterSuccess(
43
+ hookCtx: AfterSuccessContext,
44
+ response: Response,
45
+ ): Promise<Response> {
46
+ // Per-request SDK options override the constructor config (used by mcp-service)
47
+ const optCollect = (hookCtx.options as any)?.collectHeaders as
48
+ | CollectHeaders
49
+ | undefined;
50
+ const effective = optCollect ?? this.collectHeaders;
51
+
52
+ // Not configured — exit early
53
+ if (effective !== true && effective.length === 0) {
54
+ return response;
55
+ }
56
+
57
+ const contentType = response.headers.get("content-type") ?? "";
58
+ if (!contentType.includes("json")) {
59
+ return response;
60
+ }
61
+
62
+ const hdrs: Record<string, string> = {};
63
+ let found = false;
64
+
65
+ if (effective === true) {
66
+ // Collect all response headers
67
+ for (const [name, value] of response.headers.entries()) {
68
+ hdrs[name] = value;
69
+ found = true;
70
+ }
71
+ } else {
72
+ // Match each response header against the specs (exact, prefix:, regex:)
73
+ for (const [name, value] of response.headers.entries()) {
74
+ for (const spec of effective) {
75
+ if (matchesSpec(name, spec)) {
76
+ hdrs[name] = value;
77
+ found = true;
78
+ break;
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ if (!found) {
85
+ return response;
86
+ }
87
+
88
+ // Read body, inject headers, return a new Response so the stream is fresh.
89
+ const body = await response.json();
90
+ body._headers = hdrs;
91
+
92
+ return new Response(JSON.stringify(body), {
93
+ status: response.status,
94
+ statusText: response.statusText,
95
+ headers: response.headers,
96
+ });
97
+ }
98
+ }
@@ -45,16 +45,28 @@ function getEnvDetails(): string {
45
45
  return isRemoteMCP() ? '; RemoteMCP' : '';
46
46
  }
47
47
 
48
- function buildUserAgent(sdkVersion: string, genVersion: string, openapiDocVersion: string, packageName: string, runtime: string): string {
48
+ function buildUserAgent(
49
+ sdkVersion: string,
50
+ genVersion: string,
51
+ openapiDocVersion: string,
52
+ packageName: string,
53
+ runtime: string,
54
+ callerUserAgent?: string,
55
+ ): string {
49
56
  const productName = getProductName(packageName);
50
57
  const systemInfo = getSystemInfo();
51
58
  const envDetails = getEnvDetails();
59
+ const origin = callerUserAgent ? `; origin ${callerUserAgent}` : '';
52
60
 
53
- return `Cloudinary/${productName} ${runtime}/${sdkVersion} Gen/${genVersion} Schema/${openapiDocVersion} (${systemInfo}${envDetails})`;
61
+ return `Cloudinary/${productName} ${runtime}/${sdkVersion} Gen/${genVersion} Schema/${openapiDocVersion} (${systemInfo}${envDetails}${origin})`;
54
62
  }
55
63
 
56
64
  export class UserAgentHook implements SDKInitHook {
57
65
  sdkInit(opts: SDKOptions): SDKOptions {
66
+ // If opts.userAgent is pre-set (e.g. by mcp-service via getSDK),
67
+ // treat it as the caller's User-Agent to embed in the combined string.
68
+ const callerUserAgent = opts.userAgent || undefined;
69
+
58
70
  const originalUserAgent = SDK_METADATA.userAgent;
59
71
 
60
72
  if (originalUserAgent && originalUserAgent.startsWith("speakeasy-sdk/")) {
@@ -69,7 +81,10 @@ export class UserAgentHook implements SDKInitHook {
69
81
  // Ensure all parts are defined before proceeding
70
82
  if (sdkVersion && genVersion && openapiDocVersion && packageName) {
71
83
  const runtime = getRuntime();
72
- opts.userAgent = buildUserAgent(sdkVersion, genVersion, openapiDocVersion, packageName, runtime);
84
+ opts.userAgent = buildUserAgent(
85
+ sdkVersion, genVersion, openapiDocVersion,
86
+ packageName, runtime, callerUserAgent,
87
+ );
73
88
  }
74
89
  }
75
90
  }