Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/workflows/typos.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: 🔤 Typo Check

on:
push:
branches: ["dev"]
pull_request:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
typos:
name: "Typo Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: crate-ci/typos@v1
70 changes: 70 additions & 0 deletions _typos.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
[files]
extend-exclude = [
# Auto-generated
"pkg/js/generated/",
"nuclei-jsonschema.json",
# Dependencies
"go.sum",
# Binary / non-text test data
"pkg/protocols/common/helpers/deserialization/testdata/",
"pkg/input/formats/testdata/",
# Static assets & WAF regexes (minified / machine-generated)
"static/",
"pkg/output/stats/waf/",
# Non-English documentation
"README_CN.md",
"README_KR.md",
"README_ID.md",
"README_ES.md",
"README_PT-BR.md",
"README_JP.md",
"README_TR.md",
# Acknowledgements (contains proper names)
"THANKS.md",
"pkg/js/THANKS.md",
# Integration test fixtures (YAML templates with intentional payloads)
"integration_tests/",
# Test target lists (URLs / hostnames)
"cmd/functional-test/targets*.txt",
# Encoded keys / tokens in test helpers
"cmd/integration-test/generic.go",
# Embedded certificates and base64 data
"pkg/testutils/integration.go",
# Test XML payloads (non-English content)
"pkg/operators/matchers/match_test.go",
# Embedded expressions test data (base64 tokens)
"pkg/protocols/common/expressions/expressions_test.go",
# Fuzz playground DB seeds (multi-language content)
"pkg/testutils/fuzzplayground/",
]

[default.extend-words]
# Known filename typo that cannot be renamed without a separate refactor
worflow = "worflow"

# CLI flag short names used throughout the codebase
ot = "ot"
ue = "ue"
hae = "hae"
fo = "fo"

# Words inside compound identifiers — these appear as sub-words after
# identifier splitting (e.g. NoopWriter → Noo, ExludedDastTmplStats → Exluded)
# and must stay at the word level.
Noo = "Noo"
Mis = "Mis"
Exluded = "Exluded"
Reuests = "Reuests"
Splitted = "Splitted"
splitted = "splitted"
Formated = "Formated"
formated = "formated"
Allowd = "Allowd"

# Domain-specific terms (security / networking)
SELEC = "SELEC"
IST = "IST"

# Partial words inside compound tokens (e.g., JSONL(ines))
ines = "ines"
ine = "ine"
2 changes: 1 addition & 1 deletion lib/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ type TemplateFilters struct {
ExcludeSeverities string // filter by excluding severities (accepts CSV values of info, low, medium, high, critical)
ProtocolTypes string // filter by protocol types
ExcludeProtocolTypes string // filter by excluding protocol types
Authors []string // fiter by author
Authors []string // filter by author
Tags []string // filter by tags present in template
ExcludeTags []string // filter by excluding tags present in template
IncludeTags []string // filter by including tags present in template
Expand Down
6 changes: 3 additions & 3 deletions lib/tests/sdk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func TestSimpleNuclei(t *testing.T) {
defer ne.Close()
}

// this is shared test so needs to be run as seperate process
// this is shared test so needs to be run as separate process
if env.GetEnvOrDefault("TestSimpleNuclei", false) {
// run as new process
cmd := exec.Command(os.Args[0], "-test.run=TestSimpleNuclei")
Expand Down Expand Up @@ -81,7 +81,7 @@ func TestSimpleNucleiRemote(t *testing.T) {
require.Nil(t, err)
defer ne.Close()
}
// this is shared test so needs to be run as seperate process
// this is shared test so needs to be run as separate process
if env.GetEnvOrDefault("TestSimpleNucleiRemote", false) {
cmd := exec.Command(os.Args[0], "-test.run=TestSimpleNucleiRemote")
cmd.Env = append(os.Environ(), "TestSimpleNucleiRemote=true")
Expand Down Expand Up @@ -155,7 +155,7 @@ func TestWithVarsNuclei(t *testing.T) {
require.Nil(t, err)
defer ne.Close()
}
// this is shared test so needs to be run as seperate process
// this is shared test so needs to be run as separate process
if env.GetEnvOrDefault("TestWithVarsNuclei", false) {
cmd := exec.Command(os.Args[0], "-test.run=TestWithVarsNuclei")
cmd.Env = append(os.Environ(), "TestWithVarsNuclei=true")
Expand Down
2 changes: 1 addition & 1 deletion pkg/tmplexec/flow/flow_executor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ func TestFlowWithConditionNegative(t *testing.T) {

input := contextargs.NewWithInput(context.Background(), "scanme.sh")
ctx := scan.NewScanContext(context.Background(), input)
// expect no results and verify thant dns request is executed and http is not
// expect no results and verify that dns request is executed and http is not
gotresults, err := Template.Executer.Execute(ctx)
require.Nil(t, err, "could not execute template")
require.False(t, gotresults)
Expand Down