Author SHA1 Message Date
WookieeOnCrack 10db664f14 [fix] qwant: update request params to improve impersonation 2026-11-01 23:52:48 +01:00
dependabot[bot]andIvan Gabaldon 8b35dcd2e3 [upd] web-client (simple): Bump the minor group in /client/simple with 3 updates (#6906)
* [upd] web-client (simple): Bump the minor group

Bumps the minor group in /client/simple with 3 updates: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome), [browserslist](https://github.com/browserslist/browserslist) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).

Updates `@biomejs/biome` from 2.5.15 to 2.6.3
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/CHANGELOG_v1.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.6.3/packages/@biomejs/biome)

Updates `browserslist` from 4.29.4 to 4.29.5
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.29.4...4.29.5)

Updates `vite` from 8.3.4 to 8.3.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.6.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: browserslist
  dependency-version: 4.29.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
- dependency-name: vite
  dependency-version: 8.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* [upd] rebuild static

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ivan Gabaldon <igabaldon@inetol.net>
2026-11-01 20:41:00 +01:00
extevent 9ded3bec1a Decrease timeout for Tor check API request
Reduce timeout for Tor check API request from 60 to the default 10 seconds. The longer timeout can delay failure detection when the Tor proxy is unavailable or unresponsive.This reverts the commit #1517724 by the user Evhorizon.
2026-11-01 14:48:54 +01:00
dependabot[bot] ffa88e3ba3 [upd] github-actions: Bump actions/setup-python from 7.0.0 to 7.1.0 (#6904)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/5fda3b95a4ea91299a34e894583c3862153e4b97...6d4fd22b20465ccc0f7354476588e8df7c9ca0e0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-30 19:05:25 +01:00
dependabot[bot] 15ca4f3c1b [upd] github-actions: Bump docker/login-action from 4.6.0 to 4.7.0 (#6905)
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.6.0 to 4.7.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/dbcb813823bdd20940b903addbd779551569679f...81c6f93d4bc991e510b342a00b419b3bb4efc5c6)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-30 19:04:56 +01:00
github-actions[bot] 1cd13d98d6 [l10n] update translations from Weblate (#6903)
50daccb09 - 2026-10-28 - itsxiaobai <itsxiaobai@noreply.codeberg.org>
c098d04fa - 2026-10-28 - seferkalkan <seferkalkan@noreply.codeberg.org>
3fb6d541e - 2026-10-28 - artnay <artnay@noreply.codeberg.org>
1e088cb48 - 2026-10-27 - itsxiaobai <itsxiaobai@noreply.codeberg.org>
0c46c4987 - 2026-10-27 - lugged9922 <lugged9922@noreply.codeberg.org>
32bfe5e99 - 2026-10-26 - Kamalavelan <demonshreder@noreply.codeberg.org>
a724a0a3c - 2026-10-26 - demilune <demilune@noreply.codeberg.org>
3ab6acf9b - 2026-10-25 - alexgabi <alexgabi@noreply.codeberg.org>
99d4d0c54 - 2026-10-23 - Aindriú Mac Giolla Eoin <aindriu80@noreply.codeberg.org>
2026-10-30 08:19:47 +01:00
github-actions[bot]andsearxng-bot c15647b5a5 [mod] data: update searx.data - update_currencies.py (#6900)
Co-authored-by: searxng-bot <searxng-bot@users.noreply.github.com>
2026-10-29 19:50:18 +01:00
github-actions[bot] cff884f98b [mod] data: update searx.data - update_external_bangs.py (#6897) 2026-10-29 09:15:22 +01:00
github-actions[bot] a65db462a4 [mod] data: update searx.data - update_ahmia_blacklist.py (#6899) 2026-10-29 09:14:48 +01:00
github-actions[bot] 6d85146a00 [mod] data: update searx.data - update_firefox_version.py (#6898) 2026-10-29 09:12:59 +01:00
52 changed files with 1523 additions and 580 deletions
+3 -3
View File
@@ -46,7 +46,7 @@ jobs:
steps:
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
@@ -140,14 +140,14 @@ jobs:
steps:
- name: Login to Docker Hub
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
with:
registry: "docker.io"
username: "${{ secrets.DOCKER_USER }}"
password: "${{ secrets.DOCKER_TOKEN }}"
- name: Login to GHCR
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6 # v4.7.0
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
+1 -1
View File
@@ -40,7 +40,7 @@ jobs:
steps:
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
+1 -1
View File
@@ -32,7 +32,7 @@ jobs:
steps:
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
+2 -2
View File
@@ -34,7 +34,7 @@ jobs:
steps:
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "${{ matrix.python-version }}"
@@ -62,7 +62,7 @@ jobs:
runs-on: ubuntu-26.04-arm
steps:
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
+2 -2
View File
@@ -35,7 +35,7 @@ jobs:
steps:
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
@@ -83,7 +83,7 @@ jobs:
steps:
- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "${{ env.PYTHON_VERSION }}"
+224 -227
View File
@@ -15,9 +15,9 @@
"swiped-events": "1.2.0"
},
"devDependencies": {
"@biomejs/biome": "2.5.15",
"@biomejs/biome": "2.6.3",
"@types/node": "^26.6.5",
"browserslist": "^4.29.4",
"browserslist": "^4.29.5",
"browserslist-to-esbuild": "^2.1.1",
"edge.js": "^6.5.1",
"less": "^4.9.0",
@@ -29,7 +29,7 @@
"stylelint-prettier": "^5.0.3",
"svgo": "^4.1.0",
"typescript": "~7.0.2",
"vite": "^8.3.3",
"vite": "^8.3.5",
"vite-bundle-analyzer": "^1.3.9"
}
},
@@ -69,9 +69,9 @@
}
},
"node_modules/@biomejs/biome": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.5.15.tgz",
"integrity": "sha512-WZTW4slm/pdkh92K6t/3aEN++44JD1PQ7squ7RCMLI1flHGl43DVOIGXvCjHiZgBMO1V4uYxoFNtqrIA4qGuIQ==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.6.3.tgz",
"integrity": "sha512-va/0xPku7wnfzv+D8Zpdm5uKiGJWiV8neqoEPnRjvNQQwhl4tVXS4fETs4H0CCB2rGeqJ4cu9y4iOZOnOYKAUA==",
"dev": true,
"license": "MIT OR Apache-2.0",
"bin": {
@@ -85,20 +85,56 @@
"url": "https://opencollective.com/biome"
},
"optionalDependencies": {
"@biomejs/cli-darwin-arm64": "2.5.15",
"@biomejs/cli-darwin-x64": "2.5.15",
"@biomejs/cli-linux-arm64": "2.5.15",
"@biomejs/cli-linux-arm64-musl": "2.5.15",
"@biomejs/cli-linux-x64": "2.5.15",
"@biomejs/cli-linux-x64-musl": "2.5.15",
"@biomejs/cli-win32-arm64": "2.5.15",
"@biomejs/cli-win32-x64": "2.5.15"
"@biomejs/cli-android-arm64": "2.6.3",
"@biomejs/cli-android-x64": "2.6.3",
"@biomejs/cli-darwin-arm64": "2.6.3",
"@biomejs/cli-darwin-x64": "2.6.3",
"@biomejs/cli-linux-arm64": "2.6.3",
"@biomejs/cli-linux-arm64-musl": "2.6.3",
"@biomejs/cli-linux-x64": "2.6.3",
"@biomejs/cli-linux-x64-musl": "2.6.3",
"@biomejs/cli-win32-arm64": "2.6.3",
"@biomejs/cli-win32-x64": "2.6.3"
}
},
"node_modules/@biomejs/cli-android-arm64": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-android-arm64/-/cli-android-arm64-2.6.3.tgz",
"integrity": "sha512-5JD7QQDEHxdeEb4sftEHG+lsuUyu8Cob/hVLqRELbgGlFl68Rldv/PPi2k4dRjERZ/EItJ3O6Xmv8lqsEtUBiw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-android-x64": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-android-x64/-/cli-android-x64-2.6.3.tgz",
"integrity": "sha512-70WOGKCgpT+Uqg6LFdTLqefV54/DypdZg+LnBQDO6AWvkgXO+9xhVClajQyDsIHYjnXMtI1pRO5sP+zMXlS/bw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"android"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-darwin-arm64": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.5.15.tgz",
"integrity": "sha512-BZVzFhJ/mUvTLMYbc9x6el0o2Uv5zP7bACYyhFb6fSc1giroXm7PL0a5KqMJ9F+/BnkYRjagD/ROSDVOZ6eapg==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.6.3.tgz",
"integrity": "sha512-ezf+XEKeyJ2yYlBhrzyEEHLvfRYrhtNKc6maLzR/WcAcBccb4RVDeFxsymjBve2LO0bpIMRUAiS90D4bUBRT0A==",
"cpu": [
"arm64"
],
@@ -113,9 +149,9 @@
}
},
"node_modules/@biomejs/cli-darwin-x64": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.5.15.tgz",
"integrity": "sha512-V5Kw63V+fVGNFhFrizDxMbGXAzZCh8kYzJpy3GI6gTapWDg7bZK9oYC9CbVgQSEdTnupz0U5Efz8Ev+5vdBBXw==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.6.3.tgz",
"integrity": "sha512-Lg2tFdg4elJo+7i707PpLMs6N1hATVt4kqDo6MD/q/VnPs8rsKReKXsz1TA5GNdfRVAQNJ5GRiyK2EwNptK+MA==",
"cpu": [
"x64"
],
@@ -130,9 +166,9 @@
}
},
"node_modules/@biomejs/cli-linux-arm64": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.5.15.tgz",
"integrity": "sha512-XaG7P7eeSLYETD3K9grfB0mQmpLQZjygdbsxekWBJAg4am79fGAtRpfRyNnTvXB2fZFNnJZG3nXm7HBat0+VUw==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.6.3.tgz",
"integrity": "sha512-8Stcvq98n1gs9VyLKuaWrnsd8kbXE2nKDAHtuLHGSYdGyNWN5JIIm5a28xdnmgdKzKHmiDgYyATetkEv7+zGow==",
"cpu": [
"arm64"
],
@@ -150,9 +186,9 @@
}
},
"node_modules/@biomejs/cli-linux-arm64-musl": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.5.15.tgz",
"integrity": "sha512-tGzZUTcJCV7tj5Adh/Gn6nR4MycqA3iohq2LEcrarAgRBkU0h0OKd2UzCRkOsOYOuUGaUJb4YmqRqyy2feGGSw==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.6.3.tgz",
"integrity": "sha512-dYU70A89OFHzakQPE9VOPbE60JNcQt4mtxvUGQl+EgTkGtqCFxLD2RUn1SbiMu8Mu5xFscS1bfYDpoasaUrqNA==",
"cpu": [
"arm64"
],
@@ -170,9 +206,9 @@
}
},
"node_modules/@biomejs/cli-linux-x64": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.5.15.tgz",
"integrity": "sha512-xE4iEW/3LqlYj9GFgGrFsFSH51dEEpUbYWBfeOv0q87WkUDxK2o/HhreSb7qMJqck70RVM6Lg96hgedcAYcOkA==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.6.3.tgz",
"integrity": "sha512-CShmx0bO6BngywT3minv8K1xsQX1ig1vsBqYTLnmDY3mBiDYHlaLRIsdHoM1pEU9dV3BN5a0uiH0IGDtYh9TWA==",
"cpu": [
"x64"
],
@@ -190,9 +226,9 @@
}
},
"node_modules/@biomejs/cli-linux-x64-musl": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.5.15.tgz",
"integrity": "sha512-IlxUcyxilVGPsE008x13pWdkTbU3nQpP2i9b5UrbOYj6goBkKsRX1XB7yJLcV+O1H9LBchIIm4adOaVLZBX0ZQ==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.6.3.tgz",
"integrity": "sha512-j6eFjUcWSphmgVTbrobEMA0wdbfNHKrGi8hRsFkc17jeS1n7nHwFACxp6jWqe9sxQqyFAeyOgt2/1bOGVcbATA==",
"cpu": [
"x64"
],
@@ -210,9 +246,9 @@
}
},
"node_modules/@biomejs/cli-win32-arm64": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.5.15.tgz",
"integrity": "sha512-2kPKzhNlm8C+Ru3GcO0Me2ODkCBLrVOUNuyi84RJyWDVKAA4+Kjj3jMjL938lF6BRfvltC4vB2nPY9SvN51Ovg==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.6.3.tgz",
"integrity": "sha512-00SthDxBPwNiT7IL/mOneif6fiEU1PXK875zhr+InpeZjovY1mF5tCuDhXo1Hh0GYyiKHKzLbItzn58SAyLhJQ==",
"cpu": [
"arm64"
],
@@ -227,9 +263,9 @@
}
},
"node_modules/@biomejs/cli-win32-x64": {
"version": "2.5.15",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.5.15.tgz",
"integrity": "sha512-yAzh4UqEImV6Hcy0zjUqNfJAsUhoD64FBQCdTG8Md/Z2wQeVP/ZmJ3XRYAs1g8J9fjTFyl2fCtc5FB5til47+g==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.6.3.tgz",
"integrity": "sha512-GhtOPphBWlnCepqpNk/w5eGN5oGRCzL20EbAkL1XCIpyboeVC9R642noyT43l8LSenGS4qz9IL8sKPfwY37V/Q==",
"cpu": [
"x64"
],
@@ -315,9 +351,9 @@
}
},
"node_modules/@csstools/css-syntax-patches-for-csstree": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.15.tgz",
"integrity": "sha512-J0u7HkVl2nzSlhsiTOp4AmwcUQ3D+mGEEKfBy/7To5/y7F2OHwyLrXfrhR0SMgr4p5Lo+eaMVSeai24zUcBIxA==",
"version": "1.1.16",
"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.16.tgz",
"integrity": "sha512-LsDbJPP/B8cPasUJyTA5S99F7C4G93ngW8hUluXz8CFeOaaRnBPtBiIlvgcPYU0HmHNz8CXg+1vwFrIB4F6Dgw==",
"dev": true,
"funding": [
{
@@ -1078,9 +1114,9 @@
}
},
"node_modules/@oxc-project/types": {
"version": "0.153.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.153.0.tgz",
"integrity": "sha512-jSNrRIyvPVLL5E1z/tS5zLAprosGz/FuI1PWwEOz59j3E4TTTzSpqKb/RDGqJhhW0QHYISGXxq582wGx6T11Tw==",
"version": "0.156.0",
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.156.0.tgz",
"integrity": "sha512-1Duyg48TdJNdyhEB8Xn1L36bT9Pv6GUtlKjHxOys8xkaF/rQq3XJE+bAurSK/AgIz5mGFsb77cn9Pb20+WCScw==",
"dev": true,
"license": "MIT",
"funding": {
@@ -1148,9 +1184,9 @@
"license": "MIT"
},
"node_modules/@poppinss/utils": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-7.1.1.tgz",
"integrity": "sha512-m1pR6EsycFyDHWDyoWnTI2sgEpOAZuKECQRgZ9i+uGzU/DNoEXn70ldt1V3u2EKp2tNf9T9QqX1wBMHm+xcpiw==",
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-7.1.2.tgz",
"integrity": "sha512-fliKjqqbgEWa4yqHV2Vj7mgNmsARtJ6QeYy5/l0fDWrJ+gHZ3pmwiOqixuejZDsF+h2gdn8MMA+oAy2GfvqDVQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1162,9 +1198,9 @@
}
},
"node_modules/@rolldown/binding-android-arm-eabi": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.13.tgz",
"integrity": "sha512-Vu/NICrgdRvUOeaJZIyB2FP63s6fO/4ud5l8dXmxDx9yDyn+mN0y+gsvsVviSli+T361Aqo0h46EuMoobrwawA==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.16.tgz",
"integrity": "sha512-ia3DwAs0OsMGS7+IConptSiyk9pEXkOx/AbJ2n/lAGxH3QkWQus1t8d7gnAT38FCU2sQu8lUbeR6AiZFv4JxaA==",
"cpu": [
"arm"
],
@@ -1179,9 +1215,9 @@
}
},
"node_modules/@rolldown/binding-android-arm64": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.13.tgz",
"integrity": "sha512-6LEoIrGy5vvCd2boNnv2soPSUZj/PRvhp8R/t9KlX+mIZxThIE/ZqxrGXxmuNX0FuvQFvLdZr7S4HrYpYBVhEQ==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.16.tgz",
"integrity": "sha512-kx5wBiMB6E7TEvpl2B9gjLU004BkvEm2Dr941BFjx/SontPwSzNuQUIoVKxHHoSjpFIfHMmcguyLOtyn0hObRg==",
"cpu": [
"arm64"
],
@@ -1196,9 +1232,9 @@
}
},
"node_modules/@rolldown/binding-darwin-arm64": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.13.tgz",
"integrity": "sha512-CaJSRzlQ6Q+zkDMVA9OkVxBjVoPRCDEE3v0FSJ9kIQBgRjFApA3Si4ijhbNVUji7ZJt+PfO0e46qy4nPInHUPA==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.16.tgz",
"integrity": "sha512-qslZrXnKJU4cUpjoAmtAo/KQM9e2IRMlmpig6Zpwj+8KWxW8v+nkAf9216Bsek9lOC1jvg2yCjygCFo2f83msQ==",
"cpu": [
"arm64"
],
@@ -1213,9 +1249,9 @@
}
},
"node_modules/@rolldown/binding-darwin-x64": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.13.tgz",
"integrity": "sha512-e4r340I5hxSzJkD3YJBxgzq/rJ3wwxwdLLb2FPt1Zpyem20nrQPT11DDEEkazwxaHumH8wpglsp/Ozgj/wT6mw==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.16.tgz",
"integrity": "sha512-FdF+y48ND13eAyM2mQn+85kvAqNlvRWROy2rhgA463X/0Gv4vGtazZtfaF1mRBLscYvtOlh4QnLjOWiFzX69OQ==",
"cpu": [
"x64"
],
@@ -1230,9 +1266,9 @@
}
},
"node_modules/@rolldown/binding-freebsd-x64": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.13.tgz",
"integrity": "sha512-hoBWDZ4/K/mJKVMbsgUd1jfpA2DiOrJ54mpegObU9TBHBBrtX4FLIXJJQRDPZ/2Dn91GvPob+Z2hwKJzf4E5SQ==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.16.tgz",
"integrity": "sha512-ddjqFM5e95AgLbUPtKIS7V1KTVlA0RUgCVr5mn+/IEhsdy3pr+Vuj/HZ7nlMN2FyxIwUktOH1LEPIQXO1v9y1Q==",
"cpu": [
"x64"
],
@@ -1247,9 +1283,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.13.tgz",
"integrity": "sha512-oF9fZu3vTWnTiVAkDFxU9PJLt1nh20K9RRpuHsR7ZnE2L7XookBbDBVLojCVSLGbvtSlxeUNnjAj6DbNsKyzbg==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.16.tgz",
"integrity": "sha512-tHdKWbFkFBI687iim3LIyIvyL7j66VvQYkDPss5Stn/qyE2tWkR1YD0dXmXPFKKqT/o5ZEJVsaRsWS2meQwGOA==",
"cpu": [
"arm"
],
@@ -1264,9 +1300,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm64-gnu": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.13.tgz",
"integrity": "sha512-DTpb/+jMiqWMPgphn4ksW1zW+XLJ6dJJ9FMvnIk9I291LhCctMPhMYJrP5t9p6C9qa3KXadDdUEZHBaPh3kNxQ==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.16.tgz",
"integrity": "sha512-FJiLGAblPBMlBEdbOqw6kW6QcXDWAf/oJu7gYs9ZJZwmg+K+/zjFLxPTIY9izJUzxzc24FHvmseyA0IvJSl17w==",
"cpu": [
"arm64"
],
@@ -1284,9 +1320,9 @@
}
},
"node_modules/@rolldown/binding-linux-arm64-musl": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.13.tgz",
"integrity": "sha512-xU+Kvv9N2A3SY35zFh1FWWNjxbadE/BKeqnkXe7vScU4GZsw757BlVmDLITZEq8DPpk6m7uoDYkK7P+x/uU5Ow==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.16.tgz",
"integrity": "sha512-hrJpblMsrQ58U9veWpbXzkhV5zStunds6HWLprqq1qauvgBr1E6P+24kLj6lSLI9vjRn/RYpjprhkHQPKGWpNg==",
"cpu": [
"arm64"
],
@@ -1304,9 +1340,9 @@
}
},
"node_modules/@rolldown/binding-linux-ppc64-gnu": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.13.tgz",
"integrity": "sha512-XMk/hnhh25oQ756Lclb1Q11h4ll0xC0Esa5w4Vzp+mAE2S3AGJgeM0SonrIgY8fHhjarb6hcoTuwoFG0VVP2ig==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.16.tgz",
"integrity": "sha512-qJd/dC6j6CwLG9/s/RP2nb1RZ0GIgj7Ioj7x/SYa3RzjVrlzrmH0fhIOpfvqQDeIsdP0loi+kHaMhJzY1PBIaA==",
"cpu": [
"ppc64"
],
@@ -1324,9 +1360,9 @@
}
},
"node_modules/@rolldown/binding-linux-s390x-gnu": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.13.tgz",
"integrity": "sha512-U1BoTHYmlywE2n3HUWjzZ+8EQsKr+OwpxYuDWaubx42tUL8QSL7nOqRz/NVHanibbFP3M1Rxuprz/wNcbMKjqw==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.16.tgz",
"integrity": "sha512-Vx7Xg5uUJuNcujJjI70OICaH0EYj80BtOLZTSN7uOYg8QOLlyKnaG0IW7Fn/J0IpJsaKzmDKMhOQv1JBM9m9vg==",
"cpu": [
"s390x"
],
@@ -1344,9 +1380,9 @@
}
},
"node_modules/@rolldown/binding-linux-x64-gnu": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.13.tgz",
"integrity": "sha512-J4cm80Pc6wEwV5AZ42o62sIQgDk+Y7R2s646jIwuvO+4V46QB58N4vVuMPWCBaNgursXLpmUWJV//WQAkPvHBQ==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.16.tgz",
"integrity": "sha512-TNKhgE3uJTsTzatUSSYt0Kgo+Oa2uSlSjz4r1aEIea7HX6ULBym4fAlYUhG1i6pjNf2njfCUAfKwr6C3E9Xg1w==",
"cpu": [
"x64"
],
@@ -1364,9 +1400,9 @@
}
},
"node_modules/@rolldown/binding-linux-x64-musl": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.13.tgz",
"integrity": "sha512-W0euZS40U4V6JkmEnVCIX9mcsL6cbXQ4X8c2w+MMOIjFg68TXUW+u3RT+2e1t1pv9mg/EP3pDtK3POXdQ7Rxyw==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.16.tgz",
"integrity": "sha512-7chXdpjXZ8qG0+mIxECN3cT9kvhZ3/oZhMX6Pp876P7CDrIy8nJswva6Mq357JR7eYXfuskwZxMeV1SzoZdHrA==",
"cpu": [
"x64"
],
@@ -1384,9 +1420,9 @@
}
},
"node_modules/@rolldown/binding-openharmony-arm64": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.13.tgz",
"integrity": "sha512-do/AF/4n9MRshia3a5aXoy8xM2c6mgfT6D7H/dY6my5z+hfCIR4ab7mk4IRj++nsEQpKy39kd0DQnDq+r692tw==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.16.tgz",
"integrity": "sha512-Kwjt+7uNTJK5/MDkGWGVO2KQPnj8yAV75dMpfwyHZrJSXWHrniOB0aUEWlVYf3H1hOqFLIStLdM5QXq6bnKmOQ==",
"cpu": [
"arm64"
],
@@ -1401,9 +1437,9 @@
}
},
"node_modules/@rolldown/binding-win32-arm64-msvc": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.13.tgz",
"integrity": "sha512-6FtUf2cJZobutJdxnGYX8z0vtbgqU0b2v8vfBhkXb9wp2MppMFtkunE+IaOntyi01rkIQoPW2GHABtfzsC0BRQ==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.16.tgz",
"integrity": "sha512-/LH6WfjDRXXJz/p5xl4TmU+jpcnwcxbKEQBW/GZE0JHfN0lGIyTtsUEGaQ/q/GikkGJ2yLKe6pwm7AnEWO8pdw==",
"cpu": [
"arm64"
],
@@ -1418,9 +1454,9 @@
}
},
"node_modules/@rolldown/binding-win32-x64-msvc": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.13.tgz",
"integrity": "sha512-UKhFaZTeTcbKrb3iU82m17jVcPEAoqDkCN5MBqgPyZSwp/cQmib21crTS0DdH7T1B7wZRWEI89YQAOJMet5yhg==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.16.tgz",
"integrity": "sha512-1lv1KvX0Z871zfk7vw+dnXMMnHNyDwMzWG8Kv3HxDXMOhzCX4SHc7HK319fInP0i+0p9D8brkfzL7pJOaGl+tw==",
"cpu": [
"x64"
],
@@ -1594,16 +1630,16 @@
}
},
"node_modules/@types/css-tree": {
"version": "2.3.11",
"resolved": "https://registry.npmjs.org/@types/css-tree/-/css-tree-2.3.11.tgz",
"integrity": "sha512-aEokibJOI77uIlqoBOkVbaQGC9zII0A+JH1kcTNKW2CwyYWD8KM6qdo+4c77wD3wZOQfJuNWAr9M4hdk+YhDIg==",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@types/css-tree/-/css-tree-3.2.0.tgz",
"integrity": "sha512-J5KXmk6BFIepOT7280FdFyNs4c5fh0Uee0otjKEvzchrRs38Ii9qminqc4ds0L19X8Zd/rT+brR9jkBthygjWw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/node": {
"version": "26.6.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.5.tgz",
"integrity": "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==",
"version": "26.6.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.6.tgz",
"integrity": "sha512-MzQj+8Kx3XI40OmUAE6Qoh58ZMNstNNMwn2nfd3qWsfe7nDNSqJNzes4njhz6AHwrSHOffSLwXU6yb474Q4aog==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2004,9 +2040,9 @@
}
},
"node_modules/ansi-regex": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.4.0.tgz",
"integrity": "sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==",
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.5.0.tgz",
"integrity": "sha512-zhvbbbdt1kbw7EJ9OQoxmQcuaNR9P5kTj7e/YdmOSU10aHWbycofJxA6jKfoEy3vlLdctOF9ZHaxLtmSm998wQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2060,9 +2096,9 @@
}
},
"node_modules/baseline-browser-mapping": {
"version": "2.11.30",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.30.tgz",
"integrity": "sha512-YJs6Pz17RMNv8HoyKREtCY38E3BV1nPkWVmIb+XN1uHC1Vqt3KZCH/uJH9ZKRoiKb/icZ6tvehyee6RZNbFfRA==",
"version": "2.11.34",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.34.tgz",
"integrity": "sha512-Aqr8mA1kIvyJ3UY5YAY7ib8LSo1DmDMbMnVqGPtsKW1LxaFQFwn9Eb3yvq2fUKJsRvaXjnAV7R5osqETapzNiA==",
"dev": true,
"license": "Apache-2.0",
"bin": {
@@ -2093,9 +2129,9 @@
}
},
"node_modules/browserslist": {
"version": "4.29.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.4.tgz",
"integrity": "sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==",
"version": "4.29.5",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.5.tgz",
"integrity": "sha512-khTmKu5NGYTotqcYo8Bew2k4RAE9PuXRSFRXG2lQBrCEQHyeQ/vX6gKMxfokwywBsLiXZMnHsmWMG1pnO8J7uQ==",
"dev": true,
"funding": [
{
@@ -2113,10 +2149,10 @@
],
"license": "MIT",
"dependencies": {
"baseline-browser-mapping": "^2.11.29",
"caniuse-lite": "^1.0.30001816",
"electron-to-chromium": "^1.5.459",
"node-releases": "^2.0.59",
"baseline-browser-mapping": "^2.11.33",
"caniuse-lite": "^1.0.30001819",
"electron-to-chromium": "^1.5.464",
"node-releases": "^2.0.60",
"update-browserslist-db": "^1.3.4"
},
"bin": {
@@ -2170,9 +2206,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001817",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001817.tgz",
"integrity": "sha512-uZ1JG80BwhtMalIAGPxPfmNhHyd/B/nTdr3hITWlRamSyAdUStP1Gop01e7SD5q6J90ixJvWDbvmiFVfDgn4bw==",
"version": "1.0.30001820",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001820.tgz",
"integrity": "sha512-gfWD6MxqVCqAOwmODfZf7DchWvlrA+SRdNX7ceLfg3xRqe5ssjjpF7EgslC/0tiLiNTajdaNN/q8c/5u/7Gz8w==",
"dev": true,
"funding": [
{
@@ -2401,14 +2437,21 @@
"license": "CC0-1.0"
},
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"ms": "2.0.0"
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/decimal.js": {
@@ -2581,9 +2624,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.460",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.460.tgz",
"integrity": "sha512-rRaVC7bNUyGsL+GMtmZfv3AfgG6za7gE9v5bT0PIbjEerddA0IQ+tCK05NFAXqCpNlrxBZqbFqquyxHRQONHTA==",
"version": "1.5.472",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.472.tgz",
"integrity": "sha512-s4+nfT29b0FKpVKoaIxl2pWsoNcn7A/nMPSrxayw4T3BsmPeV2lF9Y06BsAQeMGhCTQ4nYJ5XST7jkqe4ZEqFw==",
"dev": true,
"license": "ISC"
},
@@ -2703,9 +2746,9 @@
}
},
"node_modules/fast-uri": {
"version": "3.1.8",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz",
"integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==",
"version": "3.1.9",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.9.tgz",
"integrity": "sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==",
"dev": true,
"funding": [
{
@@ -3017,9 +3060,9 @@
}
},
"node_modules/ignore": {
"version": "7.0.12",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.12.tgz",
"integrity": "sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==",
"version": "7.0.14",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.14.tgz",
"integrity": "sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3679,12 +3722,11 @@
}
},
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
"license": "MIT",
"optional": true
"license": "MIT"
},
"node_modules/nanoid": {
"version": "3.3.20",
@@ -3724,9 +3766,9 @@
}
},
"node_modules/node-releases": {
"version": "2.0.59",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.59.tgz",
"integrity": "sha512-5qr2okC4ItAI0hG5SaV0HoYMpnM/Y6+Oqr7AmPYy/2uEoGvS+GbSKLeRxSS1uAdu59yz0ouzcuXievSgg///WA==",
"version": "2.0.63",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.63.tgz",
"integrity": "sha512-6li2QanLsAXpIH2R6j77MzRyvOyrvdTqlKtO4CgBdHGNvN99ZZfyxszHc5o5+IZBWD5u6Hzwg83JoGXmqZNG9Q==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3896,9 +3938,9 @@
}
},
"node_modules/postcss": {
"version": "8.5.29",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.29.tgz",
"integrity": "sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==",
"version": "8.5.32",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.32.tgz",
"integrity": "sha512-LJlKCCAUFKOuZxipUdYw1NzIITEsPcgyOG9LkvRJvuKj/bRzbuRY0ARXvL0pWGpsZvn8jku+LMep2eU0seHp8g==",
"dev": true,
"funding": [
{
@@ -3916,7 +3958,7 @@
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.19",
"nanoid": "^3.3.20",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.2"
},
@@ -3965,9 +4007,9 @@
}
},
"node_modules/postcss-selector-parser": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz",
"integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==",
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.7.tgz",
"integrity": "sha512-wWBro/7hJ40ye6TPiXkUQoXKCw23xSsjriUvqd7Uls9Sso3oLiON1flc18cCdnjgCRXw4fBVqUJJeOdDTh3P3g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3986,9 +4028,9 @@
"license": "MIT"
},
"node_modules/prettier": {
"version": "3.9.9",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.9.tgz",
"integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==",
"version": "3.9.10",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.10.tgz",
"integrity": "sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -4016,9 +4058,9 @@
}
},
"node_modules/probe-image-size": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.4.0.tgz",
"integrity": "sha512-cdEprVtZxV+awMde9X+4jILBFYh4CARxVrQaMl4wY4YcPWbul9jntXrIW95NInBDyJwcVUP3U0T6yukN8rMBaQ==",
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.5.0.tgz",
"integrity": "sha512-ietdx4XPgmnzHRZOq1/KtcnsBkL4bRsBe+Szj5Tuq1/KPqDG42OspG1IhJb7vz6Z9pSzhp0J6UPnw6hujJTWoQ==",
"dev": true,
"funding": [
{
@@ -4034,8 +4076,7 @@
"optional": true,
"dependencies": {
"lodash.merge": "^4.6.2",
"needle": "^2.5.2",
"stream-parser": "~0.3.1"
"needle": "^2.5.2"
}
},
"node_modules/probe-image-size/node_modules/debug": {
@@ -4063,14 +4104,6 @@
"node": ">=0.10.0"
}
},
"node_modules/probe-image-size/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
"license": "MIT",
"optional": true
},
"node_modules/probe-image-size/node_modules/needle": {
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
@@ -4230,13 +4263,13 @@
}
},
"node_modules/rolldown": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.13.tgz",
"integrity": "sha512-/5apOkwWxtACcQtZ5WlrAsKS4JwXVThQPJZ3RqIruRY9UG9M8e0VlXN068xum/JRKA4aIUoJ13ghe/kGCvidiQ==",
"version": "1.2.16",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.16.tgz",
"integrity": "sha512-bWvlMpFKiTfDKfnK7FC2MPgPeWCf/Kpwsq49ApdW+FQaBZb6O6dZ4MAPbPUjp7hYQrw/RobqCzn64BRrQecGHw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@oxc-project/types": "=0.153.0",
"@oxc-project/types": "=0.156.0",
"@rolldown/pluginutils": "^1.0.0"
},
"bin": {
@@ -4246,21 +4279,21 @@
"node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
"@rolldown/binding-android-arm-eabi": "1.2.13",
"@rolldown/binding-android-arm64": "1.2.13",
"@rolldown/binding-darwin-arm64": "1.2.13",
"@rolldown/binding-darwin-x64": "1.2.13",
"@rolldown/binding-freebsd-x64": "1.2.13",
"@rolldown/binding-linux-arm-gnueabihf": "1.2.13",
"@rolldown/binding-linux-arm64-gnu": "1.2.13",
"@rolldown/binding-linux-arm64-musl": "1.2.13",
"@rolldown/binding-linux-ppc64-gnu": "1.2.13",
"@rolldown/binding-linux-s390x-gnu": "1.2.13",
"@rolldown/binding-linux-x64-gnu": "1.2.13",
"@rolldown/binding-linux-x64-musl": "1.2.13",
"@rolldown/binding-openharmony-arm64": "1.2.13",
"@rolldown/binding-win32-arm64-msvc": "1.2.13",
"@rolldown/binding-win32-x64-msvc": "1.2.13"
"@rolldown/binding-android-arm-eabi": "1.2.16",
"@rolldown/binding-android-arm64": "1.2.16",
"@rolldown/binding-darwin-arm64": "1.2.16",
"@rolldown/binding-darwin-x64": "1.2.16",
"@rolldown/binding-freebsd-x64": "1.2.16",
"@rolldown/binding-linux-arm-gnueabihf": "1.2.16",
"@rolldown/binding-linux-arm64-gnu": "1.2.16",
"@rolldown/binding-linux-arm64-musl": "1.2.16",
"@rolldown/binding-linux-ppc64-gnu": "1.2.16",
"@rolldown/binding-linux-s390x-gnu": "1.2.16",
"@rolldown/binding-linux-x64-gnu": "1.2.16",
"@rolldown/binding-linux-x64-musl": "1.2.16",
"@rolldown/binding-openharmony-arm64": "1.2.16",
"@rolldown/binding-win32-arm64-msvc": "1.2.16",
"@rolldown/binding-win32-x64-msvc": "1.2.16"
}
},
"node_modules/run-parallel": {
@@ -4479,17 +4512,6 @@
"node": ">=0.10.0"
}
},
"node_modules/stream-parser": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz",
"integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==",
"dev": true,
"license": "MIT",
"optional": true,
"dependencies": {
"debug": "2"
}
},
"node_modules/string-width": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz",
@@ -4689,13 +4711,13 @@
}
},
"node_modules/stylelint-less": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/stylelint-less/-/stylelint-less-4.2.1.tgz",
"integrity": "sha512-FREYAwwm5cTAeCGmAJlq1228tEi62puMxM4IughUMVifIIUac7Mu03u410/S5QYCwA7L2l9HjiRyh4TQKkFhcA==",
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/stylelint-less/-/stylelint-less-4.2.2.tgz",
"integrity": "sha512-UmuA5cLcMAi3BZ0kd8VrbOUov6QFyHe8Y9i+sA7uiqvOEioD5KVfQT1AafJ2TjA0r2wocScbtTBbDDYUAxaQxg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/css-tree": "^2.3.11",
"@types/css-tree": "^3.2.0",
"css-tree": "^3.2.1",
"postcss-value-parser": "4.2.0"
},
@@ -4721,24 +4743,6 @@
"stylelint": ">=16.0.0"
}
},
"node_modules/stylelint/node_modules/debug": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"license": "MIT",
"dependencies": {
"ms": "^2.1.3"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/stylelint/node_modules/meow": {
"version": "14.1.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz",
@@ -4752,13 +4756,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/stylelint/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
"license": "MIT"
},
"node_modules/supports-color": {
"version": "10.2.2",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
@@ -4951,9 +4948,9 @@
}
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.9.1.tgz",
"integrity": "sha512-a4Ux9VKuIMHsOS7ENbEq6hK2ZGYIT27Rtl0E4eD9KqwxhKiQeMZE/9xb3IdYwWaSOyIBQLExhQgXDTYoiCxnWA==",
"dev": true,
"license": "0BSD",
"optional": true
@@ -5071,16 +5068,16 @@
"license": "MIT"
},
"node_modules/vite": {
"version": "8.3.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.3.4.tgz",
"integrity": "sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ==",
"version": "8.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.3.5.tgz",
"integrity": "sha512-z1YpjieJ9g0ebTmQpLBv/oq9E3F9EIlOe+7LahW8SrE3LTiG3udBRUXQOlYXP9b+IC2q2phHeVxj9xGlw34OEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"lightningcss": "^1.33.0",
"picomatch": "^4.0.7",
"postcss": "^8.5.29",
"rolldown": "~1.2.12",
"postcss": "^8.5.30",
"rolldown": "~1.2.14",
"tinyglobby": "^0.2.17"
},
"bin": {
@@ -5097,7 +5094,7 @@
},
"peerDependencies": {
"@types/node": "^20.19.0 || >=22.12.0",
"@vitejs/devtools": "^0.7.1",
"@vitejs/devtools": "^0.7.1 || ^0.8.0",
"esbuild": "^0.27.0 || ^0.28.0",
"jiti": ">=1.21.0",
"less": "^4.0.0",
+3 -3
View File
@@ -29,9 +29,9 @@
"swiped-events": "1.2.0"
},
"devDependencies": {
"@biomejs/biome": "2.5.15",
"@biomejs/biome": "2.6.3",
"@types/node": "^26.6.5",
"browserslist": "^4.29.4",
"browserslist": "^4.29.5",
"browserslist-to-esbuild": "^2.1.1",
"edge.js": "^6.5.1",
"less": "^4.9.0",
@@ -43,7 +43,7 @@
"stylelint-prettier": "^5.0.3",
"svgo": "^4.1.0",
"typescript": "~7.0.2",
"vite": "^8.3.3",
"vite": "^8.3.5",
"vite-bundle-analyzer": "^1.3.9"
}
}
+2 -2
View File
@@ -58,7 +58,7 @@ listen("click", "#copy-hash", async function (this: HTMLElement) {
assertElement(target);
if (window.isSecureContext) {
await navigator.clipboard.writeText(target.innerText);
await navigator.clipboard.writeText(target.textContent);
} else {
const selection = window.getSelection();
if (selection) {
@@ -71,6 +71,6 @@ listen("click", "#copy-hash", async function (this: HTMLElement) {
}
if (this.dataset.copiedText) {
this.innerText = this.dataset.copiedText;
this.textContent = this.dataset.copiedText;
}
});
+2 -2
View File
@@ -135,7 +135,7 @@ listen("click", "#copy_url", async function (this: HTMLElement) {
assertElement(target);
if (window.isSecureContext) {
await navigator.clipboard.writeText(target.innerText);
await navigator.clipboard.writeText(target.textContent);
} else {
const selection = window.getSelection();
if (selection) {
@@ -148,7 +148,7 @@ listen("click", "#copy_url", async function (this: HTMLElement) {
}
if (this.dataset.copiedText) {
this.innerText = this.dataset.copiedText;
this.textContent = this.dataset.copiedText;
}
});
File diff suppressed because it is too large Load Diff
+68 -18
View File
@@ -195,7 +195,7 @@
"eo": "armena dramo",
"es": "dram armenio",
"et": "Armeenia dramm",
"eu": "dram",
"eu": "armeniar dram",
"fi": "Armenian dram",
"fr": "dram arménien",
"ga": "dram na hAirméine",
@@ -322,7 +322,7 @@
"fi": "Argentiinan peso",
"fr": "peso argentin",
"ga": "peso inmhalartaithe na hAirgintíne",
"gl": "Peso arxentino",
"gl": "peso arxentino",
"he": "פסו ארגנטינאי",
"hr": "Argentinski pezo",
"hu": "argentin peso",
@@ -1089,7 +1089,7 @@
"ia": "Dollar canadian",
"id": "Dolar Kanada",
"it": "dollaro canadese",
"ja": "カナダドル",
"ja": "カナダ・ドル",
"ko": "캐나다 달러",
"lt": "Kanados doleris",
"lv": "Kanādas dolārs",
@@ -1112,7 +1112,7 @@
"tr": "Kanada doları",
"tt": "Канада дуллыры",
"uk": "канадський долар",
"vi": "Đô la Canada"
"vi": "đô la Canada"
},
"CDF": {
"af": "Kongolese frank",
@@ -1235,7 +1235,7 @@
"fi": "Chilen peso",
"fr": "peso chilien",
"ga": "peso na Sile",
"gl": "Peso chileno",
"gl": "peso chileno",
"he": "פסו צ'יליאני",
"hr": "Čileanski pezo",
"hu": "chilei peso",
@@ -1817,7 +1817,7 @@
"cy": "Ewro",
"da": "Euro",
"de": "Euro",
"en": "Euro",
"en": "euro",
"eo": "eŭro",
"es": "Euro",
"et": "euro",
@@ -1930,6 +1930,7 @@
"sk": "falklandská libra",
"sl": "falklandski funt",
"sv": "Falklandspund",
"th": "ปอนด์หมู่เกาะฟอล์กแลนด์",
"tr": "Falkland Adaları poundu",
"tt": "Фолкленд утраулары фунты",
"uk": "Фолклендський фунт"
@@ -2926,6 +2927,7 @@
"pa": "ਕੰਬੋਡੀਆਈ ਰਿਆਲ",
"pl": "Riel",
"pt": "riel cambojano",
"ro": "riel cambodgian",
"ru": "камбоджийский риель",
"sk": "kambodžský riel",
"sl": "kamboški riel",
@@ -2996,6 +2998,7 @@
"ja": "朝鮮民主主義人民共和国ウォン",
"ko": "조선민주주의인민공화국 원",
"lt": "Šiaurės Korėjos vona",
"lv": "Ziemeļkorejas vona",
"ml": "വോൺ",
"ms": "Won Korea Utara",
"nl": "Noord-Koreaanse won",
@@ -3860,7 +3863,7 @@
"fi": "Meksikon peso",
"fr": "peso mexicain",
"ga": "peso Mheicsiceo",
"gl": "Peso mexicano",
"gl": "peso mexicano",
"he": "פסו מקסיקני",
"hr": "Meksički pezo",
"hu": "mexikói peso",
@@ -4396,6 +4399,7 @@
"fi": "Filippiinien peso",
"fr": "peso philippin",
"ga": "peso na nOileán Filipíneach",
"gl": "peso filipino",
"he": "פסו פיליפיני",
"hr": "Filipinski pezo",
"hu": "Fülöp-szigeteki peso",
@@ -4726,7 +4730,7 @@
"RUB": {
"af": "Russiese roebel",
"ar": "روبل روسي",
"bg": "Руска рубла",
"bg": "руска рубла",
"bn": "রুশ রুবল",
"ca": "ruble rus",
"cs": "ruský rubl",
@@ -5798,8 +5802,8 @@
"uk": "угандійський шилінг"
},
"USD": {
"af": "Amerikaanse dollar",
"ar": "دولار أمريكي",
"af": "dollar van die Verenigde State",
"ar": "دولار للولايات المتحدة",
"bg": "щатски долар",
"bn": "মার্কিন ডলার",
"ca": "dòlar estatunidenc",
@@ -5813,7 +5817,7 @@
"et": "USA dollar",
"eu": "Estatubatuar dolar",
"fi": "Yhdysvaltain dollari",
"fr": "dollar américain",
"fr": "dollar des États-Unis",
"ga": "dollar na Stát Aontaithe",
"gl": "dólar estadounidense",
"he": "דולר אמריקאי",
@@ -5821,7 +5825,7 @@
"hu": "amerikai dollár",
"ia": "dollar statounitese",
"id": "Dolar Amerika Serikat",
"it": "dollaro statunitense",
"it": "dollaro degli Stati Uniti",
"ja": "アメリカ合衆国ドル",
"ko": "미국 달러",
"lt": "Jungtinių Valstijų doleris",
@@ -5840,7 +5844,7 @@
"sk": "americký dolár",
"sl": "ameriški dolar",
"sr": "амерички долар",
"sv": "amerikansk dollar",
"sv": "amerikanska dollar",
"szl": "Dolar amerikański",
"ta": "அமெரிக்க டாலர்",
"te": "యునైటెడ్ స్టేట్స్ డాలర్",
@@ -6014,7 +6018,7 @@
"es": "vatu",
"fi": "Vanuatun vatu",
"fr": "Vatu",
"ga": "Vatu Vanuatú",
"ga": "vatu Vanuatú",
"gl": "Vatu",
"he": "ואטו",
"hr": "Vanuatski vatu",
@@ -6231,7 +6235,8 @@
"ru": "Карибский гульден",
"sk": "Karibský gulden",
"sl": "karibski goldinar",
"sv": "Karibisk gulden"
"sv": "Karibisk gulden",
"th": "กิลเดอร์แคริบเบียน"
},
"XDR": {
"ar": "حقوق السحب الخاصة",
@@ -6395,7 +6400,7 @@
"cs": "jemenský rijál",
"cy": "Rial Iemen",
"de": "Jemen-Rial",
"en": "Yemeni Rial",
"en": "Yemeni rial",
"eo": "jemena rialo",
"es": "rial yemení",
"eu": "Rial yemendar",
@@ -6596,6 +6601,38 @@
"$u": "UYU",
"$usd": "USD",
"1000 lira": "LBP",
"10000.00": [
"ZWL",
"XCD",
"WST",
"USD",
"TWD",
"TTD",
"SRD",
"SGD",
"SBD",
"NZD",
"NAD",
"MXN",
"MOP",
"LRD",
"KYD",
"JMD",
"HKD",
"FJD",
"CUP",
"COP",
"CLP",
"CAD",
"BZD",
"BSD",
"BRL",
"BND",
"BMD",
"BBD",
"AUD",
"ARS"
],
"100ドル紙幣": "NIO",
"1億ベネズエラ・ボリバル": "VES",
"2019 zimbabwean dollar": "ZWL",
@@ -6888,6 +6925,7 @@
"armeense dram": "AMD",
"armena dramo": "AMD",
"armenian dram": "AMD",
"armeniar dram": "AMD",
"armenijski dram": "AMD",
"armenischer dram": "AMD",
"armensk dram": "AMD",
@@ -8045,6 +8083,7 @@
"dolar de bermudas": "BMD",
"dolar de brunei": "BND",
"dolar de brunéi": "BND",
"dolar de canadà": "CAD",
"dolar de fiji": "FJD",
"dolar de guyana": "GYD",
"dolar de hong kong": "HKD",
@@ -8191,7 +8230,6 @@
"KYD",
"HKD",
"FJD",
"CAD",
"AUD"
],
"dollar américain": "USD",
@@ -8233,6 +8271,7 @@
"dollar des îles salomon": "SBD",
"dollar du belize": "BZD",
"dollar du bélize": "BZD",
"dollar du canada": "CAD",
"dollar du guyana": "GYD",
"dollar du surinam": "SRD",
"dollar du suriname": "SRD",
@@ -8268,6 +8307,7 @@
"dollar néo zélandais": "NZD",
"dollar néozélandais": "NZD",
"dollar nua na téaváine": "TWD",
"dollar of canada": "CAD",
"dollar oileáin cayman": "KYD",
"dollar oileáin sholaimh": "SBD",
"dollar oileán na tríonóide agus tobága": "TTD",
@@ -8282,16 +8322,21 @@
"dollar taiwanais": "TWD",
"dollar taïwanais": "TWD",
"dollar trinidadien": "TTD",
"dollar van die verenigde state": "USD",
"dollaro": [
"BZD",
"BBD"
],
"dollaro americano": "USD",
"dollaro australiano": "AUD",
"dollaro bahamense": "BSD",
"dollaro canadese": "CAD",
"dollaro degli stati uniti": "USD",
"dollaro dei caraibi orientali": "XCD",
"dollaro del belize": "BZD",
"dollaro del brunei": "BND",
"dollaro del canada": "CAD",
"dollaro del canadà": "CAD",
"dollaro del suriname": "SRD",
"dollaro della guyana": "GYD",
"dollaro della namibia": "NAD",
@@ -11489,6 +11534,7 @@
"rial yemení": "YER",
"rial yéménite": "YER",
"riel": "KHR",
"riel cambodgian": "KHR",
"riel cambodgien": "KHR",
"riel cambogiano": "KHR",
"riel cambojano": "KHR",
@@ -12846,6 +12892,7 @@
"vjetnama dongo": "VND",
"vnd": "VND",
"vnđ": "VND",
"vona": "KPW",
"vt": "VUV",
"vuv": "VUV",
"východokaribská měnová unie": "XCD",
@@ -12996,6 +13043,7 @@
"zeelandako dolarra": "NZD",
"zelenortski eskudo": "CVE",
"zelts kā investīcija": "XAU",
"ziemeļkorejas vona": "KPW",
"zig": "ZWG",
"zimbabva dolaro": "ZWL",
"zimbabva oro": "ZWG",
@@ -15005,7 +15053,6 @@
"دوبرا ساو تومية وبرينسيبية": "STN",
"دولار الامريكي": "USD",
"دولار الأمريكي": "USD",
"دولار امريكي": "USD",
"دولار أسترالي": "AUD",
"دولار أمريكي": "USD",
"دولار بربادوسي": "BBD",
@@ -15026,6 +15073,7 @@
"دولار غياني": "GYD",
"دولار فيجي": "FJD",
"دولار كندي": "CAD",
"دولار للولايات المتحدة": "USD",
"دولار ليبيري": "LRD",
"دولار ناميبي": "NAD",
"دولار نيوزيلندي": "NZD",
@@ -15666,6 +15714,7 @@
"กวันซา": "AOA",
"กวารานีปารากวัย": "PYG",
"กอร์โดบานิการากัว": "NIO",
"กิลเดอร์แคริบเบียน": "XCG",
"กีนา": "PGK",
"กีบ": "LAK",
"กูร์ดเฮติ": "HTG",
@@ -15751,6 +15800,7 @@
"ปอนด์ซูดานใต้": "SSP",
"ปอนด์ยิบรอลตาร์": "GIP",
"ปอนด์สเตอร์ลิง": "GBP",
"ปอนด์หมู่เกาะฟอล์กแลนด์": "FKP",
"ปอนด์อียิปต์": "EGP",
"ปอนด์เซนต์เฮเลนา": "SHP",
"ปอนด์เซาท์ซูดาน": "SSP",
+1 -1
View File
@@ -15307,7 +15307,7 @@
},
"s": {
"\u0010": "//surrey-primotc.hosted.exlibrisgroup.com/primo-explore/search?vl(freeText0)=\u0002&fn=search&vid=44SUR_VU1&tab=default_tab&query=any,contains,\u0002&search_scope=default_scope\u000115",
"64": "http://duckduckgo.com/?q=\u0002+site:www.ss64.com\u00010",
"64": "http://duckduckgo.com/?q=\u0002+site:ss64.com\u00010",
"aft": "http://ssaft.com/Blog/dotclear/?q=\u0002\u00010",
"b": {
"\u0010": "http://www.ssbwiki.com/index.php?title=Special%3ASearch&search=\u0002&go=Go\u000136",
+2 -2
View File
@@ -5,7 +5,7 @@
],
"ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}",
"versions": [
"157.0",
"156.0"
"159.0",
"158.0"
]
}
+41 -36
View File
@@ -38,9 +38,9 @@ Implementations
"""
import contextlib
import random
import typing as t
from datetime import (
datetime,
timedelta,
@@ -49,7 +49,8 @@ from json import loads
from urllib.parse import urlencode
import babel
from flask_babel import gettext # pyright: ignore[reportUnknownVariableType]
import curl_cffi
from flask_babel import gettext # pyright: ignore[reportMissingTypeStubs]
from searx.enginelib import EngineCache
from searx.enginelib.traits import EngineTraits
@@ -63,8 +64,8 @@ from searx.network import raise_for_httperror
from searx.result_types import EngineResults
if t.TYPE_CHECKING:
from searx.search.processors import OnlineParams
from searx.extended_types import SXNG_Response
from searx.search.processors import OnlineParams
# about
about = {
@@ -88,10 +89,10 @@ qwant_categ: str = None # pyright: ignore[reportAssignmentType]
safesearch = True
# tgp seems to be short for "test group" - its actual value doesn't matter, as
# tgp is normally set by the `ab_test_group` cookie value. Actual value doesn't matter, as
# long as it's sent and at the correct position in the query params and doesn't
# change too frequently
test_group_value = random.randint(1, 3)
test_group_value = random.randint(1, 4)
# fmt: off
qwant_news_locales = [
@@ -123,13 +124,10 @@ def request(query: str, params: "OnlineParams") -> None:
if not query:
return
results_per_page = 50 if qwant_categ == "images" else 10
q_locale = traits.get_region(params["searxng_locale"], default="en_US")
results_per_page = 10
if qwant_categ == "images":
results_per_page = 50
args = {
"t": qwant_categ,
"q": query,
"count": results_per_page,
"locale": q_locale,
@@ -137,18 +135,32 @@ def request(query: str, params: "OnlineParams") -> None:
"tgp": test_group_value,
"device": "desktop",
"safesearch": params["safesearch"],
# True would be encoded to "True", instead of "true", which makes the request
# easier to detect and block
"displayed": "true",
"llm": "true",
}
if datadome := CACHE.get("datadome"):
params["cookies"]["datadome"] = datadome
header_order = (
"Host,Connection,"
"sec-ch-ua-platform,User-Agent,Accept,sec-ch-ua,sec-ch-ua-mobile,"
"Origin,Sec-Fetch-Site,Sec-Fetch-Mode,Sec-Fetch-Dest,"
"Referer,Accept-Encoding,Accept-Language,Cookie"
)
params["raise_for_httperror"] = False
params["url"] = f"{api_url}{qwant_categ}?{urlencode(args)}"
params["cookies"]["datadome"] = CACHE.get("datadome")
params["headers"].update({"Accept": "application/json", "Referer": f"{base_url}/", "Origin": base_url})
params["headers"]["Connection"] = "keep-alive"
params["headers"]["Accept"] = "application/json, text/plain, */*"
params["headers"]["Origin"] = base_url
params["headers"]["Sec-Fetch-Site"] = "same-site"
params["headers"]["Sec-Fetch-Mode"] = "cors"
params["headers"]["Sec-Fetch-Dest"] = "empty"
# drop impersonate default headers - curl_cffi will drop header with None as value
params["headers"]["sec-fetch-user"] = None # pyright: ignore[reportArgumentType]
params["headers"]["cache-control"] = None # pyright: ignore[reportArgumentType]
params["headers"]["upgrade-insecure-requests"] = None # pyright: ignore[reportArgumentType]
params["headers"]["Referer"] = f"{base_url}/"
# ensure same header wire order for chrome
params["curl_options"] = {curl_cffi.CurlOpt.HTTPHEADER_ORDER: header_order}
def response(resp: "SXNG_Response") -> EngineResults:
@@ -156,20 +168,16 @@ def response(resp: "SXNG_Response") -> EngineResults:
# pylint: disable=too-many-locals, too-many-branches, too-many-statements
# cache datadome cookie - changes on each request
datadome = resp.cookies.get("datadome")
if datadome:
if datadome := resp.cookies.get("datadome"):
CACHE.set("datadome", datadome)
res = EngineResults()
# Try to load JSON result
search_results: dict[str, t.Any] = {}
try:
with contextlib.suppress(ValueError):
search_results = resp.json()
except ValueError:
pass
data: dict[str, t.Any] = search_results.get("data", {}) # pyright: ignore[reportAny]
data: dict[str, t.Any] = search_results.get("data", {})
# check for an API error
if search_results.get("status") != "success":
@@ -177,7 +185,7 @@ def response(resp: "SXNG_Response") -> EngineResults:
if error_code == 24:
raise SearxEngineTooManyRequestsException()
if search_results.get("url") is not None:
raise SearxEngineCaptchaException(suspended_time=0)
raise SearxEngineCaptchaException(suspended_time=15) # needs a short timeout before second request
if resp.status_code == 403:
raise SearxEngineAccessDeniedException()
msg = ",".join(data.get("message", ["unknown"]))
@@ -222,8 +230,7 @@ def response(resp: "SXNG_Response") -> EngineResults:
thumbnail: str = ""
content: str = item.get("desc", "")
_date: float | None = item.get("date")
if _date:
if _date := item.get("date"):
try:
pub_date = datetime.fromtimestamp(_date)
except ValueError:
@@ -240,8 +247,7 @@ def response(resp: "SXNG_Response") -> EngineResults:
)
elif mainline_type == "news":
news_media = item.get("media", [])
if news_media:
if news_media := item.get("media", []):
thumbnail = news_media[0].get("pict", {}).get("url", "")
res.add(
@@ -314,7 +320,7 @@ def fetch_traits(engine_traits: EngineTraits):
from searx.utils import extr
resp = get(
base_url, # pyright: ignore[reportArgumentType]
base_url,
timeout=5,
)
if not resp.ok:
@@ -328,7 +334,7 @@ def fetch_traits(engine_traits: EngineTraits):
for country, v in q_locales.items():
for lang in v["langs"]:
_locale = "{lang}_{country}".format(lang=lang, country=country)
_locale = f"{lang}_{country}"
if qwant_categ == "news" and _locale.lower() not in qwant_news_locales:
# qwant-news does not support all locales from qwant-web:
@@ -340,12 +346,11 @@ def fetch_traits(engine_traits: EngineTraits):
try:
sxng_tag = region_tag(babel.Locale.parse(eng_tag, sep="_"))
except babel.UnknownLocaleError:
print("ERROR: can't determine babel locale of quant's locale %s" % eng_tag)
print(f"ERROR: can't determine babel locale of quant's locale {eng_tag}")
continue
conflict = engine_traits.regions.get(sxng_tag)
if conflict:
if conflict := engine_traits.regions.get(sxng_tag):
if conflict != eng_tag:
print("CONFLICT: babel %s --> %s, %s" % (sxng_tag, conflict, eng_tag))
print(f"CONFLICT: babel {sxng_tag} --> {conflict}, {eng_tag}")
continue
engine_traits.regions[sxng_tag] = eng_tag
+1 -1
View File
@@ -186,7 +186,7 @@ class Network:
Network._TOR_CHECK_RESULT[proxies] = False
return False
response = await client.get("https://check.torproject.org/api/ip", timeout=60)
response = await client.get("https://check.torproject.org/api/ip", timeout=10)
result = bool(response.json()["IsTor"])
Network._TOR_CHECK_RESULT[proxies] = result
return result
@@ -1 +1 @@
{"version":3,"file":"BMrKiJ3q.min.js","names":["listen","searchForm","getElement","searchInput","searchReset","isMobile","isResultsPage","categoryButtons","end","event","button","categoryButton","safesearchElement","timeRangeElement","languageElement","searchCategories"],"sources":["../../../../../client/simple/src/js/main/search.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { listen } from \"../toolkit.ts\";\nimport { getElement } from \"../util/getElement.ts\";\n\nconst searchForm: HTMLFormElement = getElement<HTMLFormElement>(\"search\");\nconst searchInput: HTMLInputElement = getElement<HTMLInputElement>(\"q\");\nconst searchReset: HTMLButtonElement = getElement<HTMLButtonElement>(\"clear_search\");\n\nconst isMobile: boolean = window.matchMedia(\"(max-width: 50em)\").matches;\nconst isResultsPage: boolean = document.querySelector(\"main\")?.id === \"main_results\";\n\nconst categoryButtons: HTMLButtonElement[] = Array.from(\n document.querySelectorAll<HTMLButtonElement>(\"#categories_container button.category\")\n);\n\n// focus search input on large screens\nif (!(isMobile || isResultsPage)) {\n searchInput.focus();\n}\n\n// On mobile, move cursor to the end of the input on focus\nif (isMobile) {\n listen(\"focus\", searchInput, () => {\n // Defer cursor move until the next frame to prevent a visual jump\n requestAnimationFrame(() => {\n const end = searchInput.value.length;\n searchInput.setSelectionRange(end, end);\n searchInput.scrollLeft = searchInput.scrollWidth;\n });\n });\n}\n\nlisten(\"click\", searchReset, (event: MouseEvent) => {\n event.preventDefault();\n searchInput.value = \"\";\n searchInput.focus();\n});\n\nfor (const button of categoryButtons) {\n listen(\"click\", button, (event: MouseEvent) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // deselect all other categories\n for (const categoryButton of categoryButtons) {\n categoryButton.classList.toggle(\"selected\", categoryButton === button);\n }\n });\n}\n\nif (document.querySelector(\"div.search_filters\")) {\n const safesearchElement = document.getElementById(\"safesearch\");\n if (safesearchElement) {\n listen(\"change\", safesearchElement, () => searchForm.submit());\n }\n\n const timeRangeElement = document.getElementById(\"time_range\");\n if (timeRangeElement) {\n listen(\"change\", timeRangeElement, () => searchForm.submit());\n }\n\n const languageElement = document.getElementById(\"language\");\n if (languageElement) {\n listen(\"change\", languageElement, () => searchForm.submit());\n }\n}\n\n// override searchForm submit event\nlisten(\"submit\", searchForm, (event: Event) => {\n event.preventDefault();\n\n if (categoryButtons.length > 0) {\n const searchCategories = getElement<HTMLInputElement>(\"selected-categories\");\n searchCategories.value = categoryButtons\n .filter((button) => button.classList.contains(\"selected\"))\n .map((button) => button.name.replace(\"category_\", \"\"))\n .join(\",\");\n }\n\n searchForm.submit();\n});\n"],"mappings":"yEAKA,IAAMC,EAA8BC,EAA4B,QAAQ,EAClEC,EAAgCD,EAA6B,GAAG,EAChEE,EAAiCF,EAA8B,cAAc,EAE7EG,EAAoB,OAAO,WAAW,mBAAmB,CAAC,CAAC,QAC3DC,EAAyB,SAAS,cAAc,MAAM,CAAC,EAAE,KAAO,eAEhEC,EAAuC,MAAM,KACjD,SAAS,iBAAoC,uCAAuC,CACtF,EAGMF,GAAYC,GAChBH,EAAY,MAAM,EAIhBE,GACFL,EAAO,QAASG,MAAmB,CAEjC,0BAA4B,CAC1B,IAAMK,EAAML,EAAY,MAAM,OAC9BA,EAAY,kBAAkBK,EAAKA,CAAG,EACtC,EAAY,WAAaL,EAAY,WACvC,CAAC,CACH,CAAC,EAGHH,EAAO,QAASI,EAAc,GAAsB,CAClDK,EAAM,eAAe,EACrB,EAAY,MAAQ,GACpBN,EAAY,MAAM,CACpB,CAAC,EAED,IAAK,IAAMO,KAAUH,EACnBP,EAAO,QAASU,EAAS,GAAsB,CAC7C,GAAID,EAAM,SACRA,EAAM,eAAe,EACrBC,EAAO,UAAU,OAAO,UAAU,OAKpC,IAAK,IAAMC,KAAkBJ,EAC3BI,EAAe,UAAU,OAAO,WAAYA,IAAmBD,CAAM,CAEzE,CAAC,EAGH,GAAI,SAAS,cAAc,oBAAoB,EAAG,CAChD,IAAME,EAAoB,SAAS,eAAe,YAAY,EAC1DA,GACFZ,EAAO,SAAUY,MAAyBX,EAAW,OAAO,CAAC,EAG/D,IAAMY,EAAmB,SAAS,eAAe,YAAY,EACzDA,GACFb,EAAO,SAAUa,MAAwBZ,EAAW,OAAO,CAAC,EAG9D,IAAMa,EAAkB,SAAS,eAAe,UAAU,EACtDA,GACFd,EAAO,SAAUc,MAAuBb,EAAW,OAAO,CAAC,CAE/D,CAGAD,EAAO,SAAUC,EAAa,GAAiB,CAG7C,GAFAQ,EAAM,eAAe,EAEjBF,EAAgB,OAAS,EAAG,CAC9B,IAAMQ,EAAmBb,EAA6B,qBAAqB,EAC3E,EAAiB,MAAQK,EACtB,OAAQ,GAAWG,EAAO,UAAU,SAAS,UAAU,CAAC,CAAC,CACzD,IAAK,GAAWA,EAAO,KAAK,QAAQ,YAAa,EAAE,CAAC,CAAC,CACrD,KAAK,GAAG,CACb,CAEAT,EAAW,OAAO,CACpB,CAAC"}
{"version":3,"file":"BMrKiJ3q.min.js","names":["listen","searchForm","getElement","searchInput","searchReset","isMobile","isResultsPage","categoryButtons","end","event","button","categoryButton","safesearchElement","timeRangeElement","languageElement","searchCategories"],"sources":["../../../../../client/simple/src/js/main/search.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { listen } from \"../toolkit.ts\";\nimport { getElement } from \"../util/getElement.ts\";\n\nconst searchForm: HTMLFormElement = getElement<HTMLFormElement>(\"search\");\nconst searchInput: HTMLInputElement = getElement<HTMLInputElement>(\"q\");\nconst searchReset: HTMLButtonElement = getElement<HTMLButtonElement>(\"clear_search\");\n\nconst isMobile: boolean = window.matchMedia(\"(max-width: 50em)\").matches;\nconst isResultsPage: boolean = document.querySelector(\"main\")?.id === \"main_results\";\n\nconst categoryButtons: HTMLButtonElement[] = Array.from(\n document.querySelectorAll<HTMLButtonElement>(\"#categories_container button.category\")\n);\n\n// focus search input on large screens\nif (!(isMobile || isResultsPage)) {\n searchInput.focus();\n}\n\n// On mobile, move cursor to the end of the input on focus\nif (isMobile) {\n listen(\"focus\", searchInput, () => {\n // Defer cursor move until the next frame to prevent a visual jump\n requestAnimationFrame(() => {\n const end = searchInput.value.length;\n searchInput.setSelectionRange(end, end);\n searchInput.scrollLeft = searchInput.scrollWidth;\n });\n });\n}\n\nlisten(\"click\", searchReset, (event: MouseEvent) => {\n event.preventDefault();\n searchInput.value = \"\";\n searchInput.focus();\n});\n\nfor (const button of categoryButtons) {\n listen(\"click\", button, (event: MouseEvent) => {\n if (event.shiftKey) {\n event.preventDefault();\n button.classList.toggle(\"selected\");\n return;\n }\n\n // deselect all other categories\n for (const categoryButton of categoryButtons) {\n categoryButton.classList.toggle(\"selected\", categoryButton === button);\n }\n });\n}\n\nif (document.querySelector(\"div.search_filters\")) {\n const safesearchElement = document.getElementById(\"safesearch\");\n if (safesearchElement) {\n listen(\"change\", safesearchElement, () => searchForm.submit());\n }\n\n const timeRangeElement = document.getElementById(\"time_range\");\n if (timeRangeElement) {\n listen(\"change\", timeRangeElement, () => searchForm.submit());\n }\n\n const languageElement = document.getElementById(\"language\");\n if (languageElement) {\n listen(\"change\", languageElement, () => searchForm.submit());\n }\n}\n\n// override searchForm submit event\nlisten(\"submit\", searchForm, (event: Event) => {\n event.preventDefault();\n\n if (categoryButtons.length > 0) {\n const searchCategories = getElement<HTMLInputElement>(\"selected-categories\");\n searchCategories.value = categoryButtons\n .filter((button) => button.classList.contains(\"selected\"))\n .map((button) => button.name.replace(\"category_\", \"\"))\n .join(\",\");\n }\n\n searchForm.submit();\n});\n"],"mappings":"A,yEAKA,IAAMC,EAA8BC,EAA4B,QAAQ,EAClEC,EAAgCD,EAA6B,GAAG,EAChEE,EAAiCF,EAA8B,cAAc,EAE7EG,EAAoB,OAAO,WAAW,mBAAmB,CAAC,CAAC,QAC3DC,EAAyB,SAAS,cAAc,MAAM,CAAC,EAAE,KAAO,eAEhEC,EAAuC,MAAM,KACjD,SAAS,iBAAoC,uCAAuC,CACtF,EAGMF,GAAYC,GAChBH,EAAY,MAAM,EAIhBE,GACFL,EAAO,QAASG,MAAmB,CAEjC,0BAA4B,CAC1B,IAAMK,EAAML,EAAY,MAAM,OAC9BA,EAAY,kBAAkBK,EAAKA,CAAG,EACtC,EAAY,WAAaL,EAAY,WACvC,CAAC,CACH,CAAC,EAGHH,EAAO,QAASI,EAAc,GAAsB,CAClDK,EAAM,eAAe,EACrB,EAAY,MAAQ,GACpBN,EAAY,MAAM,CACpB,CAAC,EAED,IAAK,IAAMO,KAAUH,EACnBP,EAAO,QAASU,EAAS,GAAsB,CAC7C,GAAID,EAAM,SACRA,EAAM,eAAe,EACrBC,EAAO,UAAU,OAAO,UAAU,OAKpC,IAAK,IAAMC,KAAkBJ,EAC3BI,EAAe,UAAU,OAAO,WAAYA,IAAmBD,CAAM,CAEzE,CAAC,EAGH,GAAI,SAAS,cAAc,oBAAoB,EAAG,CAChD,IAAME,EAAoB,SAAS,eAAe,YAAY,EAC1DA,GACFZ,EAAO,SAAUY,MAAyBX,EAAW,OAAO,CAAC,EAG/D,IAAMY,EAAmB,SAAS,eAAe,YAAY,EACzDA,GACFb,EAAO,SAAUa,MAAwBZ,EAAW,OAAO,CAAC,EAG9D,IAAMa,EAAkB,SAAS,eAAe,UAAU,EACtDA,GACFd,EAAO,SAAUc,MAAuBb,EAAW,OAAO,CAAC,CAE/D,CAGAD,EAAO,SAAUC,EAAa,GAAiB,CAG7C,GAFAQ,EAAM,eAAe,EAEjBF,EAAgB,OAAS,EAAG,CAC9B,IAAMQ,EAAmBb,EAA6B,qBAAqB,EAC3E,EAAiB,MAAQK,EACtB,OAAQ,GAAWG,EAAO,UAAU,SAAS,UAAU,CAAC,CAAC,CACzD,IAAK,GAAWA,EAAO,KAAK,QAAQ,YAAa,EAAE,CAAC,CAAC,CACrD,KAAK,GAAG,CACb,CAEAT,EAAW,OAAO,CACpB,CAAC"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -7,5 +7,5 @@ import{i as e,n as t,r as n}from"../sxng-core.min.js";import{t as r}from"./DK4yU
* @author John Doherty <www.johndoherty.info>
* @license MIT
*/
(function(e,t){typeof e.CustomEvent!=`function`&&(e.CustomEvent=function(e,n){n||={bubbles:!1,cancelable:!1,detail:void 0};var r=t.createEvent(`CustomEvent`);return r.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),r},e.CustomEvent.prototype=e.Event.prototype),t.addEventListener(`touchstart`,u,!1),t.addEventListener(`touchmove`,d,!1),t.addEventListener(`touchend`,l,!1);var n=null,r=null,i=null,a=null,o=null,s=null,c=0;function l(e){if(s===e.target){var l=parseInt(f(s,`data-swipe-threshold`,`20`),10),u=f(s,`data-swipe-unit`,`px`),d=parseInt(f(s,`data-swipe-timeout`,`500`),10),p=Date.now()-o,m=``,h=e.changedTouches||e.touches||[];if(u===`vh`&&(l=Math.round(l/100*t.documentElement.clientHeight)),u===`vw`&&(l=Math.round(l/100*t.documentElement.clientWidth)),Math.abs(i)>Math.abs(a)?Math.abs(i)>l&&p<d&&(m=i>0?`swiped-left`:`swiped-right`):Math.abs(a)>l&&p<d&&(m=a>0?`swiped-up`:`swiped-down`),m!==``){var g={dir:m.replace(/swiped-/,``),touchType:(h[0]||{}).touchType||`direct`,fingers:c,xStart:parseInt(n,10),xEnd:parseInt((h[0]||{}).clientX||-1,10),yStart:parseInt(r,10),yEnd:parseInt((h[0]||{}).clientY||-1,10)};s.dispatchEvent(new CustomEvent(`swiped`,{bubbles:!0,cancelable:!0,detail:g})),s.dispatchEvent(new CustomEvent(m,{bubbles:!0,cancelable:!0,detail:g}))}n=null,r=null,o=null}}function u(e){e.target.getAttribute(`data-swipe-ignore`)!==`true`&&(s=e.target,o=Date.now(),n=e.touches[0].clientX,r=e.touches[0].clientY,i=0,a=0,c=e.touches.length)}function d(e){if(n&&r){var t=e.touches[0].clientX,o=e.touches[0].clientY;i=n-t,a=r-o}}function f(e,n,r){for(;e&&e!==t.documentElement;){var i=e.getAttribute(n);if(i)return i;e=e.parentNode}return r}})(window,document);var i,a=`${e.theme_static_path}/img/img_load_error.svg`,o=e=>{i&&clearTimeout(i);let t=e.querySelector(`.result-images-source img`);if(!t)return;let n=e.querySelector(`.image_thumbnail`);if(n){if(n.src===a)return;t.onerror=()=>{t.src=n.src},t.src=n.src}let r=t.getAttribute(`data-src`);r&&(i=setTimeout(()=>{t.src=r,t.removeAttribute(`data-src`)},1e3))},s=e=>{e.classList.contains(`thumbnail`)?e.closest(`a.thumbnail_link`)?.remove():e.classList.contains(`image_thumbnail`)&&e.src!==a&&(e.src=a)};document.addEventListener(`error`,e=>{let t=e.target;t instanceof HTMLImageElement&&s(t)},!0);for(let e of document.querySelectorAll(`img.thumbnail, #urls img.image_thumbnail`))e.complete&&e.naturalWidth===0&&s(e);document.querySelector(`#search_url button#copy_url`)?.style.setProperty(`display`,`block`),n.selectImage=e=>{document.getElementById(`results`)?.classList.add(`image-detail-open`),window.location.hash=`#image-viewer`,n.scrollPageToSelected?.(),e&&o(e)},n.closeDetail=()=>{document.getElementById(`results`)?.classList.remove(`image-detail-open`),window.location.hash===`#image-viewer`&&window.history.back(),n.scrollPageToSelected?.()},t(`click`,`.btn-collapse`,function(){let e=this.getAttribute(`data-btn-text-collapsed`),t=this.getAttribute(`data-btn-text-not-collapsed`),n=this.getAttribute(`data-target`);if(!(n&&e&&t))return;let i=document.querySelector(n);r(i);let a=this.classList.contains(`collapsed`),o=a?t:e,s=a?e:t;this.innerHTML=this.innerHTML.replace(s,o),this.classList.toggle(`collapsed`),i.classList.toggle(`invisible`)}),t(`click`,`.media-loader`,function(){let e=this.getAttribute(`data-target`);if(!e)return;let t=document.querySelector(`${e} > iframe`);if(r(t),!t.getAttribute(`src`)){let e=t.getAttribute(`data-src`);e&&t.setAttribute(`src`,e)}}),t(`click`,`#copy_url`,async function(){let e=this.parentElement?.querySelector(`pre`);if(r(e),window.isSecureContext)await navigator.clipboard.writeText(e.innerText);else{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n),document.execCommand(`copy`)}}this.dataset.copiedText&&(this.innerText=this.dataset.copiedText)}),t(`click`,`.result-detail-close`,e=>{e.preventDefault(),n.closeDetail?.()}),t(`click`,`.result-detail-previous`,e=>{e.preventDefault(),n.selectPrevious?.(!1)}),t(`click`,`.result-detail-next`,e=>{e.preventDefault(),n.selectNext?.(!1)}),window.addEventListener(`hashchange`,()=>{window.location.hash!==`#image-viewer`&&n.closeDetail?.()});var c=document.querySelectorAll(`.swipe-horizontal`);for(let e of c)t(`swiped-left`,e,()=>{n.selectNext?.(!1)}),t(`swiped-right`,e,()=>{n.selectPrevious?.(!1)});window.addEventListener(`scroll`,()=>{let e=document.getElementById(`backToTop`),t=document.getElementById(`results`);if(e&&t){let e=(document.documentElement.scrollTop||document.body.scrollTop)>=100;t.classList.toggle(`scrolling`,e)}},!0);
//# sourceMappingURL=CFQtNTi4.min.js.map
(function(e,t){typeof e.CustomEvent!=`function`&&(e.CustomEvent=function(e,n){n||={bubbles:!1,cancelable:!1,detail:void 0};var r=t.createEvent(`CustomEvent`);return r.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),r},e.CustomEvent.prototype=e.Event.prototype),t.addEventListener(`touchstart`,u,!1),t.addEventListener(`touchmove`,d,!1),t.addEventListener(`touchend`,l,!1);var n=null,r=null,i=null,a=null,o=null,s=null,c=0;function l(e){if(s===e.target){var l=parseInt(f(s,`data-swipe-threshold`,`20`),10),u=f(s,`data-swipe-unit`,`px`),d=parseInt(f(s,`data-swipe-timeout`,`500`),10),p=Date.now()-o,m=``,h=e.changedTouches||e.touches||[];if(u===`vh`&&(l=Math.round(l/100*t.documentElement.clientHeight)),u===`vw`&&(l=Math.round(l/100*t.documentElement.clientWidth)),Math.abs(i)>Math.abs(a)?Math.abs(i)>l&&p<d&&(m=i>0?`swiped-left`:`swiped-right`):Math.abs(a)>l&&p<d&&(m=a>0?`swiped-up`:`swiped-down`),m!==``){var g={dir:m.replace(/swiped-/,``),touchType:(h[0]||{}).touchType||`direct`,fingers:c,xStart:parseInt(n,10),xEnd:parseInt((h[0]||{}).clientX||-1,10),yStart:parseInt(r,10),yEnd:parseInt((h[0]||{}).clientY||-1,10)};s.dispatchEvent(new CustomEvent(`swiped`,{bubbles:!0,cancelable:!0,detail:g})),s.dispatchEvent(new CustomEvent(m,{bubbles:!0,cancelable:!0,detail:g}))}n=null,r=null,o=null}}function u(e){e.target.getAttribute(`data-swipe-ignore`)!==`true`&&(s=e.target,o=Date.now(),n=e.touches[0].clientX,r=e.touches[0].clientY,i=0,a=0,c=e.touches.length)}function d(e){if(n&&r){var t=e.touches[0].clientX,o=e.touches[0].clientY;i=n-t,a=r-o}}function f(e,n,r){for(;e&&e!==t.documentElement;){var i=e.getAttribute(n);if(i)return i;e=e.parentNode}return r}})(window,document);var i,a=`${e.theme_static_path}/img/img_load_error.svg`,o=e=>{i&&clearTimeout(i);let t=e.querySelector(`.result-images-source img`);if(!t)return;let n=e.querySelector(`.image_thumbnail`);if(n){if(n.src===a)return;t.onerror=()=>{t.src=n.src},t.src=n.src}let r=t.getAttribute(`data-src`);r&&(i=setTimeout(()=>{t.src=r,t.removeAttribute(`data-src`)},1e3))},s=e=>{e.classList.contains(`thumbnail`)?e.closest(`a.thumbnail_link`)?.remove():e.classList.contains(`image_thumbnail`)&&e.src!==a&&(e.src=a)};document.addEventListener(`error`,e=>{let t=e.target;t instanceof HTMLImageElement&&s(t)},!0);for(let e of document.querySelectorAll(`img.thumbnail, #urls img.image_thumbnail`))e.complete&&e.naturalWidth===0&&s(e);document.querySelector(`#search_url button#copy_url`)?.style.setProperty(`display`,`block`),n.selectImage=e=>{document.getElementById(`results`)?.classList.add(`image-detail-open`),window.location.hash=`#image-viewer`,n.scrollPageToSelected?.(),e&&o(e)},n.closeDetail=()=>{document.getElementById(`results`)?.classList.remove(`image-detail-open`),window.location.hash===`#image-viewer`&&window.history.back(),n.scrollPageToSelected?.()},t(`click`,`.btn-collapse`,function(){let e=this.getAttribute(`data-btn-text-collapsed`),t=this.getAttribute(`data-btn-text-not-collapsed`),n=this.getAttribute(`data-target`);if(!(n&&e&&t))return;let i=document.querySelector(n);r(i);let a=this.classList.contains(`collapsed`),o=a?t:e,s=a?e:t;this.innerHTML=this.innerHTML.replace(s,o),this.classList.toggle(`collapsed`),i.classList.toggle(`invisible`)}),t(`click`,`.media-loader`,function(){let e=this.getAttribute(`data-target`);if(!e)return;let t=document.querySelector(`${e} > iframe`);if(r(t),!t.getAttribute(`src`)){let e=t.getAttribute(`data-src`);e&&t.setAttribute(`src`,e)}}),t(`click`,`#copy_url`,async function(){let e=this.parentElement?.querySelector(`pre`);if(r(e),window.isSecureContext)await navigator.clipboard.writeText(e.textContent);else{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n),document.execCommand(`copy`)}}this.dataset.copiedText&&(this.textContent=this.dataset.copiedText)}),t(`click`,`.result-detail-close`,e=>{e.preventDefault(),n.closeDetail?.()}),t(`click`,`.result-detail-previous`,e=>{e.preventDefault(),n.selectPrevious?.(!1)}),t(`click`,`.result-detail-next`,e=>{e.preventDefault(),n.selectNext?.(!1)}),window.addEventListener(`hashchange`,()=>{window.location.hash!==`#image-viewer`&&n.closeDetail?.()});var c=document.querySelectorAll(`.swipe-horizontal`);for(let e of c)t(`swiped-left`,e,()=>{n.selectNext?.(!1)}),t(`swiped-right`,e,()=>{n.selectPrevious?.(!1)});window.addEventListener(`scroll`,()=>{let e=document.getElementById(`backToTop`),t=document.getElementById(`results`);if(e&&t){let e=(document.documentElement.scrollTop||document.body.scrollTop)>=100;t.classList.toggle(`scrolling`,e)}},!0);
//# sourceMappingURL=Bu_sbHhO.min.js.map
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"version":3,"file":"BuurKv-k.min.js","names":["Plugin","id","result","error"],"sources":["../../../../../client/simple/src/js/Plugin.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/**\n * Base class for client-side plugins.\n *\n * @remarks\n * Handle conditional loading of the plugin in:\n *\n * - client/simple/src/js/router.ts\n *\n * @abstract\n */\nexport abstract class Plugin {\n /**\n * Plugin name.\n */\n protected readonly id: string;\n\n /**\n * @remarks\n * Don't hold references of this instance outside the class.\n */\n protected constructor(id: string) {\n this.id = id;\n\n queueMicrotask(() => this.invoke());\n }\n\n private async invoke(): Promise<void> {\n try {\n console.debug(`[PLUGIN] ${this.id}: Running...`);\n const result = await this.run();\n if (!result) return;\n\n console.debug(`[PLUGIN] ${this.id}: Running post-exec...`);\n // @ts-expect-error\n void (await this.post(result as NonNullable<Awaited<ReturnType<this[\"run\"]>>>));\n } catch (error) {\n console.error(`[PLUGIN] ${this.id}:`, error);\n } finally {\n console.debug(`[PLUGIN] ${this.id}: Done.`);\n }\n }\n\n /**\n * Plugin goes here.\n *\n * @remarks\n * The plugin is already loaded at this point. If you wish to execute\n * conditions to exit early, consider moving the logic to:\n *\n * - client/simple/src/js/router.ts\n *\n * ...to avoid unnecessarily loading this plugin on the client.\n */\n protected abstract run(): Promise<unknown>;\n\n /**\n * Post-execution hook.\n *\n * @remarks\n * The hook is only executed if `#run()` returns a truthy value.\n */\n // @ts-expect-error\n protected abstract post(result: NonNullable<Awaited<ReturnType<this[\"run\"]>>>): Promise<void>;\n}\n"],"mappings":"AAYA,IAAsBA,EAAtB,KAA6B,CAI3B,GAMA,YAAsB,EAAY,CAChC,KAAK,GAAKC,EAEV,mBAAqB,KAAK,OAAO,CAAC,CACpC,CAEA,MAAc,QAAwB,CACpC,GAAI,CACF,QAAQ,MAAM,YAAY,KAAK,GAAG,aAAa,EAC/C,IAAMC,EAAS,MAAM,KAAK,IAAI,EAC9B,GAAI,CAACA,EAAQ,OAEb,QAAQ,MAAM,YAAY,KAAK,GAAG,uBAAuB,EAEzD,MAAY,KAAK,KAAKA,CAAuD,CAC/E,OAASC,EAAO,CACd,QAAQ,MAAM,YAAY,KAAK,GAAG,GAAIA,CAAK,CAC7C,QAAU,CACR,QAAQ,MAAM,YAAY,KAAK,GAAG,QAAQ,CAC5C,CACF,CAuBF"}
{"version":3,"file":"BuurKv-k.min.js","names":["Plugin","id","result","error"],"sources":["../../../../../client/simple/src/js/Plugin.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/**\n * Base class for client-side plugins.\n *\n * @remarks\n * Handle conditional loading of the plugin in:\n *\n * - client/simple/src/js/router.ts\n *\n * @abstract\n */\nexport abstract class Plugin {\n /**\n * Plugin name.\n */\n protected readonly id: string;\n\n /**\n * @remarks\n * Don't hold references of this instance outside the class.\n */\n protected constructor(id: string) {\n this.id = id;\n\n queueMicrotask(() => this.invoke());\n }\n\n private async invoke(): Promise<void> {\n try {\n console.debug(`[PLUGIN] ${this.id}: Running...`);\n const result = await this.run();\n if (!result) return;\n\n console.debug(`[PLUGIN] ${this.id}: Running post-exec...`);\n // @ts-expect-error\n void (await this.post(result as NonNullable<Awaited<ReturnType<this[\"run\"]>>>));\n } catch (error) {\n console.error(`[PLUGIN] ${this.id}:`, error);\n } finally {\n console.debug(`[PLUGIN] ${this.id}: Done.`);\n }\n }\n\n /**\n * Plugin goes here.\n *\n * @remarks\n * The plugin is already loaded at this point. If you wish to execute\n * conditions to exit early, consider moving the logic to:\n *\n * - client/simple/src/js/router.ts\n *\n * ...to avoid unnecessarily loading this plugin on the client.\n */\n protected abstract run(): Promise<unknown>;\n\n /**\n * Post-execution hook.\n *\n * @remarks\n * The hook is only executed if `#run()` returns a truthy value.\n */\n // @ts-expect-error\n protected abstract post(result: NonNullable<Awaited<ReturnType<this[\"run\"]>>>): Promise<void>;\n}\n"],"mappings":"AAYA,IAAsBA,EAAtB,KAA6B,CAI3B,GAMA,YAAsB,EAAY,CAChC,KAAK,GAAKC,EAEV,mBAAqB,KAAK,OAAO,CAAC,CACpC,CAEA,MAAc,QAAwB,CACpC,GAAI,CACF,QAAQ,MAAM,YAAY,KAAK,GAAG,aAAa,EAC/C,IAAMC,EAAS,MAAM,KAAK,IAAI,EAC9B,GAAI,CAACA,EAAQ,OAEb,QAAQ,MAAM,YAAY,KAAK,GAAG,uBAAuB,EAEzD,MAAY,KAAK,KAAKA,CAAuD,CAC/E,OAASC,EAAO,CACd,QAAQ,MAAM,YAAY,KAAK,GAAG,GAAIA,CAAK,CAC7C,QAAU,CACR,QAAQ,MAAM,YAAY,KAAK,GAAG,QAAQ,CAC5C,CACF,CAuBF,E"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"version":3,"file":"DK4yUVpy.min.js","names":["assertElement","element"],"sources":["../../../../../client/simple/src/js/util/assertElement.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\ntype AssertElement = <T>(element?: T | null) => asserts element is T;\nexport const assertElement: AssertElement = <T>(element?: T | null): asserts element is T => {\n if (!element) {\n throw new Error(\"DOM element not found\");\n }\n};\n"],"mappings":"AAGA,IAAaA,EAAmC,GAA6C,CAC3F,GAAI,CAACC,EACH,MAAU,MAAM,uBAAuB,CAE3C"}
{"version":3,"file":"DK4yUVpy.min.js","names":["assertElement","element"],"sources":["../../../../../client/simple/src/js/util/assertElement.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\ntype AssertElement = <T>(element?: T | null) => asserts element is T;\nexport const assertElement: AssertElement = <T>(element?: T | null): asserts element is T => {\n if (!element) {\n throw new Error(\"DOM element not found\");\n }\n};\n"],"mappings":"AAGA,IAAaA,EAAmC,GAA6C,CAC3F,GAAI,CAACC,EACH,MAAU,MAAM,uBAAuB,CAE3C,E"}
@@ -1 +1 @@
{"version":3,"file":"DcK-mo-Y.min.js","names":["assertElement","getElement","element","id","options"],"sources":["../../../../../client/simple/src/js/util/getElement.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { assertElement } from \"./assertElement.ts\";\n\ntype Options = {\n assert?: boolean;\n};\n\nexport function getElement<T>(id: string, options?: { assert: true }): T;\nexport function getElement<T>(id: string, options?: { assert: false }): T | null;\nexport function getElement<T>(id: string, options: Options = {}): T | null {\n options.assert ??= true;\n\n const element = document.getElementById(id) as T | null;\n\n if (options.assert) {\n assertElement(element);\n }\n\n return element;\n}\n"],"mappings":"sCAUA,SAAgBC,EAAc,EAAY,EAAmB,CAAC,EAAa,CACzE,EAAQ,SAAW,GAEnB,IAAMC,EAAU,SAAS,eAAeC,CAAE,EAM1C,OAJIC,EAAQ,QACVJ,EAAcE,CAAO,EAGhBA,CACT"}
{"version":3,"file":"DcK-mo-Y.min.js","names":["assertElement","getElement","element","id","options"],"sources":["../../../../../client/simple/src/js/util/getElement.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { assertElement } from \"./assertElement.ts\";\n\ntype Options = {\n assert?: boolean;\n};\n\nexport function getElement<T>(id: string, options?: { assert: true }): T;\nexport function getElement<T>(id: string, options?: { assert: false }): T | null;\nexport function getElement<T>(id: string, options: Options = {}): T | null {\n options.assert ??= true;\n\n const element = document.getElementById(id) as T | null;\n\n if (options.assert) {\n assertElement(element);\n }\n\n return element;\n}\n"],"mappings":"A,sCAUA,SAAgBC,EAAc,EAAY,EAAmB,CAAC,EAAa,CACzE,EAAQ,SAAW,GAEnB,IAAMC,EAAU,SAAS,eAAeC,CAAE,EAM1C,OAJIC,EAAQ,QACVJ,EAAcE,CAAO,EAGhBA,CACT,C"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
import{i as e,n as t,t as n}from"../sxng-core.min.js";import{t as r}from"./DK4yUVpy.min.js";var i,a=async()=>{if(!i){try{i=await(await n(`GET`,`engine_descriptions.json`)).json()}catch(e){console.error(`Error fetching engineDescriptions:`,e)}if(i)for(let[t,[n,r]]of Object.entries(i)){let i=document.querySelectorAll(`[data-engine-name="${t}"] .engine-description`),a=` (<i>${e.translations?.Source}:&nbsp;${r}</i>)`;for(let e of i)e.innerHTML=n+a}}},o=(e,t)=>{for(let n of t)n.offsetParent&&(n.checked=!e)},s=document.querySelectorAll(`[data-engine-name]`);for(let e of s)t(`mouseenter`,e,a);var c=document.querySelectorAll(`tbody input[type=checkbox][class~=checkbox-onoff]`),l=document.querySelectorAll(`.enable-all-engines`);for(let e of l)t(`click`,e,()=>o(!0,c));var u=document.querySelectorAll(`.disable-all-engines`);for(let e of u)t(`click`,e,()=>o(!1,c));t(`click`,`#copy-hash`,async function(){let e=this.parentElement?.querySelector(`pre`);if(r(e),window.isSecureContext)await navigator.clipboard.writeText(e.innerText);else{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n),document.execCommand(`copy`)}}this.dataset.copiedText&&(this.innerText=this.dataset.copiedText)});
//# sourceMappingURL=e2-9fzwE.min.js.map
import{i as e,n as t,t as n}from"../sxng-core.min.js";import{t as r}from"./DK4yUVpy.min.js";var i,a=async()=>{if(!i){try{i=await(await n(`GET`,`engine_descriptions.json`)).json()}catch(e){console.error(`Error fetching engineDescriptions:`,e)}if(i)for(let[t,[n,r]]of Object.entries(i)){let i=document.querySelectorAll(`[data-engine-name="${t}"] .engine-description`),a=` (<i>${e.translations?.Source}:&nbsp;${r}</i>)`;for(let e of i)e.innerHTML=n+a}}},o=(e,t)=>{for(let n of t)n.offsetParent&&(n.checked=!e)},s=document.querySelectorAll(`[data-engine-name]`);for(let e of s)t(`mouseenter`,e,a);var c=document.querySelectorAll(`tbody input[type=checkbox][class~=checkbox-onoff]`),l=document.querySelectorAll(`.enable-all-engines`);for(let e of l)t(`click`,e,()=>o(!0,c));var u=document.querySelectorAll(`.disable-all-engines`);for(let e of u)t(`click`,e,()=>o(!1,c));t(`click`,`#copy-hash`,async function(){let e=this.parentElement?.querySelector(`pre`);if(r(e),window.isSecureContext)await navigator.clipboard.writeText(e.textContent);else{let t=window.getSelection();if(t){let n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n),document.execCommand(`copy`)}}this.dataset.copiedText&&(this.textContent=this.dataset.copiedText)});
//# sourceMappingURL=DrJUb27w.min.js.map
@@ -1 +1 @@
{"version":3,"file":"e2-9fzwE.min.js","names":["settings","listen","http","assertElement","engineDescriptions","loadEngineDescriptions","error","engine_name","description","source","elements","sourceText","element","toggleEngines","engineToggle","engineToggles","enable","engineElements","engineElement","enableAllEngines","engine","disableAllEngines","target","selection","range"],"sources":["../../../../../client/simple/src/js/main/preferences.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { http, listen, settings } from \"../toolkit.ts\";\nimport { assertElement } from \"../util/assertElement.ts\";\n\nlet engineDescriptions: Record<string, [string, string]> | undefined;\n\nconst loadEngineDescriptions = async (): Promise<void> => {\n if (engineDescriptions) return;\n try {\n const res = await http(\"GET\", \"engine_descriptions.json\");\n engineDescriptions = await res.json();\n } catch (error) {\n console.error(\"Error fetching engineDescriptions:\", error);\n }\n if (!engineDescriptions) return;\n\n for (const [engine_name, [description, source]] of Object.entries(engineDescriptions)) {\n const elements = document.querySelectorAll<HTMLElement>(`[data-engine-name=\"${engine_name}\"] .engine-description`);\n const sourceText = ` (<i>${settings.translations?.Source}:&nbsp;${source}</i>)`;\n\n for (const element of elements) {\n element.innerHTML = description + sourceText;\n }\n }\n};\n\nconst toggleEngines = (enable: boolean, engineToggles: NodeListOf<HTMLInputElement>): void => {\n for (const engineToggle of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (engineToggle.offsetParent) {\n engineToggle.checked = !enable;\n }\n }\n};\n\nconst engineElements: NodeListOf<HTMLElement> = document.querySelectorAll<HTMLElement>(\"[data-engine-name]\");\nfor (const engineElement of engineElements) {\n listen(\"mouseenter\", engineElement, loadEngineDescriptions);\n}\n\nconst engineToggles: NodeListOf<HTMLInputElement> = document.querySelectorAll<HTMLInputElement>(\n \"tbody input[type=checkbox][class~=checkbox-onoff]\"\n);\n\nconst enableAllEngines: NodeListOf<HTMLElement> = document.querySelectorAll<HTMLElement>(\".enable-all-engines\");\nfor (const engine of enableAllEngines) {\n listen(\"click\", engine, () => toggleEngines(true, engineToggles));\n}\n\nconst disableAllEngines: NodeListOf<HTMLElement> = document.querySelectorAll<HTMLElement>(\".disable-all-engines\");\nfor (const engine of disableAllEngines) {\n listen(\"click\", engine, () => toggleEngines(false, engineToggles));\n}\n\nlisten(\"click\", \"#copy-hash\", async function (this: HTMLElement) {\n const target = this.parentElement?.querySelector<HTMLPreElement>(\"pre\");\n assertElement(target);\n\n if (window.isSecureContext) {\n await navigator.clipboard.writeText(target.innerText);\n } else {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(target);\n selection.removeAllRanges();\n selection.addRange(range);\n document.execCommand(\"copy\");\n }\n }\n\n if (this.dataset.copiedText) {\n this.innerText = this.dataset.copiedText;\n }\n});\n"],"mappings":"4FAKA,IAAII,EAEEC,EAAyB,SAA2B,CACxD,GAAI,GACJ,IAAI,CAEF,EAAqB,MAAM,MADTH,EAAK,MAAO,0BAA0B,EAAA,CACzB,KAAK,CACtC,OAASI,EAAO,CACd,QAAQ,MAAM,qCAAsCA,CAAK,CAC3D,CACA,GAAKF,EAEL,IAAK,GAAM,CAACG,EAAa,CAACC,EAAaC,MAAY,OAAO,QAAQL,CAAkB,EAAG,CACrF,IAAMM,EAAW,SAAS,iBAA8B,sBAAsBH,EAAY,uBAAuB,EAC3GI,EAAa,QAAQX,EAAS,cAAc,OAAO,SAASS,EAAO,OAEzE,IAAK,IAAMG,KAAWF,EACpB,EAAQ,UAAYF,EAAcG,CAEtC,CAVA,CAWF,EAEME,GAAiB,EAAiB,IAAsD,CAC5F,IAAK,IAAMC,KAAgBC,EAErBD,EAAa,eACf,EAAa,QAAU,CAACE,EAG9B,EAEMC,EAA0C,SAAS,iBAA8B,oBAAoB,EAC3G,IAAK,IAAMC,KAAiBD,EAC1BhB,EAAO,aAAciB,EAAeb,CAAsB,EAG5D,IAAMU,EAA8C,SAAS,iBAC3D,mDACF,EAEMI,EAA4C,SAAS,iBAA8B,qBAAqB,EAC9G,IAAK,IAAMC,KAAUD,EACnBlB,EAAO,QAASmB,MAAcP,EAAc,GAAME,CAAa,CAAC,EAGlE,IAAMM,EAA6C,SAAS,iBAA8B,sBAAsB,EAChH,IAAK,IAAMD,KAAUC,EACnBpB,EAAO,QAASmB,MAAcP,EAAc,GAAOE,CAAa,CAAC,EAGnEd,EAAO,QAAS,aAAc,gBAAmC,CAC/D,IAAMqB,EAAS,KAAK,eAAe,cAA8B,KAAK,EAGtE,GAFAnB,EAAcmB,CAAM,EAEhB,OAAO,gBACT,MAAM,UAAU,UAAU,UAAUA,EAAO,SAAS,MAC/C,CACL,IAAMC,EAAY,OAAO,aAAa,EACtC,GAAIA,EAAW,CACb,IAAMC,EAAQ,SAAS,YAAY,EACnCA,EAAM,mBAAmBF,CAAM,EAC/BC,EAAU,gBAAgB,EAC1BA,EAAU,SAASC,CAAK,EACxB,SAAS,YAAY,MAAM,CAC7B,CACF,CAEI,KAAK,QAAQ,aACf,KAAK,UAAY,KAAK,QAAQ,WAElC,CAAC"}
{"version":3,"file":"DrJUb27w.min.js","names":["settings","listen","http","assertElement","engineDescriptions","loadEngineDescriptions","error","engine_name","description","source","elements","sourceText","element","toggleEngines","engineToggle","engineToggles","enable","engineElements","engineElement","enableAllEngines","engine","disableAllEngines","target","selection","range"],"sources":["../../../../../client/simple/src/js/main/preferences.ts"],"sourcesContent":["// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { http, listen, settings } from \"../toolkit.ts\";\nimport { assertElement } from \"../util/assertElement.ts\";\n\nlet engineDescriptions: Record<string, [string, string]> | undefined;\n\nconst loadEngineDescriptions = async (): Promise<void> => {\n if (engineDescriptions) return;\n try {\n const res = await http(\"GET\", \"engine_descriptions.json\");\n engineDescriptions = await res.json();\n } catch (error) {\n console.error(\"Error fetching engineDescriptions:\", error);\n }\n if (!engineDescriptions) return;\n\n for (const [engine_name, [description, source]] of Object.entries(engineDescriptions)) {\n const elements = document.querySelectorAll<HTMLElement>(`[data-engine-name=\"${engine_name}\"] .engine-description`);\n const sourceText = ` (<i>${settings.translations?.Source}:&nbsp;${source}</i>)`;\n\n for (const element of elements) {\n element.innerHTML = description + sourceText;\n }\n }\n};\n\nconst toggleEngines = (enable: boolean, engineToggles: NodeListOf<HTMLInputElement>): void => {\n for (const engineToggle of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (engineToggle.offsetParent) {\n engineToggle.checked = !enable;\n }\n }\n};\n\nconst engineElements: NodeListOf<HTMLElement> = document.querySelectorAll<HTMLElement>(\"[data-engine-name]\");\nfor (const engineElement of engineElements) {\n listen(\"mouseenter\", engineElement, loadEngineDescriptions);\n}\n\nconst engineToggles: NodeListOf<HTMLInputElement> = document.querySelectorAll<HTMLInputElement>(\n \"tbody input[type=checkbox][class~=checkbox-onoff]\"\n);\n\nconst enableAllEngines: NodeListOf<HTMLElement> = document.querySelectorAll<HTMLElement>(\".enable-all-engines\");\nfor (const engine of enableAllEngines) {\n listen(\"click\", engine, () => toggleEngines(true, engineToggles));\n}\n\nconst disableAllEngines: NodeListOf<HTMLElement> = document.querySelectorAll<HTMLElement>(\".disable-all-engines\");\nfor (const engine of disableAllEngines) {\n listen(\"click\", engine, () => toggleEngines(false, engineToggles));\n}\n\nlisten(\"click\", \"#copy-hash\", async function (this: HTMLElement) {\n const target = this.parentElement?.querySelector<HTMLPreElement>(\"pre\");\n assertElement(target);\n\n if (window.isSecureContext) {\n await navigator.clipboard.writeText(target.textContent);\n } else {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(target);\n selection.removeAllRanges();\n selection.addRange(range);\n document.execCommand(\"copy\");\n }\n }\n\n if (this.dataset.copiedText) {\n this.textContent = this.dataset.copiedText;\n }\n});\n"],"mappings":"A,4FAKA,IAAII,EAEEC,EAAyB,SAA2B,CACxD,GAAI,GACJ,IAAI,CAEF,EAAqB,MAAM,MADTH,EAAK,MAAO,0BAA0B,EAAA,CACzB,KAAK,CACtC,OAASI,EAAO,CACd,QAAQ,MAAM,qCAAsCA,CAAK,CAC3D,CACA,GAAKF,EAEL,IAAK,GAAM,CAACG,EAAa,CAACC,EAAaC,MAAY,OAAO,QAAQL,CAAkB,EAAG,CACrF,IAAMM,EAAW,SAAS,iBAA8B,sBAAsBH,EAAY,uBAAuB,EAC3GI,EAAa,QAAQX,EAAS,cAAc,OAAO,SAASS,EAAO,OAEzE,IAAK,IAAMG,KAAWF,EACpB,EAAQ,UAAYF,EAAcG,CAEtC,CAVA,CAWF,EAEME,GAAiB,EAAiB,IAAsD,CAC5F,IAAK,IAAMC,KAAgBC,EAErBD,EAAa,eACf,EAAa,QAAU,CAACE,EAG9B,EAEMC,EAA0C,SAAS,iBAA8B,oBAAoB,EAC3G,IAAK,IAAMC,KAAiBD,EAC1BhB,EAAO,aAAciB,EAAeb,CAAsB,EAG5D,IAAMU,EAA8C,SAAS,iBAC3D,mDACF,EAEMI,EAA4C,SAAS,iBAA8B,qBAAqB,EAC9G,IAAK,IAAMC,KAAUD,EACnBlB,EAAO,QAASmB,MAAcP,EAAc,GAAME,CAAa,CAAC,EAGlE,IAAMM,EAA6C,SAAS,iBAA8B,sBAAsB,EAChH,IAAK,IAAMD,KAAUC,EACnBpB,EAAO,QAASmB,MAAcP,EAAc,GAAOE,CAAa,CAAC,EAGnEd,EAAO,QAAS,aAAc,gBAAmC,CAC/D,IAAMqB,EAAS,KAAK,eAAe,cAA8B,KAAK,EAGtE,GAFAnB,EAAcmB,CAAM,EAEhB,OAAO,gBACT,MAAM,UAAU,UAAU,UAAUA,EAAO,WAAW,MACjD,CACL,IAAMC,EAAY,OAAO,aAAa,EACtC,GAAIA,EAAW,CACb,IAAMC,EAAQ,SAAS,YAAY,EACnCA,EAAM,mBAAmBF,CAAM,EAC/BC,EAAU,gBAAgB,EAC1BA,EAAU,SAASC,CAAK,EACxB,SAAS,YAAY,MAAM,CAC7B,CACF,CAEI,KAAK,QAAQ,aACf,KAAK,YAAc,KAAK,QAAQ,WAEpC,CAAC"}
+4 -4
View File
@@ -51,7 +51,7 @@
]
},
"src/js/main/preferences.ts": {
"file": "chunk/e2-9fzwE.min.js",
"file": "chunk/DrJUb27w.min.js",
"name": "preferences",
"src": "src/js/main/preferences.ts",
"isDynamicEntry": true,
@@ -61,7 +61,7 @@
]
},
"src/js/main/results.ts": {
"file": "chunk/CFQtNTi4.min.js",
"file": "chunk/Bu_sbHhO.min.js",
"name": "results",
"src": "src/js/main/results.ts",
"isDynamicEntry": true,
@@ -81,7 +81,7 @@
]
},
"src/js/plugin/Calculator.ts": {
"file": "chunk/CGtCrbI8.min.js",
"file": "chunk/DisAuMqR.min.js",
"name": "calculator",
"src": "src/js/plugin/Calculator.ts",
"isDynamicEntry": true,
@@ -103,7 +103,7 @@
]
},
"src/js/plugin/MapView.ts": {
"file": "chunk/DAKwL16e.min.js",
"file": "chunk/BouIGjk1.min.js",
"name": "mapview",
"src": "src/js/plugin/MapView.ts",
"isDynamicEntry": true,
+2 -2
View File
@@ -1,3 +1,3 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./chunk/DAKwL16e.min.js","./chunk/BuurKv-k.min.js","./sxng-mapview.min.css","./chunk/D3mcqWOe.min.js","./chunk/DK4yUVpy.min.js","./chunk/DcK-mo-Y.min.js","./chunk/CGtCrbI8.min.js","./chunk/CGcztD0S.min.js","./chunk/BMrKiJ3q.min.js","./chunk/Bs-FMxfE.min.js","./chunk/CFQtNTi4.min.js","./chunk/e2-9fzwE.min.js"])))=>i.map(i=>d[i]);
var e={index:`index`,results:`results`,preferences:`preferences`,unknown:`unknown`},t={closeDetail:void 0,scrollPageToSelected:void 0,selectImage:void 0,selectNext:void 0,selectPrevious:void 0},n=()=>{let t=document.querySelector(`meta[name="endpoint"]`)?.getAttribute(`content`);return t&&t in e?t:e.unknown},r=()=>{let e=document.querySelector(`script[client_settings]`)?.getAttribute(`client_settings`);if(!e)return{};try{return JSON.parse(atob(e))}catch(e){return console.error(`Failed to load client_settings:`,e),{}}},i=async(e,t,n)=>{let r=new AbortController,i=setTimeout(()=>r.abort(),n?.timeout??3e4),a=await fetch(t,{body:n?.body,method:e,signal:r.signal}).finally(()=>clearTimeout(i));if(!a.ok)throw Error(a.statusText);return a},a=(e,t,n,r)=>{typeof t==`string`?document.addEventListener(e,e=>{for(let r of e.composedPath())if(r instanceof HTMLElement&&r.matches(t)){try{n.call(r,e)}catch(e){console.error(e)}break}},r):t.addEventListener(e,n,r)},o=(e,t)=>{for(let e of t?.on??[])if(!e)return;document.readyState===`loading`?a(`DOMContentLoaded`,document,e,{once:!0}):e()},s=n(),c=r(),l=(e,t)=>{u(t)&&e()},u=e=>{switch(e.on){case`global`:return!0;case`endpoint`:return!!e.where.includes(s)}},d=`modulepreload`,f=function(e,t){return new URL(e,t).href},p={},m=function(e){return e.pathname.endsWith(`.css`)},h=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},g=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=f(t,n);let r=s(t),i=m(r);return h(p,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:d,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};o(()=>{document.documentElement.classList.remove(`no-js`),document.documentElement.classList.add(`js`),a(`click`,`.close`,function(){this.parentNode?.classList.add(`invisible`)}),a(`click`,`.searxng_init_map`,async function(t){t.preventDefault(),this.classList.remove(`searxng_init_map`),l(()=>g(async()=>{let{default:e}=await import(`./chunk/DAKwL16e.min.js`);return{default:e}},__vite__mapDeps([0,1,2]),import.meta.url).then(({default:e})=>new e(this)),{on:`endpoint`,where:[e.results]})}),c.plugins?.includes(`infiniteScroll`)&&l(()=>g(async()=>{let{default:e}=await import(`./chunk/D3mcqWOe.min.js`);return{default:e}},__vite__mapDeps([3,1,4,5]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[e.results]}),c.plugins?.includes(`calculator`)&&l(()=>g(async()=>{let{default:e}=await import(`./chunk/CGtCrbI8.min.js`);return{default:e}},__vite__mapDeps([6,1,5,4]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[e.results]})}),o(()=>{g(()=>import(`./chunk/CGcztD0S.min.js`),__vite__mapDeps([7,4]),import.meta.url),g(()=>import(`./chunk/BMrKiJ3q.min.js`),__vite__mapDeps([8,5,4]),import.meta.url),c.autocomplete&&g(()=>import(`./chunk/Bs-FMxfE.min.js`),__vite__mapDeps([9,4]),import.meta.url)},{on:[s===e.index]}),o(()=>{g(()=>import(`./chunk/CGcztD0S.min.js`),__vite__mapDeps([7,4]),import.meta.url),g(()=>import(`./chunk/CFQtNTi4.min.js`),__vite__mapDeps([10,4]),import.meta.url),g(()=>import(`./chunk/BMrKiJ3q.min.js`),__vite__mapDeps([8,5,4]),import.meta.url),c.autocomplete&&g(()=>import(`./chunk/Bs-FMxfE.min.js`),__vite__mapDeps([9,4]),import.meta.url)},{on:[s===e.results]}),o(()=>{g(()=>import(`./chunk/e2-9fzwE.min.js`),__vite__mapDeps([11,4]),import.meta.url)},{on:[s===e.preferences]});export{c as i,a as n,t as r,i as t};
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./chunk/BouIGjk1.min.js","./chunk/BuurKv-k.min.js","./sxng-mapview.min.css","./chunk/D3mcqWOe.min.js","./chunk/DK4yUVpy.min.js","./chunk/DcK-mo-Y.min.js","./chunk/DisAuMqR.min.js","./chunk/CGcztD0S.min.js","./chunk/BMrKiJ3q.min.js","./chunk/Bs-FMxfE.min.js","./chunk/Bu_sbHhO.min.js","./chunk/DrJUb27w.min.js"])))=>i.map(i=>d[i]);
var e={index:`index`,results:`results`,preferences:`preferences`,unknown:`unknown`},t={closeDetail:void 0,scrollPageToSelected:void 0,selectImage:void 0,selectNext:void 0,selectPrevious:void 0},n=()=>{let t=document.querySelector(`meta[name="endpoint"]`)?.getAttribute(`content`);return t&&t in e?t:e.unknown},r=()=>{let e=document.querySelector(`script[client_settings]`)?.getAttribute(`client_settings`);if(!e)return{};try{return JSON.parse(atob(e))}catch(e){return console.error(`Failed to load client_settings:`,e),{}}},i=async(e,t,n)=>{let r=new AbortController,i=setTimeout(()=>r.abort(),n?.timeout??3e4),a=await fetch(t,{body:n?.body,method:e,signal:r.signal}).finally(()=>clearTimeout(i));if(!a.ok)throw Error(a.statusText);return a},a=(e,t,n,r)=>{typeof t==`string`?document.addEventListener(e,e=>{for(let r of e.composedPath())if(r instanceof HTMLElement&&r.matches(t)){try{n.call(r,e)}catch(e){console.error(e)}break}},r):t.addEventListener(e,n,r)},o=(e,t)=>{for(let e of t?.on??[])if(!e)return;document.readyState===`loading`?a(`DOMContentLoaded`,document,e,{once:!0}):e()},s=n(),c=r(),l=(e,t)=>{u(t)&&e()},u=e=>{switch(e.on){case`global`:return!0;case`endpoint`:return!!e.where.includes(s)}},d=`modulepreload`,f=function(e,t){return new URL(e,t).href},p={},m=function(e){return e.pathname.endsWith(`.css`)},h=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},g=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=f(t,n);let r=s(t),i=m(r);return h(p,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:d,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};o(()=>{document.documentElement.classList.remove(`no-js`),document.documentElement.classList.add(`js`),a(`click`,`.close`,function(){this.parentNode?.classList.add(`invisible`)}),a(`click`,`.searxng_init_map`,async function(t){t.preventDefault(),this.classList.remove(`searxng_init_map`),l(()=>g(async()=>{let{default:e}=await import(`./chunk/BouIGjk1.min.js`);return{default:e}},__vite__mapDeps([0,1,2]),import.meta.url).then(({default:e})=>new e(this)),{on:`endpoint`,where:[e.results]})}),c.plugins?.includes(`infiniteScroll`)&&l(()=>g(async()=>{let{default:e}=await import(`./chunk/D3mcqWOe.min.js`);return{default:e}},__vite__mapDeps([3,1,4,5]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[e.results]}),c.plugins?.includes(`calculator`)&&l(()=>g(async()=>{let{default:e}=await import(`./chunk/DisAuMqR.min.js`);return{default:e}},__vite__mapDeps([6,1,5,4]),import.meta.url).then(({default:e})=>new e),{on:`endpoint`,where:[e.results]})}),o(()=>{g(()=>import(`./chunk/CGcztD0S.min.js`),__vite__mapDeps([7,4]),import.meta.url),g(()=>import(`./chunk/BMrKiJ3q.min.js`),__vite__mapDeps([8,5,4]),import.meta.url),c.autocomplete&&g(()=>import(`./chunk/Bs-FMxfE.min.js`),__vite__mapDeps([9,4]),import.meta.url)},{on:[s===e.index]}),o(()=>{g(()=>import(`./chunk/CGcztD0S.min.js`),__vite__mapDeps([7,4]),import.meta.url),g(()=>import(`./chunk/Bu_sbHhO.min.js`),__vite__mapDeps([10,4]),import.meta.url),g(()=>import(`./chunk/BMrKiJ3q.min.js`),__vite__mapDeps([8,5,4]),import.meta.url),c.autocomplete&&g(()=>import(`./chunk/Bs-FMxfE.min.js`),__vite__mapDeps([9,4]),import.meta.url)},{on:[s===e.results]}),o(()=>{g(()=>import(`./chunk/DrJUb27w.min.js`),__vite__mapDeps([11,4]),import.meta.url)},{on:[s===e.preferences]});export{c as i,a as n,t as r,i as t};
//# sourceMappingURL=sxng-core.min.js.map
File diff suppressed because one or more lines are too long
Binary file not shown.
+35 -35
View File
@@ -18,19 +18,20 @@
# return42 <return42@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-07-23 22:07+0000\n"
"PO-Revision-Date: 2026-10-26 23:27+0000\n"
"Last-Translator: alexgabi <alexgabi@noreply.codeberg.org>\n"
"Language: eu\n"
"Language-Team: Basque "
"<https://translate.codeberg.org/projects/searxng/searxng/eu/>\n"
"Language-Team: Basque <https://translate.codeberg.org/projects/searxng/"
"searxng/eu/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
"X-Generator: Weblate 2026.10.1\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
@@ -50,7 +51,7 @@ msgstr "aplikazioak"
#. CATEGORY_NAMES['BLOGS']
#: searx/searxng.msg
msgid "blogs"
msgstr ""
msgstr "blogak"
#. CATEGORY_NAMES['DICTIONARIES']
#: searx/searxng.msg
@@ -70,7 +71,7 @@ msgstr "orokorra"
#. CATEGORY_NAMES['ICONS']
#: searx/searxng.msg
msgid "icons"
msgstr ""
msgstr "ikonoak"
#. CATEGORY_NAMES['IMAGES']
#: searx/searxng.msg
@@ -95,7 +96,7 @@ msgstr "mapa"
#. CATEGORY_NAMES['MOVIES']
#: searx/searxng.msg
msgid "movies"
msgstr ""
msgstr "filmak"
#. CATEGORY_NAMES['MUSIC']
#: searx/searxng.msg
@@ -155,12 +156,12 @@ msgstr "software wikiak"
#. CATEGORY_NAMES['STOCK_IMAGES']
#: searx/searxng.msg
msgid "stock images"
msgstr ""
msgstr "artxiboko irudiak"
#. CATEGORY_NAMES['TRANSLATE']
#: searx/searxng.msg
msgid "translate"
msgstr ""
msgstr "itzuli"
#. CATEGORY_NAMES['TV']
#: searx/searxng.msg
@@ -175,7 +176,7 @@ msgstr "bideoak"
#. CATEGORY_NAMES['WEATHER']
#: searx/searxng.msg
msgid "weather"
msgstr ""
msgstr "eguraldia"
#. CATEGORY_NAMES['WEB']
#: searx/searxng.msg
@@ -588,95 +589,95 @@ msgstr "Errorea hurrengo orrialdea kargatzean"
#: searx/webapp.py:332
msgid "close"
msgstr ""
msgstr "itxi"
#: searx/webapp.py:333
msgid "How to navigate SearXNG with hotkeys"
msgstr ""
msgstr "Nola nabigatu SearXNG laster-teklen bidez"
#: searx/webapp.py:334
msgid "Control"
msgstr ""
msgstr "Kontrola"
#: searx/webapp.py:335
msgid "Results"
msgstr ""
msgstr "Emaitzak"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "Nabigazioa"
#: searx/webapp.py:337
msgid "Other"
msgstr ""
msgstr "Bestelakoak"
#: searx/webapp.py:338
msgid "remove focus from the focused input"
msgstr ""
msgstr "kendu fokua fokuratutako sarreratik"
#: searx/webapp.py:339
msgid "copy url of the selected result to the clipboard"
msgstr ""
msgstr "kopiatu hautatutako emaitzen url-a arbelean"
#: searx/webapp.py:340
msgid "toggle help window"
msgstr ""
msgstr "txandakatu laguntza leihoa"
#: searx/webapp.py:341
msgid "focus on the search input"
msgstr ""
msgstr "zentratu bilaketa-sarreran"
#: searx/webapp.py:342
msgid "go to next page"
msgstr ""
msgstr "joan hurrengo orrira"
#: searx/webapp.py:343
msgid "open search result"
msgstr ""
msgstr "ireki bilaketaren emaitza"
#: searx/webapp.py:344
msgid "go to previous page"
msgstr ""
msgstr "joan aurreko orrira"
#: searx/webapp.py:345
msgid "reload page from the server"
msgstr ""
msgstr "birkargatu orria zerbitzaritik"
#: searx/webapp.py:346
msgid "open the result in a new tab"
msgstr ""
msgstr "ireki emaitza fitxa berri batean"
#: searx/webapp.py:347
msgid "select previous search result"
msgstr ""
msgstr "hautatu aurreko bilaketaren emaitza"
#: searx/webapp.py:348
msgid "select next search result"
msgstr ""
msgstr "hautatu hurrengo bilaketaren emaitza"
#: searx/webapp.py:349
msgid "scroll one page up"
msgstr ""
msgstr "korritu orri bat gora"
#: searx/webapp.py:350
msgid "scroll half a page down"
msgstr ""
msgstr "korritu orri erdia behera"
#: searx/webapp.py:351
msgid "scroll one page down"
msgstr ""
msgstr "korritu orri bat behera"
#: searx/webapp.py:352
msgid "scroll to the top of the page"
msgstr ""
msgstr "korritu orriaren goiko aldera"
#: searx/webapp.py:353
msgid "scroll half a page up"
msgstr ""
msgstr "korritu orri erdia gora"
#: searx/webapp.py:354
msgid "scroll to the bottom of the page"
msgstr ""
msgstr "korritu orriaren bukaerara"
#: searx/webapp.py:502 searx/webapp.py:902
msgid "Invalid settings, please edit your preferences"
@@ -1522,7 +1523,7 @@ msgstr "Hobespenen hash"
#: searx/templates/simple/preferences/doi_resolver.html:2
msgid "DOI Resolver"
msgstr ""
msgstr "DOI ebazlea"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
@@ -2518,4 +2519,3 @@ msgstr "ezkutatu bideoa"
#~ msgid "Select service used by DOI rewrite"
#~ msgstr "Hautatu DOI berridazketa-k erabilitako zerbitzua"
Binary file not shown.
+28 -28
View File
@@ -17,23 +17,24 @@
# Anonymous <anonymous@users.noreply.translate.codeberg.org>, 2025.
# Ricky-Tigg <ricky-tigg@users.noreply.translate.codeberg.org>, 2025.
# return42 <return42@noreply.codeberg.org>, 2025, 2026.
# artnay <artnay@noreply.codeberg.org>, 2025.
# artnay <artnay@noreply.codeberg.org>, 2025, 2026.
# Ricky-Tigg <ricky-tigg@noreply.codeberg.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-05-19 12:07+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"PO-Revision-Date: 2026-10-29 14:05+0000\n"
"Last-Translator: artnay <artnay@noreply.codeberg.org>\n"
"Language: fi\n"
"Language-Team: Finnish "
"<https://translate.codeberg.org/projects/searxng/searxng/fi/>\n"
"Language-Team: Finnish <https://translate.codeberg.org/projects/searxng/"
"searxng/fi/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
"X-Generator: Weblate 2026.10.1\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
@@ -178,7 +179,7 @@ msgstr "videot"
#. CATEGORY_NAMES['WEATHER']
#: searx/searxng.msg
msgid "weather"
msgstr ""
msgstr "sää"
#. CATEGORY_NAMES['WEB']
#: searx/searxng.msg
@@ -591,7 +592,7 @@ msgstr "Virhe ladattaessa seuraavaa sivua"
#: searx/webapp.py:332
msgid "close"
msgstr ""
msgstr "sulje"
#: searx/webapp.py:333
msgid "How to navigate SearXNG with hotkeys"
@@ -603,11 +604,11 @@ msgstr ""
#: searx/webapp.py:335
msgid "Results"
msgstr ""
msgstr "Tulokset"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "Navigaatio"
#: searx/webapp.py:337
msgid "Other"
@@ -619,7 +620,7 @@ msgstr ""
#: searx/webapp.py:339
msgid "copy url of the selected result to the clipboard"
msgstr ""
msgstr "kopioi valitun tuloksen osoite leikepöydälle"
#: searx/webapp.py:340
msgid "toggle help window"
@@ -631,55 +632,55 @@ msgstr ""
#: searx/webapp.py:342
msgid "go to next page"
msgstr ""
msgstr "siirry seuraavalle sivulle"
#: searx/webapp.py:343
msgid "open search result"
msgstr ""
msgstr "avaa hakutulos"
#: searx/webapp.py:344
msgid "go to previous page"
msgstr ""
msgstr "siirry edelliselle sivulle"
#: searx/webapp.py:345
msgid "reload page from the server"
msgstr ""
msgstr "lataa sivu uudelleen palvelimelta"
#: searx/webapp.py:346
msgid "open the result in a new tab"
msgstr ""
msgstr "avaa tulos uuteen välilehteen"
#: searx/webapp.py:347
msgid "select previous search result"
msgstr ""
msgstr "valitse edellinen hakutulos"
#: searx/webapp.py:348
msgid "select next search result"
msgstr ""
msgstr "valitse seuraava hakutulos"
#: searx/webapp.py:349
msgid "scroll one page up"
msgstr ""
msgstr "vieritä yksi sivu ylös"
#: searx/webapp.py:350
msgid "scroll half a page down"
msgstr ""
msgstr "vieritä puoli sivua alas"
#: searx/webapp.py:351
msgid "scroll one page down"
msgstr ""
msgstr "vieritä yksi sivu alas"
#: searx/webapp.py:352
msgid "scroll to the top of the page"
msgstr ""
msgstr "vieritä sivun yläosaan"
#: searx/webapp.py:353
msgid "scroll half a page up"
msgstr ""
msgstr "vieritä puoli sivua ylös"
#: searx/webapp.py:354
msgid "scroll to the bottom of the page"
msgstr ""
msgstr "vieritä sivun alaosaan"
#: searx/webapp.py:502 searx/webapp.py:902
msgid "Invalid settings, please edit your preferences"
@@ -1528,7 +1529,7 @@ msgstr "Asetusten tiiviste"
#: searx/templates/simple/preferences/doi_resolver.html:2
msgid "DOI Resolver"
msgstr ""
msgstr "DOI-ratkaisija"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
@@ -1765,11 +1766,11 @@ msgstr "Resoluutio"
#: searx/templates/simple/result_templates/images.html:55
msgid "Image formats"
msgstr ""
msgstr "Kuvamuodot"
#: searx/templates/simple/result_templates/images.html:56
msgid "original format"
msgstr ""
msgstr "alkuperäinen muoto"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
@@ -2537,4 +2538,3 @@ msgstr "piilota video"
#~ msgid "Select service used by DOI rewrite"
#~ msgstr "Valitse palvelu, jota käytetään DOI:n uudelleenkirjoituksessa"
Binary file not shown.
+14 -14
View File
@@ -39,7 +39,7 @@
# guenael <guenael@users.noreply.translate.codeberg.org>, 2025.
# return42 <return42@noreply.codeberg.org>, 2025, 2026.
# wags07 <wags07@noreply.codeberg.org>, 2025.
# demilune <demilune@noreply.codeberg.org>, 2025.
# demilune <demilune@noreply.codeberg.org>, 2025, 2026.
# Hēphaistos <hephaistos@noreply.codeberg.org>, 2025.
# ledjfou <ledjfou@noreply.codeberg.org>, 2025.
# vbrodeur <vbrodeur@noreply.codeberg.org>, 2025.
@@ -48,19 +48,20 @@
# Machou <machou@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-09-22 13:25+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"PO-Revision-Date: 2026-10-26 23:27+0000\n"
"Last-Translator: demilune <demilune@noreply.codeberg.org>\n"
"Language: fr\n"
"Language-Team: French "
"<https://translate.codeberg.org/projects/searxng/searxng/fr/>\n"
"Language-Team: French <https://translate.codeberg.org/projects/searxng/"
"searxng/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
"X-Generator: Weblate 2026.10.1\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
@@ -100,7 +101,7 @@ msgstr "général"
#. CATEGORY_NAMES['ICONS']
#: searx/searxng.msg
msgid "icons"
msgstr ""
msgstr "icônes"
#. CATEGORY_NAMES['IMAGES']
#: searx/searxng.msg
@@ -618,27 +619,27 @@ msgstr "Erreur lors du chargement de la page suivante"
#: searx/webapp.py:332
msgid "close"
msgstr ""
msgstr "fermer"
#: searx/webapp.py:333
msgid "How to navigate SearXNG with hotkeys"
msgstr ""
msgstr "Naviguer sur SearXNG à l'aide de raccourcis clavier"
#: searx/webapp.py:334
msgid "Control"
msgstr ""
msgstr "Contrôle"
#: searx/webapp.py:335
msgid "Results"
msgstr ""
msgstr "Résultats"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "Navigation"
#: searx/webapp.py:337
msgid "Other"
msgstr ""
msgstr "Autre"
#: searx/webapp.py:338
msgid "remove focus from the focused input"
@@ -2594,4 +2595,3 @@ msgstr "cacher la vidéo"
#~ msgid "Select service used by DOI rewrite"
#~ msgstr "Sélectionner le service utilisé pour la réécriture par DOI"
Binary file not shown.
+37 -38
View File
@@ -11,18 +11,18 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-08-04 12:25+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin <aindriu80@noreply.codeberg.org>"
"\n"
"PO-Revision-Date: 2026-10-24 14:27+0000\n"
"Last-Translator: Aindriú Mac Giolla Eoin <aindriu80@noreply.codeberg.org>\n"
"Language: ga\n"
"Language-Team: Irish "
"<https://translate.codeberg.org/projects/searxng/searxng/ga/>\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 "
":(n>6 && n<11) ? 3 : 4;\n"
"Language-Team: Irish <https://translate.codeberg.org/projects/searxng/"
"searxng/ga/>\n"
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :(n>"
"6 && n<11) ? 3 : 4;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
"X-Generator: Weblate 2026.10.1\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
@@ -42,7 +42,7 @@ msgstr "aipeanna"
#. CATEGORY_NAMES['BLOGS']
#: searx/searxng.msg
msgid "blogs"
msgstr ""
msgstr "blaganna"
#. CATEGORY_NAMES['DICTIONARIES']
#: searx/searxng.msg
@@ -62,7 +62,7 @@ msgstr "ginearálta"
#. CATEGORY_NAMES['ICONS']
#: searx/searxng.msg
msgid "icons"
msgstr ""
msgstr "deilbhíní"
#. CATEGORY_NAMES['IMAGES']
#: searx/searxng.msg
@@ -87,7 +87,7 @@ msgstr "léarscáil"
#. CATEGORY_NAMES['MOVIES']
#: searx/searxng.msg
msgid "movies"
msgstr ""
msgstr "scannáin"
#. CATEGORY_NAMES['MUSIC']
#: searx/searxng.msg
@@ -147,12 +147,12 @@ msgstr "bogearraí wikis"
#. CATEGORY_NAMES['STOCK_IMAGES']
#: searx/searxng.msg
msgid "stock images"
msgstr ""
msgstr "íomhánna stoic"
#. CATEGORY_NAMES['TRANSLATE']
#: searx/searxng.msg
msgid "translate"
msgstr ""
msgstr "aistrigh"
#. CATEGORY_NAMES['TV']
#: searx/searxng.msg
@@ -167,7 +167,7 @@ msgstr "físeáin"
#. CATEGORY_NAMES['WEATHER']
#: searx/searxng.msg
msgid "weather"
msgstr ""
msgstr "aimsir"
#. CATEGORY_NAMES['WEB']
#: searx/searxng.msg
@@ -580,95 +580,95 @@ msgstr "Earráid ag luchtú an chéad leathanach eile"
#: searx/webapp.py:332
msgid "close"
msgstr ""
msgstr "dún"
#: searx/webapp.py:333
msgid "How to navigate SearXNG with hotkeys"
msgstr ""
msgstr "Conas nascleanúint a dhéanamh i SearXNG le heochracha aicearra"
#: searx/webapp.py:334
msgid "Control"
msgstr ""
msgstr "Rialú"
#: searx/webapp.py:335
msgid "Results"
msgstr ""
msgstr "Torthaí"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "Nascleanúint"
#: searx/webapp.py:337
msgid "Other"
msgstr ""
msgstr "Eile"
#: searx/webapp.py:338
msgid "remove focus from the focused input"
msgstr ""
msgstr "bain an fócas den ionchur atá dírithe"
#: searx/webapp.py:339
msgid "copy url of the selected result to the clipboard"
msgstr ""
msgstr "cóipeáil url an toraidh roghnaithe chuig an ngearrthaisce"
#: searx/webapp.py:340
msgid "toggle help window"
msgstr ""
msgstr "scoránaigh an fhuinneog chabhrach"
#: searx/webapp.py:341
msgid "focus on the search input"
msgstr ""
msgstr "dírigh ar an ionchur cuardaigh"
#: searx/webapp.py:342
msgid "go to next page"
msgstr ""
msgstr "téigh go dtí an chéad leathanach eile"
#: searx/webapp.py:343
msgid "open search result"
msgstr ""
msgstr "oscail toradh cuardaigh"
#: searx/webapp.py:344
msgid "go to previous page"
msgstr ""
msgstr "téigh go dtí an leathanach roimhe seo"
#: searx/webapp.py:345
msgid "reload page from the server"
msgstr ""
msgstr "athlódáil an leathanach ón bhfreastalaí"
#: searx/webapp.py:346
msgid "open the result in a new tab"
msgstr ""
msgstr "Oscail an toradh i gcluaisín nua"
#: searx/webapp.py:347
msgid "select previous search result"
msgstr ""
msgstr "roghnaigh an toradh cuardaigh roimhe seo"
#: searx/webapp.py:348
msgid "select next search result"
msgstr ""
msgstr "roghnaigh an chéad toradh cuardaigh eile"
#: searx/webapp.py:349
msgid "scroll one page up"
msgstr ""
msgstr "scrollaigh suas leathanach amháin"
#: searx/webapp.py:350
msgid "scroll half a page down"
msgstr ""
msgstr "scrollaigh síos leathleathanach"
#: searx/webapp.py:351
msgid "scroll one page down"
msgstr ""
msgstr "scrollaigh síos leathanach amháin"
#: searx/webapp.py:352
msgid "scroll to the top of the page"
msgstr ""
msgstr "scrollaigh go barr an leathanaigh"
#: searx/webapp.py:353
msgid "scroll half a page up"
msgstr ""
msgstr "scrollaigh leathleathanach suas"
#: searx/webapp.py:354
msgid "scroll to the bottom of the page"
msgstr ""
msgstr "scrollaigh go bun an leathanaigh"
#: searx/webapp.py:502 searx/webapp.py:902
msgid "Invalid settings, please edit your preferences"
@@ -1521,7 +1521,7 @@ msgstr "Roghanna hais"
#: searx/templates/simple/preferences/doi_resolver.html:2
msgid "DOI Resolver"
msgstr ""
msgstr "Réiteoir DOI"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
@@ -2093,4 +2093,3 @@ msgstr "físeán a cheilt"
#~ msgid "Select service used by DOI rewrite"
#~ msgstr "Roghnaigh seirbhís a úsáideann DOI athscríobh"
Binary file not shown.
+20 -20
View File
@@ -24,7 +24,7 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-10-12 06:27+0000\n"
"PO-Revision-Date: 2026-10-28 05:27+0000\n"
"Last-Translator: lugged9922 <lugged9922@noreply.codeberg.org>\n"
"Language: ko\n"
"Language-Team: Korean <https://translate.codeberg.org/projects/searxng/"
@@ -608,79 +608,79 @@ msgstr "결과"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "탐색"
#: searx/webapp.py:337
msgid "Other"
msgstr ""
msgstr "기타"
#: searx/webapp.py:338
msgid "remove focus from the focused input"
msgstr ""
msgstr "입력란 포커스 해제"
#: searx/webapp.py:339
msgid "copy url of the selected result to the clipboard"
msgstr ""
msgstr "선택한 결과의 URL을 클립보드에 복사"
#: searx/webapp.py:340
msgid "toggle help window"
msgstr ""
msgstr "도움말 창 전환"
#: searx/webapp.py:341
msgid "focus on the search input"
msgstr ""
msgstr "검색창에 포커스"
#: searx/webapp.py:342
msgid "go to next page"
msgstr ""
msgstr "다음 페이지로"
#: searx/webapp.py:343
msgid "open search result"
msgstr ""
msgstr "검색 결과 열기"
#: searx/webapp.py:344
msgid "go to previous page"
msgstr ""
msgstr "이전 페이지로"
#: searx/webapp.py:345
msgid "reload page from the server"
msgstr ""
msgstr "서버에서 페이지 다시 불러오기"
#: searx/webapp.py:346
msgid "open the result in a new tab"
msgstr ""
msgstr "새 탭에서 결과 열기"
#: searx/webapp.py:347
msgid "select previous search result"
msgstr ""
msgstr "이전 검색 결과 선택"
#: searx/webapp.py:348
msgid "select next search result"
msgstr ""
msgstr "다음 검색 결과 선택"
#: searx/webapp.py:349
msgid "scroll one page up"
msgstr ""
msgstr "한 화면 위로 스크롤"
#: searx/webapp.py:350
msgid "scroll half a page down"
msgstr ""
msgstr "반 화면 아래로 스크롤"
#: searx/webapp.py:351
msgid "scroll one page down"
msgstr ""
msgstr "한 화면 아래로 스크롤"
#: searx/webapp.py:352
msgid "scroll to the top of the page"
msgstr ""
msgstr "맨 위로 스크"
#: searx/webapp.py:353
msgid "scroll half a page up"
msgstr ""
msgstr "반 화면 위로 스크롤"
#: searx/webapp.py:354
msgid "scroll to the bottom of the page"
msgstr ""
msgstr "맨 아래로 스크롤"
#: searx/webapp.py:502 searx/webapp.py:902
msgid "Invalid settings, please edit your preferences"
Binary file not shown.
+25 -24
View File
@@ -28,21 +28,23 @@
# return42 <return42@noreply.codeberg.org>, 2025, 2026.
# sourdragon <sourdragon@noreply.codeberg.org>, 2025.
# tace16 <tace16@noreply.codeberg.org>, 2025.
# Kamalavelan <demonshreder@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-05-19 12:08+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"PO-Revision-Date: 2026-10-26 23:27+0000\n"
"Last-Translator: Kamalavelan <demonshreder@noreply.codeberg.org>\n"
"Language: ta\n"
"Language-Team: Tamil "
"<https://translate.codeberg.org/projects/searxng/searxng/ta/>\n"
"Language-Team: Tamil <https://translate.codeberg.org/projects/searxng/"
"searxng/ta/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
"X-Generator: Weblate 2026.10.1\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
@@ -62,7 +64,7 @@ msgstr "செயலிகள்"
#. CATEGORY_NAMES['BLOGS']
#: searx/searxng.msg
msgid "blogs"
msgstr ""
msgstr "வலைப்பதிவு"
#. CATEGORY_NAMES['DICTIONARIES']
#: searx/searxng.msg
@@ -82,7 +84,7 @@ msgstr "பொதுத் தேடல்"
#. CATEGORY_NAMES['ICONS']
#: searx/searxng.msg
msgid "icons"
msgstr ""
msgstr "படிவம்"
#. CATEGORY_NAMES['IMAGES']
#: searx/searxng.msg
@@ -107,7 +109,7 @@ msgstr "வரைப்படம்"
#. CATEGORY_NAMES['MOVIES']
#: searx/searxng.msg
msgid "movies"
msgstr ""
msgstr "திரைப்படம்"
#. CATEGORY_NAMES['MUSIC']
#: searx/searxng.msg
@@ -167,12 +169,12 @@ msgstr "மென்பொருள் விக்கி"
#. CATEGORY_NAMES['STOCK_IMAGES']
#: searx/searxng.msg
msgid "stock images"
msgstr ""
msgstr "இருப்பு படம்"
#. CATEGORY_NAMES['TRANSLATE']
#: searx/searxng.msg
msgid "translate"
msgstr ""
msgstr "மொழிபெயர்"
#. CATEGORY_NAMES['TV']
#: searx/searxng.msg
@@ -187,7 +189,7 @@ msgstr "காணொளிகள்"
#. CATEGORY_NAMES['WEATHER']
#: searx/searxng.msg
msgid "weather"
msgstr ""
msgstr "வானிலை"
#. CATEGORY_NAMES['WEB']
#: searx/searxng.msg
@@ -600,27 +602,27 @@ msgstr "அடுத்த பக்கத்தைத் திறப்பத
#: searx/webapp.py:332
msgid "close"
msgstr ""
msgstr "மூடு"
#: searx/webapp.py:333
msgid "How to navigate SearXNG with hotkeys"
msgstr ""
msgstr "SearXNG-இல் குறுக்குவிசைகளைப் பயன்படுத்திச் செயல்படுவது எப்படி"
#: searx/webapp.py:334
msgid "Control"
msgstr ""
msgstr "கட்டுப்பாடு"
#: searx/webapp.py:335
msgid "Results"
msgstr ""
msgstr "முடிவுகள்"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "வழிசெலுத்தல்"
#: searx/webapp.py:337
msgid "Other"
msgstr ""
msgstr "இதர"
#: searx/webapp.py:338
msgid "remove focus from the focused input"
@@ -632,27 +634,27 @@ msgstr ""
#: searx/webapp.py:340
msgid "toggle help window"
msgstr ""
msgstr "உதவிச் சாளரத்தை மாற்றவும்"
#: searx/webapp.py:341
msgid "focus on the search input"
msgstr ""
msgstr "தேடல் உள்ளீட்டில் கவனம் செலுத்த"
#: searx/webapp.py:342
msgid "go to next page"
msgstr ""
msgstr "அடுத்த பக்கத்திற்குச் செல்லவும்"
#: searx/webapp.py:343
msgid "open search result"
msgstr ""
msgstr "தேடல் முடிவைத் திறக்கவும்"
#: searx/webapp.py:344
msgid "go to previous page"
msgstr ""
msgstr "முந்தைய பக்கத்திற்குச் செல்லவும்"
#: searx/webapp.py:345
msgid "reload page from the server"
msgstr ""
msgstr "வழங்கியிலிருந்து பக்கத்தை மீண்டும் இறக்க"
#: searx/webapp.py:346
msgid "open the result in a new tab"
@@ -2526,4 +2528,3 @@ msgstr "காணொளிகளை மறை"
#~ msgid "Select service used by DOI rewrite"
#~ msgstr "DOI மீண்டும் எழுதும் சேவையைத் தேர்ந்தெடுக்கவும்"
Binary file not shown.
+38 -37
View File
@@ -34,21 +34,23 @@
# hhadi34 <hhadi34@noreply.codeberg.org>, 2025.
# boradog <boradog@noreply.codeberg.org>, 2026.
# cdli <cdli@noreply.codeberg.org>, 2026.
# seferkalkan <seferkalkan@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-08-21 20:55+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n"
"PO-Revision-Date: 2026-10-29 14:05+0000\n"
"Last-Translator: seferkalkan <seferkalkan@noreply.codeberg.org>\n"
"Language: tr\n"
"Language-Team: Turkish "
"<https://translate.codeberg.org/projects/searxng/searxng/tr/>\n"
"Language-Team: Turkish <https://translate.codeberg.org/projects/searxng/"
"searxng/tr/>\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
"X-Generator: Weblate 2026.10.1\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
@@ -68,7 +70,7 @@ msgstr "uygulamalar"
#. CATEGORY_NAMES['BLOGS']
#: searx/searxng.msg
msgid "blogs"
msgstr ""
msgstr "Blog"
#. CATEGORY_NAMES['DICTIONARIES']
#: searx/searxng.msg
@@ -88,7 +90,7 @@ msgstr "genel"
#. CATEGORY_NAMES['ICONS']
#: searx/searxng.msg
msgid "icons"
msgstr ""
msgstr "İkonlar"
#. CATEGORY_NAMES['IMAGES']
#: searx/searxng.msg
@@ -113,7 +115,7 @@ msgstr "harita"
#. CATEGORY_NAMES['MOVIES']
#: searx/searxng.msg
msgid "movies"
msgstr ""
msgstr "Filmler"
#. CATEGORY_NAMES['MUSIC']
#: searx/searxng.msg
@@ -173,12 +175,12 @@ msgstr "yazılım vikileri"
#. CATEGORY_NAMES['STOCK_IMAGES']
#: searx/searxng.msg
msgid "stock images"
msgstr ""
msgstr "Stok Görseller"
#. CATEGORY_NAMES['TRANSLATE']
#: searx/searxng.msg
msgid "translate"
msgstr ""
msgstr "Çeviri"
#. CATEGORY_NAMES['TV']
#: searx/searxng.msg
@@ -193,7 +195,7 @@ msgstr "videolar"
#. CATEGORY_NAMES['WEATHER']
#: searx/searxng.msg
msgid "weather"
msgstr ""
msgstr "Hava Durumu"
#. CATEGORY_NAMES['WEB']
#: searx/searxng.msg
@@ -528,7 +530,7 @@ msgstr "Yoğun kar yağışı"
#. WEATHER_CONDITIONS
#: searx/searxng.msg
msgid "Heavy snow"
msgstr "Yoğun kar yağışı"
msgstr "Yoğun kar"
#. SOCIAL_MEDIA_TERMS['SUBSCRIBERS']
#: searx/engines/lemmy.py:85 searx/searxng.msg
@@ -606,95 +608,95 @@ msgstr "Sonraki sayfa yüklenemedi"
#: searx/webapp.py:332
msgid "close"
msgstr ""
msgstr "Kapat"
#: searx/webapp.py:333
msgid "How to navigate SearXNG with hotkeys"
msgstr ""
msgstr "SearXNG'de kısayol tuşlarıyla nasıl gezinilir"
#: searx/webapp.py:334
msgid "Control"
msgstr ""
msgstr "Kontrol"
#: searx/webapp.py:335
msgid "Results"
msgstr ""
msgstr "Sonuçlar"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "Navigasyon"
#: searx/webapp.py:337
msgid "Other"
msgstr ""
msgstr "Diğer"
#: searx/webapp.py:338
msgid "remove focus from the focused input"
msgstr ""
msgstr "odaklanmış girdi alanından odağı kaldırın"
#: searx/webapp.py:339
msgid "copy url of the selected result to the clipboard"
msgstr ""
msgstr "Seçilen sonucun Url'sini panoya kopyala"
#: searx/webapp.py:340
msgid "toggle help window"
msgstr ""
msgstr "yardım penceresini aç/kapat"
#: searx/webapp.py:341
msgid "focus on the search input"
msgstr ""
msgstr "arama girişine odaklan"
#: searx/webapp.py:342
msgid "go to next page"
msgstr ""
msgstr "sonraki sayfaya git"
#: searx/webapp.py:343
msgid "open search result"
msgstr ""
msgstr "arama sonucunu aç"
#: searx/webapp.py:344
msgid "go to previous page"
msgstr ""
msgstr "önceki sayfaya git"
#: searx/webapp.py:345
msgid "reload page from the server"
msgstr ""
msgstr "sayfayı sunucudan yeniden yükle"
#: searx/webapp.py:346
msgid "open the result in a new tab"
msgstr ""
msgstr "sonucu yeni bir sekmede aç"
#: searx/webapp.py:347
msgid "select previous search result"
msgstr ""
msgstr "önceki arama sonucunu seç"
#: searx/webapp.py:348
msgid "select next search result"
msgstr ""
msgstr "Sonraki arama sonucunu seç"
#: searx/webapp.py:349
msgid "scroll one page up"
msgstr ""
msgstr "bir sayfa yukarı kaydır"
#: searx/webapp.py:350
msgid "scroll half a page down"
msgstr ""
msgstr "sayfayı yarım sayfa aşağı kaydır"
#: searx/webapp.py:351
msgid "scroll one page down"
msgstr ""
msgstr "bir sayfa aşağı kaydır"
#: searx/webapp.py:352
msgid "scroll to the top of the page"
msgstr ""
msgstr "sayfanın en üstüne kaydırın"
#: searx/webapp.py:353
msgid "scroll half a page up"
msgstr ""
msgstr "sayfayı yarım sayfa yukarı kaydır"
#: searx/webapp.py:354
msgid "scroll to the bottom of the page"
msgstr ""
msgstr "sayfanın en altına kaydırın"
#: searx/webapp.py:502 searx/webapp.py:902
msgid "Invalid settings, please edit your preferences"
@@ -1540,7 +1542,7 @@ msgstr "Hah tercihleri"
#: searx/templates/simple/preferences/doi_resolver.html:2
msgid "DOI Resolver"
msgstr ""
msgstr "DOI Çözümleyici"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
@@ -2556,4 +2558,3 @@ msgstr "videoyu gizle"
#~ msgid "Select service used by DOI rewrite"
#~ msgstr "DOI rewrite tarafından kullanılan hizmeti seçin"
@@ -41,21 +41,23 @@
# ajiou <ajiou@noreply.codeberg.org>, 2025.
# zymurge <zymurge@noreply.codeberg.org>, 2025.
# Maoyue_OUO <maoyue_ouo@noreply.codeberg.org>, 2026.
# itsxiaobai <itsxiaobai@noreply.codeberg.org>, 2026.
msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-10-09 19:03+0000\n"
"PO-Revision-Date: 2026-03-29 23:07+0000\n"
"Last-Translator: Maoyue_OUO <maoyue_ouo@noreply.codeberg.org>\n"
"PO-Revision-Date: 2026-10-29 14:05+0000\n"
"Last-Translator: itsxiaobai <itsxiaobai@noreply.codeberg.org>\n"
"Language: zh_Hant_TW\n"
"Language-Team: Chinese (Traditional Han script, Taiwan) "
"<https://translate.codeberg.org/projects/searxng/searxng/zh_Hant_TW/>\n"
"Language-Team: Chinese (Traditional Han script, Taiwan) <https://"
"translate.codeberg.org/projects/searxng/searxng/zh_Hant_TW/>\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.18.0\n"
"X-Generator: Weblate 2026.10.1\n"
#. CONSTANT_NAMES['NO_SUBGROUPING']
#: searx/searxng.msg
@@ -75,7 +77,7 @@ msgstr "應用程式"
#. CATEGORY_NAMES['BLOGS']
#: searx/searxng.msg
msgid "blogs"
msgstr ""
msgstr "部落格"
#. CATEGORY_NAMES['DICTIONARIES']
#: searx/searxng.msg
@@ -95,7 +97,7 @@ msgstr "一般"
#. CATEGORY_NAMES['ICONS']
#: searx/searxng.msg
msgid "icons"
msgstr ""
msgstr "圖示"
#. CATEGORY_NAMES['IMAGES']
#: searx/searxng.msg
@@ -120,7 +122,7 @@ msgstr "地圖"
#. CATEGORY_NAMES['MOVIES']
#: searx/searxng.msg
msgid "movies"
msgstr ""
msgstr "電影"
#. CATEGORY_NAMES['MUSIC']
#: searx/searxng.msg
@@ -180,12 +182,12 @@ msgstr "軟體維基"
#. CATEGORY_NAMES['STOCK_IMAGES']
#: searx/searxng.msg
msgid "stock images"
msgstr ""
msgstr "庫存圖片"
#. CATEGORY_NAMES['TRANSLATE']
#: searx/searxng.msg
msgid "translate"
msgstr ""
msgstr "翻譯"
#. CATEGORY_NAMES['TV']
#: searx/searxng.msg
@@ -200,7 +202,7 @@ msgstr "影片"
#. CATEGORY_NAMES['WEATHER']
#: searx/searxng.msg
msgid "weather"
msgstr ""
msgstr "天氣"
#. CATEGORY_NAMES['WEB']
#: searx/searxng.msg
@@ -613,95 +615,95 @@ msgstr "載入下個頁面時發生錯誤"
#: searx/webapp.py:332
msgid "close"
msgstr ""
msgstr "關閉"
#: searx/webapp.py:333
msgid "How to navigate SearXNG with hotkeys"
msgstr ""
msgstr "如何使用熱鍵導航 SearXNG"
#: searx/webapp.py:334
msgid "Control"
msgstr ""
msgstr "控制"
#: searx/webapp.py:335
msgid "Results"
msgstr ""
msgstr "結果"
#: searx/webapp.py:336
msgid "Navigation"
msgstr ""
msgstr "導航"
#: searx/webapp.py:337
msgid "Other"
msgstr ""
msgstr "其他"
#: searx/webapp.py:338
msgid "remove focus from the focused input"
msgstr ""
msgstr "從輸入中移除焦點"
#: searx/webapp.py:339
msgid "copy url of the selected result to the clipboard"
msgstr ""
msgstr "複製選取結果的連結到剪貼簿"
#: searx/webapp.py:340
msgid "toggle help window"
msgstr ""
msgstr "切換到幫助視窗"
#: searx/webapp.py:341
msgid "focus on the search input"
msgstr ""
msgstr "聚焦在搜尋輸入"
#: searx/webapp.py:342
msgid "go to next page"
msgstr ""
msgstr "到下一頁"
#: searx/webapp.py:343
msgid "open search result"
msgstr ""
msgstr "開啟搜尋結果"
#: searx/webapp.py:344
msgid "go to previous page"
msgstr ""
msgstr "回到上一頁"
#: searx/webapp.py:345
msgid "reload page from the server"
msgstr ""
msgstr "從伺服器重新載入頁面"
#: searx/webapp.py:346
msgid "open the result in a new tab"
msgstr ""
msgstr "在新分頁開啟結果"
#: searx/webapp.py:347
msgid "select previous search result"
msgstr ""
msgstr "選擇前一個搜尋結果"
#: searx/webapp.py:348
msgid "select next search result"
msgstr ""
msgstr "選擇下一個搜尋結果"
#: searx/webapp.py:349
msgid "scroll one page up"
msgstr ""
msgstr "上滑一頁"
#: searx/webapp.py:350
msgid "scroll half a page down"
msgstr ""
msgstr "下滑半頁"
#: searx/webapp.py:351
msgid "scroll one page down"
msgstr ""
msgstr "下滑一頁"
#: searx/webapp.py:352
msgid "scroll to the top of the page"
msgstr ""
msgstr "翻到最上頁"
#: searx/webapp.py:353
msgid "scroll half a page up"
msgstr ""
msgstr "上滑半頁"
#: searx/webapp.py:354
msgid "scroll to the bottom of the page"
msgstr ""
msgstr "翻到頁面最底下"
#: searx/webapp.py:502 searx/webapp.py:902
msgid "Invalid settings, please edit your preferences"
@@ -1523,7 +1525,7 @@ msgstr "偏好設定雜湊"
#: searx/templates/simple/preferences/doi_resolver.html:2
msgid "DOI Resolver"
msgstr ""
msgstr "DOI 解析器"
#: searx/templates/simple/preferences/engines.html:9
msgid ""
@@ -1748,11 +1750,11 @@ msgstr "解析度"
#: searx/templates/simple/result_templates/images.html:55
msgid "Image formats"
msgstr ""
msgstr "圖片格式"
#: searx/templates/simple/result_templates/images.html:56
msgid "original format"
msgstr ""
msgstr "原始格式"
#: searx/templates/simple/result_templates/images.html:64
msgid "View source"
@@ -2445,4 +2447,3 @@ msgstr "隱藏影片"
#~ msgid "Select service used by DOI rewrite"
#~ msgstr "選擇 DOI 重寫所使用的服務"