
अगली पीढ़ी की JavaScript पहचानकर्ता पुनर्प्राप्ति LLMs के साथ।
अपने ब्राउज़र में FlowName आज़माएँ → — अपना JavaScript, API key और model दर्ज करें; किसी इंस्टॉलेशन की आवश्यकता नहीं।
CLI: npx --yes --package=flowname@latest flowname input.js (पहले GEMINI_API_KEY सेट करें)।
FlowName obfuscated JavaScript के लिए एक अगली पीढ़ी का Semantic Identifier Recoverer है। AST-आधारित static analysis का उपयोग करके तार्किक रूप से संबंधित variables को budgeted LLM requests में समूहित करके, FlowName naive text-window दृष्टिकोणों में आम context-loss hallucinations को समाप्त करता है।
411-binding वाले obfuscated scope पर एक अग्रणी symbol-based tool (Humanify) के विरुद्ध सीधे benchmark में, FlowName ने दिया:
HTML रिपोर्ट में सभी 411 name तुलनाएँ देखें। 155 बनाम 37 तुलना एक स्वचालित, uncalibrated Jev judgment है; यह एक-प्रोग्राम रन सामान्य naming-quality लाभ स्थापित नहीं कर सकता। benchmark notes देखें।
अपने environment में GEMINI_API_KEY (या FLOWNAME_API_KEY) सेट करें, फिर चलाएँ:
npx --yes --package=flowname@latest flowname input.js
CLI recovered code को एक नई flowname-output-TIMESTAMP-ID/output.js directory में लिखता है। प्रत्येक request और proposed name को live HTML report में देखने के लिए --report जोड़ें। default Gemini model के लिए किसी flags की आवश्यकता नहीं है; CLI स्वचालित रूप से .env लोड नहीं करता। Node.js 22.8+ आवश्यक है।
ब्राउज़र के लिए, playground खोलें, JavaScript पेस्ट करें, अपनी API key दें और recovery शुरू करें। Requests सीधे आपके ब्राउज़र से चयनित provider तक जाती हैं; Stop रन को बाधित करता है।
FlowName identifiers को नाम देता है; यह bundles को unpack नहीं करता या structural obfuscation को पूर्ववत नहीं करता। समर्थित obfuscation patterns के लिए webcrack या समर्थित bundles के लिए Wakaru का उपयोग करें, फिर परिणामी JavaScript को FlowName को दें। यह lexical bindings को resolve करता है, targets को समूहित करने के लिए lightweight relations और same-scope fallback का उपयोग करता है, और LLM से प्रति request कई नाम माँगता है। देखें कि grouping कैसे काम करती है।
npm install flowname
import { readFile } from 'node:fs/promises';
import { recoverNames, createProvider } from 'flowname';
const sourceCode = await readFile('./input.js', 'utf8');
const provider = createProvider({
provider: 'gemini',
model: 'gemini-3.5-flash-lite',
apiKey: process.env.GEMINI_API_KEY,
});
const result = await recoverNames(sourceCode, { provider });
console.log(result.code);
options, CLI reports और एक पूर्ण library उदाहरण के लिए usage guide देखें। documentation index में approach, architecture, limitations, prior work और Humanify comparison शामिल हैं।
MIT के अंतर्गत लाइसेंस प्राप्त। release notes देखें।