// npm 패키지
@thebros/create-benjamin
Benjamin CLI Generator
주간
2,655
월간
2,655
버전
21
메인테이너
1
라이선스
MIT
최초 publish
2026-05-22
publisher
thebros
tarball
2,354 B
AUTO-PUBLISHED·1개 버전 인덱싱됨·최근 publish: 2026-05-26
// offending code· @1.0.23· 1 file flagged
llm: benign · 0.85→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
- @1.0.23··AUTO-PUBLISHED·publisher: thebrosheuristic 75/100static flags 2llm benign (0.85) via ollamanew-publisher:4dpopularity:highmature-packageosv-flagged:MAL-2026-4455public-github-pusharchive-then-upload
→ 의심 전송지 없음, 원격 실행 형태 없음 — 1 known-vendor host(s).
// offending code· 1 file flaggedpatterns: 2
--- package/bin/index.js (excerpt) --- #!/usr/bin/env node import fs from "fs-extra"; import path from "path"; import chalk from "chalk"; import inquirer from "inquirer"; import ora from "ora"; import axios from "axios"; import AdmZip from "adm-zip"; async function cloneRepo(repoUrl, dest) { const spinner = ora("Downloading template from GitHub...").start(); try { // CHANGE THIS TO main OR master const branch = "main"; // remove .git repoUrl = repoUrl.replace(".git", ""); // build zip url const zipUrl = `${repoUrl}/archive/refs/heads/${branch}.zip`; // download zip const response = await axios({ url: zipUrl, method: "GET", responseType: "arraybuffer", }); // temp zip path const zipPath = path.join(dest, "template.zip"); await fs.ensureDir(dest); await fs.writeFile(zipPath, response.data); // extract const zip = new AdmZip(zipPath); zip.extractAllTo(dest, true); // remove zip await fs.remove(zipPath); spinner.succeed("Template downloaded successfully"); } catch (err) { spinner.fail("Failed to download template"); console.log(err.message); } } async function main() { console.log(chalk.cyan("\n�� Benjamin CLI Generator\n")); const answers = await inquirer.prompt([ { type: "input", name: "projectName", message: "Project name:", default: "my-app", }, ]); const root = path.join(process.cwd(), answers.projectName); if (fs.existsSync(root)) { console.log
