@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.
- package/README.md +143 -124
- package/_speakeasy/.github/action-inputs-config.json +53 -0
- package/_speakeasy/.github/action-security-config.json +88 -0
- package/bin/mcp-server.js +33434 -17290
- package/bin/mcp-server.js.map +286 -203
- package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.d.ts +2 -2
- package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.d.ts.map +1 -1
- package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.js +6 -12
- package/esm/funcs/assetRelationsCreateAssetRelationsByAssetId.js.map +1 -1
- package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.d.ts +2 -2
- package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.d.ts.map +1 -1
- package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.js +6 -12
- package/esm/funcs/assetRelationsCreateAssetRelationsByPublicId.js.map +1 -1
- package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.d.ts +2 -2
- package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.d.ts.map +1 -1
- package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.js +6 -12
- package/esm/funcs/assetRelationsDeleteAssetRelationsByAssetId.js.map +1 -1
- package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.d.ts +2 -2
- package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.d.ts.map +1 -1
- package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.js +6 -12
- package/esm/funcs/assetRelationsDeleteAssetRelationsByPublicId.js.map +1 -1
- package/esm/funcs/assetsDeleteBackupVersions.d.ts +2 -2
- package/esm/funcs/assetsDeleteBackupVersions.d.ts.map +1 -1
- package/esm/funcs/assetsDeleteBackupVersions.js +6 -14
- package/esm/funcs/assetsDeleteBackupVersions.js.map +1 -1
- package/esm/funcs/assetsDeleteResourcesByPublicId.d.ts +1 -2
- package/esm/funcs/assetsDeleteResourcesByPublicId.d.ts.map +1 -1
- package/esm/funcs/assetsDeleteResourcesByPublicId.js +6 -10
- package/esm/funcs/assetsDeleteResourcesByPublicId.js.map +1 -1
- package/esm/funcs/assetsDerivedDestroy.d.ts +1 -2
- package/esm/funcs/assetsDerivedDestroy.d.ts.map +1 -1
- package/esm/funcs/assetsDerivedDestroy.js +5 -12
- package/esm/funcs/assetsDerivedDestroy.js.map +1 -1
- package/esm/funcs/assetsDestroyByAssetId.d.ts +1 -2
- package/esm/funcs/assetsDestroyByAssetId.d.ts.map +1 -1
- package/esm/funcs/assetsDestroyByAssetId.js +5 -12
- package/esm/funcs/assetsDestroyByAssetId.js.map +1 -1
- package/esm/funcs/assetsDownloadAsset.d.ts +1 -2
- package/esm/funcs/assetsDownloadAsset.d.ts.map +1 -1
- package/esm/funcs/assetsDownloadAsset.js +6 -18
- package/esm/funcs/assetsDownloadAsset.js.map +1 -1
- package/esm/funcs/assetsDownloadBackupAsset.d.ts +1 -2
- package/esm/funcs/assetsDownloadBackupAsset.d.ts.map +1 -1
- package/esm/funcs/assetsDownloadBackupAsset.js +6 -25
- package/esm/funcs/assetsDownloadBackupAsset.js.map +1 -1
- package/esm/funcs/assetsExplicitAsset.d.ts +2 -2
- package/esm/funcs/assetsExplicitAsset.d.ts.map +1 -1
- package/esm/funcs/assetsExplicitAsset.js +6 -10
- package/esm/funcs/assetsExplicitAsset.js.map +1 -1
- package/esm/funcs/assetsGenerateArchive.d.ts +2 -2
- package/esm/funcs/assetsGenerateArchive.d.ts.map +1 -1
- package/esm/funcs/assetsGenerateArchive.js +6 -8
- package/esm/funcs/assetsGenerateArchive.js.map +1 -1
- package/esm/funcs/assetsGetResourceByAssetId.d.ts +1 -2
- package/esm/funcs/assetsGetResourceByAssetId.d.ts.map +1 -1
- package/esm/funcs/assetsGetResourceByAssetId.js +6 -10
- package/esm/funcs/assetsGetResourceByAssetId.js.map +1 -1
- package/esm/funcs/assetsGetResourceByPublicId.d.ts +1 -2
- package/esm/funcs/assetsGetResourceByPublicId.d.ts.map +1 -1
- package/esm/funcs/assetsGetResourceByPublicId.js +6 -10
- package/esm/funcs/assetsGetResourceByPublicId.js.map +1 -1
- package/esm/funcs/assetsListImages.d.ts +1 -2
- package/esm/funcs/assetsListImages.d.ts.map +1 -1
- package/esm/funcs/assetsListImages.js +6 -8
- package/esm/funcs/assetsListImages.js.map +1 -1
- package/esm/funcs/assetsListRawFiles.d.ts +1 -2
- package/esm/funcs/assetsListRawFiles.d.ts.map +1 -1
- package/esm/funcs/assetsListRawFiles.js +6 -8
- package/esm/funcs/assetsListRawFiles.js.map +1 -1
- package/esm/funcs/assetsListResourceTags.d.ts +1 -2
- package/esm/funcs/assetsListResourceTags.d.ts.map +1 -1
- package/esm/funcs/assetsListResourceTags.js +6 -10
- package/esm/funcs/assetsListResourceTags.js.map +1 -1
- package/esm/funcs/assetsListResourceTypes.d.ts +2 -2
- package/esm/funcs/assetsListResourceTypes.d.ts.map +1 -1
- package/esm/funcs/assetsListResourceTypes.js +5 -12
- package/esm/funcs/assetsListResourceTypes.js.map +1 -1
- package/esm/funcs/assetsListResourcesByAssetFolder.d.ts +1 -2
- package/esm/funcs/assetsListResourcesByAssetFolder.d.ts.map +1 -1
- package/esm/funcs/assetsListResourcesByAssetFolder.js +6 -12
- package/esm/funcs/assetsListResourcesByAssetFolder.js.map +1 -1
- package/esm/funcs/assetsListResourcesByAssetIDs.d.ts +1 -2
- package/esm/funcs/assetsListResourcesByAssetIDs.d.ts.map +1 -1
- package/esm/funcs/assetsListResourcesByAssetIDs.js +6 -12
- package/esm/funcs/assetsListResourcesByAssetIDs.js.map +1 -1
- package/esm/funcs/assetsListResourcesByContext.d.ts +1 -2
- package/esm/funcs/assetsListResourcesByContext.d.ts.map +1 -1
- package/esm/funcs/assetsListResourcesByContext.js +6 -12
- package/esm/funcs/assetsListResourcesByContext.js.map +1 -1
- package/esm/funcs/assetsListResourcesByModerationKindAndStatus.d.ts +2 -2
- package/esm/funcs/assetsListResourcesByModerationKindAndStatus.d.ts.map +1 -1
- package/esm/funcs/assetsListResourcesByModerationKindAndStatus.js +6 -10
- package/esm/funcs/assetsListResourcesByModerationKindAndStatus.js.map +1 -1
- package/esm/funcs/assetsListVideos.d.ts +1 -2
- package/esm/funcs/assetsListVideos.d.ts.map +1 -1
- package/esm/funcs/assetsListVideos.js +6 -8
- package/esm/funcs/assetsListVideos.js.map +1 -1
- package/esm/funcs/assetsRenameAsset.d.ts +2 -2
- package/esm/funcs/assetsRenameAsset.d.ts.map +1 -1
- package/esm/funcs/assetsRenameAsset.js +6 -10
- package/esm/funcs/assetsRenameAsset.js.map +1 -1
- package/esm/funcs/assetsRestoreResourcesByAssetIDs.d.ts +2 -2
- package/esm/funcs/assetsRestoreResourcesByAssetIDs.d.ts.map +1 -1
- package/esm/funcs/assetsRestoreResourcesByAssetIDs.js +6 -12
- package/esm/funcs/assetsRestoreResourcesByAssetIDs.js.map +1 -1
- package/esm/funcs/assetsUpdateResourceByAssetId.d.ts +1 -2
- package/esm/funcs/assetsUpdateResourceByAssetId.d.ts.map +1 -1
- package/esm/funcs/assetsUpdateResourceByAssetId.js +6 -10
- package/esm/funcs/assetsUpdateResourceByAssetId.js.map +1 -1
- package/esm/funcs/assetsUpdateResourceByPublicId.d.ts +1 -2
- package/esm/funcs/assetsUpdateResourceByPublicId.d.ts.map +1 -1
- package/esm/funcs/assetsUpdateResourceByPublicId.js +6 -10
- package/esm/funcs/assetsUpdateResourceByPublicId.js.map +1 -1
- package/esm/funcs/backupsDeleteBackupVersions.d.ts +2 -2
- package/esm/funcs/backupsDeleteBackupVersions.d.ts.map +1 -1
- package/esm/funcs/backupsDeleteBackupVersions.js +6 -14
- package/esm/funcs/backupsDeleteBackupVersions.js.map +1 -1
- package/esm/funcs/explodeExplodeResource.d.ts +2 -2
- package/esm/funcs/explodeExplodeResource.d.ts.map +1 -1
- package/esm/funcs/explodeExplodeResource.js +6 -10
- package/esm/funcs/explodeExplodeResource.js.map +1 -1
- package/esm/funcs/foldersCreateFolder.d.ts +1 -2
- package/esm/funcs/foldersCreateFolder.d.ts.map +1 -1
- package/esm/funcs/foldersCreateFolder.js +6 -10
- package/esm/funcs/foldersCreateFolder.js.map +1 -1
- package/esm/funcs/foldersDestroyFolder.d.ts +1 -2
- package/esm/funcs/foldersDestroyFolder.d.ts.map +1 -1
- package/esm/funcs/foldersDestroyFolder.js +6 -10
- package/esm/funcs/foldersDestroyFolder.js.map +1 -1
- package/esm/funcs/foldersListRootFolders.d.ts +2 -2
- package/esm/funcs/foldersListRootFolders.d.ts.map +1 -1
- package/esm/funcs/foldersListRootFolders.js +5 -10
- package/esm/funcs/foldersListRootFolders.js.map +1 -1
- package/esm/funcs/foldersSearchFolders.d.ts +2 -2
- package/esm/funcs/foldersSearchFolders.d.ts.map +1 -1
- package/esm/funcs/foldersSearchFolders.js +6 -10
- package/esm/funcs/foldersSearchFolders.js.map +1 -1
- package/esm/funcs/foldersSearchFoldersPost.d.ts +2 -2
- package/esm/funcs/foldersSearchFoldersPost.d.ts.map +1 -1
- package/esm/funcs/foldersSearchFoldersPost.js +6 -12
- package/esm/funcs/foldersSearchFoldersPost.js.map +1 -1
- package/esm/funcs/foldersShowFolder.d.ts +1 -2
- package/esm/funcs/foldersShowFolder.d.ts.map +1 -1
- package/esm/funcs/foldersShowFolder.js +6 -10
- package/esm/funcs/foldersShowFolder.js.map +1 -1
- package/esm/funcs/foldersUpdateFolder.d.ts +2 -2
- package/esm/funcs/foldersUpdateFolder.d.ts.map +1 -1
- package/esm/funcs/foldersUpdateFolder.js +6 -8
- package/esm/funcs/foldersUpdateFolder.js.map +1 -1
- package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.d.ts +2 -2
- package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.d.ts.map +1 -1
- package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.js +6 -10
- package/esm/funcs/moderationsListResourcesByModerationKindAndStatus.js.map +1 -1
- package/esm/funcs/searchSearchAssets.d.ts +1 -2
- package/esm/funcs/searchSearchAssets.d.ts.map +1 -1
- package/esm/funcs/searchSearchAssets.js +5 -8
- package/esm/funcs/searchSearchAssets.js.map +1 -1
- package/esm/funcs/searchVisualSearchAssets.d.ts +1 -2
- package/esm/funcs/searchVisualSearchAssets.d.ts.map +1 -1
- package/esm/funcs/searchVisualSearchAssets.js +5 -12
- package/esm/funcs/searchVisualSearchAssets.js.map +1 -1
- package/esm/funcs/tagsListResourceTags.d.ts +1 -2
- package/esm/funcs/tagsListResourceTags.d.ts.map +1 -1
- package/esm/funcs/tagsListResourceTags.js +6 -10
- package/esm/funcs/tagsListResourceTags.js.map +1 -1
- package/esm/funcs/uploadDestroyAsset.d.ts +1 -2
- package/esm/funcs/uploadDestroyAsset.d.ts.map +1 -1
- package/esm/funcs/uploadDestroyAsset.js +6 -10
- package/esm/funcs/uploadDestroyAsset.js.map +1 -1
- package/esm/funcs/uploadText.d.ts +2 -2
- package/esm/funcs/uploadText.d.ts.map +1 -1
- package/esm/funcs/uploadText.js +6 -8
- package/esm/funcs/uploadText.js.map +1 -1
- package/esm/funcs/uploadUpload.d.ts +1 -2
- package/esm/funcs/uploadUpload.d.ts.map +1 -1
- package/esm/funcs/uploadUpload.js +6 -13
- package/esm/funcs/uploadUpload.js.map +1 -1
- package/esm/funcs/uploadUploadChunk.d.ts +1 -2
- package/esm/funcs/uploadUploadChunk.d.ts.map +1 -1
- package/esm/funcs/uploadUploadChunk.js +6 -13
- package/esm/funcs/uploadUploadChunk.js.map +1 -1
- package/esm/funcs/uploadUploadNoResourceType.d.ts +1 -2
- package/esm/funcs/uploadUploadNoResourceType.d.ts.map +1 -1
- package/esm/funcs/uploadUploadNoResourceType.js +5 -13
- package/esm/funcs/uploadUploadNoResourceType.js.map +1 -1
- package/esm/funcs/usageGetUsage.d.ts +1 -2
- package/esm/funcs/usageGetUsage.d.ts.map +1 -1
- package/esm/funcs/usageGetUsage.js +6 -8
- package/esm/funcs/usageGetUsage.js.map +1 -1
- package/esm/funcs/videoAnalyticsGetVideoViews.d.ts +2 -2
- package/esm/funcs/videoAnalyticsGetVideoViews.d.ts.map +1 -1
- package/esm/funcs/videoAnalyticsGetVideoViews.js +6 -8
- package/esm/funcs/videoAnalyticsGetVideoViews.js.map +1 -1
- package/esm/hooks/cloudConfig.d.ts +15 -0
- package/esm/hooks/cloudConfig.d.ts.map +1 -1
- package/esm/hooks/cloudConfig.js +28 -0
- package/esm/hooks/cloudConfig.js.map +1 -1
- package/esm/hooks/cloudinaryAuthHook.d.ts +25 -16
- package/esm/hooks/cloudinaryAuthHook.d.ts.map +1 -1
- package/esm/hooks/cloudinaryAuthHook.js +73 -172
- package/esm/hooks/cloudinaryAuthHook.js.map +1 -1
- package/esm/hooks/customHeadersHook.d.ts +13 -0
- package/esm/hooks/customHeadersHook.d.ts.map +1 -0
- package/esm/hooks/customHeadersHook.js +21 -0
- package/esm/hooks/customHeadersHook.js.map +1 -0
- package/esm/hooks/oauth2scopes.d.ts +16 -0
- package/esm/hooks/oauth2scopes.d.ts.map +1 -0
- package/esm/hooks/oauth2scopes.js +5 -0
- package/esm/hooks/oauth2scopes.js.map +1 -0
- package/esm/hooks/registration.d.ts.map +1 -1
- package/esm/hooks/registration.js +9 -7
- package/esm/hooks/registration.js.map +1 -1
- package/esm/hooks/responseHeadersHook.d.ts +15 -0
- package/esm/hooks/responseHeadersHook.d.ts.map +1 -0
- package/esm/hooks/responseHeadersHook.js +83 -0
- package/esm/hooks/responseHeadersHook.js.map +1 -0
- package/esm/hooks/userAgentHook.d.ts.map +1 -1
- package/esm/hooks/userAgentHook.js +7 -3
- package/esm/hooks/userAgentHook.js.map +1 -1
- package/esm/landing-page.d.ts +5 -0
- package/esm/landing-page.d.ts.map +1 -0
- package/esm/landing-page.js +1061 -0
- package/esm/landing-page.js.map +1 -0
- package/esm/lib/base64.d.ts +2 -2
- package/esm/lib/base64.d.ts.map +1 -1
- package/esm/lib/base64.js +2 -2
- package/esm/lib/base64.js.map +1 -1
- package/esm/lib/config.d.ts +9 -3
- package/esm/lib/config.d.ts.map +1 -1
- package/esm/lib/config.js +9 -3
- package/esm/lib/config.js.map +1 -1
- package/esm/lib/encodings.d.ts.map +1 -1
- package/esm/lib/encodings.js +10 -1
- package/esm/lib/encodings.js.map +1 -1
- package/esm/lib/env.d.ts +1 -1
- package/esm/lib/env.d.ts.map +1 -1
- package/esm/lib/env.js.map +1 -1
- package/esm/lib/schemas.d.ts +4 -4
- package/esm/lib/schemas.d.ts.map +1 -1
- package/esm/lib/schemas.js +2 -2
- package/esm/lib/schemas.js.map +1 -1
- package/esm/lib/sdks.js +2 -2
- package/esm/lib/sdks.js.map +1 -1
- package/esm/lib/security.js +3 -3
- package/esm/mcp-server/cli/start/command.d.ts.map +1 -1
- package/esm/mcp-server/cli/start/command.js +6 -0
- package/esm/mcp-server/cli/start/command.js.map +1 -1
- package/esm/mcp-server/cli/start/impl.d.ts +2 -13
- package/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
- package/esm/mcp-server/cli/start/impl.js +94 -32
- package/esm/mcp-server/cli/start/impl.js.map +1 -1
- package/esm/mcp-server/extensions.d.ts +4 -4
- package/esm/mcp-server/extensions.d.ts.map +1 -1
- package/esm/mcp-server/flags.d.ts +20 -0
- package/esm/mcp-server/flags.d.ts.map +1 -0
- package/esm/mcp-server/flags.js +5 -0
- package/esm/mcp-server/flags.js.map +1 -0
- package/esm/mcp-server/mcp-server.js +1 -1
- package/esm/mcp-server/prompts.d.ts +4 -7
- package/esm/mcp-server/prompts.d.ts.map +1 -1
- package/esm/mcp-server/prompts.js.map +1 -1
- package/esm/mcp-server/resources.d.ts +1 -2
- package/esm/mcp-server/resources.d.ts.map +1 -1
- package/esm/mcp-server/resources.js +8 -35
- package/esm/mcp-server/resources.js.map +1 -1
- package/esm/mcp-server/server.d.ts +8 -1
- package/esm/mcp-server/server.d.ts.map +1 -1
- package/esm/mcp-server/server.extensions.d.ts.map +1 -1
- package/esm/mcp-server/server.extensions.js +15 -26
- package/esm/mcp-server/server.extensions.js.map +1 -1
- package/esm/mcp-server/server.js +7 -4
- package/esm/mcp-server/server.js.map +1 -1
- package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.d.ts +1 -1
- package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.js +2 -3
- package/esm/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.js.map +1 -1
- package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.d.ts +1 -1
- package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.js +2 -3
- package/esm/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.js.map +1 -1
- package/esm/mcp-server/tools/assetsDerivedDestroy.d.ts +1 -1
- package/esm/mcp-server/tools/assetsDerivedDestroy.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsDerivedDestroy.js +2 -3
- package/esm/mcp-server/tools/assetsDerivedDestroy.js.map +1 -1
- package/esm/mcp-server/tools/assetsDestroyByAssetId.d.ts +1 -1
- package/esm/mcp-server/tools/assetsDestroyByAssetId.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsDestroyByAssetId.js +2 -3
- package/esm/mcp-server/tools/assetsDestroyByAssetId.js.map +1 -1
- package/esm/mcp-server/tools/assetsDownloadBackupAsset.d.ts +1 -1
- package/esm/mcp-server/tools/assetsDownloadBackupAsset.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsDownloadBackupAsset.js +4 -6
- package/esm/mcp-server/tools/assetsDownloadBackupAsset.js.map +1 -1
- package/esm/mcp-server/tools/assetsGenerateArchive.d.ts +7 -2
- package/esm/mcp-server/tools/assetsGenerateArchive.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsGenerateArchive.js +2 -3
- package/esm/mcp-server/tools/assetsGenerateArchive.js.map +1 -1
- package/esm/mcp-server/tools/assetsGetResourceByAssetId.d.ts +1 -1
- package/esm/mcp-server/tools/assetsGetResourceByAssetId.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsGetResourceByAssetId.js +3 -4
- package/esm/mcp-server/tools/assetsGetResourceByAssetId.js.map +1 -1
- package/esm/mcp-server/tools/assetsListImages.d.ts +42 -6
- package/esm/mcp-server/tools/assetsListImages.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsListImages.js +5 -5
- package/esm/mcp-server/tools/assetsListImages.js.map +1 -1
- package/esm/mcp-server/tools/assetsListRawFiles.d.ts +42 -6
- package/esm/mcp-server/tools/assetsListRawFiles.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsListRawFiles.js +5 -5
- package/esm/mcp-server/tools/assetsListRawFiles.js.map +1 -1
- package/esm/mcp-server/tools/assetsListResourceTags.d.ts +6 -2
- package/esm/mcp-server/tools/assetsListResourceTags.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsListResourceTags.js +4 -4
- package/esm/mcp-server/tools/assetsListResourceTags.js.map +1 -1
- package/esm/mcp-server/tools/assetsListVideos.d.ts +42 -6
- package/esm/mcp-server/tools/assetsListVideos.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsListVideos.js +5 -5
- package/esm/mcp-server/tools/assetsListVideos.js.map +1 -1
- package/esm/mcp-server/tools/assetsRenameAsset.d.ts +6 -2
- package/esm/mcp-server/tools/assetsRenameAsset.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsRenameAsset.js +2 -3
- package/esm/mcp-server/tools/assetsRenameAsset.js.map +1 -1
- package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.d.ts +1 -1
- package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.d.ts.map +1 -1
- package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.js +2 -3
- package/esm/mcp-server/tools/assetsUpdateResourceByAssetId.js.map +1 -1
- package/esm/mcp-server/tools/foldersCreateFolder.d.ts.map +1 -1
- package/esm/mcp-server/tools/foldersCreateFolder.js +2 -3
- package/esm/mcp-server/tools/foldersCreateFolder.js.map +1 -1
- package/esm/mcp-server/tools/foldersDestroyFolder.d.ts.map +1 -1
- package/esm/mcp-server/tools/foldersDestroyFolder.js +2 -3
- package/esm/mcp-server/tools/foldersDestroyFolder.js.map +1 -1
- package/esm/mcp-server/tools/foldersSearchFolders.d.ts +3 -3
- package/esm/mcp-server/tools/foldersSearchFolders.d.ts.map +1 -1
- package/esm/mcp-server/tools/foldersSearchFolders.js +3 -4
- package/esm/mcp-server/tools/foldersSearchFolders.js.map +1 -1
- package/esm/mcp-server/tools/foldersUpdateFolder.d.ts +1 -1
- package/esm/mcp-server/tools/foldersUpdateFolder.d.ts.map +1 -1
- package/esm/mcp-server/tools/foldersUpdateFolder.js +2 -3
- package/esm/mcp-server/tools/foldersUpdateFolder.js.map +1 -1
- package/esm/mcp-server/tools/searchSearchAssets.d.ts +1 -1
- package/esm/mcp-server/tools/searchSearchAssets.d.ts.map +1 -1
- package/esm/mcp-server/tools/searchSearchAssets.js +2 -3
- package/esm/mcp-server/tools/searchSearchAssets.js.map +1 -1
- package/esm/mcp-server/tools/searchVisualSearchAssets.d.ts +1 -1
- package/esm/mcp-server/tools/searchVisualSearchAssets.d.ts.map +1 -1
- package/esm/mcp-server/tools/searchVisualSearchAssets.js +2 -3
- package/esm/mcp-server/tools/searchVisualSearchAssets.js.map +1 -1
- package/esm/mcp-server/tools/uploadUpload.d.ts +7 -2
- package/esm/mcp-server/tools/uploadUpload.d.ts.map +1 -1
- package/esm/mcp-server/tools/uploadUpload.js +2 -3
- package/esm/mcp-server/tools/uploadUpload.js.map +1 -1
- package/esm/mcp-server/tools/usageGetUsage.d.ts.map +1 -1
- package/esm/mcp-server/tools/usageGetUsage.js +2 -3
- package/esm/mcp-server/tools/usageGetUsage.js.map +1 -1
- package/esm/mcp-server/tools.d.ts +13 -7
- package/esm/mcp-server/tools.d.ts.map +1 -1
- package/esm/mcp-server/tools.js +215 -43
- package/esm/mcp-server/tools.js.map +1 -1
- package/esm/models/accesscontrolitem.d.ts +14 -3
- package/esm/models/accesscontrolitem.d.ts.map +1 -1
- package/esm/models/accesscontrolitem.js +6 -1
- package/esm/models/accesscontrolitem.js.map +1 -1
- package/esm/models/apierror.d.ts +2 -2
- package/esm/models/apierror.d.ts.map +1 -1
- package/esm/models/apierror.js +1 -2
- package/esm/models/apierror.js.map +1 -1
- package/esm/models/archiveresourcetype.d.ts +17 -2
- package/esm/models/archiveresourcetype.d.ts.map +1 -1
- package/esm/models/archiveresourcetype.js +6 -0
- package/esm/models/archiveresourcetype.js.map +1 -1
- package/esm/models/archivestoragetype.d.ts +17 -2
- package/esm/models/archivestoragetype.d.ts.map +1 -1
- package/esm/models/archivestoragetype.js +6 -0
- package/esm/models/archivestoragetype.js.map +1 -1
- package/esm/models/assetrelationinfo.d.ts +26 -3
- package/esm/models/assetrelationinfo.d.ts.map +1 -1
- package/esm/models/assetrelationinfo.js +13 -2
- package/esm/models/assetrelationinfo.js.map +1 -1
- package/esm/models/assetrelationsdeleteresponse.d.ts +1 -1
- package/esm/models/assetrelationsdeleteresponse.d.ts.map +1 -1
- package/esm/models/assetrelationsdeleteresponse.js.map +1 -1
- package/esm/models/assetrelationsresponse.d.ts +1 -1
- package/esm/models/assetrelationsresponse.d.ts.map +1 -1
- package/esm/models/assetrelationsresponse.js.map +1 -1
- package/esm/models/asyncuploadresponse.d.ts +12 -3
- package/esm/models/asyncuploadresponse.d.ts.map +1 -1
- package/esm/models/asyncuploadresponse.js +5 -1
- package/esm/models/asyncuploadresponse.js.map +1 -1
- package/esm/models/createassetrelationsbyassetidop.d.ts +4 -4
- package/esm/models/createassetrelationsbyassetidop.d.ts.map +1 -1
- package/esm/models/createassetrelationsbyassetidop.js.map +1 -1
- package/esm/models/createassetrelationsbypublicidop.d.ts +4 -4
- package/esm/models/createassetrelationsbypublicidop.d.ts.map +1 -1
- package/esm/models/createassetrelationsbypublicidop.js.map +1 -1
- package/esm/models/createfolderop.d.ts +4 -4
- package/esm/models/createfolderop.d.ts.map +1 -1
- package/esm/models/createfolderop.js +7 -5
- package/esm/models/createfolderop.js.map +1 -1
- package/esm/models/deleteassetrelationsbyassetidop.d.ts +4 -4
- package/esm/models/deleteassetrelationsbyassetidop.d.ts.map +1 -1
- package/esm/models/deleteassetrelationsbyassetidop.js.map +1 -1
- package/esm/models/deleteassetrelationsbypublicidop.d.ts +4 -4
- package/esm/models/deleteassetrelationsbypublicidop.d.ts.map +1 -1
- package/esm/models/deleteassetrelationsbypublicidop.js.map +1 -1
- package/esm/models/deletebackupversionsop.d.ts +7 -7
- package/esm/models/deletebackupversionsop.d.ts.map +1 -1
- package/esm/models/deletebackupversionsop.js +1 -2
- package/esm/models/deletebackupversionsop.js.map +1 -1
- package/esm/models/deleteresourcebypublicidsrequestunion.d.ts +47 -10
- package/esm/models/deleteresourcebypublicidsrequestunion.d.ts.map +1 -1
- package/esm/models/deleteresourcebypublicidsrequestunion.js +15 -0
- package/esm/models/deleteresourcebypublicidsrequestunion.js.map +1 -1
- package/esm/models/deleteresourcesbypublicidop.d.ts +4 -4
- package/esm/models/deleteresourcesbypublicidop.d.ts.map +1 -1
- package/esm/models/deleteresourcesbypublicidop.js.map +1 -1
- package/esm/models/deriveddestroyop.d.ts +2 -2
- package/esm/models/deriveddestroyop.d.ts.map +1 -1
- package/esm/models/deriveddestroyop.js +1 -2
- package/esm/models/deriveddestroyop.js.map +1 -1
- package/esm/models/deriveddestroyrequest.d.ts +1 -1
- package/esm/models/deriveddestroyrequest.d.ts.map +1 -1
- package/esm/models/deriveddestroyrequest.js.map +1 -1
- package/esm/models/deriveddestroyresponse.d.ts +12 -4
- package/esm/models/deriveddestroyresponse.d.ts.map +1 -1
- package/esm/models/deriveddestroyresponse.js +5 -1
- package/esm/models/deriveddestroyresponse.js.map +1 -1
- package/esm/models/destroyassetop.d.ts +15 -6
- package/esm/models/destroyassetop.d.ts.map +1 -1
- package/esm/models/destroyassetop.js +10 -5
- package/esm/models/destroyassetop.js.map +1 -1
- package/esm/models/destroybyassetidop.d.ts +2 -2
- package/esm/models/destroybyassetidop.d.ts.map +1 -1
- package/esm/models/destroybyassetidop.js.map +1 -1
- package/esm/models/destroyfolderop.d.ts +4 -4
- package/esm/models/destroyfolderop.d.ts.map +1 -1
- package/esm/models/destroyfolderop.js +5 -4
- package/esm/models/destroyfolderop.js.map +1 -1
- package/esm/models/destroyrequest.d.ts +1 -1
- package/esm/models/destroyrequest.d.ts.map +1 -1
- package/esm/models/destroyrequest.js +1 -1
- package/esm/models/destroyrequest.js.map +1 -1
- package/esm/models/destroyresponse.d.ts +14 -3
- package/esm/models/destroyresponse.d.ts.map +1 -1
- package/esm/models/destroyresponse.js +4 -0
- package/esm/models/destroyresponse.js.map +1 -1
- package/esm/models/direction.d.ts +10 -2
- package/esm/models/direction.d.ts.map +1 -1
- package/esm/models/direction.js +4 -0
- package/esm/models/direction.js.map +1 -1
- package/esm/models/downloadassetop.d.ts +3 -3
- package/esm/models/downloadassetop.d.ts.map +1 -1
- package/esm/models/downloadassetop.js +12 -11
- package/esm/models/downloadassetop.js.map +1 -1
- package/esm/models/downloadbackupassetop.d.ts +9 -9
- package/esm/models/downloadbackupassetop.d.ts.map +1 -1
- package/esm/models/downloadbackupassetop.js +9 -9
- package/esm/models/downloadbackupassetop.js.map +1 -1
- package/esm/models/errors/sdkvalidationerror.d.ts +1 -1
- package/esm/models/errors/sdkvalidationerror.d.ts.map +1 -1
- package/esm/models/errors/sdkvalidationerror.js +2 -49
- package/esm/models/errors/sdkvalidationerror.js.map +1 -1
- package/esm/models/explicitassetop.d.ts +53 -10
- package/esm/models/explicitassetop.d.ts.map +1 -1
- package/esm/models/explicitassetop.js +24 -29
- package/esm/models/explicitassetop.js.map +1 -1
- package/esm/models/exploderesourceop.d.ts +26 -9
- package/esm/models/exploderesourceop.d.ts.map +1 -1
- package/esm/models/exploderesourceop.js +7 -1
- package/esm/models/exploderesourceop.js.map +1 -1
- package/esm/models/extendedstoragetype.d.ts +37 -2
- package/esm/models/extendedstoragetype.d.ts.map +1 -1
- package/esm/models/extendedstoragetype.js +16 -0
- package/esm/models/extendedstoragetype.js.map +1 -1
- package/esm/models/fieldsspec.d.ts +58 -2
- package/esm/models/fieldsspec.d.ts.map +1 -1
- package/esm/models/fieldsspec.js +28 -0
- package/esm/models/fieldsspec.js.map +1 -1
- package/esm/models/folder.d.ts +1 -1
- package/esm/models/folder.d.ts.map +1 -1
- package/esm/models/folder.js +2 -3
- package/esm/models/folder.js.map +1 -1
- package/esm/models/folderslistresponse.d.ts +1 -1
- package/esm/models/folderslistresponse.d.ts.map +1 -1
- package/esm/models/folderslistresponse.js +3 -2
- package/esm/models/folderslistresponse.js.map +1 -1
- package/esm/models/folderssearchresponse.d.ts +1 -1
- package/esm/models/folderssearchresponse.d.ts.map +1 -1
- package/esm/models/folderssearchresponse.js +2 -2
- package/esm/models/folderssearchresponse.js.map +1 -1
- package/esm/models/generatearchiveop.d.ts +31 -9
- package/esm/models/generatearchiveop.d.ts.map +1 -1
- package/esm/models/generatearchiveop.js +17 -11
- package/esm/models/generatearchiveop.js.map +1 -1
- package/esm/models/getresourcebyassetidop.d.ts +3 -3
- package/esm/models/getresourcebyassetidop.d.ts.map +1 -1
- package/esm/models/getresourcebyassetidop.js +1 -1
- package/esm/models/getresourcebyassetidop.js.map +1 -1
- package/esm/models/getresourcebypublicidop.d.ts +3 -3
- package/esm/models/getresourcebypublicidop.d.ts.map +1 -1
- package/esm/models/getresourcebypublicidop.js +1 -1
- package/esm/models/getresourcebypublicidop.js.map +1 -1
- package/esm/models/getusageop.d.ts +3 -3
- package/esm/models/getusageop.d.ts.map +1 -1
- package/esm/models/getusageop.js.map +1 -1
- package/esm/models/getvideoviewsop.d.ts +26 -7
- package/esm/models/getvideoviewsop.d.ts.map +1 -1
- package/esm/models/getvideoviewsop.js +15 -6
- package/esm/models/getvideoviewsop.js.map +1 -1
- package/esm/models/info.d.ts +4 -4
- package/esm/models/info.d.ts.map +1 -1
- package/esm/models/info.js +11 -11
- package/esm/models/info.js.map +1 -1
- package/esm/models/listimagesop.d.ts +3 -3
- package/esm/models/listimagesop.d.ts.map +1 -1
- package/esm/models/listimagesop.js +10 -9
- package/esm/models/listimagesop.js.map +1 -1
- package/esm/models/listrawfilesop.d.ts +3 -3
- package/esm/models/listrawfilesop.d.ts.map +1 -1
- package/esm/models/listrawfilesop.js +10 -9
- package/esm/models/listrawfilesop.js.map +1 -1
- package/esm/models/listresourcesbyassetfolderop.d.ts +3 -3
- package/esm/models/listresourcesbyassetfolderop.d.ts.map +1 -1
- package/esm/models/listresourcesbyassetfolderop.js +2 -1
- package/esm/models/listresourcesbyassetfolderop.js.map +1 -1
- package/esm/models/listresourcesbyassetidsop.d.ts +3 -3
- package/esm/models/listresourcesbyassetidsop.d.ts.map +1 -1
- package/esm/models/listresourcesbyassetidsop.js.map +1 -1
- package/esm/models/listresourcesbycontextop.d.ts +3 -3
- package/esm/models/listresourcesbycontextop.d.ts.map +1 -1
- package/esm/models/listresourcesbycontextop.js +2 -1
- package/esm/models/listresourcesbycontextop.js.map +1 -1
- package/esm/models/listresourcesbymoderationkindandstatusop.d.ts +38 -7
- package/esm/models/listresourcesbymoderationkindandstatusop.d.ts.map +1 -1
- package/esm/models/listresourcesbymoderationkindandstatusop.js +18 -1
- package/esm/models/listresourcesbymoderationkindandstatusop.js.map +1 -1
- package/esm/models/listresourcetagsop.d.ts +4 -4
- package/esm/models/listresourcetagsop.d.ts.map +1 -1
- package/esm/models/listresourcetagsop.js +2 -1
- package/esm/models/listresourcetagsop.js.map +1 -1
- package/esm/models/listresourcetypesop.d.ts +18 -8
- package/esm/models/listresourcetypesop.d.ts.map +1 -1
- package/esm/models/listresourcetypesop.js +5 -0
- package/esm/models/listresourcetypesop.js.map +1 -1
- package/esm/models/listresponse.d.ts +1 -1
- package/esm/models/listresponse.d.ts.map +1 -1
- package/esm/models/listresponse.js +1 -1
- package/esm/models/listresponse.js.map +1 -1
- package/esm/models/listrootfoldersop.d.ts +3 -3
- package/esm/models/listrootfoldersop.d.ts.map +1 -1
- package/esm/models/listrootfoldersop.js.map +1 -1
- package/esm/models/liststoragetype.d.ts +19 -2
- package/esm/models/liststoragetype.d.ts.map +1 -1
- package/esm/models/liststoragetype.js +7 -0
- package/esm/models/liststoragetype.js.map +1 -1
- package/esm/models/listvideosop.d.ts +3 -3
- package/esm/models/listvideosop.d.ts.map +1 -1
- package/esm/models/listvideosop.js +10 -9
- package/esm/models/listvideosop.js.map +1 -1
- package/esm/models/nonfinalchunkuploadresponse.d.ts +1 -1
- package/esm/models/nonfinalchunkuploadresponse.d.ts.map +1 -1
- package/esm/models/nonfinalchunkuploadresponse.js +2 -4
- package/esm/models/nonfinalchunkuploadresponse.js.map +1 -1
- package/esm/models/renameassetop.d.ts +4 -4
- package/esm/models/renameassetop.d.ts.map +1 -1
- package/esm/models/renameassetop.js +8 -6
- package/esm/models/renameassetop.js.map +1 -1
- package/esm/models/resourcetype.d.ts +15 -2
- package/esm/models/resourcetype.d.ts.map +1 -1
- package/esm/models/resourcetype.js +5 -0
- package/esm/models/resourcetype.js.map +1 -1
- package/esm/models/resourceupdaterequest.d.ts +66 -11
- package/esm/models/resourceupdaterequest.d.ts.map +1 -1
- package/esm/models/resourceupdaterequest.js +22 -0
- package/esm/models/resourceupdaterequest.js.map +1 -1
- package/esm/models/restoreresourcesbyassetidsop.d.ts +3 -3
- package/esm/models/restoreresourcesbyassetidsop.d.ts.map +1 -1
- package/esm/models/restoreresourcesbyassetidsop.js +1 -1
- package/esm/models/restoreresourcesbyassetidsop.js.map +1 -1
- package/esm/models/restoreresponseunion.d.ts +17 -4
- package/esm/models/restoreresponseunion.d.ts.map +1 -1
- package/esm/models/restoreresponseunion.js +7 -1
- package/esm/models/restoreresponseunion.js.map +1 -1
- package/esm/models/schemecloudinaryauth.d.ts +1 -1
- package/esm/models/schemecloudinaryauth.d.ts.map +1 -1
- package/esm/models/schemecloudinaryauth.js +2 -1
- package/esm/models/schemecloudinaryauth.js.map +1 -1
- package/esm/models/searchassetsop.d.ts +2 -2
- package/esm/models/searchassetsop.d.ts.map +1 -1
- package/esm/models/searchassetsop.js +5 -4
- package/esm/models/searchassetsop.js.map +1 -1
- package/esm/models/searchfoldersop.d.ts +5 -5
- package/esm/models/searchfoldersop.d.ts.map +1 -1
- package/esm/models/searchfoldersop.js +6 -5
- package/esm/models/searchfoldersop.js.map +1 -1
- package/esm/models/searchfolderspostop.d.ts +3 -3
- package/esm/models/searchfolderspostop.d.ts.map +1 -1
- package/esm/models/searchfolderspostop.js +1 -1
- package/esm/models/searchfolderspostop.js.map +1 -1
- package/esm/models/searchparameters.d.ts +48 -10
- package/esm/models/searchparameters.d.ts.map +1 -1
- package/esm/models/searchparameters.js +22 -2
- package/esm/models/searchparameters.js.map +1 -1
- package/esm/models/searchresponse.d.ts +70 -21
- package/esm/models/searchresponse.d.ts.map +1 -1
- package/esm/models/searchresponse.js +41 -22
- package/esm/models/searchresponse.js.map +1 -1
- package/esm/models/searchsortpair.d.ts +10 -2
- package/esm/models/searchsortpair.d.ts.map +1 -1
- package/esm/models/searchsortpair.js +4 -0
- package/esm/models/searchsortpair.js.map +1 -1
- package/esm/models/security.d.ts +1 -1
- package/esm/models/security.d.ts.map +1 -1
- package/esm/models/security.js +1 -2
- package/esm/models/security.js.map +1 -1
- package/esm/models/showfolderop.d.ts +3 -3
- package/esm/models/showfolderop.d.ts.map +1 -1
- package/esm/models/showfolderop.js +7 -5
- package/esm/models/showfolderop.js.map +1 -1
- package/esm/models/storagetype.d.ts +15 -2
- package/esm/models/storagetype.d.ts.map +1 -1
- package/esm/models/storagetype.js +5 -0
- package/esm/models/storagetype.js.map +1 -1
- package/esm/models/storagetypeparameter.d.ts +15 -2
- package/esm/models/storagetypeparameter.d.ts.map +1 -1
- package/esm/models/storagetypeparameter.js +5 -0
- package/esm/models/storagetypeparameter.js.map +1 -1
- package/esm/models/textop.d.ts +71 -18
- package/esm/models/textop.d.ts.map +1 -1
- package/esm/models/textop.js +34 -14
- package/esm/models/textop.js.map +1 -1
- package/esm/models/updatefolderop.d.ts +7 -7
- package/esm/models/updatefolderop.d.ts.map +1 -1
- package/esm/models/updatefolderop.js +7 -5
- package/esm/models/updatefolderop.js.map +1 -1
- package/esm/models/updateresourcebyassetidop.d.ts +3 -3
- package/esm/models/updateresourcebyassetidop.d.ts.map +1 -1
- package/esm/models/updateresourcebyassetidop.js.map +1 -1
- package/esm/models/updateresourcebypublicidop.d.ts +3 -3
- package/esm/models/updateresourcebypublicidop.d.ts.map +1 -1
- package/esm/models/updateresourcebypublicidop.js.map +1 -1
- package/esm/models/uploadchunkop.d.ts +4 -4
- package/esm/models/uploadchunkop.d.ts.map +1 -1
- package/esm/models/uploadchunkop.js +7 -5
- package/esm/models/uploadchunkop.js.map +1 -1
- package/esm/models/uploadnoresourcetypeop.d.ts +3 -3
- package/esm/models/uploadnoresourcetypeop.d.ts.map +1 -1
- package/esm/models/uploadnoresourcetypeop.js.map +1 -1
- package/esm/models/uploadop.d.ts +4 -4
- package/esm/models/uploadop.d.ts.map +1 -1
- package/esm/models/uploadop.js +4 -2
- package/esm/models/uploadop.js.map +1 -1
- package/esm/models/uploadrequest.d.ts +133 -16
- package/esm/models/uploadrequest.d.ts.map +1 -1
- package/esm/models/uploadrequest.js +50 -33
- package/esm/models/uploadrequest.js.map +1 -1
- package/esm/models/uploadresourcetype.d.ts +23 -2
- package/esm/models/uploadresourcetype.d.ts.map +1 -1
- package/esm/models/uploadresourcetype.js +7 -6
- package/esm/models/uploadresourcetype.js.map +1 -1
- package/esm/models/uploadresponse.d.ts +3 -3
- package/esm/models/uploadresponse.d.ts.map +1 -1
- package/esm/models/uploadresponse.js +9 -10
- package/esm/models/uploadresponse.js.map +1 -1
- package/esm/models/usageresponse.d.ts +8 -8
- package/esm/models/usageresponse.d.ts.map +1 -1
- package/esm/models/usageresponse.js +20 -22
- package/esm/models/usageresponse.js.map +1 -1
- package/esm/models/visualsearchassetsop.d.ts +2 -2
- package/esm/models/visualsearchassetsop.d.ts.map +1 -1
- package/esm/models/visualsearchassetsop.js.map +1 -1
- package/esm/models/visualsearchparametersunion.d.ts +4 -4
- package/esm/models/visualsearchparametersunion.d.ts.map +1 -1
- package/esm/models/visualsearchparametersunion.js.map +1 -1
- package/esm/tool-names.d.ts +5 -0
- package/esm/tool-names.d.ts.map +1 -0
- package/esm/tool-names.js +96 -0
- package/esm/tool-names.js.map +1 -0
- package/esm/types/bigint.d.ts +6 -0
- package/esm/types/bigint.d.ts.map +1 -0
- package/esm/types/bigint.js +87 -0
- package/esm/types/bigint.js.map +1 -0
- package/manifest.json +143 -133
- package/package.json +8 -4
- package/src/funcs/assetRelationsCreateAssetRelationsByAssetId.ts +7 -29
- package/src/funcs/assetRelationsCreateAssetRelationsByPublicId.ts +7 -29
- package/src/funcs/assetRelationsDeleteAssetRelationsByAssetId.ts +7 -29
- package/src/funcs/assetRelationsDeleteAssetRelationsByPublicId.ts +7 -29
- package/src/funcs/assetsDeleteBackupVersions.ts +7 -32
- package/src/funcs/assetsDeleteResourcesByPublicId.ts +7 -27
- package/src/funcs/assetsDerivedDestroy.ts +7 -31
- package/src/funcs/assetsDestroyByAssetId.ts +7 -31
- package/src/funcs/assetsDownloadAsset.ts +7 -37
- package/src/funcs/assetsDownloadBackupAsset.ts +7 -47
- package/src/funcs/assetsExplicitAsset.ts +7 -27
- package/src/funcs/assetsGenerateArchive.ts +7 -26
- package/src/funcs/assetsGetResourceByAssetId.ts +7 -27
- package/src/funcs/assetsGetResourceByPublicId.ts +7 -27
- package/src/funcs/assetsListImages.ts +7 -25
- package/src/funcs/assetsListRawFiles.ts +7 -25
- package/src/funcs/assetsListResourceTags.ts +7 -27
- package/src/funcs/assetsListResourceTypes.ts +8 -32
- package/src/funcs/assetsListResourcesByAssetFolder.ts +7 -29
- package/src/funcs/assetsListResourcesByAssetIDs.ts +7 -29
- package/src/funcs/assetsListResourcesByContext.ts +7 -29
- package/src/funcs/assetsListResourcesByModerationKindAndStatus.ts +7 -31
- package/src/funcs/assetsListVideos.ts +7 -25
- package/src/funcs/assetsRenameAsset.ts +7 -27
- package/src/funcs/assetsRestoreResourcesByAssetIDs.ts +7 -29
- package/src/funcs/assetsUpdateResourceByAssetId.ts +7 -27
- package/src/funcs/assetsUpdateResourceByPublicId.ts +7 -27
- package/src/funcs/backupsDeleteBackupVersions.ts +7 -32
- package/src/funcs/explodeExplodeResource.ts +7 -27
- package/src/funcs/foldersCreateFolder.ts +7 -27
- package/src/funcs/foldersDestroyFolder.ts +7 -27
- package/src/funcs/foldersListRootFolders.ts +8 -30
- package/src/funcs/foldersSearchFolders.ts +7 -27
- package/src/funcs/foldersSearchFoldersPost.ts +7 -29
- package/src/funcs/foldersShowFolder.ts +7 -27
- package/src/funcs/foldersUpdateFolder.ts +7 -25
- package/src/funcs/moderationsListResourcesByModerationKindAndStatus.ts +7 -31
- package/src/funcs/searchSearchAssets.ts +7 -27
- package/src/funcs/searchVisualSearchAssets.ts +7 -31
- package/src/funcs/tagsListResourceTags.ts +7 -27
- package/src/funcs/uploadDestroyAsset.ts +7 -27
- package/src/funcs/uploadText.ts +7 -25
- package/src/funcs/uploadUpload.ts +7 -31
- package/src/funcs/uploadUploadChunk.ts +7 -31
- package/src/funcs/uploadUploadNoResourceType.ts +7 -33
- package/src/funcs/usageGetUsage.ts +7 -25
- package/src/funcs/videoAnalyticsGetVideoViews.ts +7 -25
- package/src/hooks/cloudConfig.ts +41 -0
- package/src/hooks/cloudinaryAuthHook.ts +96 -200
- package/src/hooks/customHeadersHook.ts +30 -0
- package/src/hooks/oauth2scopes.ts +19 -0
- package/src/hooks/registration.ts +10 -8
- package/src/hooks/responseHeadersHook.ts +98 -0
- package/src/hooks/userAgentHook.ts +18 -3
- package/src/landing-page.ts +1075 -0
- package/src/lib/base64.ts +2 -2
- package/src/lib/config.ts +10 -3
- package/src/lib/encodings.ts +12 -3
- package/src/lib/env.ts +1 -1
- package/src/lib/schemas.ts +10 -22
- package/src/lib/sdks.ts +2 -2
- package/src/lib/security.ts +3 -3
- package/src/mcp-server/cli/start/command.ts +7 -0
- package/src/mcp-server/cli/start/impl.ts +113 -47
- package/src/mcp-server/extensions.ts +6 -4
- package/src/mcp-server/flags.ts +24 -0
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/prompts.ts +9 -19
- package/src/mcp-server/resources.ts +9 -44
- package/src/mcp-server/server.extensions.ts +16 -27
- package/src/mcp-server/server.ts +10 -4
- package/src/mcp-server/tools/assetRelationsCreateAssetRelationsByAssetId.ts +2 -4
- package/src/mcp-server/tools/assetRelationsDeleteAssetRelationsByAssetId.ts +2 -4
- package/src/mcp-server/tools/assetsDerivedDestroy.ts +2 -4
- package/src/mcp-server/tools/assetsDestroyByAssetId.ts +2 -4
- package/src/mcp-server/tools/assetsDownloadBackupAsset.ts +4 -7
- package/src/mcp-server/tools/assetsGenerateArchive.ts +2 -4
- package/src/mcp-server/tools/assetsGetResourceByAssetId.ts +3 -5
- package/src/mcp-server/tools/assetsListImages.ts +5 -8
- package/src/mcp-server/tools/assetsListRawFiles.ts +5 -8
- package/src/mcp-server/tools/assetsListResourceTags.ts +4 -7
- package/src/mcp-server/tools/assetsListVideos.ts +5 -8
- package/src/mcp-server/tools/assetsRenameAsset.ts +2 -4
- package/src/mcp-server/tools/assetsUpdateResourceByAssetId.ts +2 -4
- package/src/mcp-server/tools/foldersCreateFolder.ts +2 -4
- package/src/mcp-server/tools/foldersDestroyFolder.ts +2 -4
- package/src/mcp-server/tools/foldersSearchFolders.ts +3 -5
- package/src/mcp-server/tools/foldersUpdateFolder.ts +2 -4
- package/src/mcp-server/tools/searchSearchAssets.ts +2 -4
- package/src/mcp-server/tools/searchVisualSearchAssets.ts +2 -4
- package/src/mcp-server/tools/uploadUpload.ts +2 -4
- package/src/mcp-server/tools/usageGetUsage.ts +2 -4
- package/src/mcp-server/tools.ts +312 -92
- package/src/models/accesscontrolitem.ts +19 -14
- package/src/models/apierror.ts +4 -9
- package/src/models/archiveresourcetype.ts +12 -2
- package/src/models/archivestoragetype.ts +12 -2
- package/src/models/assetrelationinfo.ts +23 -12
- package/src/models/assetrelationsdeleteresponse.ts +1 -3
- package/src/models/assetrelationsresponse.ts +1 -3
- package/src/models/asyncuploadresponse.ts +22 -18
- package/src/models/createassetrelationsbyassetidop.ts +4 -12
- package/src/models/createassetrelationsbypublicidop.ts +4 -12
- package/src/models/createfolderop.ts +16 -26
- package/src/models/deleteassetrelationsbyassetidop.ts +4 -12
- package/src/models/deleteassetrelationsbypublicidop.ts +4 -12
- package/src/models/deletebackupversionsop.ts +10 -23
- package/src/models/deleteresourcebypublicidsrequestunion.ts +41 -24
- package/src/models/deleteresourcesbypublicidop.ts +4 -12
- package/src/models/deriveddestroyop.ts +7 -11
- package/src/models/deriveddestroyrequest.ts +5 -8
- package/src/models/deriveddestroyresponse.ts +10 -11
- package/src/models/destroyassetop.ts +29 -32
- package/src/models/destroybyassetidop.ts +2 -6
- package/src/models/destroyfolderop.ts +16 -26
- package/src/models/destroyrequest.ts +2 -6
- package/src/models/destroyresponse.ts +11 -7
- package/src/models/direction.ts +7 -2
- package/src/models/downloadassetop.ts +50 -52
- package/src/models/downloadbackupassetop.ts +26 -40
- package/src/models/errors/sdkvalidationerror.ts +2 -57
- package/src/models/explicitassetop.ts +66 -70
- package/src/models/exploderesourceop.ts +25 -24
- package/src/models/extendedstoragetype.ts +22 -2
- package/src/models/fieldsspec.ts +31 -2
- package/src/models/folder.ts +6 -7
- package/src/models/folderslistresponse.ts +6 -9
- package/src/models/folderssearchresponse.ts +7 -10
- package/src/models/generatearchiveop.ts +38 -30
- package/src/models/getresourcebyassetidop.ts +4 -10
- package/src/models/getresourcebypublicidop.ts +4 -10
- package/src/models/getusageop.ts +3 -15
- package/src/models/getvideoviewsop.ts +41 -39
- package/src/models/info.ts +15 -27
- package/src/models/listimagesop.ts +33 -40
- package/src/models/listrawfilesop.ts +33 -40
- package/src/models/listresourcesbyassetfolderop.ts +5 -12
- package/src/models/listresourcesbyassetidsop.ts +3 -9
- package/src/models/listresourcesbycontextop.ts +5 -12
- package/src/models/listresourcesbymoderationkindandstatusop.ts +27 -19
- package/src/models/listresourcetagsop.ts +6 -15
- package/src/models/listresourcetypesop.ts +16 -22
- package/src/models/listresponse.ts +2 -6
- package/src/models/listrootfoldersop.ts +3 -9
- package/src/models/liststoragetype.ts +13 -2
- package/src/models/listvideosop.ts +33 -40
- package/src/models/nonfinalchunkuploadresponse.ts +3 -7
- package/src/models/renameassetop.ts +18 -28
- package/src/models/resourcetype.ts +11 -2
- package/src/models/resourceupdaterequest.ts +78 -43
- package/src/models/restoreresourcesbyassetidsop.ts +4 -10
- package/src/models/restoreresponseunion.ts +17 -15
- package/src/models/schemecloudinaryauth.ts +5 -8
- package/src/models/searchassetsop.ts +11 -16
- package/src/models/searchfoldersop.ts +29 -45
- package/src/models/searchfolderspostop.ts +4 -10
- package/src/models/searchparameters.ts +51 -42
- package/src/models/searchresponse.ts +115 -114
- package/src/models/searchsortpair.ts +7 -2
- package/src/models/security.ts +6 -7
- package/src/models/showfolderop.ts +15 -23
- package/src/models/storagetype.ts +11 -2
- package/src/models/storagetypeparameter.ts +11 -4
- package/src/models/textop.ts +88 -72
- package/src/models/updatefolderop.ts +20 -32
- package/src/models/updateresourcebyassetidop.ts +3 -9
- package/src/models/updateresourcebypublicidop.ts +3 -9
- package/src/models/uploadchunkop.ts +30 -40
- package/src/models/uploadnoresourcetypeop.ts +3 -9
- package/src/models/uploadop.ts +12 -24
- package/src/models/uploadrequest.ts +126 -76
- package/src/models/uploadresourcetype.ts +19 -8
- package/src/models/uploadresponse.ts +16 -23
- package/src/models/usageresponse.ts +35 -56
- package/src/models/visualsearchassetsop.ts +2 -6
- package/src/models/visualsearchparametersunion.ts +4 -12
- package/src/tool-names.ts +95 -0
- package/src/types/bigint.ts +87 -0
- package/tsconfig.json +0 -1
- package/esm/lib/matchers.d.ts +0 -66
- package/esm/lib/matchers.d.ts.map +0 -1
- package/esm/lib/matchers.js +0 -212
- package/esm/lib/matchers.js.map +0 -1
- 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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
//
|
|
67
|
-
const
|
|
68
|
-
|
|
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
|
-
//
|
|
87
|
-
|
|
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
|
-
|
|
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
|
-
|
|
51
|
+
private async resolveSecurity(source: unknown): Promise<unknown> {
|
|
52
|
+
return typeof source === "function" ? source() : source;
|
|
117
53
|
}
|
|
118
54
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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
|
-
|
|
147
|
-
|
|
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
|
-
|
|
157
|
-
const body = await request.json();
|
|
77
|
+
const sec = security as Record<string, any>;
|
|
158
78
|
|
|
159
|
-
//
|
|
160
|
-
if (
|
|
161
|
-
|
|
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
|
|
91
|
+
return { apiKey, apiSecret };
|
|
165
92
|
}
|
|
166
93
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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
|
-
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
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
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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 {
|
|
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
|
-
//
|
|
12
|
-
|
|
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
|
-
|
|
18
|
-
|
|
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(
|
|
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(
|
|
84
|
+
opts.userAgent = buildUserAgent(
|
|
85
|
+
sdkVersion, genVersion, openapiDocVersion,
|
|
86
|
+
packageName, runtime, callerUserAgent,
|
|
87
|
+
);
|
|
73
88
|
}
|
|
74
89
|
}
|
|
75
90
|
}
|