# eslint-plugin-sdl-2

[![npm license.](https://flat.badgen.net/npm/license/eslint-plugin-sdl-2?color=purple)](https://github.com/Nick2bad4u/eslint-plugin-sdl-2/blob/main/LICENSE) [![npm total downloads.](https://flat.badgen.net/npm/dt/eslint-plugin-sdl-2?color=pink)](https://www.npmjs.com/package/eslint-plugin-sdl-2) [![latest GitHub release.](https://flat.badgen.net/github/release/Nick2bad4u/eslint-plugin-sdl-2?color=cyan)](https://github.com/Nick2bad4u/eslint-plugin-sdl-2/releases) [![GitHub stars.](https://flat.badgen.net/github/stars/Nick2bad4u/eslint-plugin-sdl-2?color=yellow)](https://github.com/Nick2bad4u/eslint-plugin-sdl-2/stargazers) [![GitHub forks.](https://flat.badgen.net/github/forks/Nick2bad4u/eslint-plugin-sdl-2?color=green)](https://github.com/Nick2bad4u/eslint-plugin-sdl-2/forks) [![GitHub open issues.](https://flat.badgen.net/github/open-issues/Nick2bad4u/eslint-plugin-sdl-2?color=red)](https://github.com/Nick2bad4u/eslint-plugin-sdl-2/issues) [![codecov.](https://codecov.io/gh/Nick2bad4u/eslint-plugin-sdl-2/branch/main/graph/badge.svg)](https://codecov.io/gh/Nick2bad4u/eslint-plugin-sdl-2)

SDL-focused ESLint plugin with modern flat-config presets and TypeScript-first rule implementations.

## Installation

```bash
npm install --save-dev eslint eslint-plugin-sdl-2
```

## Usage (Flat Config)

```ts
import sdl from "eslint-plugin-sdl-2";

export default [...sdl.configs.recommended];
```

## Presets

- `sdl.configs.common`
- `sdl.configs.typescript`
- `sdl.configs.angular`
- `sdl.configs.angularjs`
- `sdl.configs.node`
- `sdl.configs.react`
- `sdl.configs.electron`
- `sdl.configs.required`
- `sdl.configs.recommended`

## Rules

- `Fix` legend:
  - `🔧` = autofixable
  - `💡` = suggestions available
  - `—` = report only
- `Preset key` legend:
  - [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) — [`sdl.configs.common`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common)
  - [🔷](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/typescript) — [`sdl.configs.typescript`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/typescript)
  - [🅰️](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angular) — [`sdl.configs.angular`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angular)
  - [🧭](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angularjs) — [`sdl.configs.angularjs`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angularjs)
  - [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) — [`sdl.configs.node`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node)
  - [⚛️](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/react) — [`sdl.configs.react`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/react)
  - [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) — [`sdl.configs.electron`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron)
  - [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) — [`sdl.configs.required`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required)
  - [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) — [`sdl.configs.recommended`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended)
- `⚛️ React` provides JSX parser context and intentionally has no SDL rule rows in this matrix.

<!-- prettier-ignore-start -->
| Rule | Fix | Preset key |
| --- | :-: | :-- |
| [`no-angular-bypass-sanitizer`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angular-bypass-sanitizer) | — | [🅰️](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angular) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angular-bypass-security-trust-html`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angular-bypass-security-trust-html) | — | [🅰️](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angular) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angular-innerhtml-binding`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angular-innerhtml-binding) | — | [🅰️](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angular) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angular-sanitization-trusted-urls`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angular-sanitization-trusted-urls) | — | [🅰️](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angular) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angularjs-bypass-sce`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angularjs-bypass-sce) | — | [🧭](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angularjs) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angularjs-enable-svg`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angularjs-enable-svg) | — | [🧭](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angularjs) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angularjs-ng-bind-html-without-sanitize`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angularjs-ng-bind-html-without-sanitize) | — | [🧭](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angularjs) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angularjs-sanitization-whitelist`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angularjs-sanitization-whitelist) | — | [🧭](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angularjs) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-angularjs-sce-resource-url-wildcard`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-angularjs-sce-resource-url-wildcard) | — | [🧭](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/angularjs) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-child-process-exec`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-child-process-exec) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-child-process-shell-true`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-child-process-shell-true) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-cookies`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-cookies) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-document-domain`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-document-domain) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-document-execcommand-insert-html`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-document-execcommand-insert-html) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-document-parse-html-unsafe`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-document-parse-html-unsafe) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-document-write`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-document-write) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-domparser-html-without-sanitization`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-domparser-html-without-sanitization) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-domparser-svg-without-sanitization`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-domparser-svg-without-sanitization) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-dynamic-import-unsafe-url`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-dynamic-import-unsafe-url) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-allow-running-insecure-content`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-allow-running-insecure-content) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-dangerous-blink-features`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-dangerous-blink-features) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-disable-context-isolation`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-disable-context-isolation) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-disable-sandbox`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-disable-sandbox) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-disable-web-security`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-disable-web-security) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-enable-remote-module`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-enable-remote-module) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-enable-webview-tag`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-enable-webview-tag) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-experimental-features`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-experimental-features) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-expose-raw-ipc-renderer`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-expose-raw-ipc-renderer) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-insecure-certificate-error-handler`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-insecure-certificate-error-handler) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-insecure-certificate-verify-proc`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-insecure-certificate-verify-proc) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-insecure-permission-request-handler`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-insecure-permission-request-handler) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-node-integration`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-node-integration) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-permission-check-handler-allow-all`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-permission-check-handler-allow-all) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-unchecked-ipc-sender`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-unchecked-ipc-sender) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-unrestricted-navigation`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-unrestricted-navigation) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-untrusted-open-external`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-untrusted-open-external) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-webview-allowpopups`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-webview-allowpopups) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-webview-insecure-webpreferences`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-webview-insecure-webpreferences) | — | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-electron-webview-node-integration`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-electron-webview-node-integration) | 🔧 | [⚡](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/electron) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-html-method`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-html-method) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-http-request-to-insecure-protocol`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-http-request-to-insecure-protocol) | 🔧 | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-iframe-srcdoc`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-iframe-srcdoc) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-inner-html`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-inner-html) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-insecure-random`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-insecure-random) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-insecure-tls-agent-options`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-insecure-tls-agent-options) | 🔧 | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-insecure-url`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-insecure-url) | 🔧 | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-location-javascript-url`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-location-javascript-url) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-message-event-without-origin-check`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-message-event-without-origin-check) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-msapp-exec-unsafe`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-msapp-exec-unsafe) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-node-tls-check-server-identity-bypass`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-node-tls-check-server-identity-bypass) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-node-tls-legacy-protocol`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-node-tls-legacy-protocol) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-node-tls-reject-unauthorized-zero`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-node-tls-reject-unauthorized-zero) | 💡 | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-node-tls-security-level-zero`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-node-tls-security-level-zero) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-node-vm-run-in-context`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-node-vm-run-in-context) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-node-vm-source-text-module`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-node-vm-source-text-module) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-node-worker-threads-eval`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-node-worker-threads-eval) | — | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-nonnull-assertion-on-security-input`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-nonnull-assertion-on-security-input) | — | [🔷](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/typescript) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-postmessage-star-origin`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-postmessage-star-origin) | 💡 | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-postmessage-without-origin-allowlist`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-postmessage-without-origin-allowlist) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-range-create-contextual-fragment`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-range-create-contextual-fragment) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-script-src-data-url`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-script-src-data-url) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-script-text`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-script-text) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-service-worker-unsafe-script-url`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-service-worker-unsafe-script-url) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-set-html-unsafe`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-set-html-unsafe) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-trusted-types-policy-pass-through`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-trusted-types-policy-pass-through) | — | [🔷](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/typescript) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-unsafe-alloc`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-unsafe-alloc) | 🔧 | [🟩](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/node) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-unsafe-cast-to-trusted-types`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-unsafe-cast-to-trusted-types) | — | [🔷](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/typescript) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-window-open-without-noopener`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-window-open-without-noopener) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-winjs-html-unsafe`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-winjs-html-unsafe) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-worker-blob-url`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-worker-blob-url) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
| [`no-worker-data-url`](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/no-worker-data-url) | — | [🟢](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/common) [✅](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/required) [⭐](https://nick2bad4u.github.io/eslint-plugin-SDL-2/docs/rules/presets/recommended) |
<!-- prettier-ignore-end -->

## Development

```bash
npm install
npm run build
npm run lint:fix:quiet
npm run typecheck
npm run test
```
