3 Commits

Author SHA1 Message Date
Markus Heiser
2497b94187 [fix] issues reported by sytlelint
"Unexpected vendor-prefixed":
   -webkit-transform & -ms-transform [3]
   -webkit-animation [2]
   @-webkit-keyframes [1]

[1] https://developer.mozilla.org/en-US/docs/Web/CSS/@keyframes
[2] https://developer.mozilla.org/en-US/docs/Web/CSS/animation
[3] https://developer.mozilla.org/en-US/docs/Web/CSS/transform

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-01-03 07:57:06 +01:00
Markus Heiser
76f423785d [upd] migrate .eslintrc.json to eslint.config.mjs
The migration was done by the following steps, firts prepare the node enviroment
an open a bash in this environment::

    $ make clean nvm.nodejs
    ...
    $ ./manage nvm.bash
    $ which npx
    searxng/.nvm/versions/node/v23.5.0/bin/npx

In this environment the migration command from [1] is started::

    $ npx @eslint/migrate-config .eslintrc.json
    Need to install the following packages:
    @eslint/migrate-config@1.3.5
    Migrating .eslintrc.json

    Wrote new config to ./eslint.config.mjs

    You will need to install the following packages to use the new config:
    - globals
    - @eslint/js
    - @eslint/eslintrc

    You can install them using the following command:

    npm install globals @eslint/js @eslint/eslintrc -D

    The following messages were generated during migration:
    - The 'node' environment is used, so switching sourceType to 'commonjs'.

[1] https://eslint.org/docs/latest/use/configure/migration-guide#migrate-your-config-file

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-01-02 08:58:32 +01:00
Markus Heiser
7e30ec47bf [upd] update npm dependencies (package.json) and .tool-versions
To avoid issue like [1], versions from now on are pinned in::

    searx/static/themes/simple/package-lock.json

To test nodejs v23 or newer is needed (will be installed by nvm).  To drop a
possibly existing installation::

    $ make clean

Install nodejs in nvm::

    $ make nvm.nodejs
    INFO:  install (update) NVM at searxng/.nvm
    ...
    Now using node v23.5.0 (npm v10.9.2)
    Creating default alias: default -> v23.5 (-> v23.5.0)
    INFO:  Node.js is installed at searxng/.nvm/versions/node/v23.5.0/bin/node
    INFO:  Node.js is version v23.5.0
    INFO:  npm is installed at searxng/.nvm/versions/node/v23.5.0/bin/npm
    INFO:  npm is version 10.9.2
    INFO:  NVM is installed at searxng/.nvm

To test npm checks and builds:

    $ make static.build.commit

Related:

[1] https://github.com/searxng/searxng/issues/4143

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2025-01-02 08:32:33 +01:00
10 changed files with 9714 additions and 71 deletions

2
.nvmrc
View File

@@ -1 +1 @@
v20.10 v23.5

View File

@@ -1,2 +1,4 @@
python 3.12.0 nodejs 23.5.0
shellcheck 0.9.0 python 3.13.1
shellcheck 0.10.0
sqlite 3.47.2

View File

@@ -1,7 +1,7 @@
{ {
"dependencies": { "dependencies": {
"eslint": "^9.0.0", "eslint": "^9.17.0",
"pyright": "^1.1.329" "pyright": "^1.1.391"
}, },
"scripts": { "scripts": {
"clean": "rm -Rf node_modules package-lock.json" "clean": "rm -Rf node_modules package-lock.json"

View File

@@ -1,28 +0,0 @@
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 12
},
"rules": {
"indent": ["error", 2],
"keyword-spacing": ["error", { "before": true, "after": true }],
"no-trailing-spaces": 2,
"space-before-function-paren": ["error", "always"],
"space-infix-ops": "error",
"comma-spacing": ["error", { "before": false, "after": true }],
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
"curly": ["error", "multi-line"],
"block-spacing": ["error", "always"],
"dot-location": ["error", "property"],
"key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
"spaced-comment": ["error", "always", {
"line": { "markers": ["*package", "!", "/", ",", "="] },
"block": { "balanced": true, "markers": ["*package", "!", ",", ":", "::", "flow-include"], "exceptions": ["*"] }
}]
}
}

View File

@@ -1,2 +1 @@
/node_modules /node_modules
package-lock.json

View File

@@ -0,0 +1,68 @@
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("eslint:recommended"), {
languageOptions: {
globals: {
...globals.browser,
...globals.node,
},
ecmaVersion: 12,
sourceType: "commonjs",
},
rules: {
indent: ["error", 2],
"keyword-spacing": ["error", {
before: true,
after: true,
}],
"no-trailing-spaces": 2,
"space-before-function-paren": ["error", "always"],
"space-infix-ops": "error",
"comma-spacing": ["error", {
before: false,
after: true,
}],
"brace-style": ["error", "1tbs", {
allowSingleLine: true,
}],
curly: ["error", "multi-line"],
"block-spacing": ["error", "always"],
"dot-location": ["error", "property"],
"key-spacing": ["error", {
beforeColon: false,
afterColon: true,
}],
"spaced-comment": ["error", "always", {
line: {
markers: ["*package", "!", "/", ",", "="],
},
block: {
balanced: true,
markers: ["*package", "!", ",", ":", "::", "flow-include"],
exceptions: ["*"],
},
}],
},
}];

View File

@@ -35,7 +35,7 @@ module.exports = function (grunt) {
}, },
eslint: { eslint: {
options: { options: {
overrideConfigFile: '.eslintrc.json', overrideConfigFile: 'eslint.config.mjs',
failOnError: true, failOnError: true,
fix: grunt.option('fix') fix: grunt.option('fix')
}, },

File diff suppressed because it is too large Load Diff

View File

@@ -1,28 +1,28 @@
{ {
"devDependencies": { "devDependencies": {
"eslint": "^9.0.0", "eslint": "^9.17.0",
"grunt": "~1.6.1", "grunt": "^1.6.1",
"grunt-contrib-copy": "^1.0.0", "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-cssmin": "^5.0.0", "grunt-contrib-cssmin": "^5.0.0",
"grunt-contrib-less": "~3.0.0", "grunt-contrib-less": "^3.0.0",
"grunt-contrib-uglify": "~5.2.1", "grunt-contrib-uglify": "^5.2.2",
"grunt-xmlmin": "~0.1.8", "grunt-xmlmin": "^0.1.8",
"grunt-contrib-watch": "~1.1.0", "grunt-contrib-watch": "^1.1.0",
"grunt-eslint": "^24.0.0", "grunt-eslint": "^25.0.0",
"grunt-stylelint": "^0.16.0", "grunt-stylelint": "^0.20.1",
"grunt-image": "^6.4.0", "grunt-image": "^6.4.0",
"ionicons": "^7.1.0", "ionicons": "^7.4.0",
"less": "^4.1.3", "less": "^4.2.1",
"less-plugin-clean-css": "^1.5.1", "less-plugin-clean-css": "^1.6.0",
"sharp": "^0.33.0", "sharp": "^0.33.5",
"stylelint": "^13.13.1", "stylelint": "^16.12.0",
"stylelint-config-standard": "^22.0.0", "stylelint-config-standard": "^36.0.0",
"ejs": "^3.1.8", "ejs": "^3.1.10",
"svgo": "^3.0.0" "svgo": "^3.3.2"
}, },
"dependencies": { "dependencies": {
"autocomplete-js": "2.7.1", "autocomplete-js": "^2.7.1",
"leaflet": "^1.8.0", "leaflet": "^1.9.4",
"normalize.css": "^8.0.1" "normalize.css": "^8.0.1"
}, },
"scripts": { "scripts": {
@@ -32,7 +32,7 @@
"eslint": "grunt eslint", "eslint": "grunt eslint",
"eslint-fix": "grunt eslint --fix", "eslint-fix": "grunt eslint --fix",
"watch": "grunt watch", "watch": "grunt watch",
"clean": "rm -Rf node_modules package-lock.json", "clean": "rm -Rf node_modules",
"stylelint": "grunt stylelint", "stylelint": "grunt stylelint",
"stylelint-fix": "grunt stylelint --fix" "stylelint-fix": "grunt stylelint --fix"
} }

View File

@@ -14,33 +14,16 @@
border-right: 1.1em solid var(--color-loading-indicator); border-right: 1.1em solid var(--color-loading-indicator);
border-bottom: 1.1em solid var(--color-loading-indicator); border-bottom: 1.1em solid var(--color-loading-indicator);
border-left: 1.1em solid var(--color-loading-indicator-gap); border-left: 1.1em solid var(--color-loading-indicator-gap);
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
transform: translateZ(0); transform: translateZ(0);
-webkit-animation: load8 1.1s infinite linear;
animation: load8 1.1s infinite linear; animation: load8 1.1s infinite linear;
} }
@-webkit-keyframes load8 {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes load8 { @keyframes load8 {
0% { 0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); transform: rotate(0deg);
} }
100% { 100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); transform: rotate(360deg);
} }
} }