@cloudinary/environment-config-mcp 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (792) hide show
  1. package/README.md +5 -5
  2. package/bin/mcp-server.js +2807 -1077
  3. package/bin/mcp-server.js.map +171 -145
  4. package/esm/core.d.ts.map +1 -1
  5. package/esm/core.js +1 -0
  6. package/esm/core.js.map +1 -1
  7. package/esm/funcs/streamingProfilesCreateStreamingProfile.d.ts.map +1 -1
  8. package/esm/funcs/streamingProfilesCreateStreamingProfile.js +1 -0
  9. package/esm/funcs/streamingProfilesCreateStreamingProfile.js.map +1 -1
  10. package/esm/funcs/streamingProfilesDeleteStreamingProfile.d.ts.map +1 -1
  11. package/esm/funcs/streamingProfilesDeleteStreamingProfile.js +1 -0
  12. package/esm/funcs/streamingProfilesDeleteStreamingProfile.js.map +1 -1
  13. package/esm/funcs/streamingProfilesGetStreamingProfile.d.ts.map +1 -1
  14. package/esm/funcs/streamingProfilesGetStreamingProfile.js +1 -0
  15. package/esm/funcs/streamingProfilesGetStreamingProfile.js.map +1 -1
  16. package/esm/funcs/streamingProfilesGetStreamingProfiles.d.ts.map +1 -1
  17. package/esm/funcs/streamingProfilesGetStreamingProfiles.js +1 -0
  18. package/esm/funcs/streamingProfilesGetStreamingProfiles.js.map +1 -1
  19. package/esm/funcs/streamingProfilesUpdateStreamingProfile.d.ts.map +1 -1
  20. package/esm/funcs/streamingProfilesUpdateStreamingProfile.js +1 -0
  21. package/esm/funcs/streamingProfilesUpdateStreamingProfile.js.map +1 -1
  22. package/esm/funcs/transformationsCreateTransformation.d.ts +1 -1
  23. package/esm/funcs/transformationsCreateTransformation.d.ts.map +1 -1
  24. package/esm/funcs/transformationsCreateTransformation.js +2 -1
  25. package/esm/funcs/transformationsCreateTransformation.js.map +1 -1
  26. package/esm/funcs/transformationsDeleteTransformation.d.ts.map +1 -1
  27. package/esm/funcs/transformationsDeleteTransformation.js +1 -0
  28. package/esm/funcs/transformationsDeleteTransformation.js.map +1 -1
  29. package/esm/funcs/transformationsGetTransformation.d.ts.map +1 -1
  30. package/esm/funcs/transformationsGetTransformation.js +1 -0
  31. package/esm/funcs/transformationsGetTransformation.js.map +1 -1
  32. package/esm/funcs/transformationsListTransformations.d.ts +1 -1
  33. package/esm/funcs/transformationsListTransformations.d.ts.map +1 -1
  34. package/esm/funcs/transformationsListTransformations.js +2 -1
  35. package/esm/funcs/transformationsListTransformations.js.map +1 -1
  36. package/esm/funcs/transformationsUpdateTransformation.d.ts +2 -2
  37. package/esm/funcs/transformationsUpdateTransformation.d.ts.map +1 -1
  38. package/esm/funcs/transformationsUpdateTransformation.js +3 -2
  39. package/esm/funcs/transformationsUpdateTransformation.js.map +1 -1
  40. package/esm/funcs/triggersCreateTrigger.d.ts +1 -1
  41. package/esm/funcs/triggersCreateTrigger.d.ts.map +1 -1
  42. package/esm/funcs/triggersCreateTrigger.js +2 -1
  43. package/esm/funcs/triggersCreateTrigger.js.map +1 -1
  44. package/esm/funcs/triggersDeleteTrigger.d.ts.map +1 -1
  45. package/esm/funcs/triggersDeleteTrigger.js +1 -0
  46. package/esm/funcs/triggersDeleteTrigger.js.map +1 -1
  47. package/esm/funcs/triggersListTrigger.d.ts +3 -2
  48. package/esm/funcs/triggersListTrigger.d.ts.map +1 -1
  49. package/esm/funcs/triggersListTrigger.js +2 -1
  50. package/esm/funcs/triggersListTrigger.js.map +1 -1
  51. package/esm/funcs/triggersTestTrigger.d.ts +2 -2
  52. package/esm/funcs/triggersTestTrigger.d.ts.map +1 -1
  53. package/esm/funcs/triggersTestTrigger.js +10 -7
  54. package/esm/funcs/triggersTestTrigger.js.map +1 -1
  55. package/esm/funcs/triggersUpdateTrigger.d.ts +2 -2
  56. package/esm/funcs/triggersUpdateTrigger.d.ts.map +1 -1
  57. package/esm/funcs/triggersUpdateTrigger.js +10 -7
  58. package/esm/funcs/triggersUpdateTrigger.js.map +1 -1
  59. package/esm/funcs/uploadMappingsCreateUploadMapping.d.ts +2 -2
  60. package/esm/funcs/uploadMappingsCreateUploadMapping.d.ts.map +1 -1
  61. package/esm/funcs/uploadMappingsCreateUploadMapping.js +3 -2
  62. package/esm/funcs/uploadMappingsCreateUploadMapping.js.map +1 -1
  63. package/esm/funcs/uploadMappingsDeleteUploadMapping.d.ts.map +1 -1
  64. package/esm/funcs/uploadMappingsDeleteUploadMapping.js +1 -0
  65. package/esm/funcs/uploadMappingsDeleteUploadMapping.js.map +1 -1
  66. package/esm/funcs/uploadMappingsListUploadMappings.d.ts.map +1 -1
  67. package/esm/funcs/uploadMappingsListUploadMappings.js +1 -0
  68. package/esm/funcs/uploadMappingsListUploadMappings.js.map +1 -1
  69. package/esm/funcs/uploadMappingsReplaceUploadMappings.d.ts +1 -1
  70. package/esm/funcs/uploadMappingsReplaceUploadMappings.d.ts.map +1 -1
  71. package/esm/funcs/uploadMappingsReplaceUploadMappings.js +2 -1
  72. package/esm/funcs/uploadMappingsReplaceUploadMappings.js.map +1 -1
  73. package/esm/funcs/uploadMappingsUpdateUploadMapping.d.ts +3 -3
  74. package/esm/funcs/uploadMappingsUpdateUploadMapping.d.ts.map +1 -1
  75. package/esm/funcs/uploadMappingsUpdateUploadMapping.js +4 -3
  76. package/esm/funcs/uploadMappingsUpdateUploadMapping.js.map +1 -1
  77. package/esm/funcs/uploadPresetsCreateUploadPreset.d.ts +2 -2
  78. package/esm/funcs/uploadPresetsCreateUploadPreset.d.ts.map +1 -1
  79. package/esm/funcs/uploadPresetsCreateUploadPreset.js +3 -2
  80. package/esm/funcs/uploadPresetsCreateUploadPreset.js.map +1 -1
  81. package/esm/funcs/uploadPresetsDeleteUploadPreset.d.ts.map +1 -1
  82. package/esm/funcs/uploadPresetsDeleteUploadPreset.js +1 -0
  83. package/esm/funcs/uploadPresetsDeleteUploadPreset.js.map +1 -1
  84. package/esm/funcs/uploadPresetsGetUploadPreset.d.ts.map +1 -1
  85. package/esm/funcs/uploadPresetsGetUploadPreset.js +1 -0
  86. package/esm/funcs/uploadPresetsGetUploadPreset.js.map +1 -1
  87. package/esm/funcs/uploadPresetsListUploadPresets.d.ts +3 -2
  88. package/esm/funcs/uploadPresetsListUploadPresets.d.ts.map +1 -1
  89. package/esm/funcs/uploadPresetsListUploadPresets.js +6 -3
  90. package/esm/funcs/uploadPresetsListUploadPresets.js.map +1 -1
  91. package/esm/funcs/uploadPresetsUpdateUploadPreset.d.ts +2 -2
  92. package/esm/funcs/uploadPresetsUpdateUploadPreset.d.ts.map +1 -1
  93. package/esm/funcs/uploadPresetsUpdateUploadPreset.js +8 -5
  94. package/esm/funcs/uploadPresetsUpdateUploadPreset.js.map +1 -1
  95. package/esm/hooks/cloudConfig.d.ts +15 -0
  96. package/esm/hooks/cloudConfig.d.ts.map +1 -1
  97. package/esm/hooks/cloudConfig.js +28 -0
  98. package/esm/hooks/cloudConfig.js.map +1 -1
  99. package/esm/hooks/cloudinaryAuthHook.d.ts +13 -16
  100. package/esm/hooks/cloudinaryAuthHook.d.ts.map +1 -1
  101. package/esm/hooks/cloudinaryAuthHook.js +43 -180
  102. package/esm/hooks/cloudinaryAuthHook.js.map +1 -1
  103. package/esm/hooks/customHeadersHook.d.ts +13 -0
  104. package/esm/hooks/customHeadersHook.d.ts.map +1 -0
  105. package/esm/hooks/customHeadersHook.js +21 -0
  106. package/esm/hooks/customHeadersHook.js.map +1 -0
  107. package/esm/hooks/hooks.d.ts.map +1 -1
  108. package/esm/hooks/hooks.js +1 -0
  109. package/esm/hooks/hooks.js.map +1 -1
  110. package/esm/hooks/oauth2scopes.d.ts.map +1 -1
  111. package/esm/hooks/oauth2scopes.js +1 -0
  112. package/esm/hooks/oauth2scopes.js.map +1 -1
  113. package/esm/hooks/registration.d.ts.map +1 -1
  114. package/esm/hooks/registration.js +9 -7
  115. package/esm/hooks/registration.js.map +1 -1
  116. package/esm/hooks/responseHeadersHook.d.ts +15 -0
  117. package/esm/hooks/responseHeadersHook.d.ts.map +1 -0
  118. package/esm/hooks/responseHeadersHook.js +83 -0
  119. package/esm/hooks/responseHeadersHook.js.map +1 -0
  120. package/esm/hooks/types.d.ts.map +1 -1
  121. package/esm/hooks/types.js +1 -0
  122. package/esm/hooks/types.js.map +1 -1
  123. package/esm/landing-page.d.ts.map +1 -1
  124. package/esm/landing-page.js +10 -3
  125. package/esm/landing-page.js.map +1 -1
  126. package/esm/lib/base64.d.ts.map +1 -1
  127. package/esm/lib/base64.js +1 -0
  128. package/esm/lib/base64.js.map +1 -1
  129. package/esm/lib/config.d.ts +4 -4
  130. package/esm/lib/config.d.ts.map +1 -1
  131. package/esm/lib/config.js +5 -4
  132. package/esm/lib/config.js.map +1 -1
  133. package/esm/lib/encodings.d.ts +1 -0
  134. package/esm/lib/encodings.d.ts.map +1 -1
  135. package/esm/lib/encodings.js +28 -6
  136. package/esm/lib/encodings.js.map +1 -1
  137. package/esm/lib/env.d.ts.map +1 -1
  138. package/esm/lib/env.js +3 -2
  139. package/esm/lib/env.js.map +1 -1
  140. package/esm/lib/files.d.ts +13 -0
  141. package/esm/lib/files.d.ts.map +1 -1
  142. package/esm/lib/files.js +19 -0
  143. package/esm/lib/files.js.map +1 -1
  144. package/esm/lib/http.d.ts +1 -1
  145. package/esm/lib/http.d.ts.map +1 -1
  146. package/esm/lib/http.js +2 -1
  147. package/esm/lib/http.js.map +1 -1
  148. package/esm/lib/logger.d.ts.map +1 -1
  149. package/esm/lib/logger.js +1 -0
  150. package/esm/lib/logger.js.map +1 -1
  151. package/esm/lib/primitives.d.ts +1 -0
  152. package/esm/lib/primitives.d.ts.map +1 -1
  153. package/esm/lib/primitives.js +18 -0
  154. package/esm/lib/primitives.js.map +1 -1
  155. package/esm/lib/result.d.ts.map +1 -1
  156. package/esm/lib/result.js +1 -0
  157. package/esm/lib/result.js.map +1 -1
  158. package/esm/lib/retries.d.ts.map +1 -1
  159. package/esm/lib/retries.js +8 -0
  160. package/esm/lib/retries.js.map +1 -1
  161. package/esm/lib/schemas.d.ts.map +1 -1
  162. package/esm/lib/schemas.js +1 -0
  163. package/esm/lib/schemas.js.map +1 -1
  164. package/esm/lib/sdks.d.ts.map +1 -1
  165. package/esm/lib/sdks.js +1 -2
  166. package/esm/lib/sdks.js.map +1 -1
  167. package/esm/lib/security.d.ts +6 -5
  168. package/esm/lib/security.d.ts.map +1 -1
  169. package/esm/lib/security.js +34 -22
  170. package/esm/lib/security.js.map +1 -1
  171. package/esm/lib/url.d.ts.map +1 -1
  172. package/esm/lib/url.js +1 -0
  173. package/esm/lib/url.js.map +1 -1
  174. package/esm/mcp-server/cli/serve/command.d.ts.map +1 -1
  175. package/esm/mcp-server/cli/serve/command.js +8 -1
  176. package/esm/mcp-server/cli/serve/command.js.map +1 -1
  177. package/esm/mcp-server/cli/serve/impl.d.ts.map +1 -1
  178. package/esm/mcp-server/cli/serve/impl.js +4 -1
  179. package/esm/mcp-server/cli/serve/impl.js.map +1 -1
  180. package/esm/mcp-server/cli/start/command.d.ts.map +1 -1
  181. package/esm/mcp-server/cli/start/command.js +8 -1
  182. package/esm/mcp-server/cli/start/command.js.map +1 -1
  183. package/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
  184. package/esm/mcp-server/cli/start/impl.js +4 -0
  185. package/esm/mcp-server/cli/start/impl.js.map +1 -1
  186. package/esm/mcp-server/cli.d.ts.map +1 -1
  187. package/esm/mcp-server/cli.js +1 -0
  188. package/esm/mcp-server/cli.js.map +1 -1
  189. package/esm/mcp-server/console-logger.d.ts.map +1 -1
  190. package/esm/mcp-server/console-logger.js +1 -0
  191. package/esm/mcp-server/console-logger.js.map +1 -1
  192. package/esm/mcp-server/extensions.d.ts.map +1 -1
  193. package/esm/mcp-server/extensions.js +1 -0
  194. package/esm/mcp-server/extensions.js.map +1 -1
  195. package/esm/mcp-server/flags.d.ts +1 -0
  196. package/esm/mcp-server/flags.d.ts.map +1 -1
  197. package/esm/mcp-server/flags.js +1 -0
  198. package/esm/mcp-server/flags.js.map +1 -1
  199. package/esm/mcp-server/mcp-server.d.ts.map +1 -1
  200. package/esm/mcp-server/mcp-server.js +2 -1
  201. package/esm/mcp-server/mcp-server.js.map +1 -1
  202. package/esm/mcp-server/prompts.d.ts.map +1 -1
  203. package/esm/mcp-server/prompts.js +1 -0
  204. package/esm/mcp-server/prompts.js.map +1 -1
  205. package/esm/mcp-server/resources.d.ts.map +1 -1
  206. package/esm/mcp-server/resources.js +1 -0
  207. package/esm/mcp-server/resources.js.map +1 -1
  208. package/esm/mcp-server/scopes.d.ts.map +1 -1
  209. package/esm/mcp-server/scopes.js +1 -0
  210. package/esm/mcp-server/scopes.js.map +1 -1
  211. package/esm/mcp-server/server-info.d.ts +4 -0
  212. package/esm/mcp-server/server-info.d.ts.map +1 -0
  213. package/esm/mcp-server/server-info.js +24 -0
  214. package/esm/mcp-server/server-info.js.map +1 -0
  215. package/esm/mcp-server/server.d.ts +2 -0
  216. package/esm/mcp-server/server.d.ts.map +1 -1
  217. package/esm/mcp-server/server.js +7 -4
  218. package/esm/mcp-server/server.js.map +1 -1
  219. package/esm/mcp-server/shared.d.ts.map +1 -1
  220. package/esm/mcp-server/shared.js +1 -0
  221. package/esm/mcp-server/shared.js.map +1 -1
  222. package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.d.ts.map +1 -1
  223. package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.js +2 -1
  224. package/esm/mcp-server/tools/streamingProfilesCreateStreamingProfile.js.map +1 -1
  225. package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.d.ts.map +1 -1
  226. package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.js +2 -1
  227. package/esm/mcp-server/tools/streamingProfilesDeleteStreamingProfile.js.map +1 -1
  228. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.d.ts.map +1 -1
  229. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.js +2 -1
  230. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfile.js.map +1 -1
  231. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.d.ts.map +1 -1
  232. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.js +1 -0
  233. package/esm/mcp-server/tools/streamingProfilesGetStreamingProfiles.js.map +1 -1
  234. package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.d.ts.map +1 -1
  235. package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.js +3 -2
  236. package/esm/mcp-server/tools/streamingProfilesUpdateStreamingProfile.js.map +1 -1
  237. package/esm/mcp-server/tools/transformationsCreateTransformation.d.ts.map +1 -1
  238. package/esm/mcp-server/tools/transformationsCreateTransformation.js +4 -3
  239. package/esm/mcp-server/tools/transformationsCreateTransformation.js.map +1 -1
  240. package/esm/mcp-server/tools/transformationsDeleteTransformation.d.ts.map +1 -1
  241. package/esm/mcp-server/tools/transformationsDeleteTransformation.js +1 -0
  242. package/esm/mcp-server/tools/transformationsDeleteTransformation.js.map +1 -1
  243. package/esm/mcp-server/tools/transformationsGetTransformation.d.ts.map +1 -1
  244. package/esm/mcp-server/tools/transformationsGetTransformation.js +1 -0
  245. package/esm/mcp-server/tools/transformationsGetTransformation.js.map +1 -1
  246. package/esm/mcp-server/tools/transformationsListTransformations.d.ts.map +1 -1
  247. package/esm/mcp-server/tools/transformationsListTransformations.js +2 -1
  248. package/esm/mcp-server/tools/transformationsListTransformations.js.map +1 -1
  249. package/esm/mcp-server/tools/transformationsUpdateTransformation.d.ts.map +1 -1
  250. package/esm/mcp-server/tools/transformationsUpdateTransformation.js +4 -3
  251. package/esm/mcp-server/tools/transformationsUpdateTransformation.js.map +1 -1
  252. package/esm/mcp-server/tools/triggersCreateTrigger.d.ts +1 -1
  253. package/esm/mcp-server/tools/triggersCreateTrigger.d.ts.map +1 -1
  254. package/esm/mcp-server/tools/triggersCreateTrigger.js +3 -2
  255. package/esm/mcp-server/tools/triggersCreateTrigger.js.map +1 -1
  256. package/esm/mcp-server/tools/triggersDeleteTrigger.d.ts.map +1 -1
  257. package/esm/mcp-server/tools/triggersDeleteTrigger.js +2 -1
  258. package/esm/mcp-server/tools/triggersDeleteTrigger.js.map +1 -1
  259. package/esm/mcp-server/tools/triggersListTrigger.d.ts +30 -2
  260. package/esm/mcp-server/tools/triggersListTrigger.d.ts.map +1 -1
  261. package/esm/mcp-server/tools/triggersListTrigger.js +4 -3
  262. package/esm/mcp-server/tools/triggersListTrigger.js.map +1 -1
  263. package/esm/mcp-server/tools/triggersTestTrigger.d.ts +1 -1
  264. package/esm/mcp-server/tools/triggersTestTrigger.d.ts.map +1 -1
  265. package/esm/mcp-server/tools/triggersTestTrigger.js +6 -5
  266. package/esm/mcp-server/tools/triggersTestTrigger.js.map +1 -1
  267. package/esm/mcp-server/tools/triggersUpdateTrigger.d.ts +1 -1
  268. package/esm/mcp-server/tools/triggersUpdateTrigger.d.ts.map +1 -1
  269. package/esm/mcp-server/tools/triggersUpdateTrigger.js +5 -4
  270. package/esm/mcp-server/tools/triggersUpdateTrigger.js.map +1 -1
  271. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.d.ts +1 -1
  272. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.d.ts.map +1 -1
  273. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.js +3 -2
  274. package/esm/mcp-server/tools/uploadMappingsCreateUploadMapping.js.map +1 -1
  275. package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.d.ts.map +1 -1
  276. package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.js +1 -0
  277. package/esm/mcp-server/tools/uploadMappingsDeleteUploadMapping.js.map +1 -1
  278. package/esm/mcp-server/tools/uploadMappingsListUploadMappings.d.ts.map +1 -1
  279. package/esm/mcp-server/tools/uploadMappingsListUploadMappings.js +1 -0
  280. package/esm/mcp-server/tools/uploadMappingsListUploadMappings.js.map +1 -1
  281. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.d.ts +1 -1
  282. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.d.ts.map +1 -1
  283. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.js +4 -3
  284. package/esm/mcp-server/tools/uploadMappingsUpdateUploadMapping.js.map +1 -1
  285. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.d.ts +1 -1
  286. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.d.ts.map +1 -1
  287. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.js +3 -2
  288. package/esm/mcp-server/tools/uploadPresetsCreateUploadPreset.js.map +1 -1
  289. package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.d.ts.map +1 -1
  290. package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.js +2 -1
  291. package/esm/mcp-server/tools/uploadPresetsDeleteUploadPreset.js.map +1 -1
  292. package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.d.ts.map +1 -1
  293. package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.js +2 -1
  294. package/esm/mcp-server/tools/uploadPresetsGetUploadPreset.js.map +1 -1
  295. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.d.ts +2 -1
  296. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.d.ts.map +1 -1
  297. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.js +7 -4
  298. package/esm/mcp-server/tools/uploadPresetsListUploadPresets.js.map +1 -1
  299. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.d.ts +1 -1
  300. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.d.ts.map +1 -1
  301. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.js +5 -4
  302. package/esm/mcp-server/tools/uploadPresetsUpdateUploadPreset.js.map +1 -1
  303. package/esm/mcp-server/tools.d.ts +8 -1
  304. package/esm/mcp-server/tools.d.ts.map +1 -1
  305. package/esm/mcp-server/tools.js +59 -10
  306. package/esm/mcp-server/tools.js.map +1 -1
  307. package/esm/models/accesscontrolitem.d.ts +12 -2
  308. package/esm/models/accesscontrolitem.d.ts.map +1 -1
  309. package/esm/models/accesscontrolitem.js +19 -4
  310. package/esm/models/accesscontrolitem.js.map +1 -1
  311. package/esm/models/apierror.d.ts.map +1 -1
  312. package/esm/models/apierror.js +1 -0
  313. package/esm/models/apierror.js.map +1 -1
  314. package/esm/models/assetdeliverytype.d.ts +16 -0
  315. package/esm/models/assetdeliverytype.d.ts.map +1 -0
  316. package/esm/models/assetdeliverytype.js +15 -0
  317. package/esm/models/assetdeliverytype.js.map +1 -0
  318. package/esm/models/createrequest.d.ts.map +1 -1
  319. package/esm/models/createrequest.js +3 -2
  320. package/esm/models/createrequest.js.map +1 -1
  321. package/esm/models/createstreamingprofileop.d.ts +2 -9
  322. package/esm/models/createstreamingprofileop.d.ts.map +1 -1
  323. package/esm/models/createstreamingprofileop.js +3 -5
  324. package/esm/models/createstreamingprofileop.js.map +1 -1
  325. package/esm/models/createtransformationop.d.ts +2 -8
  326. package/esm/models/createtransformationop.d.ts.map +1 -1
  327. package/esm/models/createtransformationop.js +5 -6
  328. package/esm/models/createtransformationop.js.map +1 -1
  329. package/esm/models/createtriggerop.d.ts +0 -5
  330. package/esm/models/createtriggerop.d.ts.map +1 -1
  331. package/esm/models/createtriggerop.js +1 -5
  332. package/esm/models/createtriggerop.js.map +1 -1
  333. package/esm/models/createtriggerrequest.d.ts +8 -0
  334. package/esm/models/createtriggerrequest.d.ts.map +1 -0
  335. package/esm/models/createtriggerrequest.js +12 -0
  336. package/esm/models/createtriggerrequest.js.map +1 -0
  337. package/esm/models/createuploadmappingop.d.ts +2 -15
  338. package/esm/models/createuploadmappingop.d.ts.map +1 -1
  339. package/esm/models/createuploadmappingop.js +3 -10
  340. package/esm/models/createuploadmappingop.js.map +1 -1
  341. package/esm/models/createuploadpresetop.d.ts +2 -10
  342. package/esm/models/createuploadpresetop.d.ts.map +1 -1
  343. package/esm/models/createuploadpresetop.js +3 -6
  344. package/esm/models/createuploadpresetop.js.map +1 -1
  345. package/esm/models/deletestreamingprofileop.d.ts +2 -8
  346. package/esm/models/deletestreamingprofileop.d.ts.map +1 -1
  347. package/esm/models/deletestreamingprofileop.js +4 -5
  348. package/esm/models/deletestreamingprofileop.js.map +1 -1
  349. package/esm/models/deletetransformationop.d.ts +2 -8
  350. package/esm/models/deletetransformationop.d.ts.map +1 -1
  351. package/esm/models/deletetransformationop.js +3 -4
  352. package/esm/models/deletetransformationop.js.map +1 -1
  353. package/esm/models/deletetriggerop.d.ts +2 -8
  354. package/esm/models/deletetriggerop.d.ts.map +1 -1
  355. package/esm/models/deletetriggerop.js +4 -5
  356. package/esm/models/deletetriggerop.js.map +1 -1
  357. package/esm/models/deleteuploadmappingop.d.ts +2 -9
  358. package/esm/models/deleteuploadmappingop.d.ts.map +1 -1
  359. package/esm/models/deleteuploadmappingop.js +3 -5
  360. package/esm/models/deleteuploadmappingop.js.map +1 -1
  361. package/esm/models/deleteuploadpresetop.d.ts +2 -9
  362. package/esm/models/deleteuploadpresetop.d.ts.map +1 -1
  363. package/esm/models/deleteuploadpresetop.js +4 -6
  364. package/esm/models/deleteuploadpresetop.js.map +1 -1
  365. package/esm/models/directionenum.d.ts +18 -0
  366. package/esm/models/directionenum.d.ts.map +1 -0
  367. package/esm/models/directionenum.js +17 -0
  368. package/esm/models/directionenum.js.map +1 -0
  369. package/esm/models/errors/apierror.d.ts.map +1 -1
  370. package/esm/models/errors/apierror.js +1 -0
  371. package/esm/models/errors/apierror.js.map +1 -1
  372. package/esm/models/errors/httpclienterrors.d.ts.map +1 -1
  373. package/esm/models/errors/httpclienterrors.js +1 -0
  374. package/esm/models/errors/httpclienterrors.js.map +1 -1
  375. package/esm/models/errors/sdkvalidationerror.d.ts.map +1 -1
  376. package/esm/models/errors/sdkvalidationerror.js +1 -0
  377. package/esm/models/errors/sdkvalidationerror.js.map +1 -1
  378. package/esm/models/eventtype.d.ts +70 -0
  379. package/esm/models/eventtype.d.ts.map +1 -0
  380. package/esm/models/eventtype.js +69 -0
  381. package/esm/models/eventtype.js.map +1 -0
  382. package/esm/models/getstreamingprofileop.d.ts +2 -9
  383. package/esm/models/getstreamingprofileop.d.ts.map +1 -1
  384. package/esm/models/getstreamingprofileop.js +4 -6
  385. package/esm/models/getstreamingprofileop.js.map +1 -1
  386. package/esm/models/getstreamingprofilesop.d.ts +2 -9
  387. package/esm/models/getstreamingprofilesop.d.ts.map +1 -1
  388. package/esm/models/getstreamingprofilesop.js +3 -5
  389. package/esm/models/getstreamingprofilesop.js.map +1 -1
  390. package/esm/models/gettransformationop.d.ts.map +1 -1
  391. package/esm/models/gettransformationop.js +1 -0
  392. package/esm/models/gettransformationop.js.map +1 -1
  393. package/esm/models/getuploadpresetop.d.ts +2 -2
  394. package/esm/models/getuploadpresetop.d.ts.map +1 -1
  395. package/esm/models/getuploadpresetop.js +4 -3
  396. package/esm/models/getuploadpresetop.js.map +1 -1
  397. package/esm/models/listtransformationsop.d.ts +2 -2
  398. package/esm/models/listtransformationsop.d.ts.map +1 -1
  399. package/esm/models/listtransformationsop.js +3 -2
  400. package/esm/models/listtransformationsop.js.map +1 -1
  401. package/esm/models/listtriggerop.d.ts +4 -11
  402. package/esm/models/listtriggerop.d.ts.map +1 -1
  403. package/esm/models/listtriggerop.js +5 -7
  404. package/esm/models/listtriggerop.js.map +1 -1
  405. package/esm/models/listuploadmappingsop.d.ts +3 -11
  406. package/esm/models/listuploadmappingsop.d.ts.map +1 -1
  407. package/esm/models/listuploadmappingsop.js +4 -7
  408. package/esm/models/listuploadmappingsop.js.map +1 -1
  409. package/esm/models/listuploadpresetsop.d.ts +16 -24
  410. package/esm/models/listuploadpresetsop.d.ts.map +1 -1
  411. package/esm/models/listuploadpresetsop.js +17 -22
  412. package/esm/models/listuploadpresetsop.js.map +1 -1
  413. package/esm/models/manageddeliverytype.d.ts +20 -0
  414. package/esm/models/manageddeliverytype.d.ts.map +1 -0
  415. package/esm/models/manageddeliverytype.js +19 -0
  416. package/esm/models/manageddeliverytype.js.map +1 -0
  417. package/esm/models/messageresponse.d.ts +6 -0
  418. package/esm/models/messageresponse.d.ts.map +1 -0
  419. package/esm/models/messageresponse.js +9 -0
  420. package/esm/models/messageresponse.js.map +1 -0
  421. package/esm/models/replaceuploadmappingsop.d.ts +2 -17
  422. package/esm/models/replaceuploadmappingsop.d.ts.map +1 -1
  423. package/esm/models/replaceuploadmappingsop.js +3 -11
  424. package/esm/models/replaceuploadmappingsop.js.map +1 -1
  425. package/esm/models/replaceuploadmappingsrequest.d.ts +7 -0
  426. package/esm/models/replaceuploadmappingsrequest.d.ts.map +1 -0
  427. package/esm/models/replaceuploadmappingsrequest.js +10 -0
  428. package/esm/models/replaceuploadmappingsrequest.js.map +1 -0
  429. package/esm/models/responsivebreakpoint.d.ts +11 -0
  430. package/esm/models/responsivebreakpoint.d.ts.map +1 -0
  431. package/esm/models/responsivebreakpoint.js +15 -0
  432. package/esm/models/responsivebreakpoint.js.map +1 -0
  433. package/esm/models/schemecloudinaryauth.d.ts.map +1 -1
  434. package/esm/models/schemecloudinaryauth.js +1 -0
  435. package/esm/models/schemecloudinaryauth.js.map +1 -1
  436. package/esm/models/security.d.ts.map +1 -1
  437. package/esm/models/security.js +1 -0
  438. package/esm/models/security.js.map +1 -1
  439. package/esm/models/streamingprofile.d.ts.map +1 -1
  440. package/esm/models/streamingprofile.js +8 -6
  441. package/esm/models/streamingprofile.js.map +1 -1
  442. package/esm/models/streamingprofilecreate.d.ts.map +1 -1
  443. package/esm/models/streamingprofilecreate.js +4 -3
  444. package/esm/models/streamingprofilecreate.js.map +1 -1
  445. package/esm/models/streamingprofiledataresponse.d.ts +7 -0
  446. package/esm/models/streamingprofiledataresponse.d.ts.map +1 -0
  447. package/esm/models/streamingprofiledataresponse.js +10 -0
  448. package/esm/models/streamingprofiledataresponse.js.map +1 -0
  449. package/esm/models/streamingprofilelistresponse.d.ts +7 -0
  450. package/esm/models/streamingprofilelistresponse.d.ts.map +1 -0
  451. package/esm/models/streamingprofilelistresponse.js +10 -0
  452. package/esm/models/streamingprofilelistresponse.js.map +1 -0
  453. package/esm/models/streamingprofileupdate.d.ts.map +1 -1
  454. package/esm/models/streamingprofileupdate.js +3 -2
  455. package/esm/models/streamingprofileupdate.js.map +1 -1
  456. package/esm/models/streamingprofileupdateresponse.d.ts +8 -0
  457. package/esm/models/streamingprofileupdateresponse.d.ts.map +1 -0
  458. package/esm/models/streamingprofileupdateresponse.js +11 -0
  459. package/esm/models/streamingprofileupdateresponse.js.map +1 -0
  460. package/esm/models/structuredmetadataparam.d.ts +12 -0
  461. package/esm/models/structuredmetadataparam.d.ts.map +1 -0
  462. package/esm/models/structuredmetadataparam.js +11 -0
  463. package/esm/models/structuredmetadataparam.js.map +1 -0
  464. package/esm/models/structuredmetadatavalue.d.ts +4 -0
  465. package/esm/models/structuredmetadatavalue.d.ts.map +1 -0
  466. package/esm/models/structuredmetadatavalue.js +11 -0
  467. package/esm/models/structuredmetadatavalue.js.map +1 -0
  468. package/esm/models/tagsparam.d.ts +7 -0
  469. package/esm/models/tagsparam.d.ts.map +1 -0
  470. package/esm/models/tagsparam.js +10 -0
  471. package/esm/models/tagsparam.js.map +1 -0
  472. package/esm/models/testtriggerop.d.ts +7 -23
  473. package/esm/models/testtriggerop.d.ts.map +1 -1
  474. package/esm/models/testtriggerop.js +8 -17
  475. package/esm/models/testtriggerop.js.map +1 -1
  476. package/esm/models/testtriggerrequest.d.ts +11 -0
  477. package/esm/models/testtriggerrequest.d.ts.map +1 -0
  478. package/esm/models/testtriggerrequest.js +12 -0
  479. package/esm/models/testtriggerrequest.js.map +1 -0
  480. package/esm/models/testtriggerresponse.d.ts +8 -0
  481. package/esm/models/testtriggerresponse.d.ts.map +1 -0
  482. package/esm/models/testtriggerresponse.js +12 -0
  483. package/esm/models/testtriggerresponse.js.map +1 -0
  484. package/esm/models/transformationinfo.d.ts.map +1 -1
  485. package/esm/models/transformationinfo.js +5 -4
  486. package/esm/models/transformationinfo.js.map +1 -1
  487. package/esm/models/{listresponse.d.ts → transformationlistresponse.d.ts} +3 -3
  488. package/esm/models/transformationlistresponse.d.ts.map +1 -0
  489. package/esm/models/{listresponse.js → transformationlistresponse.js} +3 -2
  490. package/esm/models/transformationlistresponse.js.map +1 -0
  491. package/esm/models/transformationsummary.d.ts.map +1 -1
  492. package/esm/models/transformationsummary.js +1 -0
  493. package/esm/models/transformationsummary.js.map +1 -1
  494. package/esm/models/triggerinfo.d.ts +2 -1
  495. package/esm/models/triggerinfo.d.ts.map +1 -1
  496. package/esm/models/triggerinfo.js +3 -1
  497. package/esm/models/triggerinfo.js.map +1 -1
  498. package/esm/models/triggerlistresponse.d.ts +11 -0
  499. package/esm/models/triggerlistresponse.d.ts.map +1 -0
  500. package/esm/models/triggerlistresponse.js +12 -0
  501. package/esm/models/triggerlistresponse.js.map +1 -0
  502. package/esm/models/updaterequest.d.ts.map +1 -1
  503. package/esm/models/updaterequest.js +3 -2
  504. package/esm/models/updaterequest.js.map +1 -1
  505. package/esm/models/updatestreamingprofileop.d.ts +2 -10
  506. package/esm/models/updatestreamingprofileop.d.ts.map +1 -1
  507. package/esm/models/updatestreamingprofileop.js +5 -8
  508. package/esm/models/updatestreamingprofileop.js.map +1 -1
  509. package/esm/models/updatetransformationop.d.ts +2 -8
  510. package/esm/models/updatetransformationop.d.ts.map +1 -1
  511. package/esm/models/updatetransformationop.js +4 -5
  512. package/esm/models/updatetransformationop.js.map +1 -1
  513. package/esm/models/updatetriggerop.d.ts +6 -15
  514. package/esm/models/updatetriggerop.d.ts.map +1 -1
  515. package/esm/models/updatetriggerop.js +7 -11
  516. package/esm/models/updatetriggerop.js.map +1 -1
  517. package/esm/models/updatetriggerrequest.d.ts +6 -0
  518. package/esm/models/updatetriggerrequest.d.ts.map +1 -0
  519. package/esm/models/updatetriggerrequest.js +10 -0
  520. package/esm/models/updatetriggerrequest.js.map +1 -0
  521. package/esm/models/updateuploadmappingop.d.ts +2 -14
  522. package/esm/models/updateuploadmappingop.d.ts.map +1 -1
  523. package/esm/models/updateuploadmappingop.js +3 -9
  524. package/esm/models/updateuploadmappingop.js.map +1 -1
  525. package/esm/models/updateuploadpresetop.d.ts +4 -11
  526. package/esm/models/updateuploadpresetop.d.ts.map +1 -1
  527. package/esm/models/updateuploadpresetop.js +6 -8
  528. package/esm/models/updateuploadpresetop.js.map +1 -1
  529. package/esm/models/uploaddeliverytype.d.ts +9 -0
  530. package/esm/models/uploaddeliverytype.d.ts.map +1 -0
  531. package/esm/models/uploaddeliverytype.js +13 -0
  532. package/esm/models/uploaddeliverytype.js.map +1 -0
  533. package/esm/models/uploadmapping.d.ts.map +1 -1
  534. package/esm/models/uploadmapping.js +5 -4
  535. package/esm/models/uploadmapping.js.map +1 -1
  536. package/esm/models/uploadmappingcreateresponse.d.ts +8 -0
  537. package/esm/models/uploadmappingcreateresponse.d.ts.map +1 -0
  538. package/esm/models/uploadmappingcreateresponse.js +11 -0
  539. package/esm/models/uploadmappingcreateresponse.js.map +1 -0
  540. package/esm/models/uploadmappinginput.d.ts +7 -0
  541. package/esm/models/uploadmappinginput.d.ts.map +1 -0
  542. package/esm/models/uploadmappinginput.js +11 -0
  543. package/esm/models/uploadmappinginput.js.map +1 -0
  544. package/esm/models/uploadmappinglistresponse.d.ts +12 -0
  545. package/esm/models/uploadmappinglistresponse.d.ts.map +1 -0
  546. package/esm/models/uploadmappinglistresponse.js +12 -0
  547. package/esm/models/uploadmappinglistresponse.js.map +1 -0
  548. package/esm/models/uploadmappingmutationresponse.d.ts +7 -0
  549. package/esm/models/uploadmappingmutationresponse.d.ts.map +1 -0
  550. package/esm/models/uploadmappingmutationresponse.js +10 -0
  551. package/esm/models/uploadmappingmutationresponse.js.map +1 -0
  552. package/esm/models/uploadpresetcreateresponse.d.ts +8 -0
  553. package/esm/models/uploadpresetcreateresponse.d.ts.map +1 -0
  554. package/esm/models/uploadpresetcreateresponse.js +11 -0
  555. package/esm/models/uploadpresetcreateresponse.js.map +1 -0
  556. package/esm/models/uploadpresetdetail.d.ts +13 -0
  557. package/esm/models/uploadpresetdetail.d.ts.map +1 -0
  558. package/esm/models/uploadpresetdetail.js +14 -0
  559. package/esm/models/uploadpresetdetail.js.map +1 -0
  560. package/esm/models/{uploadpreset.d.ts → uploadpresetinput.d.ts} +81 -83
  561. package/esm/models/uploadpresetinput.d.ts.map +1 -0
  562. package/esm/models/uploadpresetinput.js +129 -0
  563. package/esm/models/uploadpresetinput.js.map +1 -0
  564. package/esm/models/uploadpresetlistresponse.d.ts +8 -0
  565. package/esm/models/uploadpresetlistresponse.d.ts.map +1 -0
  566. package/esm/models/uploadpresetlistresponse.js +11 -0
  567. package/esm/models/uploadpresetlistresponse.js.map +1 -0
  568. package/esm/models/uploadpresetmutationresponse.d.ts +7 -0
  569. package/esm/models/uploadpresetmutationresponse.d.ts.map +1 -0
  570. package/esm/models/uploadpresetmutationresponse.js +10 -0
  571. package/esm/models/uploadpresetmutationresponse.js.map +1 -0
  572. package/esm/models/uploadpresetparsedsettings.d.ts +129 -0
  573. package/esm/models/uploadpresetparsedsettings.d.ts.map +1 -0
  574. package/esm/models/uploadpresetparsedsettings.js +110 -0
  575. package/esm/models/uploadpresetparsedsettings.js.map +1 -0
  576. package/esm/models/uploadpresetsummary.d.ts +16 -0
  577. package/esm/models/uploadpresetsummary.d.ts.map +1 -0
  578. package/esm/models/uploadpresetsummary.js +20 -0
  579. package/esm/models/uploadpresetsummary.js.map +1 -0
  580. package/esm/models/uritype.d.ts.map +1 -1
  581. package/esm/models/uritype.js +1 -0
  582. package/esm/models/uritype.js.map +1 -1
  583. package/esm/tool-names.js +5 -5
  584. package/esm/tool-names.js.map +1 -1
  585. package/esm/types/async.d.ts.map +1 -1
  586. package/esm/types/async.js +7 -6
  587. package/esm/types/async.js.map +1 -1
  588. package/esm/types/bigint.d.ts.map +1 -1
  589. package/esm/types/bigint.js +5 -3
  590. package/esm/types/bigint.js.map +1 -1
  591. package/esm/types/blobs.d.ts.map +1 -1
  592. package/esm/types/blobs.js +1 -0
  593. package/esm/types/blobs.js.map +1 -1
  594. package/esm/types/enums.d.ts.map +1 -1
  595. package/esm/types/enums.js +1 -0
  596. package/esm/types/enums.js.map +1 -1
  597. package/esm/types/fp.d.ts.map +1 -1
  598. package/esm/types/fp.js +1 -0
  599. package/esm/types/fp.js.map +1 -1
  600. package/esm/types/rfcdate.d.ts.map +1 -1
  601. package/esm/types/rfcdate.js +1 -0
  602. package/esm/types/rfcdate.js.map +1 -1
  603. package/esm/types/streams.d.ts.map +1 -1
  604. package/esm/types/streams.js +1 -0
  605. package/esm/types/streams.js.map +1 -1
  606. package/package.json +13 -3
  607. package/src/core.ts +1 -0
  608. package/src/funcs/streamingProfilesCreateStreamingProfile.ts +1 -0
  609. package/src/funcs/streamingProfilesDeleteStreamingProfile.ts +1 -0
  610. package/src/funcs/streamingProfilesGetStreamingProfile.ts +1 -0
  611. package/src/funcs/streamingProfilesGetStreamingProfiles.ts +1 -0
  612. package/src/funcs/streamingProfilesUpdateStreamingProfile.ts +1 -0
  613. package/src/funcs/transformationsCreateTransformation.ts +2 -1
  614. package/src/funcs/transformationsDeleteTransformation.ts +1 -0
  615. package/src/funcs/transformationsGetTransformation.ts +1 -0
  616. package/src/funcs/transformationsListTransformations.ts +2 -1
  617. package/src/funcs/transformationsUpdateTransformation.ts +3 -2
  618. package/src/funcs/triggersCreateTrigger.ts +2 -1
  619. package/src/funcs/triggersDeleteTrigger.ts +1 -0
  620. package/src/funcs/triggersListTrigger.ts +5 -3
  621. package/src/funcs/triggersTestTrigger.ts +13 -10
  622. package/src/funcs/triggersUpdateTrigger.ts +13 -10
  623. package/src/funcs/uploadMappingsCreateUploadMapping.ts +8 -7
  624. package/src/funcs/uploadMappingsDeleteUploadMapping.ts +1 -0
  625. package/src/funcs/uploadMappingsListUploadMappings.ts +1 -0
  626. package/src/funcs/uploadMappingsReplaceUploadMappings.ts +2 -1
  627. package/src/funcs/uploadMappingsUpdateUploadMapping.ts +8 -7
  628. package/src/funcs/uploadPresetsCreateUploadPreset.ts +7 -6
  629. package/src/funcs/uploadPresetsDeleteUploadPreset.ts +1 -0
  630. package/src/funcs/uploadPresetsGetUploadPreset.ts +1 -0
  631. package/src/funcs/uploadPresetsListUploadPresets.ts +9 -3
  632. package/src/funcs/uploadPresetsUpdateUploadPreset.ts +9 -6
  633. package/src/hooks/cloudConfig.ts +41 -0
  634. package/src/hooks/cloudinaryAuthHook.ts +59 -212
  635. package/src/hooks/customHeadersHook.ts +30 -0
  636. package/src/hooks/hooks.ts +1 -0
  637. package/src/hooks/oauth2scopes.ts +1 -0
  638. package/src/hooks/registration.ts +10 -8
  639. package/src/hooks/responseHeadersHook.ts +98 -0
  640. package/src/hooks/types.ts +1 -0
  641. package/src/landing-page.ts +10 -3
  642. package/src/lib/base64.ts +1 -0
  643. package/src/lib/config.ts +5 -4
  644. package/src/lib/encodings.ts +34 -5
  645. package/src/lib/env.ts +7 -3
  646. package/src/lib/files.ts +23 -0
  647. package/src/lib/http.ts +4 -1
  648. package/src/lib/logger.ts +1 -0
  649. package/src/lib/primitives.ts +17 -0
  650. package/src/lib/result.ts +1 -0
  651. package/src/lib/retries.ts +9 -0
  652. package/src/lib/schemas.ts +1 -0
  653. package/src/lib/sdks.ts +1 -2
  654. package/src/lib/security.ts +25 -7
  655. package/src/lib/url.ts +1 -0
  656. package/src/mcp-server/cli/serve/command.ts +9 -1
  657. package/src/mcp-server/cli/serve/impl.ts +4 -1
  658. package/src/mcp-server/cli/start/command.ts +9 -1
  659. package/src/mcp-server/cli/start/impl.ts +4 -0
  660. package/src/mcp-server/cli.ts +1 -0
  661. package/src/mcp-server/console-logger.ts +1 -0
  662. package/src/mcp-server/extensions.ts +1 -0
  663. package/src/mcp-server/flags.ts +2 -0
  664. package/src/mcp-server/mcp-server.ts +2 -1
  665. package/src/mcp-server/prompts.ts +1 -0
  666. package/src/mcp-server/resources.ts +1 -0
  667. package/src/mcp-server/scopes.ts +1 -0
  668. package/src/mcp-server/server-info.ts +31 -0
  669. package/src/mcp-server/server.ts +12 -3
  670. package/src/mcp-server/shared.ts +1 -0
  671. package/src/mcp-server/tools/streamingProfilesCreateStreamingProfile.ts +4 -1
  672. package/src/mcp-server/tools/streamingProfilesDeleteStreamingProfile.ts +2 -1
  673. package/src/mcp-server/tools/streamingProfilesGetStreamingProfile.ts +2 -1
  674. package/src/mcp-server/tools/streamingProfilesGetStreamingProfiles.ts +1 -0
  675. package/src/mcp-server/tools/streamingProfilesUpdateStreamingProfile.ts +5 -2
  676. package/src/mcp-server/tools/transformationsCreateTransformation.ts +6 -3
  677. package/src/mcp-server/tools/transformationsDeleteTransformation.ts +1 -0
  678. package/src/mcp-server/tools/transformationsGetTransformation.ts +1 -0
  679. package/src/mcp-server/tools/transformationsListTransformations.ts +2 -1
  680. package/src/mcp-server/tools/transformationsUpdateTransformation.ts +6 -3
  681. package/src/mcp-server/tools/triggersCreateTrigger.ts +5 -2
  682. package/src/mcp-server/tools/triggersDeleteTrigger.ts +2 -1
  683. package/src/mcp-server/tools/triggersListTrigger.ts +6 -5
  684. package/src/mcp-server/tools/triggersTestTrigger.ts +8 -5
  685. package/src/mcp-server/tools/triggersUpdateTrigger.ts +7 -4
  686. package/src/mcp-server/tools/uploadMappingsCreateUploadMapping.ts +5 -2
  687. package/src/mcp-server/tools/uploadMappingsDeleteUploadMapping.ts +1 -0
  688. package/src/mcp-server/tools/uploadMappingsListUploadMappings.ts +1 -0
  689. package/src/mcp-server/tools/uploadMappingsUpdateUploadMapping.ts +6 -3
  690. package/src/mcp-server/tools/uploadPresetsCreateUploadPreset.ts +5 -2
  691. package/src/mcp-server/tools/uploadPresetsDeleteUploadPreset.ts +2 -1
  692. package/src/mcp-server/tools/uploadPresetsGetUploadPreset.ts +2 -1
  693. package/src/mcp-server/tools/uploadPresetsListUploadPresets.ts +13 -6
  694. package/src/mcp-server/tools/uploadPresetsUpdateUploadPreset.ts +7 -4
  695. package/src/mcp-server/tools.ts +86 -10
  696. package/src/models/accesscontrolitem.ts +45 -6
  697. package/src/models/apierror.ts +1 -0
  698. package/src/models/assetdeliverytype.ts +22 -0
  699. package/src/models/createrequest.ts +5 -2
  700. package/src/models/createstreamingprofileop.ts +6 -16
  701. package/src/models/createtransformationop.ts +11 -17
  702. package/src/models/createtriggerop.ts +1 -8
  703. package/src/models/createtriggerrequest.ts +17 -0
  704. package/src/models/createuploadmappingop.ts +7 -28
  705. package/src/models/createuploadpresetop.ts +7 -21
  706. package/src/models/deletestreamingprofileop.ts +8 -16
  707. package/src/models/deletetransformationop.ts +7 -15
  708. package/src/models/deletetriggerop.ts +8 -14
  709. package/src/models/deleteuploadmappingop.ts +7 -17
  710. package/src/models/deleteuploadpresetop.ts +8 -18
  711. package/src/models/directionenum.ts +24 -0
  712. package/src/models/errors/apierror.ts +1 -0
  713. package/src/models/errors/httpclienterrors.ts +1 -0
  714. package/src/models/errors/sdkvalidationerror.ts +1 -0
  715. package/src/models/eventtype.ts +76 -0
  716. package/src/models/getstreamingprofileop.ts +7 -17
  717. package/src/models/getstreamingprofilesop.ts +6 -18
  718. package/src/models/gettransformationop.ts +1 -0
  719. package/src/models/getuploadpresetop.ts +8 -4
  720. package/src/models/listtransformationsop.ts +7 -3
  721. package/src/models/listtriggerop.ts +11 -21
  722. package/src/models/listuploadmappingsop.ts +11 -19
  723. package/src/models/listuploadpresetsop.ts +35 -40
  724. package/src/models/manageddeliverytype.ts +28 -0
  725. package/src/models/messageresponse.ts +12 -0
  726. package/src/models/replaceuploadmappingsop.ts +7 -30
  727. package/src/models/replaceuploadmappingsrequest.ts +20 -0
  728. package/src/models/responsivebreakpoint.ts +37 -0
  729. package/src/models/schemecloudinaryauth.ts +1 -0
  730. package/src/models/security.ts +1 -0
  731. package/src/models/streamingprofile.ts +16 -6
  732. package/src/models/streamingprofilecreate.ts +8 -3
  733. package/src/models/streamingprofiledataresponse.ts +18 -0
  734. package/src/models/streamingprofilelistresponse.ts +18 -0
  735. package/src/models/streamingprofileupdate.ts +7 -2
  736. package/src/models/streamingprofileupdateresponse.ts +22 -0
  737. package/src/models/structuredmetadataparam.ts +28 -0
  738. package/src/models/structuredmetadatavalue.ts +16 -0
  739. package/src/models/tagsparam.ts +16 -0
  740. package/src/models/testtriggerop.ts +25 -45
  741. package/src/models/testtriggerrequest.ts +23 -0
  742. package/src/models/testtriggerresponse.ts +23 -0
  743. package/src/models/transformationinfo.ts +13 -4
  744. package/src/models/{listresponse.ts → transformationlistresponse.ts} +5 -2
  745. package/src/models/transformationsummary.ts +1 -0
  746. package/src/models/triggerinfo.ts +6 -2
  747. package/src/models/triggerlistresponse.ts +23 -0
  748. package/src/models/updaterequest.ts +7 -2
  749. package/src/models/updatestreamingprofileop.ts +11 -23
  750. package/src/models/updatetransformationop.ts +10 -16
  751. package/src/models/updatetriggerop.ts +20 -27
  752. package/src/models/updatetriggerrequest.ts +15 -0
  753. package/src/models/updateuploadmappingop.ts +7 -26
  754. package/src/models/updateuploadpresetop.ts +16 -21
  755. package/src/models/uploaddeliverytype.ts +25 -0
  756. package/src/models/uploadmapping.ts +7 -4
  757. package/src/models/uploadmappingcreateresponse.ts +20 -0
  758. package/src/models/uploadmappinginput.ts +14 -0
  759. package/src/models/uploadmappinglistresponse.ts +28 -0
  760. package/src/models/uploadmappingmutationresponse.ts +18 -0
  761. package/src/models/uploadpresetcreateresponse.ts +22 -0
  762. package/src/models/uploadpresetdetail.ts +36 -0
  763. package/src/models/uploadpresetinput.ts +414 -0
  764. package/src/models/uploadpresetlistresponse.ts +24 -0
  765. package/src/models/uploadpresetmutationresponse.ts +22 -0
  766. package/src/models/uploadpresetparsedsettings.ts +369 -0
  767. package/src/models/uploadpresetsummary.ts +45 -0
  768. package/src/models/uritype.ts +1 -0
  769. package/src/tool-names.ts +5 -5
  770. package/src/types/async.ts +9 -7
  771. package/src/types/bigint.ts +19 -17
  772. package/src/types/blobs.ts +1 -0
  773. package/src/types/enums.ts +1 -0
  774. package/src/types/fp.ts +1 -0
  775. package/src/types/rfcdate.ts +1 -0
  776. package/src/types/streams.ts +1 -0
  777. package/esm/lib/dlv.d.ts +0 -14
  778. package/esm/lib/dlv.d.ts.map +0 -1
  779. package/esm/lib/dlv.js +0 -46
  780. package/esm/lib/dlv.js.map +0 -1
  781. package/esm/lib/is-plain-object.d.ts +0 -2
  782. package/esm/lib/is-plain-object.d.ts.map +0 -1
  783. package/esm/lib/is-plain-object.js +0 -38
  784. package/esm/lib/is-plain-object.js.map +0 -1
  785. package/esm/models/listresponse.d.ts.map +0 -1
  786. package/esm/models/listresponse.js.map +0 -1
  787. package/esm/models/uploadpreset.d.ts.map +0 -1
  788. package/esm/models/uploadpreset.js +0 -134
  789. package/esm/models/uploadpreset.js.map +0 -1
  790. package/src/lib/dlv.ts +0 -53
  791. package/src/lib/is-plain-object.ts +0 -43
  792. package/src/models/uploadpreset.ts +0 -259
@@ -1,5 +1,6 @@
1
1
  /*
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: fd0de75c67bd
3
4
  */
4
5
 
5
6
  import { CloudinaryEnvConfigCore } from "../core.js";
@@ -22,7 +23,7 @@ import {
22
23
  UpdateUploadPresetRequest,
23
24
  UpdateUploadPresetRequest$zodSchema,
24
25
  } from "../models/updateuploadpresetop.js";
25
- import { UploadPreset } from "../models/uploadpreset.js";
26
+ import { UploadPresetInput } from "../models/uploadpresetinput.js";
26
27
  import { APICall, APIPromise } from "../types/async.js";
27
28
  import { Result } from "../types/fp.js";
28
29
 
@@ -32,7 +33,7 @@ import { Result } from "../types/fp.js";
32
33
  export function uploadPresetsUpdateUploadPreset(
33
34
  client$: CloudinaryEnvConfigCore,
34
35
  name: string,
35
- upload_preset: UploadPreset,
36
+ upload_preset_input: UploadPresetInput,
36
37
  options?: RequestOptions,
37
38
  ): APIPromise<
38
39
  Result<
@@ -49,7 +50,7 @@ export function uploadPresetsUpdateUploadPreset(
49
50
  return new APIPromise($do(
50
51
  client$,
51
52
  name,
52
- upload_preset,
53
+ upload_preset_input,
53
54
  options,
54
55
  ));
55
56
  }
@@ -57,7 +58,7 @@ export function uploadPresetsUpdateUploadPreset(
57
58
  async function $do(
58
59
  client$: CloudinaryEnvConfigCore,
59
60
  name: string,
60
- upload_preset: UploadPreset,
61
+ upload_preset_input: UploadPresetInput,
61
62
  options?: RequestOptions,
62
63
  ): Promise<
63
64
  [
@@ -76,7 +77,7 @@ async function $do(
76
77
  > {
77
78
  const input$: UpdateUploadPresetRequest = {
78
79
  name: name,
79
- upload_preset: upload_preset,
80
+ upload_preset_input: upload_preset_input,
80
81
  };
81
82
 
82
83
  const parsed$ = safeParse(
@@ -88,7 +89,9 @@ async function $do(
88
89
  return [parsed$, { status: "invalid" }];
89
90
  }
90
91
  const payload$ = parsed$.value;
91
- const body$ = encodeJSON("body", payload$.upload_preset, { explode: true });
92
+ const body$ = encodeJSON("body", payload$.upload_preset_input, {
93
+ explode: true,
94
+ });
92
95
 
93
96
  const pathParams$ = {
94
97
  cloud_name: encodeSimple("cloud_name", client$._options.cloud_name, {
@@ -1,12 +1,22 @@
1
+ /**
2
+ * Parsed value for the collect_headers option.
3
+ * - `true` → collect ALL response headers
4
+ * - `string[]` → collect only the listed header names (lowercased)
5
+ * - `[]` → disabled (default)
6
+ */
7
+ export type CollectHeaders = true | string[];
8
+
1
9
  export class CloudConfig {
2
10
  cloudName: string;
3
11
  apiKey: string;
4
12
  apiSecret: string;
13
+ collectHeaders: CollectHeaders;
5
14
 
6
15
  constructor() {
7
16
  this.cloudName = "";
8
17
  this.apiKey = "";
9
18
  this.apiSecret = "";
19
+ this.collectHeaders = [];
10
20
 
11
21
  // Access process through globalThis
12
22
  const process = (globalThis as any)?.process;
@@ -24,6 +34,12 @@ export class CloudConfig {
24
34
  this.cloudName = url.host;
25
35
  this.apiKey = url.username || "";
26
36
  this.apiSecret = url.password || "";
37
+
38
+ // Parse collect_headers from CLOUDINARY_URL query params
39
+ const collectParam = url.searchParams.get("collect_headers");
40
+ if (collectParam) {
41
+ this.collectHeaders = CloudConfig.parseCollectHeaders(collectParam);
42
+ }
27
43
  } catch (error) {
28
44
  throw new Error(`Invalid CLOUDINARY_URL: '${envVar}'`);
29
45
  }
@@ -40,6 +56,13 @@ export class CloudConfig {
40
56
  if (process.env.CLOUDINARY_API_SECRET) {
41
57
  this.apiSecret = process.env.CLOUDINARY_API_SECRET;
42
58
  }
59
+
60
+ // CLOUDINARY_COLLECT_HEADERS takes precedence over CLOUDINARY_URL query param
61
+ if (process.env.CLOUDINARY_COLLECT_HEADERS) {
62
+ this.collectHeaders = CloudConfig.parseCollectHeaders(
63
+ process.env.CLOUDINARY_COLLECT_HEADERS,
64
+ );
65
+ }
43
66
  }
44
67
 
45
68
  // Automatically set CLOUDINARY_CLOUD_NAME if not already set
@@ -48,4 +71,22 @@ export class CloudConfig {
48
71
  process.env.CLOUDINARY_CLOUD_NAME = this.cloudName;
49
72
  }
50
73
  }
74
+
75
+ /**
76
+ * Parses a collect_headers value.
77
+ * "true" | "all" → `true` (collect every header)
78
+ * "x-request-id,cf-ray" → `["x-request-id", "cf-ray"]`
79
+ * "" → `[]` (disabled)
80
+ */
81
+ private static parseCollectHeaders(value: string): CollectHeaders {
82
+ const trimmed = value.trim().toLowerCase();
83
+ if (trimmed === "true" || trimmed === "all") {
84
+ return true;
85
+ }
86
+ const names = trimmed
87
+ .split(",")
88
+ .map((h) => h.trim())
89
+ .filter(Boolean);
90
+ return names;
91
+ }
51
92
  }
@@ -1,239 +1,86 @@
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)
10
+ */
11
+ export class CloudinaryAuthHook implements BeforeRequestHook {
12
+ private readonly config: CloudConfig;
13
+
14
+ constructor(config: CloudConfig) {
15
+ this.config = config;
11
16
  }
12
17
 
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;
18
+ async beforeRequest(
19
+ hookCtx: BeforeRequestContext,
20
+ request: Request,
21
+ ): Promise<Request> {
22
+ const security = await this.resolveSecurity(hookCtx.securitySource);
31
23
 
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
- }
54
-
55
- if (!apiKey || !apiSecret) {
24
+ // 1. OAuth2 Bearer token takes priority
25
+ if (this.isOAuth2Token(security)) {
26
+ request.headers.set("Authorization", `Bearer ${security.oauth2}`);
56
27
  return request;
57
28
  }
58
29
 
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);
30
+ // 2. Resolve API key / secret (env → security overrides)
31
+ const { apiKey, apiSecret } = this.resolveCredentials(security);
32
+ if (!apiKey || !apiSecret) {
63
33
  return request;
64
34
  }
65
35
 
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
- }
85
-
86
- // Default case - just sign query parameters if any exist
87
- if (queryParams.length > 0) {
88
- return this.signQueryOnlyRequest(request, apiKey, apiSecret, queryParams);
89
- }
36
+ const encoded = Buffer.from(`${apiKey}:${apiSecret}`).toString("base64");
37
+ request.headers.set("Authorization", `Basic ${encoded}`);
90
38
 
91
39
  return request;
92
40
  }
93
41
 
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
- }
42
+ // --- Security resolution ---
103
43
 
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);
115
-
116
- return new Request(url.toString(), request);
44
+ private async resolveSecurity(source: unknown): Promise<unknown> {
45
+ return typeof source === "function" ? source() : source;
117
46
  }
118
47
 
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 };
48
+ private isOAuth2Token(
49
+ security: unknown,
50
+ ): security is { oauth2: string } {
51
+ return (
52
+ typeof security === "object"
53
+ && security !== null
54
+ && "oauth2" in security
55
+ && typeof (security as any).oauth2 === "string"
56
+ && (security as any).oauth2.length > 0
57
+ );
134
58
  }
135
59
 
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
- }
60
+ private resolveCredentials(security: unknown): {
61
+ apiKey: string;
62
+ apiSecret: string;
63
+ } {
64
+ let { apiKey, apiSecret } = this.config;
145
65
 
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
- }
66
+ if (!security || typeof security !== "object") {
67
+ return { apiKey, apiSecret };
152
68
  }
153
- return params;
154
- }
155
-
156
- async preprocessJsonRequest(request: Request): Promise<any> {
157
- const body = await request.json();
158
-
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);
162
- }
163
-
164
- return body;
165
- }
166
-
167
- async signJsonRequest(request: Request, apiKey: string, apiSecret: string, queryParams: string[] = [], preprocessedBody?: any) {
168
- const body = preprocessedBody || await request.json();
169
- if (body.signature) {
170
- return request;
171
- }
172
-
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;
179
- return new Request(request, { body: JSON.stringify(body) });
180
- }
181
-
182
- private async convertFileToDataUri(fileUrl: string): Promise<string> {
183
- // Remove 'file://' prefix to get the actual file path
184
- const filePath = fileUrl.replace(/^file:\/\//, '');
185
69
 
186
- try {
187
- // Import required Node.js modules
188
- const { readFile } = await import('node:fs/promises');
70
+ const sec = security as Record<string, any>;
189
71
 
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
-
202
- } 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)}`);
72
+ // cloudinaryAuth format (camelCase and snake_case)
73
+ if (sec["cloudinaryAuth"]) {
74
+ const auth = sec["cloudinaryAuth"];
75
+ apiKey = auth.apiKey || auth.api_key || apiKey;
76
+ apiSecret = auth.apiSecret || auth.api_secret || apiSecret;
206
77
  }
207
- }
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;
78
+ // Standard SDK security format (used by MCP server)
79
+ else if ("apiKey" in sec || "apiSecret" in sec) {
80
+ apiKey = sec["apiKey"] || apiKey;
81
+ apiSecret = sec["apiSecret"] || apiSecret;
213
82
  }
214
83
 
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);
84
+ return { apiKey, apiSecret };
230
85
  }
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
86
  }
@@ -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
+ }
@@ -1,5 +1,6 @@
1
1
  /*
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: a2463fc6f69b
3
4
  */
4
5
 
5
6
  import { initHooks } from "./registration.js";
@@ -1,5 +1,6 @@
1
1
  /*
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: a709b8ce2ddb
3
4
  */
4
5
 
5
6
  /**
@@ -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
+ }
@@ -1,5 +1,6 @@
1
1
  /*
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 2a02d86ec24f
3
4
  */
4
5
 
5
6
  import { SDKOptions } from "../lib/config.js";
@@ -1,5 +1,6 @@
1
1
  /*
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: ef64a6ee46d7
3
4
  */
4
5
 
5
6
  import {
@@ -18,8 +19,14 @@ export function landingPage(req: Request): Response {
18
19
 
19
20
  // express wrapper
20
21
  export function landingPageExpress(req: ExpressRequest, res: ExpressResponse) {
21
- const origin = new URL(req.host).href;
22
- res.type("html").send(landingPageHTML(origin));
22
+ const proto = req.get("x-forwarded-proto")?.split(",")[0]?.trim()
23
+ || req.protocol;
24
+ const host = req.get("host");
25
+ if (!host) {
26
+ res.status(400).send("Missing Host header");
27
+ return;
28
+ }
29
+ res.type("html").send(landingPageHTML(`${proto}://${host}`));
23
30
  }
24
31
 
25
32
  export function landingPageHTML(origin: string): string {
@@ -932,7 +939,7 @@ http_headers = { "api-key" = "YOUR_API_KEY", "api-secret" = "YOUR_API_SECRET", "
932
939
  <h1>Instructions</h1>
933
940
  <p>One-click installation for Claude Desktop users</p>
934
941
  <div class="instruction-item">
935
- <a href="https://github.com/cloudinary/environment-config-mcp/releases/download/v0.6.0/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
942
+ <a href="https://github.com/cloudinary/environment-config-mcp/releases/download/v0.6.2/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
936
943
  📥 Download MCP Bundle
937
944
  </a>
938
945
  </div>
package/src/lib/base64.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /*
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 598522066688
3
4
  */
4
5
 
5
6
  import * as z from "zod";