Merge pull request #3484 from kaitozaw/issue/2306-js-lint

Fixes issue/js-lint (#2306)
This commit is contained in:
zinduolis
2026-05-18 16:27:41 +10:00
committed by GitHub
4 changed files with 1370 additions and 5 deletions
+47
View File
@@ -0,0 +1,47 @@
{
"env": {
"browser": true,
"es6": false
},
"extends": ["eslint:recommended"],
"parserOptions": {
"ecmaVersion": 5,
"sourceType": "script"
},
"ignorePatterns": [
"core/main/client/lib/**",
"modules/**"
],
"rules": {
/* Keep this minimal at first. Add project-specific rules after seeing CI logs. */
},
"globals": {
// beef
"beef": "readonly",
// jQuery / alias
"$": "readonly",
"jQuery": "readonly",
"$j": "readonly",
// BeEF bootstrapping
"beef_init": "readonly",
// Existing libraries
"MobileEsp": "readonly",
"evercookie": "readonly",
"swfobject": "readonly",
// Browser-specific globals (old IE / old Firefox)
"XDomainRequest": "readonly",
"MozWebSocket": "readonly",
"clipboardData": "readonly",
// Debug
"isDebug": "readonly"
}
}
+82
View File
@@ -0,0 +1,82 @@
name: JavaScript Linting
on:
pull_request:
branches: [ master ]
permissions:
contents: read
pull-requests: read
jobs:
lint-changed-files:
name: Lint Changed JavaScript Files (Blocking)
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Get changed JavaScript files
id: changed-js-files
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
with:
files: '**/*.js'
files_ignore: |
node_modules/**
core/main/client/lib/**
**/*.min.js
extensions/admin_ui/media/javascript-min/**
separator: ' '
- name: Lint changed JavaScript files
if: steps.changed-js-files.outputs.any_changed == 'true'
run: |
echo "Linting ${{ steps.changed-js-files.outputs.all_changed_files_count }} changed JavaScript file(s)"
npx eslint ${{ steps.changed-js-files.outputs.all_changed_files }}
- name: No JavaScript files changed
if: steps.changed-js-files.outputs.any_changed == 'false'
run: |
echo "No JavaScript files were changed in this PR. Skipping ESLint."
lint-all-files:
name: Lint All JavaScript Files (Non-blocking Report)
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '24.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Lint all JavaScript files (report-only)
run: |
echo "Running ESLint on entire codebase"
echo "This is a report-only job and will not block the PR."
npx eslint "**/*.js" || true
- name: Summary
if: always()
run: |
echo "Full codebase linting completed. Check the logs above for details."
echo "This job does not affect PR merge status."
+1236 -3
View File
File diff suppressed because it is too large Load Diff
+5 -2
View File
@@ -3,13 +3,16 @@
"version": "0.6.0.0",
"description": "The Browser Exploitation Framework Project",
"scripts": {
"docs": "./node_modules/.bin/jsdoc -c conf.json"
"docs": "./node_modules/.bin/jsdoc -c conf.json",
"lint": "eslint",
"lint:fix": "eslint --fix"
},
"author": "Wade Alcorn",
"license": "GNU General Public License v2.0",
"devDependencies": {
"eslint": "^7.32.0",
"jsdoc": "^4.0.5",
"jsdoc-to-markdown": "^9.1.3"
},
"dependencies": {}
}
}