Skip to content

Commit

Permalink
Release v2.1.6 (#62)
Browse files Browse the repository at this point in the history
- replace utils.in_array with [].includes
- dep(eslint): upgrade to v9
- doc(CONTRIBUTORS): updated
  • Loading branch information
msimerson authored Jan 31, 2025
1 parent a8c1185 commit 27107ac
Show file tree
Hide file tree
Showing 10 changed files with 65 additions and 28 deletions.
4 changes: 2 additions & 2 deletions .codeclimate.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
engines:
eslint:
enabled: true
channel: 'eslint-8'
channel: 'eslint-9'
config:
config: '.eslintrc.yaml'
config: 'eslint.config.mjs'

checks:
return-statements:
Expand Down
7 changes: 0 additions & 7 deletions .eslintrc.yaml

This file was deleted.

2 changes: 0 additions & 2 deletions .prettierrc

This file was deleted.

2 changes: 1 addition & 1 deletion .release
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).

### Unreleased

### [2.1.7] - 2025-01-31

- replace utils.in_array with [].includes
- dep(eslint): upgrade to v9
- doc(CONTRIBUTORS): updated

### [2.1.6] - 2024-11-08

- fix missing error handler on redis client [#45](/~https://github.com/haraka/haraka-plugin-redis/issues/45)
- fix missing error handler on redis client #61

### [2.1.5] - 2024-04-23

Expand Down Expand Up @@ -134,3 +140,4 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
[2.1.3]: /~https://github.com/haraka/haraka-plugin-karma/releases/tag/v2.1.3
[2.1.4]: /~https://github.com/haraka/haraka-plugin-karma/releases/tag/v2.1.4
[2.1.5]: /~https://github.com/haraka/haraka-plugin-karma/releases/tag/v2.1.5
[2.1.6]: /~https://github.com/haraka/haraka-plugin-karma/releases/tag/v2.1.6
7 changes: 4 additions & 3 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

This handcrafted artisinal software is brought to you by:

| <img height="80" src="/~https://avatars.githubusercontent.com/u/261635?v=4"><br><a href="/~https://github.com/msimerson">msimerson</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=msimerson">59</a>) | <img height="80" src="/~https://avatars.githubusercontent.com/u/934254?v=4"><br><a href="/~https://github.com/analogic">analogic</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=analogic">2</a>) | <img height="80" src="/~https://avatars.githubusercontent.com/u/550490?v=4"><br><a href="/~https://github.com/smfreegard">smfreegard</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=smfreegard">1</a>) | <img height="80" src="/~https://avatars.githubusercontent.com/u/24506085?v=4"><br><a href="/~https://github.com/Gooong">Gooong</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=Gooong">1</a>) |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| <img height="80" src="/~https://avatars.githubusercontent.com/u/261635?v=4"><br><a href="/~https://github.com/msimerson">msimerson</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=msimerson">60</a>) | <img height="80" src="/~https://avatars.githubusercontent.com/u/934254?v=4"><br><a href="/~https://github.com/analogic">analogic</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=analogic">2</a>) | <img height="80" src="/~https://avatars.githubusercontent.com/u/918201?v=4"><br><a href="/~https://github.com/DoobleD">DoobleD</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=DoobleD">1</a>) | <img height="80" src="/~https://avatars.githubusercontent.com/u/550490?v=4"><br><a href="/~https://github.com/smfreegard">smfreegard</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=smfreegard">1</a>) | <img height="80" src="/~https://avatars.githubusercontent.com/u/24506085?v=4"><br><a href="/~https://github.com/Gooong">Gooong</a> (<a href="/~https://github.com/haraka/haraka-plugin-karma/commits?author=Gooong">1</a>) |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |

<sub>this file is maintained by [.release](/~https://github.com/msimerson/.release)</sub>
<sub>this file is generated by [.release](/~https://github.com/msimerson/.release).
Contribute to this project to get your GitHub profile included here.</sub>
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
[![Build Status][ci-img]][ci-url]
[![Code Climate][clim-img]][clim-url]
[![NPM][npm-img]][npm-url]

# Karma - A heuristics based reputation engine for the Haraka MTA

Expand Down Expand Up @@ -200,5 +199,3 @@ Expect to use karma _with_ content filters.
[cov-url]: https://codecov.io/github/haraka/haraka-plugin-karma
[clim-img]: https://codeclimate.com/github/haraka/haraka-plugin-karma/badges/gpa.svg
[clim-url]: https://codeclimate.com/github/haraka/haraka-plugin-karma
[npm-img]: https://nodei.co/npm/haraka-plugin-karma.png
[npm-url]: https://www.npmjs.com/package/haraka-plugin-karma
25 changes: 25 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import globals from 'globals'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
import js from '@eslint/js'
import { FlatCompat } from '@eslint/eslintrc'

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all,
})

export default [
...compat.extends('@haraka'),
{
languageOptions: {
globals: {
...globals.node,
...globals.mocha,
},
},
},
]
17 changes: 15 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -364,8 +364,8 @@ exports.tarpit_delay = function (score, connection, hook, k) {

// detect roaming users based on MSA ports that require auth
if (
utils.in_array(connection.local.port, [587, 465]) &&
utils.in_array(hook, ['ehlo', 'connect'])
[587, 465].includes(connection.local.port) &&
['ehlo', 'connect'].includes(hook)
) {
return this.tarpit_delay_msa(connection, delay, k)
}
Expand Down Expand Up @@ -673,6 +673,19 @@ exports.hook_data_post = function (next, connection) {

if (this.should_we_skip(connection)) return next()

/*
This should not be a default due to highly probability of false positives,
but I've found it extremely effective against a recent (most of 2024) spam
campaign that Gmail apparently has no interest in stopping.
if (connection.transaction.header.get_decoded('subject').match(/\p{Emoji}/gu)) {
connection.results.add(this, { msg: 'subject_contains_emoji' })
if (connection.transaction.mail_from.host === 'gmail.com') {
connection.results.incr(this, { score: -10 })
connection.results.add(this, { msg: 'emoji_from_gmail' })
}
}
*/

this.check_awards(connection) // update awards

const results = connection.results.collate(this)
Expand Down
17 changes: 10 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
{
"name": "haraka-plugin-karma",
"version": "2.1.6",
"version": "2.1.7",
"description": "A heuristics scoring and reputation engine for SMTP connections",
"main": "index.js",
"files": [
"CHANGELOG.md",
"config",
"test"
"config"
],
"scripts": {
"format": "npm run prettier:fix && npm run lint:fix",
"lint": "npx eslint@^8 *.js test",
"lint:fix": "npx eslint@^8 *.js test --fix",
"lint": "npx eslint@^9 *.js test",
"lint:fix": "npx eslint@^9 *.js test --fix",
"prettier": "npx prettier . --check",
"prettier:fix": "npx prettier . --write --log-level=warn",
"test": "npx mocha@^10",
"test": "npx mocha@^11",
"versions": "npx dependency-version-checker check",
"versions:fix": "npx dependency-version-checker update"
},
Expand All @@ -39,7 +38,11 @@
"redis": "^4.6.13"
},
"devDependencies": {
"@haraka/eslint-config": "^1.1.2",
"@haraka/eslint-config": "^2.0.2",
"haraka-test-fixtures": "^1.3.4"
},
"prettier": {
"singleQuote": true,
"semi": false
}
}

0 comments on commit 27107ac

Please sign in to comment.