-
Notifications
You must be signed in to change notification settings - Fork 11
Docs #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docs #19
Conversation
… logic - Major rewrite and expansion of the main README and the detectors' README: - Added clear project overview, use cases, CLI/API usage, troubleshooting, and contribution instructions. - Provided detailed, structured documentation for each supported obfuscation type and detector. - Standardized and enhanced JSDoc comments for all detector modules and shared detection methods: - Clarified function purposes, parameters, and return values. - Improved consistency and accuracy of documentation across the codebase. - Refactored and clarified code in detector modules and shared methods: - Improved variable naming and fixed typos in comments. - Made logic and intent clearer, especially in shared detection utilities.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR overhauls documentation, modernizes detector implementations, and updates dependencies/configuration for better maintainability and usability.
- Expanded top-level and per-detector README files with clear overviews, usage instructions, CLI options, and examples
- Refactored detector loops to use
Array.prototype.some/find, improved JSDoc comments, and added divide-by-zero guards - Bumped
eslintandflastversions and enabledallowEmptyCatchineslint.config.js
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/index.js | Enhanced JSDoc, switched detector iteration to Object.keys |
| src/detectors/sharedDetectionMethods.js | Fixed typo, added zero-length guard, refined JSDoc |
| src/detectors/obfuscator-io.js | Added and detailed JSDoc for new helper functions |
| src/detectors/functionToArrayReplacements.js | Updated JSDoc to follow consistent style |
| src/detectors/caesarp.js | Expanded JSDoc, corrected assignment spelling |
| src/detectors/augmentedProxiedArrayFunctionReplacements.js | Added JSDoc, clarified argument checks |
| src/detectors/augmentedArrayReplacements.js | Refactored loop to find, updated return pattern |
| src/detectors/augmentedArrayFunctionReplacements.js | Refactored loop to some, streamlined detection flow |
| src/detectors/arrayReplacements.js | Refactored loop to some, cleaned return logic |
| src/detectors/arrayFunctionReplacements.js | Refactored loop to some, cleaned return logic |
| src/detectors/README.md | Replaced verbose example code with modular overview and table |
| package.json | Upgraded eslint to ^9.26.0, flast to ^2.2.3 |
| eslint.config.js | Enabled allowEmptyCatch for no-empty rule |
| README.md | Expanded overview, usage sections, CLI flags, troubleshooting tips |
Comments suppressed due to low confidence (3)
src/index.js:7
- The
loggerimport is not used in this file. Consider removing it to keep imports clean and avoid unused-variable warnings.
import {generateFlatAST, logger} from 'flast';
src/detectors/sharedDetectionMethods.js:51
- The JSDoc
@returns {ASTNode[]|null}is misleading: the function actually returns a singleASTNode(orundefined). Update the JSDoc to reflect the actual return type.
function arrayIsProvidedAsArgumentToIIFE(references, targetArrayName) {
src/detectors/augmentedArrayReplacements.js:18
- [nitpick] The variable
isFoundsuggests a boolean, but it's assigned an AST node orundefined. Consider renaming it tofoundCandidateor similar for clarity.
const isFound = candidates.find(c => {
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR overhauls documentation, modernizes detector code, updates dependencies, and tightens ESLint rules for the obfuscation-detector project.
- Expanded and restructured README files for clarity and navigation.
- Refactored detector modules to use
Array.prototype.some/findand improved JSDoc. - Upgraded
eslintandflast, and enabledallowEmptyCatchfor theno-emptyrule.
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/index.js | Updated JSDoc and iteration over detectors via Object.keys. |
| src/detectors/sharedDetectionMethods.js | Fixed typos, added guard for zero-length AST, refined JSDoc. |
| src/detectors/*.js | Switched loops to some/find, standardized JSDoc across detectors. |
| src/detectors/README.md | Replaced outdated content with a tabular overview of detectors. |
| README.md | Expanded project overview, use cases, CLI flags, and troubleshooting. |
| package.json | Bumped eslint to ^9.26.0 and flast to ^2.2.3. |
| eslint.config.js | Changed no-empty rule to allow empty catch blocks. |
Comments suppressed due to low confidence (1)
src/detectors/arrayReplacements.js:18
- This refactored logic using
somereplaces the old loop-based return. Ensure you add or update unit tests to cover cases where arrays are on the threshold of detection.
const isFound = candidates.some(c => {
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request improves both the documentation and the internal detection logic of the obfuscation-detector project while updating dependencies and ESLint configuration.
- Expanded and restructured documentation (README and detectors README) to improve user guidance.
- Refactored several detectors to use modern JavaScript methods like Array.prototype.some and Array.prototype.find for simplified logic.
- Upgraded dependencies (eslint and flast) and updated ESLint rules for better error handling.
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/index.js | Updated main entry point with improved JSDoc and cleaner detector iteration. |
| src/detectors/sharedDetectionMethods.js | Fixed a spelling error and enhanced division safety in percentage calculations. |
| src/detectors/obfuscator-io.js | Added clarifying JSDoc comments to better explain detection logic. |
| src/detectors/functionToArrayReplacements.js | Improved documentation and streamlined detection function. |
| src/detectors/caesarp.js | Revised JSDoc for clarity in scope checking and obfuscation type detection. |
| src/detectors/augmentedProxiedArrayFunctionReplacements.js | Updated JSDoc and refined detection logic using array methods. |
| src/detectors/augmentedArrayReplacements.js | Refactored loop to use Array.prototype.find for clearer detection logic. |
| src/detectors/augmentedArrayFunctionReplacements.js | Switched to Array.prototype.some and improved reference handling. |
| src/detectors/arrayReplacements.js | Refactored detection with Array.prototype.some for better readability. |
| src/detectors/arrayFunctionReplacements.js | Streamlined loop logic with Array.prototype.some and added a check for reference count. |
| src/detectors/README.md | Modularized and clarified documentation for detector modules. |
| package.json | Updated dependency versions for improved compatibility and feature support. |
| eslint.config.js | Modified the no-empty rule setting to allow empty catch blocks with proper error setup. |
| README.md | Enhanced overall documentation with clear usage examples and troubleshooting tips. |
This pull request introduces significant updates to the
obfuscation-detectorproject, including enhancements to documentation, code refactoring for detectors, dependency updates, and ESLint configuration improvements. These changes aim to improve usability, maintainability, and accuracy of the tool.Documentation Enhancements:
README.mdwith an overview, use cases, API reference, CLI options, troubleshooting, and detailed examples for better user guidance. [1] [2]src/detectors/README.mdwith a modular structure, including a detector overview, list of detectors, and guidelines for adding new detectors.Code Refactoring:
detectArrayFunctionReplacementsinsrc/detectors/arrayFunctionReplacements.jsto simplify logic and improve readability by replacing nested loops withArray.prototype.some.detectArrayReplacementsinsrc/detectors/arrayReplacements.jsto useArray.prototype.some, aligning with modern JavaScript practices.Dependency Updates:
eslintfrom^9.16.0to^9.26.0andflastfrom^2.2.1to^2.2.3inpackage.jsonto ensure compatibility and leverage the latest features.ESLint Configuration:
no-emptyrule ineslint.config.jsto allow emptycatchblocks by enabling theallowEmptyCatchoption, improving flexibility for error handling.