
Fruatre Botz
June 16, 2025 at 11:32 AM
*[ FITUR NPMJS DETAIL ]*
🍰 sumber : https://whatsapp.com/channel/0029VavIvw29RZAabgJslv2w
~ 🪄 berikut detail codenya :
case 'npm':
case 'npmjs': {
if (!text) return m.reply(`Example: ${prefix + command} axios\n${prefix + command} axios --download\n${prefix + command} axios --info\n${prefix + command} --trending\n${prefix + command} --stats react`)
let args = text.split(' ')
let packageName = args[0]
let flag = args.find(arg => arg.startsWith('--'))
try {
if (flag === '--trending') {
let res = await fetch('https://registry.npmjs.org/-/v1/search?text=&size=20&popularity=1.0')
let {
objects
} = await res.json()
let txt = '*🔥 TRENDING NPM PACKAGES*\n\n'
txt += objects.slice(0, 10).map((obj, i) => {
let pkg = obj.package
return `${i+1}. *${pkg.name}*\n v${pkg.version} | ⭐ ${pkg.links.npm}\n ${pkg.description?.substring(0, 80)}...`
}).join('\n\n')
return m.reply(txt)
}
if (flag === '--stats') {
let statsRes = await fetch(`https://api.npmjs.org/downloads/point/last-month/${packageName}`)
let stats = await statsRes.json()
let pkgRes = await fetch(`https://registry.npmjs.org/${packageName}`)
let pkgData = await pkgRes.json()
if (pkgData.error) return m.reply('Package tidak ditemukan')
let txt = `*📊 ${packageName} STATISTICS*\n\n`
txt += `📦 Name: ${pkgData.name}\n`
txt += `🏷️ Latest: v${pkgData['dist-tags'].latest}\n`
txt += `📅 Created: ${new Date(pkgData.time.created).toLocaleDateString()}\n`
txt += `🔄 Modified: ${new Date(pkgData.time.modified).toLocaleDateString()}\n`
txt += `📥 Downloads: ${stats.downloads?.toLocaleString() || 'N/A'}/month\n`
txt += `👤 Author: ${pkgData.author?.name || 'Unknown'}\n`
txt += `📄 License: ${pkgData.license || 'N/A'}\n`
txt += `🔗 Homepage: ${pkgData.homepage || 'N/A'}\n`
txt += `🐛 Issues: ${pkgData.bugs?.url || 'N/A'}\n`
txt += `📋 Keywords: ${pkgData.keywords?.join(', ') || 'N/A'}`
return m.reply(txt)
}
if (flag === '--info') {
let pkgRes = await fetch(`https://registry.npmjs.org/${packageName}`)
let pkgData = await pkgRes.json()
if (pkgData.error) return m.reply('Package tidak ditemukan')
let latest = pkgData.versions[pkgData['dist-tags'].latest]
let txt = `*📦 ${pkgData.name}*\n\n`
txt += `🏷️ Version: ${pkgData['dist-tags'].latest}\n`
txt += `📝 Description: ${pkgData.description}\n`
txt += `👤 Author: ${pkgData.author?.name || 'Unknown'}\n`
txt += `📄 License: ${pkgData.license}\n`
txt += `📦 Main: ${latest.main || 'index.js'}\n`
txt += `🔧 Dependencies: ${Object.keys(latest.dependencies || {}).length}\n`
txt += `⚙️ DevDeps: ${Object.keys(latest.devDependencies || {}).length}\n`
txt += `🔗 Repository: ${pkgData.repository?.url || 'N/A'}\n`
txt += `🌐 Homepage: ${pkgData.homepage || 'N/A'}\n`
txt += `📋 Keywords: ${pkgData.keywords?.join(', ') || 'N/A'}`
if (latest.dependencies && Object.keys(latest.dependencies).length > 0) {
txt += '\n\n*🔧 Dependencies:*\n'
txt += Object.entries(latest.dependencies).slice(0, 10).map(([dep, ver]) => `• ${dep}: ${ver}`).join('\n')
}
return m.reply(txt)
}
if (flag === '--download') {
m.reply('⏳ Downloading package...')
let pkgRes = await fetch(`https://registry.npmjs.org/${packageName}`)
let pkgData = await pkgRes.json()
if (pkgData.error) return m.reply('Package tidak ditemukan')
let latestVersion = pkgData['dist-tags'].latest
let tarballUrl = pkgData.versions[latestVersion].dist.tarball
let downloadRes = await fetch(tarballUrl)
let buffer = Buffer.from(await downloadRes.arrayBuffer())
let filename = `${packageName}-${latestVersion}.tgz`
await zdx.sendMessage(m.chat, {
document: buffer,
fileName: filename,
mimetype: 'application/gzip',
caption: `📦 ${pkgData.name} v${latestVersion}\n📝 ${pkgData.description}\n📊 Size: ${(buffer.length / 1024).toFixed(2)} KB\n📥 Downloaded successfully!`
}, {
quoted: m
})
} else {
let res = await fetch(`http://registry.npmjs.com/-/v1/search?text=${packageName}&size=15`)
let {
objects
} = await res.json()
if (!objects.length) return m.reply('❌ Package tidak ditemukan')
let txt = `*🔍 NPM SEARCH: ${packageName}*\n\n`
txt += objects.slice(0, 10).map((obj, i) => {
let pkg = obj.package
let quality = Math.round(obj.score?.detail?.quality * 100) || 0
let popularity = Math.round(obj.score?.detail?.popularity * 100) || 0
return `${i+1}. *${pkg.name}* (v${pkg.version})\n 📊 Q:${quality}% P:${popularity}%\n 📝 ${pkg.description?.substring(0, 100)}...\n 🔗 ${pkg.links.npm}`
}).join('\n\n')
txt += `\n\n*📋 Commands:*\n`
txt += `• ${prefix + command} ${packageName} --download\n`
txt += `• ${prefix + command} ${packageName} --info\n`
txt += `• ${prefix + command} ${packageName} --stats`
m.reply(txt)
}
} catch (e) {
m.reply('❌ Terjadi kesalahan')
}
}
break
note : sesuaikan dengan script kalian and terima kasih 🥐✨
> Created by Zidan