npm package: @mrt_dev/cloudinary-kit
Description: Lightweight Node.js/TypeScript library for Cloudinary uploads and management
Author: mrt_dev
Latest version: 1.0.0

# CloudinaryNodeKit

> **Notice:**  
> - Requires **TypeScript 5.2 or higher** (for `moduleResolution: NodeNext` and proper ESM support)  
> - Requires **Node.js 16 or higher**  
> - Compatible with both **CommonJS (CJS)** and **ESM** projects  
> - Designed for **backend Node.js / server-side usage**. Browser usage is not recommended due to `Buffer` dependency.



**CloudinaryNodeKit** is a lightweight and easy-to-use Node.js library for integrating **Cloudinary** uploads and media management into TypeScript and JavaScript projects. It supports uploading images and videos from local files or buffers, detects MIME types automatically, and provides secure URL access.

---

## Features

- Upload images from local files
- Upload images from in-memory buffers (`Buffer`)
- Upload videos using Cloudinary's `video` resource type
- Delete media using Cloudinary `public_id`
- Fully typed TypeScript support
- Supports **Node.js**, **ESM**, and **CJS**
- Generates `.d.ts` declarations for type safety

---

## Installation

```bash
npm install cloudinarykit
# or
yarn add cloudinarykit
```



## USAGE
```bashI
import { CloudinaryKit } from "cloudinarykit";
import fs from "fs";

const kit = new CloudinaryKit({
  cloudName: process.env.CLOUDINARY_CLOUD_NAME!,
  apiKey: process.env.CLOUDINARY_API_KEY!,
  apiSecret: process.env.CLOUDINARY_API_SECRET!,
});

// Upload image from file
const imageUrl = await kit.uploadFile("path/to/image.jpg", "profiles", "user_123");
console.log("Image URL:", imageUrl);

// Upload image from buffer
const buffer = fs.readFileSync("path/to/image.jpg");
const bufferUrl = await kit.uploadBytes(buffer, "profiles", "user_123_buffer");
console.log("Buffer URL:", bufferUrl);

// Upload video
const videoUrl = await kit.uploadVideoFile("path/to/video.mp4", "videos", "video_123");
console.log("Video URL:", videoUrl);

// Delete media
const deleted = await kit.delete("profiles/user_123");
console.log("Deleted:", deleted);
import fs from "fs";

const kit = new CloudinaryKit({
  cloudName: process.env.CLOUDINARY_CLOUD_NAME!,
  apiKey: process.env.CLOUDINARY_API_KEY!,
  apiSecret: process.env.CLOUDINARY_API_SECRET!,
});

// Upload image from file
const imageUrl = await kit.uploadFile("path/to/image.jpg", "profiles", "user_123");
console.log("Image URL:", imageUrl);

// Upload image from buffer
const buffer = fs.readFileSync("path/to/image.jpg");
const bufferUrl = await kit.uploadBytes(buffer, "profiles", "user_123_buffer");
console.log("Buffer URL:", bufferUrl);

// Upload video
const videoUrl = await kit.uploadVideoFile("path/to/video.mp4", "videos", "video_123");
console.log("Video URL:", videoUrl);

// Delete media
const deleted = await kit.delete("profiles/user_123");
console.log("Deleted:", deleted);
import { CloudinaryKit } from "cloudinarykit";
import fs from "fs";

const kit = new CloudinaryKit({
  cloudName: process.env.CLOUDINARY_CLOUD_NAME!,
  apiKey: process.env.CLOUDINARY_API_KEY!,
  apiSecret: process.env.CLOUDINARY_API_SECRET!,
});

// Upload image from file
const imageUrl = await kit.uploadFile("path/to/image.jpg", "profiles", "user_123");
console.log("Image URL:", imageUrl);

// Upload image from buffer
const buffer = fs.readFileSync("path/to/image.jpg");
const bufferUrl = await kit.uploadBytes(buffer, "profiles", "user_123_buffer");
console.log("Buffer URL:", bufferUrl);

// Upload video
const videoUrl = await kit.uploadVideoFile("path/to/video.mp4", "videos", "video_123");
console.log("Video URL:", videoUrl);

// Delete media
const deleted = await kit.delete("profiles/user_123");
console.log("Deleted:", deleted);


```