Compare commits

..

53 Commits

Author SHA1 Message Date
dependabot[bot]
6da4a7742f Bump @formatjs/cli in /frontend in the dev-patch-updates group
Bumps the dev-patch-updates group in /frontend with 1 update: [@formatjs/cli](https://github.com/formatjs/formatjs).


Updates `@formatjs/cli` from 6.13.0 to 6.13.1
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Commits](https://github.com/formatjs/formatjs/compare/@formatjs/cli@6.13.0...@formatjs/cli@6.13.1)

---
updated-dependencies:
- dependency-name: "@formatjs/cli"
  dependency-version: 6.13.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-09 13:26:34 +00:00
Jamie Curnow
15896132ff Update all deps
All checks were successful
Close stale issues and PRs / stale (push) Successful in 37s
2026-03-05 06:37:10 +10:00
Jamie Curnow
604b32ffbf Fix incorrect html description 2026-03-05 06:25:32 +10:00
Jamie Curnow
eb67b3bfb6 Regenerate configs improvements
All checks were successful
Close stale issues and PRs / stale (push) Successful in 33s
- Fix certificates
- Adds dry run
- code cleanup
2026-03-03 08:44:42 +10:00
jc21
f1e95c9c52 Merge pull request #5362 from NginxProxyManager/dependabot/npm_and_yarn/test/prod-patch-updates-bc9dbfe8b0
All checks were successful
Close stale issues and PRs / stale (push) Successful in 33s
Bump the prod-patch-updates group in /test with 2 updates
2026-03-03 07:34:53 +10:00
jc21
d6e1d15996 Merge pull request #5363 from NginxProxyManager/dependabot/npm_and_yarn/test/prod-minor-updates-00a0b1e025
Bump the prod-minor-updates group in /test with 2 updates
2026-03-03 07:34:36 +10:00
jc21
99886f3111 Merge pull request #5364 from NginxProxyManager/dependabot/npm_and_yarn/backend/prod-minor-updates-55663a20b7
Bump the prod-minor-updates group in /backend with 3 updates
2026-03-03 07:34:26 +10:00
jc21
6b2d9a77a3 Merge pull request #5365 from NginxProxyManager/dependabot/npm_and_yarn/frontend/prod-patch-updates-cb5bb22b3e
Bump the prod-patch-updates group in /frontend with 2 updates
2026-03-03 07:34:16 +10:00
jc21
d37ab95ed8 Merge pull request #5366 from NginxProxyManager/dependabot/npm_and_yarn/frontend/prod-minor-updates-0ce8b7fd9e
Bump @tabler/icons-react from 3.37.1 to 3.38.0 in /frontend in the prod-minor-updates group
2026-03-03 07:34:07 +10:00
dependabot[bot]
e869518dd1 Bump @tabler/icons-react in /frontend in the prod-minor-updates group
Bumps the prod-minor-updates group in /frontend with 1 update: [@tabler/icons-react](https://github.com/tabler/tabler-icons/tree/HEAD/packages/icons-react).


Updates `@tabler/icons-react` from 3.37.1 to 3.38.0
- [Release notes](https://github.com/tabler/tabler-icons/releases)
- [Commits](https://github.com/tabler/tabler-icons/commits/v3.38.0/packages/icons-react)

---
updated-dependencies:
- dependency-name: "@tabler/icons-react"
  dependency-version: 3.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 13:45:33 +00:00
dependabot[bot]
37712ba2a4 Bump the prod-patch-updates group in /frontend with 2 updates
Bumps the prod-patch-updates group in /frontend with 2 updates: [country-flag-icons](https://gitlab.com/catamphetamine/country-flag-icons) and [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).


Updates `country-flag-icons` from 1.6.14 to 1.6.15
- [Changelog](https://gitlab.com/catamphetamine/country-flag-icons/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/country-flag-icons/compare/v1.6.14...v1.6.15)

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: country-flag-icons
  dependency-version: 1.6.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 13:45:09 +00:00
dependabot[bot]
a714b41fd6 Bump the prod-minor-updates group in /backend with 3 updates
Bumps the prod-minor-updates group in /backend with 3 updates: [@apidevtools/json-schema-ref-parser](https://github.com/APIDevTools/json-schema-ref-parser), [mysql2](https://github.com/sidorares/node-mysql2) and [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg).


Updates `@apidevtools/json-schema-ref-parser` from 15.2.2 to 15.3.1
- [Release notes](https://github.com/APIDevTools/json-schema-ref-parser/releases)
- [Commits](https://github.com/APIDevTools/json-schema-ref-parser/compare/v15.2.2...v15.3.1)

Updates `mysql2` from 3.17.5 to 3.18.2
- [Release notes](https://github.com/sidorares/node-mysql2/releases)
- [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md)
- [Commits](https://github.com/sidorares/node-mysql2/compare/v3.17.5...v3.18.2)

Updates `pg` from 8.18.0 to 8.19.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.19.0/packages/pg)

---
updated-dependencies:
- dependency-name: "@apidevtools/json-schema-ref-parser"
  dependency-version: 15.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: mysql2
  dependency-version: 3.18.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: pg
  dependency-version: 8.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 13:45:00 +00:00
dependabot[bot]
b87bedc347 Bump the prod-minor-updates group in /test with 2 updates
Bumps the prod-minor-updates group in /test with 2 updates: [@quobix/vacuum](https://github.com/daveshanley/vacuum) and [cypress](https://github.com/cypress-io/cypress).


Updates `@quobix/vacuum` from 0.23.8 to 0.24.0
- [Release notes](https://github.com/daveshanley/vacuum/releases)
- [Commits](https://github.com/daveshanley/vacuum/compare/v0.23.8...v0.24.0)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: "@quobix/vacuum"
  dependency-version: 0.24.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 13:44:34 +00:00
dependabot[bot]
a62068275d Bump the prod-patch-updates group in /test with 2 updates
Bumps the prod-patch-updates group in /test with 2 updates: [axios](https://github.com/axios/axios) and [eslint](https://github.com/eslint/eslint).


Updates `axios` from 1.13.5 to 1.13.6
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.5...v1.13.6)

Updates `eslint` from 10.0.1 to 10.0.2
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.0.1...v10.0.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
- dependency-name: eslint
  dependency-version: 10.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 13:44:15 +00:00
jc21
c1d09eaceb Merge pull request #5353 from NginxProxyManager/dependabot/npm_and_yarn/docs/rollup-4.59.0
All checks were successful
Close stale issues and PRs / stale (push) Successful in 38s
Bump rollup from 4.24.0 to 4.59.0 in /docs
2026-02-27 10:34:54 +10:00
jc21
9c509f30de Merge pull request #5355 from NginxProxyManager/dependabot/npm_and_yarn/frontend/rollup-4.59.0
Bump rollup from 4.57.1 to 4.59.0 in /frontend
2026-02-27 10:19:55 +10:00
dependabot[bot]
c85b11ee33 Bump rollup from 4.57.1 to 4.59.0 in /frontend
Bumps [rollup](https://github.com/rollup/rollup) from 4.57.1 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.57.1...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-26 22:11:06 +00:00
jc21
cd5ef390b9 Merge pull request #5350 from NginxProxyManager/dependabot/npm_and_yarn/backend/basic-ftp-5.2.0
Bump basic-ftp from 5.1.0 to 5.2.0 in /backend
2026-02-27 08:09:57 +10:00
dependabot[bot]
d49cab1c0e Bump rollup from 4.24.0 to 4.59.0 in /docs
Bumps [rollup](https://github.com/rollup/rollup) from 4.24.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.24.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-26 11:05:43 +00:00
dependabot[bot]
33b1a993ec Bump basic-ftp from 5.1.0 to 5.2.0 in /backend
Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/patrickjuchli/basic-ftp/releases)
- [Changelog](https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/patrickjuchli/basic-ftp/compare/v5.1.0...v5.2.0)

---
updated-dependencies:
- dependency-name: basic-ftp
  dependency-version: 5.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-25 23:29:28 +00:00
Jamie Curnow
67d40e186f Attempt to fix #5335 by allowing resovler generation to be opt-out with a env var
All checks were successful
Close stale issues and PRs / stale (push) Successful in 38s
2026-02-26 08:32:02 +10:00
jc21
52be66c43e Merge pull request #5346 from siimaarmaa/develop
All checks were successful
Close stale issues and PRs / stale (push) Successful in 38s
Added Estonia langugae support.
2026-02-25 08:38:17 +10:00
jc21
ec46cabcd4 Merge pull request #5334 from bill-mahoney/fix/atomic-ipv6-config-write
Fix silent nginx config corruption in 50-ipv6.sh
2026-02-25 08:35:11 +10:00
jc21
a7a9cc3acb Merge pull request #5337 from NginxProxyManager/dependabot/npm_and_yarn/test/prod-patch-updates-2e2637830d
Bump eslint from 10.0.0 to 10.0.1 in /test in the prod-patch-updates group
2026-02-25 08:31:03 +10:00
jc21
020b3ebb33 Merge pull request #5338 from NginxProxyManager/dependabot/npm_and_yarn/backend/dev-patch-updates-d8f01b0b39
Bump nodemon from 3.1.13 to 3.1.14 in /backend in the dev-patch-updates group
2026-02-25 08:30:51 +10:00
jc21
c1c4baf389 Merge pull request #5339 from NginxProxyManager/dependabot/npm_and_yarn/test/prod-minor-updates-22dc529b9a
Bump eslint-plugin-cypress from 6.0.0 to 6.1.0 in /test in the prod-minor-updates group
2026-02-25 08:30:40 +10:00
jc21
672b5d6dd9 Merge pull request #5341 from NginxProxyManager/dependabot/npm_and_yarn/backend/prod-patch-updates-07cfa309fd
Bump mysql2 from 3.17.3 to 3.17.5 in /backend in the prod-patch-updates group
2026-02-25 08:30:00 +10:00
jc21
cd230b5878 Merge pull request #5342 from NginxProxyManager/dependabot/npm_and_yarn/frontend/dev-minor-updates-a1de0f9639
Bump happy-dom from 20.6.3 to 20.7.0 in /frontend in the dev-minor-updates group
2026-02-25 08:29:49 +10:00
jc21
a8f35062af Merge pull request #5343 from NginxProxyManager/dependabot/npm_and_yarn/frontend/prod-patch-updates-bfb85ae48b
Bump country-flag-icons from 1.6.13 to 1.6.14 in /frontend in the prod-patch-updates group
2026-02-25 08:29:06 +10:00
Jamie Curnow
da5955412d Command to regenerate nginx configs 2026-02-25 08:13:38 +10:00
siimaarmaa
adb27fe67d Added Estonia langugae support. First Estonia lanuage update is HelpDocs. By Siim Aarmaa 2026-02-23 20:49:06 +02:00
dependabot[bot]
d874af8692 Bump country-flag-icons in /frontend in the prod-patch-updates group
Bumps the prod-patch-updates group in /frontend with 1 update: [country-flag-icons](https://gitlab.com/catamphetamine/country-flag-icons).


Updates `country-flag-icons` from 1.6.13 to 1.6.14
- [Changelog](https://gitlab.com/catamphetamine/country-flag-icons/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/country-flag-icons/compare/v1.6.13...v1.6.14)

---
updated-dependencies:
- dependency-name: country-flag-icons
  dependency-version: 1.6.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 13:51:21 +00:00
dependabot[bot]
0844dade98 Bump happy-dom in /frontend in the dev-minor-updates group
Bumps the dev-minor-updates group in /frontend with 1 update: [happy-dom](https://github.com/capricorn86/happy-dom).


Updates `happy-dom` from 20.6.3 to 20.7.0
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.6.3...v20.7.0)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-version: 20.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 13:50:56 +00:00
dependabot[bot]
71d59516e8 Bump mysql2 in /backend in the prod-patch-updates group
Bumps the prod-patch-updates group in /backend with 1 update: [mysql2](https://github.com/sidorares/node-mysql2).


Updates `mysql2` from 3.17.3 to 3.17.5
- [Release notes](https://github.com/sidorares/node-mysql2/releases)
- [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md)
- [Commits](https://github.com/sidorares/node-mysql2/compare/v3.17.3...v3.17.5)

---
updated-dependencies:
- dependency-name: mysql2
  dependency-version: 3.17.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 13:50:35 +00:00
dependabot[bot]
06e220e184 Bump nodemon in /backend in the dev-patch-updates group
Bumps the dev-patch-updates group in /backend with 1 update: [nodemon](https://github.com/remy/nodemon).


Updates `nodemon` from 3.1.13 to 3.1.14
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v3.1.13...v3.1.14)

---
updated-dependencies:
- dependency-name: nodemon
  dependency-version: 3.1.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 13:50:13 +00:00
dependabot[bot]
dc53647e76 Bump eslint-plugin-cypress in /test in the prod-minor-updates group
Bumps the prod-minor-updates group in /test with 1 update: [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress).


Updates `eslint-plugin-cypress` from 6.0.0 to 6.1.0
- [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases)
- [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v6.0.0...v6.1.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-cypress
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 13:50:13 +00:00
dependabot[bot]
4c04e89483 Bump eslint in /test in the prod-patch-updates group
Bumps the prod-patch-updates group in /test with 1 update: [eslint](https://github.com/eslint/eslint).


Updates `eslint` from 10.0.0 to 10.0.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.0.0...v10.0.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 13:50:02 +00:00
William Mahoney
7241869a9e Fix silent config corruption in 50-ipv6.sh on NFS volumes
Replace unsafe `echo "$(sed ...)" > $FILE` with atomic temp-file write.

The current pattern reads a file with sed inside a command substitution,
then writes the result back via echo redirection. If sed reads an empty
or momentarily unreadable file (e.g., NFS transient issue during
container recreation by Watchtower or similar tools), it produces no
output. The echo then writes exactly 1 byte (a newline) to the config
file, silently destroying its contents.

The fix writes sed output to a temp file first, checks it's non-empty
with `[ -s ]`, then atomically replaces the original via `mv`. If sed
produces empty output, the original file is preserved and a warning is
logged to stderr.
2026-02-20 21:24:40 -07:00
jc21
94f6191a21 Merge pull request #5332 from NginxProxyManager/update-deps
All checks were successful
Close stale issues and PRs / stale (push) Successful in 36s
Update deps
2026-02-20 11:54:46 +10:00
Jamie Curnow
cac52dd0ff Update linked deps 2026-02-20 11:20:59 +10:00
dependabot[bot]
906f177960 Bump tar from 7.5.7 to 7.5.9 in /test
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.9.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.7...v7.5.9)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 11:20:59 +10:00
dependabot[bot]
f52afced5d Bump systeminformation from 5.30.6 to 5.31.1 in /test
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.30.6 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.30.6...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 11:20:59 +10:00
Jamie Curnow
e8224ff0af Update all dependencies 2026-02-20 11:02:56 +10:00
jc21
a4fa83d0ce Merge pull request #5326 from NginxProxyManager/dependabot/npm_and_yarn/test/tar-7.5.9
All checks were successful
Close stale issues and PRs / stale (push) Successful in 35s
Bump tar from 7.5.7 to 7.5.9 in /test
2026-02-20 10:53:03 +10:00
jc21
770716ebf8 Merge pull request #5327 from NginxProxyManager/dependabot/npm_and_yarn/test/systeminformation-5.31.1
Bump systeminformation from 5.30.6 to 5.31.1 in /test
2026-02-20 10:52:51 +10:00
dependabot[bot]
f1067d3308 Bump systeminformation from 5.30.6 to 5.31.1 in /test
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.30.6 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.30.6...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-18 22:37:39 +00:00
dependabot[bot]
85c1a935ea Bump tar from 7.5.7 to 7.5.9 in /test
Bumps [tar](https://github.com/isaacs/node-tar) from 7.5.7 to 7.5.9.
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.7...v7.5.9)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-18 22:37:36 +00:00
Jamie Curnow
51ef7f3b86 Docs update, use package version instead of latest, refer to better mariadb image
All checks were successful
Close stale issues and PRs / stale (push) Successful in 32s
2026-02-19 08:36:41 +10:00
jc21
846b94f7e8 Merge pull request #5324 from biodland/develop
chore: added Norwegian translation
2026-02-19 07:51:23 +10:00
Birger
19e24c7e7e Rename langNO import to langNo for consistency 2026-02-18 12:24:20 +01:00
Birger
c1bc471dac chore: added Norwegian translation, added missing references. 2026-02-18 12:23:08 +01:00
Birger
608dc0b6bf chore: added Norwegian translation 2026-02-18 11:31:42 +01:00
Jamie Curnow
0dbf268f37 Fix #5284 for older sqlite3 configurations
All checks were successful
Close stale issues and PRs / stale (push) Successful in 33s
2026-02-18 08:32:17 +10:00
49 changed files with 3398 additions and 1593 deletions

View File

@@ -1,5 +1,5 @@
{ {
"$schema": "https://biomejs.dev/schemas/2.3.14/schema.json", "$schema": "https://biomejs.dev/schemas/2.4.5/schema.json",
"vcs": { "vcs": {
"enabled": true, "enabled": true,
"clientKind": "git", "clientKind": "git",

View File

@@ -194,7 +194,7 @@ const internalDeadHost = {
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.andWhere("id", data.id) .andWhere("id", data.id)
.allowGraph("[owner,certificate]") .allowGraph(deadHostModel.defaultAllowGraph)
.first(); .first();
if (accessData.permission_visibility !== "all") { if (accessData.permission_visibility !== "all") {
@@ -347,7 +347,7 @@ const internalDeadHost = {
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.groupBy("id") .groupBy("id")
.allowGraph("[owner,certificate]") .allowGraph(deadHostModel.defaultAllowGraph)
.orderBy(castJsonIfNeed("domain_names"), "ASC"); .orderBy(castJsonIfNeed("domain_names"), "ASC");
if (accessData.permission_visibility !== "all") { if (accessData.permission_visibility !== "all") {

View File

@@ -115,9 +115,9 @@ const internalProxyHost = {
*/ */
update: (access, data) => { update: (access, data) => {
let thisData = data; let thisData = data;
const create_certificate = thisData.certificate_id === "new"; const createCertificate = thisData.certificate_id === "new";
if (create_certificate) { if (createCertificate) {
delete thisData.certificate_id; delete thisData.certificate_id;
} }
@@ -155,7 +155,7 @@ const internalProxyHost = {
); );
} }
if (create_certificate) { if (createCertificate) {
return internalCertificate return internalCertificate
.createQuickCertificate(access, { .createQuickCertificate(access, {
domain_names: thisData.domain_names || row.domain_names, domain_names: thisData.domain_names || row.domain_names,
@@ -232,7 +232,6 @@ const internalProxyHost = {
*/ */
get: (access, data) => { get: (access, data) => {
const thisData = data || {}; const thisData = data || {};
return access return access
.can("proxy_hosts:get", thisData.id) .can("proxy_hosts:get", thisData.id)
.then((access_data) => { .then((access_data) => {
@@ -240,7 +239,7 @@ const internalProxyHost = {
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.andWhere("id", thisData.id) .andWhere("id", thisData.id)
.allowGraph("[owner,access_list.[clients,items],certificate]") .allowGraph(proxyHostModel.defaultAllowGraph)
.first(); .first();
if (access_data.permission_visibility !== "all") { if (access_data.permission_visibility !== "all") {
@@ -422,11 +421,12 @@ const internalProxyHost = {
*/ */
getAll: async (access, expand, searchQuery) => { getAll: async (access, expand, searchQuery) => {
const accessData = await access.can("proxy_hosts:list"); const accessData = await access.can("proxy_hosts:list");
const query = proxyHostModel const query = proxyHostModel
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.groupBy("id") .groupBy("id")
.allowGraph("[owner,access_list,certificate]") .allowGraph(proxyHostModel.defaultAllowGraph)
.orderBy(castJsonIfNeed("domain_names"), "ASC"); .orderBy(castJsonIfNeed("domain_names"), "ASC");
if (accessData.permission_visibility !== "all") { if (accessData.permission_visibility !== "all") {

View File

@@ -229,7 +229,6 @@ const internalRedirectionHost = {
*/ */
get: (access, data) => { get: (access, data) => {
const thisData = data || {}; const thisData = data || {};
return access return access
.can("redirection_hosts:get", thisData.id) .can("redirection_hosts:get", thisData.id)
.then((access_data) => { .then((access_data) => {
@@ -237,7 +236,7 @@ const internalRedirectionHost = {
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.andWhere("id", thisData.id) .andWhere("id", thisData.id)
.allowGraph("[owner,certificate]") .allowGraph(redirectionHostModel.defaultAllowGraph)
.first(); .first();
if (access_data.permission_visibility !== "all") { if (access_data.permission_visibility !== "all") {
@@ -426,7 +425,7 @@ const internalRedirectionHost = {
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.groupBy("id") .groupBy("id")
.allowGraph("[owner,certificate]") .allowGraph(redirectionHostModel.defaultAllowGraph)
.orderBy(castJsonIfNeed("domain_names"), "ASC"); .orderBy(castJsonIfNeed("domain_names"), "ASC");
if (access_data.permission_visibility !== "all") { if (access_data.permission_visibility !== "all") {

View File

@@ -178,7 +178,6 @@ const internalStream = {
*/ */
get: (access, data) => { get: (access, data) => {
const thisData = data || {}; const thisData = data || {};
return access return access
.can("streams:get", thisData.id) .can("streams:get", thisData.id)
.then((access_data) => { .then((access_data) => {
@@ -186,7 +185,7 @@ const internalStream = {
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.andWhere("id", thisData.id) .andWhere("id", thisData.id)
.allowGraph("[owner,certificate]") .allowGraph(streamModel.defaultAllowGraph)
.first(); .first();
if (access_data.permission_visibility !== "all") { if (access_data.permission_visibility !== "all") {
@@ -375,7 +374,7 @@ const internalStream = {
.query() .query()
.where("is_deleted", 0) .where("is_deleted", 0)
.groupBy("id") .groupBy("id")
.allowGraph("[owner,certificate]") .allowGraph(streamModel.defaultAllowGraph)
.orderBy("incoming_port", "ASC"); .orderBy("incoming_port", "ASC");
if (access_data.permission_visibility !== "all") { if (access_data.permission_visibility !== "all") {

View File

@@ -7,6 +7,9 @@ const mysqlEngine = 'mysql2';
const postgresEngine = 'pg'; const postgresEngine = 'pg';
const sqliteClientName = 'better-sqlite3'; const sqliteClientName = 'better-sqlite3';
// Not used for new setups anymore but may exist in legacy setups
const legacySqliteClientName = 'sqlite3';
let instance = null; let instance = null;
// 1. Load from config file first (not recommended anymore) // 1. Load from config file first (not recommended anymore)
@@ -184,7 +187,7 @@ const configGet = (key) => {
*/ */
const isSqlite = () => { const isSqlite = () => {
instance === null && configure(); instance === null && configure();
return instance.database.knex && instance.database.knex.client === sqliteClientName; return instance.database.knex && [sqliteClientName, legacySqliteClientName].includes(instance.database.knex.client);
}; };
/** /**

View File

@@ -3,7 +3,7 @@
import { Model } from "objection"; import { Model } from "objection";
import db from "../db.js"; import db from "../db.js";
import { convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js"; import { castJsonIfNeed, convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js";
import Certificate from "./certificate.js"; import Certificate from "./certificate.js";
import now from "./now_helper.js"; import now from "./now_helper.js";
import User from "./user.js"; import User from "./user.js";
@@ -61,6 +61,18 @@ class DeadHost extends Model {
return ["domain_names", "meta"]; return ["domain_names", "meta"];
} }
static get defaultAllowGraph() {
return "[owner,certificate]";
}
static get defaultExpand() {
return ["certificate", "owner"];
}
static get defaultOrder() {
return [castJsonIfNeed("domain_names"), "ASC"];
}
static get relationMappings() { static get relationMappings() {
return { return {
owner: { owner: {

View File

@@ -3,7 +3,7 @@
import { Model } from "objection"; import { Model } from "objection";
import db from "../db.js"; import db from "../db.js";
import { convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js"; import { castJsonIfNeed, convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js";
import AccessList from "./access_list.js"; import AccessList from "./access_list.js";
import Certificate from "./certificate.js"; import Certificate from "./certificate.js";
import now from "./now_helper.js"; import now from "./now_helper.js";
@@ -73,6 +73,18 @@ class ProxyHost extends Model {
return ["domain_names", "meta", "locations"]; return ["domain_names", "meta", "locations"];
} }
static get defaultAllowGraph() {
return "[owner,access_list.[clients,items],certificate]";
}
static get defaultExpand() {
return ["owner", "certificate", "access_list.[clients,items]"];
}
static get defaultOrder() {
return [castJsonIfNeed("domain_names"), "ASC"];
}
static get relationMappings() { static get relationMappings() {
return { return {
owner: { owner: {

View File

@@ -3,7 +3,7 @@
import { Model } from "objection"; import { Model } from "objection";
import db from "../db.js"; import db from "../db.js";
import { convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js"; import { castJsonIfNeed, convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js";
import Certificate from "./certificate.js"; import Certificate from "./certificate.js";
import now from "./now_helper.js"; import now from "./now_helper.js";
import User from "./user.js"; import User from "./user.js";
@@ -70,6 +70,18 @@ class RedirectionHost extends Model {
return ["domain_names", "meta"]; return ["domain_names", "meta"];
} }
static get defaultAllowGraph() {
return "[owner,certificate]";
}
static get defaultExpand() {
return ["certificate", "owner"];
}
static get defaultOrder() {
return [castJsonIfNeed("domain_names"), "ASC"];
}
static get relationMappings() { static get relationMappings() {
return { return {
owner: { owner: {

View File

@@ -1,6 +1,6 @@
import { Model } from "objection"; import { Model } from "objection";
import db from "../db.js"; import db from "../db.js";
import { convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js"; import { castJsonIfNeed, convertBoolFieldsToInt, convertIntFieldsToBool } from "../lib/helpers.js";
import Certificate from "./certificate.js"; import Certificate from "./certificate.js";
import now from "./now_helper.js"; import now from "./now_helper.js";
import User from "./user.js"; import User from "./user.js";
@@ -46,6 +46,18 @@ class Stream extends Model {
return ["meta"]; return ["meta"];
} }
static get defaultAllowGraph() {
return "[owner,certificate]";
}
static get defaultExpand() {
return ["certificate", "owner"];
}
static get defaultOrder() {
return [castJsonIfNeed("incoming_port"), "ASC"];
}
static get relationMappings() { static get relationMappings() {
return { return {
owner: { owner: {

View File

@@ -9,17 +9,18 @@
"scripts": { "scripts": {
"lint": "biome lint", "lint": "biome lint",
"prettier": "biome format --write .", "prettier": "biome format --write .",
"validate-schema": "node validate-schema.js" "validate-schema": "node validate-schema.js",
"regenerate-config": "node scripts/regenerate-config"
}, },
"dependencies": { "dependencies": {
"@apidevtools/json-schema-ref-parser": "^14.1.1", "@apidevtools/json-schema-ref-parser": "^15.3.1",
"ajv": "^8.18.0", "ajv": "^8.18.0",
"archiver": "^7.0.1", "archiver": "^7.0.1",
"batchflow": "^0.4.0", "batchflow": "^0.4.0",
"bcrypt": "^6.0.0", "bcrypt": "^6.0.0",
"better-sqlite3": "^12.6.2", "better-sqlite3": "^12.6.2",
"body-parser": "^2.2.2", "body-parser": "^2.2.2",
"compression": "^1.7.4", "compression": "^1.8.1",
"express": "^5.2.1", "express": "^5.2.1",
"express-fileupload": "^1.5.2", "express-fileupload": "^1.5.2",
"gravatar": "^1.8.2", "gravatar": "^1.8.2",
@@ -28,22 +29,22 @@
"liquidjs": "10.24.0", "liquidjs": "10.24.0",
"lodash": "^4.17.23", "lodash": "^4.17.23",
"moment": "^2.30.1", "moment": "^2.30.1",
"mysql2": "^3.17.1", "mysql2": "^3.18.2",
"node-rsa": "^1.1.1", "node-rsa": "^1.1.1",
"objection": "3.1.5", "objection": "3.1.5",
"otplib": "^13.3.0", "otplib": "^13.3.0",
"path": "^0.12.7", "path": "^0.12.7",
"pg": "^8.18.0", "pg": "^8.19.0",
"proxy-agent": "^6.5.0", "proxy-agent": "^6.5.0",
"signale": "1.4.0", "signale": "1.4.0",
"sqlite3": "^5.1.7", "sqlite3": "^5.1.7",
"temp-write": "^4.0.0" "temp-write": "^6.0.1"
}, },
"devDependencies": { "devDependencies": {
"@apidevtools/swagger-parser": "^12.1.0", "@apidevtools/swagger-parser": "^12.1.0",
"@biomejs/biome": "^2.3.14", "@biomejs/biome": "^2.4.5",
"chalk": "5.6.2", "chalk": "5.6.2",
"nodemon": "^3.1.11" "nodemon": "^3.1.14"
}, },
"signale": { "signale": {
"displayDate": true, "displayDate": true,

View File

@@ -0,0 +1,76 @@
#!/usr/bin/env node
import * as process from "node:process"; // Use the node: protocol for built-ins
import internalNginx from "../internal/nginx.js";
import { global as logger } from "../logger.js";
import deadHostModel from "../models/dead_host.js";
import proxyHostModel from "../models/proxy_host.js";
import redirectionHostModel from "../models/redirection_host.js";
import streamModel from "../models/stream.js";
const args = process.argv.slice(2);
const UNATTENDED = args.includes("-y") || args.includes("--yes");
const DRY_RUN = args.includes("--dry-run");
if (args.includes("--help") || args.includes("-h")) {
console.log("\nThis will iterate over all Hosts and regnerate their Nginx configs.\n")
console.log("Usage: ./regenerate-config [-h|--help] [-y|--yes] [--dry-run]\n");
process.exit(0);
}
// ask for the user to confirm the action if not in unattended mode
if (!UNATTENDED && !DRY_RUN) {
const readline = await import("node:readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const question = (query) =>
new Promise((resolve) => rl.question(query, resolve));
const answer = await question(
"This will iterate over all Hosts and regnerate their Nginx configs.\n\nAre you sure you want to proceed? (y/N) ",
);
rl.close();
if (answer.toLowerCase() !== "y") {
console.log("Aborting.");
process.exit(0);
}
}
const logIt = (msg, type = "info") => logger[type](
`${DRY_RUN ? '[DRY RUN] ' : ''}${msg}`,
);
// Let's do it.
const processItems = async (model, type) => {
const rows = await model
.query()
.where("is_deleted", 0)
.andWhere("enabled", 1)
.groupBy("id")
.allowGraph(model.defaultAllowGraph)
.withGraphFetched(`[${model.defaultExpand.join(", ")}]`)
.orderBy(...model.defaultOrder);
logIt(`[${type}] Found ${rows.length} rows to process...`);
for (const row of rows) {
if (!DRY_RUN) {
logIt(`[${type}] Regenerating config #${row.id}: ${row.domain_names ? row.domain_names.join(", ") : 'port ' + row.incoming_port}`);
await internalNginx.configure(proxyHostModel, "proxy_host", row);
} else {
logIt(`[${type}] Skipping generation of config #${row.id}: ${row.domain_names ? row.domain_names.join(", ") : 'port ' + row.incoming_port}`);
}
}
};
await processItems(proxyHostModel, "Proxy Host");
await processItems(redirectionHostModel, "Redirection Host");
await processItems(deadHostModel, "404 Host");
await processItems(streamModel, "Stream");
logIt("Completed", "success");
process.exit(0);

View File

@@ -10,13 +10,12 @@
"@types/json-schema" "^7.0.15" "@types/json-schema" "^7.0.15"
js-yaml "^4.1.0" js-yaml "^4.1.0"
"@apidevtools/json-schema-ref-parser@^14.1.1": "@apidevtools/json-schema-ref-parser@^15.3.1":
version "14.1.1" version "15.3.1"
resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.1.1.tgz#0bae59809b7848c7a89dc6bb2f3bb980b7c290b1" resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.3.1.tgz#93f70004a085f62319705e32f25af748752ea5a4"
integrity sha512-uGF1YGOzzD50L7HLNWclXmsEhQflw8/zZHIz0/AzkJrKL5r9PceUipZxR/cp/8veTk4TVfdDJLyIwXLjaP5ePg== integrity sha512-FIweGOR9zrNuskfDXn8dfsA4eJEe8LmmGsGSDikEZvgYm36SO36yMhasXSOX7/OTGZ3b7I9iPhOxB24D8xL5uQ==
dependencies: dependencies:
"@types/json-schema" "^7.0.15" js-yaml "^4.1.1"
js-yaml "^4.1.0"
"@apidevtools/openapi-schemas@^2.1.0": "@apidevtools/openapi-schemas@^2.1.0":
version "2.1.0" version "2.1.0"
@@ -40,59 +39,59 @@
ajv-draft-04 "^1.0.0" ajv-draft-04 "^1.0.0"
call-me-maybe "^1.0.2" call-me-maybe "^1.0.2"
"@biomejs/biome@^2.3.14": "@biomejs/biome@^2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.14.tgz#b879cd5e0495334d4db7c49d6f3cc95b67d2909c" resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.5.tgz#90e75c1b6c60eb5bf8e8bfb193a1fbe9dc868f16"
integrity sha512-QMT6QviX0WqXJCaiqVMiBUCr5WRQ1iFSjvOLoTk6auKukJMvnMzWucXpwZB0e8F00/1/BsS9DzcKgWH+CLqVuA== integrity sha512-OWNCyMS0Q011R6YifXNOg6qsOg64IVc7XX6SqGsrGszPbkVCoaO7Sr/lISFnXZ9hjQhDewwZ40789QmrG0GYgQ==
optionalDependencies: optionalDependencies:
"@biomejs/cli-darwin-arm64" "2.3.14" "@biomejs/cli-darwin-arm64" "2.4.5"
"@biomejs/cli-darwin-x64" "2.3.14" "@biomejs/cli-darwin-x64" "2.4.5"
"@biomejs/cli-linux-arm64" "2.3.14" "@biomejs/cli-linux-arm64" "2.4.5"
"@biomejs/cli-linux-arm64-musl" "2.3.14" "@biomejs/cli-linux-arm64-musl" "2.4.5"
"@biomejs/cli-linux-x64" "2.3.14" "@biomejs/cli-linux-x64" "2.4.5"
"@biomejs/cli-linux-x64-musl" "2.3.14" "@biomejs/cli-linux-x64-musl" "2.4.5"
"@biomejs/cli-win32-arm64" "2.3.14" "@biomejs/cli-win32-arm64" "2.4.5"
"@biomejs/cli-win32-x64" "2.3.14" "@biomejs/cli-win32-x64" "2.4.5"
"@biomejs/cli-darwin-arm64@2.3.14": "@biomejs/cli-darwin-arm64@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.14.tgz#da942618e1dc2d19322bc11d5dacfe7d7616a502" resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.5.tgz#a62472ab3529a3905b16e1f3fdbbc74f2e5f0023"
integrity sha512-UJGPpvWJMkLxSRtpCAKfKh41Q4JJXisvxZL8ChN1eNW3m/WlPFJ6EFDCE7YfUb4XS8ZFi3C1dFpxUJ0Ety5n+A== integrity sha512-lGS4Nd5O3KQJ6TeWv10mElnx1phERhBxqGP/IKq0SvZl78kcWDFMaTtVK+w3v3lusRFxJY78n07PbKplirsU5g==
"@biomejs/cli-darwin-x64@2.3.14": "@biomejs/cli-darwin-x64@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.14.tgz#3ad06cce8ef6d2b935582011bd0cc3ca98a9554d" resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.5.tgz#e8bb001fcf6a8c751b0971cccf53993e9ba2e6e9"
integrity sha512-PNkLNQG6RLo8lG7QoWe/hhnMxJIt1tEimoXpGQjwS/dkdNiKBLPv4RpeQl8o3s1OKI3ZOR5XPiYtmbGGHAOnLA== integrity sha512-6MoH4tyISIBNkZ2Q5T1R7dLd5BsITb2yhhhrU9jHZxnNSNMWl+s2Mxu7NBF8Y3a7JJcqq9nsk8i637z4gqkJxQ==
"@biomejs/cli-linux-arm64-musl@2.3.14": "@biomejs/cli-linux-arm64-musl@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.14.tgz#e92681273dc59ac57b75b72f1b64a67543e50f8c" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.5.tgz#b7ef7902237f16113061659a4c54aff5ad4513d5"
integrity sha512-LInRbXhYujtL3sH2TMCH/UBwJZsoGwfQjBrMfl84CD4hL/41C/EU5mldqf1yoFpsI0iPWuU83U+nB2TUUypWeg== integrity sha512-iqLDgpzobG7gpBF0fwEVS/LT8kmN7+S0E2YKFDtqliJfzNLnAiV2Nnyb+ehCDCJgAZBASkYHR2o60VQWikpqIg==
"@biomejs/cli-linux-arm64@2.3.14": "@biomejs/cli-linux-arm64@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.14.tgz#bab43ee0a88ba15a6d59ec648a4b415d68d6eeb7" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.5.tgz#f110af748965cb1b57624dbbbd7acba729da8780"
integrity sha512-KT67FKfzIw6DNnUNdYlBg+eU24Go3n75GWK6NwU4+yJmDYFe9i/MjiI+U/iEzKvo0g7G7MZqoyrhIYuND2w8QQ== integrity sha512-U1GAG6FTjhAO04MyH4xn23wRNBkT6H7NentHh+8UxD6ShXKBm5SY4RedKJzkUThANxb9rUKIPc7B8ew9Xo/cWg==
"@biomejs/cli-linux-x64-musl@2.3.14": "@biomejs/cli-linux-x64-musl@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.14.tgz#ee90f7110dafdedf4644e0a27ac242975dcd88d3" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.5.tgz#c3493eba094216e735538c55354dbc8867b51909"
integrity sha512-KQU7EkbBBuHPW3/rAcoiVmhlPtDSGOGRPv9js7qJVpYTzjQmVR+C9Rfcz+ti8YCH+zT1J52tuBybtP4IodjxZQ== integrity sha512-NlKa7GpbQmNhZf9kakQeddqZyT7itN7jjWdakELeXyTU3pg/83fTysRRDPJD0akTfKDl6vZYNT9Zqn4MYZVBOA==
"@biomejs/cli-linux-x64@2.3.14": "@biomejs/cli-linux-x64@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.14.tgz#d152e61c6dc847836ebc741fb70fe305414aa7fe" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.5.tgz#15805550db4e45ffbd6c42d140d0cb5c6dbe07af"
integrity sha512-ZsZzQsl9U+wxFrGGS4f6UxREUlgHwmEfu1IrXlgNFrNnd5Th6lIJr8KmSzu/+meSa9f4rzFrbEW9LBBA6ScoMA== integrity sha512-NdODlSugMzTlENPTa4z0xB82dTUlCpsrOxc43///aNkTLblIYH4XpYflBbf5ySlQuP8AA4AZd1qXhV07IdrHdQ==
"@biomejs/cli-win32-arm64@2.3.14": "@biomejs/cli-win32-arm64@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.14.tgz#2c59e84f3d172bada2a1df94d6cf7e511c244a4e" resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.5.tgz#8dae57dc8ffc1e82e00a59e623b5023c09726a4d"
integrity sha512-+IKYkj/pUBbnRf1G1+RlyA3LWiDgra1xpS7H2g4BuOzzRbRB+hmlw0yFsLprHhbbt7jUzbzAbAjK/Pn0FDnh1A== integrity sha512-EBfrTqRIWOFSd7CQb/0ttjHMR88zm3hGravnDwUA9wHAaCAYsULKDebWcN5RmrEo1KBtl/gDVJMrFjNR0pdGUw==
"@biomejs/cli-win32-x64@2.3.14": "@biomejs/cli-win32-x64@2.4.5":
version "2.3.14" version "2.4.5"
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.14.tgz#44405162f255fe153a5ff99379510c058bf7a1e8" resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.5.tgz#0b4d3355e0d6856cff8ed722e05ec7b0652e43ab"
integrity sha512-oizCjdyQ3WJEswpb3Chdngeat56rIdSYK12JI3iI11Mt5T5EXcZ7WLuowzEaFPNJ3zmOQFliMN8QY1Pi+qsfdQ== integrity sha512-Pmhv9zT95YzECfjEHNl3mN9Vhusw9VA5KHY0ZvlGsxsjwS5cb7vpRnHzJIv0vG7jB0JI7xEaMH9ddfZm/RozBw==
"@gar/promisify@^1.0.1": "@gar/promisify@^1.0.1":
version "1.1.3" version "1.1.3"
@@ -377,15 +376,20 @@ aws-ssl-profiles@^1.1.2:
integrity sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g== integrity sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==
b4a@^1.6.4: b4a@^1.6.4:
version "1.7.3" version "1.8.0"
resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.7.3.tgz#24cf7ccda28f5465b66aec2bac69e32809bf112f" resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.8.0.tgz#1ca3ba0edc9469aaabef5647e769a83d50180b1a"
integrity sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q== integrity sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==
balanced-match@^1.0.0: balanced-match@^1.0.0:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
balanced-match@^4.0.2:
version "4.0.3"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.3.tgz#6337a2f23e0604a30481423432f99eac603599f9"
integrity sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==
bare-events@^2.7.0: bare-events@^2.7.0:
version "2.8.2" version "2.8.2"
resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.8.2.tgz#7b3e10bd8e1fc80daf38bb516921678f566ab89f" resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.8.2.tgz#7b3e10bd8e1fc80daf38bb516921678f566ab89f"
@@ -397,9 +401,9 @@ base64-js@^1.3.1:
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
basic-ftp@^5.0.2: basic-ftp@^5.0.2:
version "5.0.5" version "5.2.0"
resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0" resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.2.0.tgz#7c2dff63c918bde60e6bad1f2ff93dcf5137a40a"
integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg== integrity sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==
batchflow@^0.4.0: batchflow@^0.4.0:
version "0.4.0" version "0.4.0"
@@ -478,6 +482,13 @@ brace-expansion@^2.0.1:
dependencies: dependencies:
balanced-match "^1.0.0" balanced-match "^1.0.0"
brace-expansion@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.2.tgz#b6c16d0791087af6c2bc463f52a8142046c06b6f"
integrity sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==
dependencies:
balanced-match "^4.0.2"
braces@~3.0.2: braces@~3.0.2:
version "3.0.3" version "3.0.3"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
@@ -683,7 +694,7 @@ compressible@~2.0.18:
dependencies: dependencies:
mime-db ">= 1.43.0 < 2" mime-db ">= 1.43.0 < 2"
compression@^1.7.4: compression@^1.8.1:
version "1.8.1" version "1.8.1"
resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79"
integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w== integrity sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==
@@ -826,9 +837,9 @@ depd@^2.0.0, depd@~2.0.0:
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
detect-libc@^2.0.0: detect-libc@^2.0.0:
version "2.0.4" version "2.1.2"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.4.tgz#f04715b8ba815e53b4d8109655b6508a6865a7e8" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad"
integrity sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA== integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==
dunder-proto@^1.0.1: dunder-proto@^1.0.1:
version "1.0.1" version "1.0.1"
@@ -901,9 +912,9 @@ err-code@^2.0.2:
integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
error-ex@^1.3.1: error-ex@^1.3.1:
version "1.3.2" version "1.3.4"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
dependencies: dependencies:
is-arrayish "^0.2.1" is-arrayish "^0.2.1"
@@ -1254,7 +1265,7 @@ gopd@^1.2.0:
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.2.0, graceful-fs@^4.2.6: graceful-fs@^4.1.2, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6:
version "4.2.11" version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -1415,9 +1426,9 @@ interpret@^2.2.0:
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
ip-address@^10.0.1: ip-address@^10.0.1:
version "10.0.1" version "10.1.0"
resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.0.1.tgz#a8180b783ce7788777d796286d61bce4276818ed" resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.1.0.tgz#d8dcffb34d0e02eb241427444a6e23f5b0595aa4"
integrity sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA== integrity sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==
ipaddr.js@1.9.1: ipaddr.js@1.9.1:
version "1.9.1" version "1.9.1"
@@ -1436,7 +1447,7 @@ is-binary-path@~2.1.0:
dependencies: dependencies:
binary-extensions "^2.0.0" binary-extensions "^2.0.0"
is-core-module@^2.16.0: is-core-module@^2.16.1:
version "2.16.1" version "2.16.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
@@ -1480,11 +1491,16 @@ is-property@^1.0.2:
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==
is-stream@^2.0.0, is-stream@^2.0.1: is-stream@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
is-stream@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-4.0.1.tgz#375cf891e16d2e4baec250b85926cffc14720d9b"
integrity sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==
isarray@~1.0.0: isarray@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
@@ -1504,7 +1520,7 @@ jackspeak@^3.1.2:
optionalDependencies: optionalDependencies:
"@pkgjs/parseargs" "^0.11.0" "@pkgjs/parseargs" "^0.11.0"
js-yaml@^4.1.0: js-yaml@^4.1.0, js-yaml@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b"
integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==
@@ -1675,17 +1691,10 @@ lru-cache@^7.14.1:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
lru.min@^1.1.0, lru.min@^1.1.3: lru.min@^1.1.0, lru.min@^1.1.4:
version "1.1.3" version "1.1.4"
resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.3.tgz#c8c3d001dfb4cbe5b8d1f4bea207d4a320e5d76f" resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.4.tgz#6ea1737a8c1ba2300cc87ad46910a4bdffa0117b"
integrity sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q== integrity sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==
make-dir@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
dependencies:
semver "^6.0.0"
make-fetch-happen@^9.1.0: make-fetch-happen@^9.1.0:
version "9.1.0" version "9.1.0"
@@ -1741,7 +1750,14 @@ mimic-response@^3.1.0:
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
minimatch@^3.1.1, minimatch@^3.1.2: minimatch@^10.2.1:
version "10.2.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.2.tgz#361603ee323cfb83496fea2ae17cc44ea4e1f99f"
integrity sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==
dependencies:
brace-expansion "^5.0.2"
minimatch@^3.1.1:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -1819,9 +1835,9 @@ minipass@^5.0.0:
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
version "7.1.2" version "7.1.3"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b"
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==
minizlib@^2.0.0, minizlib@^2.1.1: minizlib@^2.0.0, minizlib@^2.1.1:
version "2.1.2" version "2.1.2"
@@ -1861,20 +1877,19 @@ ms@^2.0.0, ms@^2.1.1, ms@^2.1.3:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
mysql2@^3.17.1: mysql2@^3.18.2:
version "3.17.1" version "3.18.2"
resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.17.1.tgz#781292f60df3806949c0a3161a51ad3e4e4689a1" resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.18.2.tgz#11d30fbc03a456d076760bd60e6ebf17abc6323d"
integrity sha512-UzIzdVwPXPoZm+FaJ4lNsRt28HtUwt68gpLH7NP1oSjd91M5Qn1XJzbIsSRMRc5CV3pvktLNshmbaFfMYqPBhQ== integrity sha512-UfEShBFAZZEAKjySnTUuE7BgqkYT4mx+RjoJ5aqtmwSSvNcJ/QxQPXz/y3jSxNiVRedPfgccmuBtiPCSiEEytw==
dependencies: dependencies:
aws-ssl-profiles "^1.1.2" aws-ssl-profiles "^1.1.2"
denque "^2.1.0" denque "^2.1.0"
generate-function "^2.3.1" generate-function "^2.3.1"
iconv-lite "^0.7.2" iconv-lite "^0.7.2"
long "^5.3.2" long "^5.3.2"
lru.min "^1.1.3" lru.min "^1.1.4"
named-placeholders "^1.1.6" named-placeholders "^1.1.6"
seq-queue "^0.0.5" sql-escaper "^1.3.3"
sql-escaper "^1.3.2"
named-placeholders@^1.1.6: named-placeholders@^1.1.6:
version "1.1.6" version "1.1.6"
@@ -1904,9 +1919,9 @@ netmask@^2.0.2:
integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
node-abi@^3.3.0: node-abi@^3.3.0:
version "3.78.0" version "3.87.0"
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.78.0.tgz#fd0ecbd0aa89857b98da06bd3909194abb0821ba" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.87.0.tgz#423e28fea5c2f195fddd98acded9938c001ae6dd"
integrity sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ== integrity sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==
dependencies: dependencies:
semver "^7.3.5" semver "^7.3.5"
@@ -1948,15 +1963,15 @@ node-rsa@^1.1.1:
dependencies: dependencies:
asn1 "^0.2.4" asn1 "^0.2.4"
nodemon@^3.1.11: nodemon@^3.1.14:
version "3.1.11" version "3.1.14"
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.11.tgz#04a54d1e794fbec9d8f6ffd8bf1ba9ea93a756ed" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.14.tgz#8487ca379c515301d221ec007f27f24ecafa2b51"
integrity sha512-is96t8F/1//UHAjNPHpbsNY46ELPpftGUoSVNXwUfMk/qdjSylYrWSu1XavVTBOn526kFiOR733ATgNBCQyH0g== integrity sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw==
dependencies: dependencies:
chokidar "^3.5.2" chokidar "^3.5.2"
debug "^4" debug "^4"
ignore-by-default "^1.0.1" ignore-by-default "^1.0.1"
minimatch "^3.1.2" minimatch "^10.2.1"
pstree.remy "^1.1.8" pstree.remy "^1.1.8"
semver "^7.5.3" semver "^7.5.3"
simple-update-notifier "^2.0.0" simple-update-notifier "^2.0.0"
@@ -2182,15 +2197,15 @@ pg-int8@1.0.1:
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
pg-pool@^3.11.0: pg-pool@^3.12.0:
version "3.11.0" version "3.12.0"
resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.11.0.tgz#adf9a6651a30c839f565a3cc400110949c473d69" resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.12.0.tgz#798c84ec7d42ba03fff056ebe575daa6e14feab8"
integrity sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w== integrity sha512-eIJ0DES8BLaziFHW7VgJEBPi5hg3Nyng5iKpYtj3wbcAUV9A1wLgWiY7ajf/f/oO1wfxt83phXPY8Emztg7ITg==
pg-protocol@^1.11.0: pg-protocol@^1.12.0:
version "1.11.0" version "1.12.0"
resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.11.0.tgz#2502908893edaa1e8c0feeba262dd7b40b317b53" resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.12.0.tgz#e9827f3e1dae6cdcb78d009cba5bb699d88ae998"
integrity sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g== integrity sha512-uOANXNRACNdElMXJ0tPz6RBM0XQ61nONGAwlt8da5zs/iUOOCLBQOHSXnrC6fMsvtjxbOJrZZl5IScGv+7mpbg==
pg-types@2.2.0: pg-types@2.2.0:
version "2.2.0" version "2.2.0"
@@ -2203,14 +2218,14 @@ pg-types@2.2.0:
postgres-date "~1.0.4" postgres-date "~1.0.4"
postgres-interval "^1.1.0" postgres-interval "^1.1.0"
pg@^8.18.0: pg@^8.19.0:
version "8.18.0" version "8.19.0"
resolved "https://registry.yarnpkg.com/pg/-/pg-8.18.0.tgz#e9ee214206f5d9231240f1b82f22d2fa9de5cb75" resolved "https://registry.yarnpkg.com/pg/-/pg-8.19.0.tgz#2cb45322471c1ed05786ee7ec09bd91abdfe3eeb"
integrity sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ== integrity sha512-QIcLGi508BAHkQ3pJNptsFz5WQMlpGbuBGBaIaXsWK8mel2kQ/rThYI+DbgjUvZrIr7MiuEuc9LcChJoEZK1xQ==
dependencies: dependencies:
pg-connection-string "^2.11.0" pg-connection-string "^2.11.0"
pg-pool "^3.11.0" pg-pool "^3.12.0"
pg-protocol "^1.11.0" pg-protocol "^1.12.0"
pg-types "2.2.0" pg-types "2.2.0"
pgpass "1.0.5" pgpass "1.0.5"
optionalDependencies: optionalDependencies:
@@ -2247,9 +2262,9 @@ postgres-array@~2.0.0:
integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
postgres-bytea@~1.0.0: postgres-bytea@~1.0.0:
version "1.0.0" version "1.0.1"
resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz#c40b3da0222c500ff1e51c5d7014b60b79697c7a"
integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== integrity sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==
postgres-date@~1.0.4: postgres-date@~1.0.4:
version "1.0.7" version "1.0.7"
@@ -2345,9 +2360,9 @@ pump@^3.0.0:
once "^1.3.1" once "^1.3.1"
qs@^6.14.0, qs@^6.14.1: qs@^6.14.0, qs@^6.14.1:
version "6.14.2" version "6.15.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.2.tgz#b5634cf9d9ad9898e31fba3504e866e8efb6798c" resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.0.tgz#db8fd5d1b1d2d6b5b33adaf87429805f1909e7b3"
integrity sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q== integrity sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==
dependencies: dependencies:
side-channel "^1.1.0" side-channel "^1.1.0"
@@ -2456,11 +2471,11 @@ resolve-from@^5.0.0:
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
resolve@^1.20.0: resolve@^1.20.0:
version "1.22.10" version "1.22.11"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262"
integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
dependencies: dependencies:
is-core-module "^2.16.0" is-core-module "^2.16.1"
path-parse "^1.0.7" path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0" supports-preserve-symlinks-flag "^1.0.0"
@@ -2502,15 +2517,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
semver@^6.0.0:
version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: semver@^7.3.5, semver@^7.5.3, semver@^7.5.4:
version "7.7.3" version "7.7.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a"
integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==
send@^1.1.0, send@^1.2.0: send@^1.1.0, send@^1.2.0:
version "1.2.1" version "1.2.1"
@@ -2529,11 +2539,6 @@ send@^1.1.0, send@^1.2.0:
range-parser "^1.2.1" range-parser "^1.2.1"
statuses "^2.0.2" statuses "^2.0.2"
seq-queue@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e"
integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==
serve-static@^2.2.0: serve-static@^2.2.0:
version "2.2.1" version "2.2.1"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.1.tgz#7f186a4a4e5f5b663ad7a4294ff1bf37cf0e98a9" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.1.tgz#7f186a4a4e5f5b663ad7a4294ff1bf37cf0e98a9"
@@ -2687,10 +2692,10 @@ split2@^4.1.0:
resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
sql-escaper@^1.3.2: sql-escaper@^1.3.3:
version "1.3.2" version "1.3.3"
resolved "https://registry.yarnpkg.com/sql-escaper/-/sql-escaper-1.3.2.tgz#b11c68c6541fc05afdf508d52e54af7219455fad" resolved "https://registry.yarnpkg.com/sql-escaper/-/sql-escaper-1.3.3.tgz#65faf89f048d26bb9a75566b82b5990ddf8a5b7f"
integrity sha512-lp+ZDVfSjHt+qAK1jXBTIXBNYnbo7gnaAGwoYTH9bE89kNkXwcu6g0WjJGRsdTKVpY1z70u3Y0IgmnBOoRybHw== integrity sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==
sqlite3@^5.1.7: sqlite3@^5.1.7:
version "5.1.7" version "5.1.7"
@@ -2861,26 +2866,24 @@ tarn@^3.0.2:
resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693" resolved "https://registry.yarnpkg.com/tarn/-/tarn-3.0.2.tgz#73b6140fbb881b71559c4f8bfde3d9a4b3d27693"
integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ== integrity sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==
temp-dir@^1.0.0: temp-dir@^3.0.0:
version "1.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa"
integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==
temp-write@^4.0.0: temp-write@^6.0.1:
version "4.0.0" version "6.0.1"
resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-4.0.0.tgz#cd2e0825fc826ae72d201dc26eef3bf7e6fc9320" resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-6.0.1.tgz#b1ed81e80e120ba4957db3e01e010669d7c15870"
integrity sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw== integrity sha512-6bj9LlNld+knzEOQvnZK6YxiPF+foOUjvG/WoWj1/Mt9c6f2kQCPsh8KZ+NyTk0AejubTQSPpx2alcswE1bF8g==
dependencies: dependencies:
graceful-fs "^4.1.15" graceful-fs "^4.2.11"
is-stream "^2.0.0" is-stream "^4.0.1"
make-dir "^3.0.0" temp-dir "^3.0.0"
temp-dir "^1.0.0"
uuid "^3.3.2"
text-decoder@^1.1.0: text-decoder@^1.1.0:
version "1.2.3" version "1.2.7"
resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.3.tgz#b19da364d981b2326d5f43099c310cc80d770c65" resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.7.tgz#5d073a9a74b9c0a9d28dfadcab96b604af57d8ba"
integrity sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA== integrity sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==
dependencies: dependencies:
b4a "^1.6.4" b4a "^1.6.4"
@@ -2963,11 +2966,6 @@ util@^0.10.3:
dependencies: dependencies:
inherits "2.0.3" inherits "2.0.3"
uuid@^3.3.2:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
vary@^1.1.2, vary@~1.1.2: vary@^1.1.2, vary@~1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"

View File

@@ -47,10 +47,10 @@ http {
proxy_cache_path /var/lib/nginx/cache/private levels=1:2 keys_zone=private-cache:5m max_size=1024m; proxy_cache_path /var/lib/nginx/cache/private levels=1:2 keys_zone=private-cache:5m max_size=1024m;
# Log format and fallback log file # Log format and fallback log file
include /etc/nginx/conf.d/include/log-proxy.conf; include /etc/nginx/conf.d/include/log-proxy[.]conf;
# Dynamically generated resolvers file # Dynamically generated resolvers file
include /etc/nginx/conf.d/include/resolvers.conf; include /etc/nginx/conf.d/include/resolvers[.]conf;
# Default upstream scheme # Default upstream scheme
map $host $forward_scheme { map $host $forward_scheme {
@@ -76,7 +76,7 @@ http {
set_real_ip_from 172.16.0.0/12; # Includes Docker subnet set_real_ip_from 172.16.0.0/12; # Includes Docker subnet
set_real_ip_from 192.168.0.0/16; set_real_ip_from 192.168.0.0/16;
# NPM generated CDN ip ranges: # NPM generated CDN ip ranges:
include conf.d/include/ip_ranges.conf; include conf.d/include/ip_ranges[.]conf;
# always put the following 2 lines after ip subnets: # always put the following 2 lines after ip subnets:
real_ip_header X-Real-IP; real_ip_header X-Real-IP;
real_ip_recursive on; real_ip_recursive on;
@@ -98,7 +98,7 @@ http {
stream { stream {
# Log format and fallback log file # Log format and fallback log file
include /etc/nginx/conf.d/include/log-stream.conf; include /etc/nginx/conf.d/include/log-stream[.]conf;
# Files generated by NPM # Files generated by NPM
include /data/nginx/stream/*.conf; include /data/nginx/stream/*.conf;

View File

@@ -7,8 +7,10 @@ log_info 'Dynamic resolvers ...'
# Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]` # Dynamically generate resolvers file, if resolver is IPv6, enclose in `[]`
# thanks @tfmm # thanks @tfmm
if [ "$(is_true "$DISABLE_IPV6")" = '1' ]; then if [ "$(is_true "${DISABLE_RESOLVER:-}")" = '0' ]; then
if [ "$(is_true "${DISABLE_IPV6:-}")" = '1' ]; then
echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) ipv6=off valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) ipv6=off valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf
else else
echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf echo resolver "$(awk 'BEGIN{ORS=" "} $1=="nameserver" { sub(/%.*$/,"",$2); print ($2 ~ ":")? "["$2"]": $2}' /etc/resolv.conf) valid=10s;" > /etc/nginx/conf.d/include/resolvers.conf
fi
fi fi

View File

@@ -12,7 +12,7 @@ process_folder () {
FILES=$(find "$1" -type f -name "*.conf") FILES=$(find "$1" -type f -name "*.conf")
SED_REGEX= SED_REGEX=
if [ "$(is_true "$DISABLE_IPV6")" = '1' ]; then if [ "$(is_true "${DISABLE_IPV6:-}")" = '1' ]; then
# IPV6 is disabled # IPV6 is disabled
echo "Disabling IPV6 in hosts in: $1" echo "Disabling IPV6 in hosts in: $1"
SED_REGEX='s/^([^#]*)listen \[::\]/\1#listen [::]/g' SED_REGEX='s/^([^#]*)listen \[::\]/\1#listen [::]/g'
@@ -25,7 +25,13 @@ process_folder () {
for FILE in $FILES for FILE in $FILES
do do
echo "- ${FILE}" echo "- ${FILE}"
echo "$(sed -E "$SED_REGEX" "$FILE")" > $FILE TMPFILE="${FILE}.tmp"
if sed -E "$SED_REGEX" "$FILE" > "$TMPFILE" && [ -s "$TMPFILE" ]; then
mv "$TMPFILE" "$FILE"
else
echo "WARNING: skipping ${FILE} — sed produced empty output" >&2
rm -f "$TMPFILE"
fi
done done
# ensure the files are still owned by the npm user # ensure the files are still owned by the npm user

View File

@@ -2,7 +2,8 @@
"scripts": { "scripts": {
"dev": "vitepress dev --host", "dev": "vitepress dev --host",
"build": "vitepress build", "build": "vitepress build",
"preview": "vitepress preview" "preview": "vitepress preview",
"set-version": "./scripts/set-version.sh"
}, },
"devDependencies": { "devDependencies": {
"vitepress": "^1.6.4" "vitepress": "^1.6.4"

17
docs/scripts/set-version.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
set -euf
# this script accepts a version number as an argument
# and replaces {{VERSION}} in src/*.md with the provided version number.
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <version>"
exit 1
fi
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DIR/.." || exit 1
VERSION="$1"
# find all .md files in src/ and replace {{VERSION}} with the provided version number
find src/ -type f -name "*.md" -exec sed -i "s/{{VERSION}}/$VERSION/g" {} \;

View File

@@ -14,7 +14,7 @@ on the `data` and `letsencrypt` folders at startup.
```yml ```yml
services: services:
app: app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:{{VERSION}}'
environment: environment:
PUID: 1000 PUID: 1000
PGID: 1000 PGID: 1000
@@ -101,7 +101,7 @@ secrets:
services: services:
app: app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:{{VERSION}}'
restart: unless-stopped restart: unless-stopped
ports: ports:
# Public HTTP Port: # Public HTTP Port:
@@ -130,18 +130,16 @@ services:
- db - db
db: db:
image: jc21/mariadb-aria image: 'linuxserver/mariadb'
restart: unless-stopped restart: unless-stopped
environment: environment:
# MYSQL_ROOT_PASSWORD: "npm" # use secret instead
MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD
MYSQL_DATABASE: "npm" MYSQL_DATABASE: 'npm'
MYSQL_USER: "npm" MYSQL_USER: 'npm'
# MYSQL_PASSWORD: "npm" # use secret instead
MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD
MARIADB_AUTO_UPGRADE: '1' TZ: 'Australia/Brisbane'
volumes: volumes:
- ./mysql:/var/lib/mysql - ./mariadb:/config
secrets: secrets:
- DB_ROOT_PWD - DB_ROOT_PWD
- MYSQL_PWD - MYSQL_PWD
@@ -233,8 +231,20 @@ load_module /usr/lib/nginx/modules/ngx_stream_geoip2_module.so;
Setting these environment variables will create the default user on startup, skipping the UI first user setup screen: Setting these environment variables will create the default user on startup, skipping the UI first user setup screen:
``` ```yml
environment: environment:
INITIAL_ADMIN_EMAIL: my@example.com INITIAL_ADMIN_EMAIL: my@example.com
INITIAL_ADMIN_PASSWORD: mypassword1 INITIAL_ADMIN_PASSWORD: mypassword1
``` ```
## Disable Nginx Resolver
On startup, we generate a resolvers directive for Nginx unless this is defined:
```yml
environment:
DISABLE_RESOLVER: true
```
In this configuration, all DNS queries performed by Nginx will fall to the `/etc/hosts` file
and then the `/etc/resolv.conf`.

View File

@@ -64,7 +64,7 @@ I won't go in to too much detail here but here are the basics for someone new to
```yml ```yml
services: services:
app: app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:{{VERSION}}'
restart: unless-stopped restart: unless-stopped
environment: environment:
TZ: "Australia/Brisbane" TZ: "Australia/Brisbane"

View File

@@ -11,7 +11,7 @@ Create a `docker-compose.yml` file:
```yml ```yml
services: services:
app: app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:{{VERSION}}'
restart: unless-stopped restart: unless-stopped
ports: ports:
@@ -45,10 +45,7 @@ docker compose up -d
## Using MySQL / MariaDB Database ## Using MySQL / MariaDB Database
If you opt for the MySQL configuration you will have to provide the database server yourself. You can also use MariaDB. Here are the minimum supported versions: If you opt for the MySQL configuration you will have to provide the database server yourself.
- MySQL v5.7.8+
- MariaDB v10.2.7+
It's easy to use another docker container for your database also and link it as part of the docker stack, so that's what the following examples It's easy to use another docker container for your database also and link it as part of the docker stack, so that's what the following examples
are going to use. are going to use.
@@ -58,7 +55,7 @@ Here is an example of what your `docker-compose.yml` will look like when using a
```yml ```yml
services: services:
app: app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:{{VERSION}}'
restart: unless-stopped restart: unless-stopped
ports: ports:
# These ports are in format <host-port>:<container-port> # These ports are in format <host-port>:<container-port>
@@ -88,31 +85,29 @@ services:
- db - db
db: db:
image: 'jc21/mariadb-aria:latest' image: 'linuxserver/mariadb'
restart: unless-stopped restart: unless-stopped
environment: environment:
MYSQL_ROOT_PASSWORD: 'npm' MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm' MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm' MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm' MYSQL_PASSWORD: 'npm'
MARIADB_AUTO_UPGRADE: '1' TZ: 'Australia/Brisbane'
volumes: volumes:
- ./mysql:/var/lib/mysql - ./mariadb:/config
``` ```
::: warning ::: warning
Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` variables. So if you keep the MySQL variables, you will not be able to use SQLite. Please note, that `DB_MYSQL_*` environment variables will take precedent over `DB_SQLITE_*` variables. So if you keep the MySQL variables, you will not be able to use SQLite.
::: :::
### Optional: MySQL / MariaDB SSL ### Optional: MySQL / MariaDB SSL
You can enable TLS for the MySQL/MariaDB connection with these environment variables: You can enable TLS for the MySQL/MariaDB connection with these environment variables:
- DB_MYSQL_SSL: Enable SSL when set to true. If unset or false, SSL disabled (previous default behaviour). - `DB_MYSQL_SSL`: Enable SSL when set to true. If unset or false, SSL disabled (previous default behaviour).
- DB_MYSQL_SSL_REJECT_UNAUTHORIZED: (default: true) Validate the server certificate chain. Set to false to allow selfsigned/unknown CA. - `DB_MYSQL_SSL_REJECT_UNAUTHORIZED`: (default: true) Validate the server certificate chain. Set to false to allow selfsigned/unknown CA.
- DB_MYSQL_SSL_VERIFY_IDENTITY: (default: true) Performs host name / identity verification. - `DB_MYSQL_SSL_VERIFY_IDENTITY`: (default: true) Performs host name / identity verification.
Enabling SSL using a self-signed cert (not recommended for production). Enabling SSL using a self-signed cert (not recommended for production).
@@ -123,7 +118,7 @@ Similar to the MySQL server setup:
```yml ```yml
services: services:
app: app:
image: 'jc21/nginx-proxy-manager:latest' image: 'jc21/nginx-proxy-manager:{{VERSION}}'
restart: unless-stopped restart: unless-stopped
ports: ports:
# These ports are in format <host-port>:<container-port> # These ports are in format <host-port>:<container-port>
@@ -185,8 +180,6 @@ for a list of supported architectures and if you want one that doesn't exist,
Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/) Also, if you don't know how to already, follow [this guide to install docker and docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/)
on Raspbian. on Raspbian.
Please note that the `jc21/mariadb-aria:latest` image might have some problems on some ARM devices, if you want a separate database container, use the `yobasystems/alpine-mariadb:latest` image.
## Initial Run ## Initial Run
After the app is running for the first time, the following will happen: After the app is running for the first time, the following will happen:

View File

@@ -335,85 +335,130 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba"
integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==
"@rollup/rollup-android-arm-eabi@4.24.0": "@rollup/rollup-android-arm-eabi@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz#1661ff5ea9beb362795304cb916049aba7ac9c54" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz#a6742c74c7d9d6d604ef8a48f99326b4ecda3d82"
integrity sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA== integrity sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==
"@rollup/rollup-android-arm64@4.24.0": "@rollup/rollup-android-arm64@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz#2ffaa91f1b55a0082b8a722525741aadcbd3971e" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz#97247be098de4df0c11971089fd2edf80a5da8cf"
integrity sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA== integrity sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==
"@rollup/rollup-darwin-arm64@4.24.0": "@rollup/rollup-darwin-arm64@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz#627007221b24b8cc3063703eee0b9177edf49c1f" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz#674852cf14cf11b8056e0b1a2f4e872b523576cf"
integrity sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA== integrity sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==
"@rollup/rollup-darwin-x64@4.24.0": "@rollup/rollup-darwin-x64@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz#0605506142b9e796c370d59c5984ae95b9758724" resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz#36dfd7ed0aaf4d9d89d9ef983af72632455b0246"
integrity sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ== integrity sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==
"@rollup/rollup-linux-arm-gnueabihf@4.24.0": "@rollup/rollup-freebsd-arm64@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz#62dfd196d4b10c0c2db833897164d2d319ee0cbb" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz#2f87c2074b4220260fdb52a9996246edfc633c22"
integrity sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA== integrity sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==
"@rollup/rollup-linux-arm-musleabihf@4.24.0": "@rollup/rollup-freebsd-x64@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz#53ce72aeb982f1f34b58b380baafaf6a240fddb3" resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz#9b5a26522a38a95dc06616d1939d4d9a76937803"
integrity sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw== integrity sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==
"@rollup/rollup-linux-arm64-gnu@4.24.0": "@rollup/rollup-linux-arm-gnueabihf@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz#1632990f62a75c74f43e4b14ab3597d7ed416496" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz#86aa4859385a8734235b5e40a48e52d770758c3a"
integrity sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA== integrity sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==
"@rollup/rollup-linux-arm64-musl@4.24.0": "@rollup/rollup-linux-arm-musleabihf@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz#8c03a996efb41e257b414b2e0560b7a21f2d9065" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz#cbe70e56e6ece8dac83eb773b624fc9e5a460976"
integrity sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw== integrity sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==
"@rollup/rollup-linux-powerpc64le-gnu@4.24.0": "@rollup/rollup-linux-arm64-gnu@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz#5b98729628d5bcc8f7f37b58b04d6845f85c7b5d" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz#d14992a2e653bc3263d284bc6579b7a2890e1c45"
integrity sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw== integrity sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==
"@rollup/rollup-linux-riscv64-gnu@4.24.0": "@rollup/rollup-linux-arm64-musl@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz#48e42e41f4cabf3573cfefcb448599c512e22983" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz#2fdd1ddc434ea90aeaa0851d2044789b4d07f6da"
integrity sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg== integrity sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==
"@rollup/rollup-linux-s390x-gnu@4.24.0": "@rollup/rollup-linux-loong64-gnu@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz#e0b4f9a966872cb7d3e21b9e412a4b7efd7f0b58" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz#8a181e6f89f969f21666a743cd411416c80099e7"
integrity sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g== integrity sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==
"@rollup/rollup-linux-x64-gnu@4.24.0": "@rollup/rollup-linux-loong64-musl@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz#78144741993100f47bd3da72fce215e077ae036b" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz#904125af2babc395f8061daa27b5af1f4e3f2f78"
integrity sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A== integrity sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==
"@rollup/rollup-linux-x64-musl@4.24.0": "@rollup/rollup-linux-ppc64-gnu@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz#d9fe32971883cd1bd858336bd33a1c3ca6146127" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz#a57970ac6864c9a3447411a658224bdcf948be22"
integrity sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ== integrity sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==
"@rollup/rollup-win32-arm64-msvc@4.24.0": "@rollup/rollup-linux-ppc64-musl@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz#71fa3ea369316db703a909c790743972e98afae5" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz#bb84de5b26870567a4267666e08891e80bb56a63"
integrity sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ== integrity sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==
"@rollup/rollup-win32-ia32-msvc@4.24.0": "@rollup/rollup-linux-riscv64-gnu@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz#653f5989a60658e17d7576a3996deb3902e342e2" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz#72d00d2c7fb375ce3564e759db33f17a35bffab9"
integrity sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ== integrity sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==
"@rollup/rollup-win32-x64-msvc@4.24.0": "@rollup/rollup-linux-riscv64-musl@4.59.0":
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz#0574d7e87b44ee8511d08cc7f914bcb802b70818" resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz#4c166ef58e718f9245bd31873384ba15a5c1a883"
integrity sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw== integrity sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==
"@rollup/rollup-linux-s390x-gnu@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz#bb5025cde9a61db478c2ca7215808ad3bce73a09"
integrity sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==
"@rollup/rollup-linux-x64-gnu@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz#9b66b1f9cd95c6624c788f021c756269ffed1552"
integrity sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==
"@rollup/rollup-linux-x64-musl@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz#b007ca255dc7166017d57d7d2451963f0bd23fd9"
integrity sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==
"@rollup/rollup-openbsd-x64@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz#e8b357b2d1aa2c8d76a98f5f0d889eabe93f4ef9"
integrity sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==
"@rollup/rollup-openharmony-arm64@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz#96c2e3f4aacd3d921981329831ff8dde492204dc"
integrity sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==
"@rollup/rollup-win32-arm64-msvc@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz#2d865149d706d938df8b4b8f117e69a77646d581"
integrity sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==
"@rollup/rollup-win32-ia32-msvc@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz#abe1593be0fa92325e9971c8da429c5e05b92c36"
integrity sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==
"@rollup/rollup-win32-x64-gnu@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz#c4af3e9518c9a5cd4b1c163dc81d0ad4d82e7eab"
integrity sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==
"@rollup/rollup-win32-x64-msvc@4.59.0":
version "4.59.0"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c"
integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==
"@shikijs/core@2.5.0", "@shikijs/core@^2.1.0": "@shikijs/core@2.5.0", "@shikijs/core@^2.1.0":
version "2.5.0" version "2.5.0"
@@ -479,10 +524,10 @@
resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224"
integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==
"@types/estree@1.0.6": "@types/estree@1.0.8":
version "1.0.6" version "1.0.8"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
"@types/hast@^3.0.0", "@types/hast@^3.0.4": "@types/hast@^3.0.0", "@types/hast@^3.0.4":
version "3.0.4" version "3.0.4"
@@ -994,28 +1039,37 @@ rfdc@^1.4.1:
integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
rollup@^4.20.0: rollup@^4.20.0:
version "4.24.0" version "4.59.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.24.0.tgz#c14a3576f20622ea6a5c9cad7caca5e6e9555d05" resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.59.0.tgz#cf74edac17c1486f562d728a4d923a694abdf06f"
integrity sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg== integrity sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==
dependencies: dependencies:
"@types/estree" "1.0.6" "@types/estree" "1.0.8"
optionalDependencies: optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.24.0" "@rollup/rollup-android-arm-eabi" "4.59.0"
"@rollup/rollup-android-arm64" "4.24.0" "@rollup/rollup-android-arm64" "4.59.0"
"@rollup/rollup-darwin-arm64" "4.24.0" "@rollup/rollup-darwin-arm64" "4.59.0"
"@rollup/rollup-darwin-x64" "4.24.0" "@rollup/rollup-darwin-x64" "4.59.0"
"@rollup/rollup-linux-arm-gnueabihf" "4.24.0" "@rollup/rollup-freebsd-arm64" "4.59.0"
"@rollup/rollup-linux-arm-musleabihf" "4.24.0" "@rollup/rollup-freebsd-x64" "4.59.0"
"@rollup/rollup-linux-arm64-gnu" "4.24.0" "@rollup/rollup-linux-arm-gnueabihf" "4.59.0"
"@rollup/rollup-linux-arm64-musl" "4.24.0" "@rollup/rollup-linux-arm-musleabihf" "4.59.0"
"@rollup/rollup-linux-powerpc64le-gnu" "4.24.0" "@rollup/rollup-linux-arm64-gnu" "4.59.0"
"@rollup/rollup-linux-riscv64-gnu" "4.24.0" "@rollup/rollup-linux-arm64-musl" "4.59.0"
"@rollup/rollup-linux-s390x-gnu" "4.24.0" "@rollup/rollup-linux-loong64-gnu" "4.59.0"
"@rollup/rollup-linux-x64-gnu" "4.24.0" "@rollup/rollup-linux-loong64-musl" "4.59.0"
"@rollup/rollup-linux-x64-musl" "4.24.0" "@rollup/rollup-linux-ppc64-gnu" "4.59.0"
"@rollup/rollup-win32-arm64-msvc" "4.24.0" "@rollup/rollup-linux-ppc64-musl" "4.59.0"
"@rollup/rollup-win32-ia32-msvc" "4.24.0" "@rollup/rollup-linux-riscv64-gnu" "4.59.0"
"@rollup/rollup-win32-x64-msvc" "4.24.0" "@rollup/rollup-linux-riscv64-musl" "4.59.0"
"@rollup/rollup-linux-s390x-gnu" "4.59.0"
"@rollup/rollup-linux-x64-gnu" "4.59.0"
"@rollup/rollup-linux-x64-musl" "4.59.0"
"@rollup/rollup-openbsd-x64" "4.59.0"
"@rollup/rollup-openharmony-arm64" "4.59.0"
"@rollup/rollup-win32-arm64-msvc" "4.59.0"
"@rollup/rollup-win32-ia32-msvc" "4.59.0"
"@rollup/rollup-win32-x64-gnu" "4.59.0"
"@rollup/rollup-win32-x64-msvc" "4.59.0"
fsevents "~2.3.2" fsevents "~2.3.2"
shiki@^2.1.0: shiki@^2.1.0:

View File

@@ -1,5 +1,5 @@
{ {
"$schema": "https://biomejs.dev/schemas/2.3.14/schema.json", "$schema": "https://biomejs.dev/schemas/2.4.5/schema.json",
"vcs": { "vcs": {
"enabled": true, "enabled": true,
"clientKind": "git", "clientKind": "git",

View File

@@ -11,6 +11,7 @@ const allLocales = [
["de", "de-DE"], ["de", "de-DE"],
["pt", "pt-PT"], ["pt", "pt-PT"],
["es", "es-ES"], ["es", "es-ES"],
["et", "et-EE"],
["fr", "fr-FR"], ["fr", "fr-FR"],
["it", "it-IT"], ["it", "it-IT"],
["ja", "ja-JP"], ["ja", "ja-JP"],
@@ -26,6 +27,7 @@ const allLocales = [
["id", "id-ID"], ["id", "id-ID"],
["tr", "tr-TR"], ["tr", "tr-TR"],
["hu", "hu-HU"], ["hu", "hu-HU"],
["no", "no-NO"],
]; ];
const ignoreUnused = [/^.*$/]; const ignoreUnused = [/^.*$/];

View File

@@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Nginx Proxy Manager</title> <title>Nginx Proxy Manager</title>
<meta name="description" content="In The Office Planner" /> <meta name="description" content="Manage Nginx hosts with a simple, powerful interface" />
<link rel="preload" href="/images/logo-no-text.svg" as="image" type="image/svg+xml" fetchPriority="high"> <link rel="preload" href="/images/logo-no-text.svg" as="image" type="image/svg+xml" fetchPriority="high">
<link <link
rel="apple-touch-icon" rel="apple-touch-icon"

View File

@@ -17,12 +17,12 @@
}, },
"dependencies": { "dependencies": {
"@tabler/core": "^1.4.0", "@tabler/core": "^1.4.0",
"@tabler/icons-react": "^3.36.1", "@tabler/icons-react": "^3.38.0",
"@tanstack/react-query": "^5.90.21", "@tanstack/react-query": "^5.90.21",
"@tanstack/react-table": "^8.21.3", "@tanstack/react-table": "^8.21.3",
"@uiw/react-textarea-code-editor": "^3.1.1", "@uiw/react-textarea-code-editor": "^3.1.1",
"classnames": "^2.5.1", "classnames": "^2.5.1",
"country-flag-icons": "^1.6.13", "country-flag-icons": "^1.6.15",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"ez-modal-react": "^1.0.5", "ez-modal-react": "^1.0.5",
"formik": "^2.4.9", "formik": "^2.4.9",
@@ -34,14 +34,14 @@
"react-dom": "^19.2.4", "react-dom": "^19.2.4",
"react-intl": "^8.1.3", "react-intl": "^8.1.3",
"react-markdown": "^10.1.0", "react-markdown": "^10.1.0",
"react-router-dom": "^7.13.0", "react-router-dom": "^7.13.1",
"react-select": "^5.10.2", "react-select": "^5.10.2",
"react-toastify": "^11.0.5", "react-toastify": "^11.0.5",
"rooks": "^9.5.0" "rooks": "^9.5.0"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.4.2", "@biomejs/biome": "^2.4.5",
"@formatjs/cli": "^6.12.2", "@formatjs/cli": "^6.13.1",
"@tanstack/react-query-devtools": "^5.91.3", "@tanstack/react-query-devtools": "^5.91.3",
"@testing-library/dom": "^10.4.1", "@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1", "@testing-library/jest-dom": "^6.9.1",
@@ -52,8 +52,8 @@
"@types/react-dom": "^19.2.3", "@types/react-dom": "^19.2.3",
"@types/react-table": "^7.7.20", "@types/react-table": "^7.7.20",
"@vitejs/plugin-react": "^5.1.4", "@vitejs/plugin-react": "^5.1.4",
"happy-dom": "^20.6.1", "happy-dom": "^20.8.3",
"postcss": "^8.5.6", "postcss": "^8.5.8",
"postcss-simple-vars": "^7.0.1", "postcss-simple-vars": "^7.0.1",
"sass": "^1.97.3", "sass": "^1.97.3",
"tmp": "^0.2.5", "tmp": "^0.2.5",

View File

@@ -4,6 +4,7 @@ import langDe from "./lang/de.json";
import langPt from "./lang/pt.json"; import langPt from "./lang/pt.json";
import langEn from "./lang/en.json"; import langEn from "./lang/en.json";
import langEs from "./lang/es.json"; import langEs from "./lang/es.json";
import langEt from "./lang/et.json";
import langFr from "./lang/fr.json"; import langFr from "./lang/fr.json";
import langGa from "./lang/ga.json"; import langGa from "./lang/ga.json";
import langId from "./lang/id.json"; import langId from "./lang/id.json";
@@ -19,6 +20,7 @@ import langVi from "./lang/vi.json";
import langZh from "./lang/zh.json"; import langZh from "./lang/zh.json";
import langTr from "./lang/tr.json"; import langTr from "./lang/tr.json";
import langHu from "./lang/hu.json"; import langHu from "./lang/hu.json";
import langNo from "./lang/no.json";
import langList from "./lang/lang-list.json"; import langList from "./lang/lang-list.json";
// first item of each array should be the language code, // first item of each array should be the language code,
@@ -28,6 +30,7 @@ const localeOptions = [
["en", "en-US", langEn], ["en", "en-US", langEn],
["de", "de-DE", langDe], ["de", "de-DE", langDe],
["es", "es-ES", langEs], ["es", "es-ES", langEs],
["et", "et-EE", langEt],
["pt", "pt-PT", langPt], ["pt", "pt-PT", langPt],
["fr", "fr-FR", langFr], ["fr", "fr-FR", langFr],
["ga", "ga-IE", langGa], ["ga", "ga-IE", langGa],
@@ -45,6 +48,7 @@ const localeOptions = [
["id", "id-ID", langId], ["id", "id-ID", langId],
["tr", "tr-TR", langTr], ["tr", "tr-TR", langTr],
["hu", "hu-HU", langHu], ["hu", "hu-HU", langHu],
["no", "no-NO", langNo],
]; ];
const loadMessages = (locale?: string): typeof langList & typeof langEn => { const loadMessages = (locale?: string): typeof langList & typeof langEn => {

View File

@@ -0,0 +1,7 @@
## Mis on juurdepääsuloend?
Ligipääsuloendid pakuvad konkreetsete klientide IP-aadresside musta või valget nimekirja koos puhverserverite autentimisega põhilise HTTP-autentimise kaudu.
Saate ühe juurdepääsuloendi jaoks konfigureerida mitu kliendireeglit, kasutajanime ja parooli ning seejärel rakendada neid ühele või mitmele _puhverserverile_.
See on kõige kasulikum edastatud veebiteenuste puhul, millel pole sisseehitatud autentimismehhanisme või kui soovite kaitsta tundmatute klientide eest.

View File

@@ -0,0 +1,26 @@
## Sertifikaatide abi
### HTTP-sertifikaat
HTTP-valideeritud sertifikaat tähendab, et Let's Encrypti serverid
proovivad teie domeenidega ühendust luua HTTP (mitte HTTPS!) kaudu ja kui see õnnestub,
väljastavad nad teile sertifikaadi.
Selle meetodi jaoks peate oma domeeni(de) jaoks looma _Proxy Host_, millele pääseb ligi HTTP kaudu ja mis osutab sellele Nginxi installile. Pärast sertifikaadi väljastamist saate muuta _Proxy Host_'i, et seda sertifikaati ka HTTPS
ühenduste jaoks kasutada. Sertifikaadi uuendamiseks tuleb aga _Proxy Host_ ikkagi HTTP-juurdepääsu jaoks konfigureerida.
See protsess _ei_ toeta metamärke kasutavaid domeene.
### DNS-sertifikaat
DNS-i poolt valideeritud sertifikaadi saamiseks peate kasutama DNS-pakkuja pistikprogrammi. Seda DNS-teenuse pakkujat kasutatakse teie domeenis ajutiste kirjete loomiseks ja seejärel pärib Let's
Encrypt nende kirjete kohta päringu, et veenduda, et olete omanik, ja kui see õnnestub, väljastavad nad teile sertifikaadi.
Selle tüüpi sertifikaadi taotlemiseks ei ole vaja luua _Proxy Host_'i. Samuti ei pea teie _Proxy Host_ olema HTTP-juurdepääsu jaoks konfigureeritud.
See protsess _toetab_ metamärke kasutavaid domeene.
### Kohandatud sertifikaat
Kasutage seda valikut oma SSL-sertifikaadi üleslaadimiseks, mille on esitanud teie enda sertifitseerimisasutus.

View File

@@ -0,0 +1,9 @@
## Mis on 404 host?
404 host on lihtsalt hosti seadistus, mis kuvab 404 lehte.
See võib olla kasulik, kui teie domeen on otsingumootorites loetletud ja soovite
esitada kenama vealehe või konkreetselt otsingu indekseerijatele öelda, et
domeenilehed enam ei eksisteeri.
Selle hosti teine eelis on selle külastatavuste logide jälgimine ja suunajate vaatamine.

View File

@@ -0,0 +1,7 @@
## Mis on puhverserver?
Puhverserver on veebiteenuse sissetuleva andmevoo lõpp-punkt, mida soovite edastada.
See pakub valikulist SSL-i lõpetamist teie teenusele, millel ei pruugi olla sisseehitatud SSL-tuge.
Puhverserverid on Nginxi puhverserveri halduri kõige levinum kasutusala.

View File

@@ -0,0 +1,5 @@
## Mis on ümbersuunamishost?
Ümbersuunamishost suunab sissetuleva domeeni päringud ümber ja suunab vaataja teisele domeenile.
Kõige levinum põhjus seda tüüpi hosti kasutamiseks on see, kui teie veebisaidi domeenid muutuvad, kuid otsingumootori või suunaja lingid osutavad endiselt vanale domeenile.

View File

@@ -0,0 +1,5 @@
## Mis on voog?
Nginxi suhteliselt uus funktsioon, voog, edastab TCP/UDP liiklust otse võrgus olevale teisele arvutile.
Kui sul on mänguserverid, FTP- või SSH-serverid, võib see kasuks tulla.

View File

@@ -0,0 +1,6 @@
export * as AccessLists from "./AccessLists.md";
export * as Certificates from "./Certificates.md";
export * as DeadHosts from "./DeadHosts.md";
export * as ProxyHosts from "./ProxyHosts.md";
export * as RedirectionHosts from "./RedirectionHosts.md";
export * as Streams from "./Streams.md";

View File

@@ -3,6 +3,7 @@ import * as de from "./de/index";
import * as pt from "./pt/index"; import * as pt from "./pt/index";
import * as en from "./en/index"; import * as en from "./en/index";
import * as es from "./es/index"; import * as es from "./es/index";
import * as et from "./et/index";
import * as fr from "./fr/index"; import * as fr from "./fr/index";
import * as ga from "./ga/index"; import * as ga from "./ga/index";
import * as id from "./id/index"; import * as id from "./id/index";
@@ -19,7 +20,7 @@ import * as zh from "./zh/index";
import * as tr from "./tr/index"; import * as tr from "./tr/index";
import * as hu from "./hu/index"; import * as hu from "./hu/index";
const items: any = { en, de, pt, es, ja, sk, cs, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr, hu }; const items: any = { en, de, pt, es, et, ja, sk, cs, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr, hu };
const fallbackLang = "en"; const fallbackLang = "en";

View File

@@ -0,0 +1,7 @@
## Hva er en tilgangsliste?
Tilgangslister gir en svarteliste eller hviteliste over spesifikke klientIPadresser, sammen med autentisering for `Proxyhosts` via Basic HTTPautentisering.
Du kan konfigurere flere klientregler, brukernavn og passord for én tilgangsliste og deretter bruke denne på én eller flere `Proxyhosts`.
Dette er spesielt nyttig for videresendte webtjenester som ikke har innebygd autentisering, eller når du ønsker å beskytte mot ukjente klienter.

View File

@@ -0,0 +1,29 @@
## Hjelp om sertifikater
### HTTPsertifikat
Et HTTPvalidert sertifikat betyr at Let's Encryptserverne vil forsøke å nå
domenene dine over HTTP (ikke HTTPS!) og hvis det lykkes, vil de utstede sertifikatet.
For denne metoden må du ha en `Proxyhost` opprettet for domenet/domenene dine som
er tilgjengelig over HTTP og peker til denne Nginxinstallasjonen. Etter at et sertifikat
er utstedt, kan du endre `Proxyhost` til også å bruke dette sertifikatet for HTTPStilkoblinger.
Proxyhosten må imidlertid fortsatt være konfigurert for HTTPtilgang for at sertifikatet skal kunne fornyes.
Denne prosessen _støtter ikke_ wildcarddomener.
### DNSsertifikat
Et DNSvalidert sertifikat krever at du bruker en DNSleverandørplugin. Denne leverandøren
vil opprette midlertidige DNSposter på domenet ditt, og Let's Encrypt vil deretter spørre
disse postene for å bekrefte at du eier domenet. Hvis valideringen lykkes, utstedes sertifikatet.
Du trenger ikke å ha en `Proxyhost` opprettet før du ber om denne typen sertifikat. Du trenger heller
ikke at `Proxyhost` er konfigurert for HTTPtilgang.
Denne prosessen _støtter_ wildcarddomener.
### Egendefinert sertifikat
Bruk dette alternativet for å laste opp ditt eget SSLsertifikat, levert av din
egen sertifikatmyndighet (CA).

View File

@@ -0,0 +1,10 @@
## Hva er en 404host?
En 404host er enkelt og greit en hostoppsett som viser en 404side.
Dette kan være nyttig når domenet ditt er oppført i søkemotorer og du ønsker å
vise en penere feilmelding, eller for å fortelle søkeindekser at sidene på domenet
ikke lenger eksisterer.
En annen fordel med å ha denne hosten er å kunne spore treff i loggene og
se hvilke henvisere som kommer til den.

View File

@@ -0,0 +1,7 @@
## Hva er en Proxyhost?
En Proxyhost er inngangspunktet (innkommende endepunkt) for en webtjeneste du ønsker å videresende.
Den tilbyr valgfri SSLterminering for tjenesten din hvis tjenesten ikke har innebygd støtte for SSL.
Proxyhosts er den vanligste bruken av Nginx Proxy Manager.

View File

@@ -0,0 +1,7 @@
## Hva er en omdirigeringshost?
En omdirigeringshost omdirigerer forespørsler fra det innkommende domenet og videresender
brukeren til et annet domene.
Den vanligste årsaken til å bruke denne typen host er når nettstedet ditt har byttet
domene, men søkemotorer eller henvisningslenker fortsatt peker til det gamle domenet.

View File

@@ -0,0 +1,6 @@
## Hva er en Stream?
En relativt ny funksjon i Nginx. En Stream brukes til å videresende TCP/UDPtrafikk
direkte til en annen maskin i nettverket.
Dette er nyttig hvis du kjører spillservere, FTP eller SSHservere.

View File

@@ -0,0 +1,6 @@
export * as AccessLists from "./AccessLists.md";
export * as Certificates from "./Certificates.md";
export * as DeadHosts from "./DeadHosts.md";
export * as ProxyHosts from "./ProxyHosts.md";
export * as RedirectionHosts from "./RedirectionHosts.md";
export * as Streams from "./Streams.md";

View File

@@ -0,0 +1,776 @@
{
"2fa.backup-codes-remaining": {
"defaultMessage": "Backup codes remaining: {count}"
},
"2fa.backup-warning": {
"defaultMessage": "Save these backup codes in a secure place. Each code can only be used once."
},
"2fa.disable": {
"defaultMessage": "Disable Two-Factor Authentication"
},
"2fa.disable-confirm": {
"defaultMessage": "Disable 2FA"
},
"2fa.disable-warning": {
"defaultMessage": "Disabling two-factor authentication will make your account less secure."
},
"2fa.disabled": {
"defaultMessage": "Disabled"
},
"2fa.done": {
"defaultMessage": "I have saved my backup codes"
},
"2fa.enable": {
"defaultMessage": "Enable Two-Factor Authentication"
},
"2fa.enabled": {
"defaultMessage": "Enabled"
},
"2fa.enter-code": {
"defaultMessage": "Enter verification code"
},
"2fa.enter-code-disable": {
"defaultMessage": "Enter verification code to disable"
},
"2fa.regenerate": {
"defaultMessage": "Regenerate"
},
"2fa.regenerate-backup": {
"defaultMessage": "Regenerate Backup Codes"
},
"2fa.regenerate-instructions": {
"defaultMessage": "Enter a verification code to generate new backup codes. Your old codes will be invalidated."
},
"2fa.secret-key": {
"defaultMessage": "Secret Key"
},
"2fa.setup-instructions": {
"defaultMessage": "Scan this QR code with your authenticator app, or enter the secret manually."
},
"2fa.status": {
"defaultMessage": "Status"
},
"2fa.title": {
"defaultMessage": "Two-Factor Authentication"
},
"2fa.verify-enable": {
"defaultMessage": "Verify and Enable"
},
"access-list": {
"defaultMessage": "Access List"
},
"access-list.access-count": {
"defaultMessage": "{count} {count, plural, one {Rule} other {Rules}}"
},
"access-list.auth-count": {
"defaultMessage": "{count} {count, plural, one {User} other {Users}}"
},
"access-list.help-rules-last": {
"defaultMessage": "When at least 1 rule exists, this deny all rule will be added last"
},
"access-list.help.rules-order": {
"defaultMessage": "Note that the allow and deny directives will be applied in the order they are defined."
},
"access-list.pass-auth": {
"defaultMessage": "Pass Auth to Upstream"
},
"access-list.public": {
"defaultMessage": "Publicly Accessible"
},
"access-list.public.subtitle": {
"defaultMessage": "No basic auth required"
},
"access-list.rule-source.placeholder": {
"defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32"
},
"access-list.satisfy-any": {
"defaultMessage": "Satisfy Any"
},
"access-list.subtitle": {
"defaultMessage": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}"
},
"access-lists": {
"defaultMessage": "Access Lists"
},
"action.add": {
"defaultMessage": "Add"
},
"action.add-location": {
"defaultMessage": "Add Location"
},
"action.allow": {
"defaultMessage": "Allow"
},
"action.close": {
"defaultMessage": "Close"
},
"action.delete": {
"defaultMessage": "Delete"
},
"action.deny": {
"defaultMessage": "Deny"
},
"action.disable": {
"defaultMessage": "Disable"
},
"action.download": {
"defaultMessage": "Download"
},
"action.edit": {
"defaultMessage": "Edit"
},
"action.enable": {
"defaultMessage": "Enable"
},
"action.permissions": {
"defaultMessage": "Permissions"
},
"action.renew": {
"defaultMessage": "Renew"
},
"action.view-details": {
"defaultMessage": "View Details"
},
"auditlogs": {
"defaultMessage": "Audit Logs"
},
"auto": {
"defaultMessage": "Auto"
},
"cancel": {
"defaultMessage": "Cancel"
},
"certificate": {
"defaultMessage": "Certificate"
},
"certificate.custom-certificate": {
"defaultMessage": "Certificate"
},
"certificate.custom-certificate-key": {
"defaultMessage": "Certificate Key"
},
"certificate.custom-intermediate": {
"defaultMessage": "Intermediate Certificate"
},
"certificate.in-use": {
"defaultMessage": "In Use"
},
"certificate.none.subtitle": {
"defaultMessage": "No certificate assigned"
},
"certificate.none.subtitle.for-http": {
"defaultMessage": "This host will not use HTTPS"
},
"certificate.none.title": {
"defaultMessage": "None"
},
"certificate.not-in-use": {
"defaultMessage": "Not Used"
},
"certificate.renew": {
"defaultMessage": "Renew Certificate"
},
"certificates": {
"defaultMessage": "Certificates"
},
"certificates.custom": {
"defaultMessage": "Custom Certificate"
},
"certificates.custom.warning": {
"defaultMessage": "Key files protected with a passphrase are not supported."
},
"certificates.dns.credentials": {
"defaultMessage": "Credentials File Content"
},
"certificates.dns.credentials-note": {
"defaultMessage": "This plugin requires a configuration file containing an API token or other credentials for your provider"
},
"certificates.dns.credentials-warning": {
"defaultMessage": "This data will be stored as plaintext in the database and in a file!"
},
"certificates.dns.propagation-seconds": {
"defaultMessage": "Propagation Seconds"
},
"certificates.dns.propagation-seconds-note": {
"defaultMessage": "Leave empty to use the plugins default value. Number of seconds to wait for DNS propagation."
},
"certificates.dns.provider": {
"defaultMessage": "DNS Provider"
},
"certificates.dns.provider.placeholder": {
"defaultMessage": "Select a Provider..."
},
"certificates.dns.warning": {
"defaultMessage": "This section requires some knowledge about Certbot and its DNS plugins. Please consult the respective plugins documentation."
},
"certificates.http.reachability-404": {
"defaultMessage": "There is a server found at this domain but it does not seem to be Nginx Proxy Manager. Please make sure your domain points to the IP where your NPM instance is running."
},
"certificates.http.reachability-failed-to-check": {
"defaultMessage": "Failed to check the reachability due to a communication error with site24x7.com."
},
"certificates.http.reachability-not-resolved": {
"defaultMessage": "There is no server available at this domain. Please make sure your domain exists and points to the IP where your NPM instance is running and if necessary port 80 is forwarded in your router."
},
"certificates.http.reachability-ok": {
"defaultMessage": "Your server is reachable and creating certificates should be possible."
},
"certificates.http.reachability-other": {
"defaultMessage": "There is a server found at this domain but it returned an unexpected status code {code}. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running."
},
"certificates.http.reachability-wrong-data": {
"defaultMessage": "There is a server found at this domain but it returned an unexpected data. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running."
},
"certificates.http.test-results": {
"defaultMessage": "Test Results"
},
"certificates.http.warning": {
"defaultMessage": "These domains must be already configured to point to this installation."
},
"certificates.key-type": {
"defaultMessage": "Key Type"
},
"certificates.key-type-description": {
"defaultMessage": "RSA is widely compatible, ECDSA is faster and more secure but may not be supported by older systems"
},
"certificates.key-type-ecdsa": {
"defaultMessage": "ECDSA 256"
},
"certificates.key-type-rsa": {
"defaultMessage": "RSA 2048"
},
"certificates.request.subtitle": {
"defaultMessage": "with Let's Encrypt"
},
"certificates.request.title": {
"defaultMessage": "Request a new Certificate"
},
"column.access": {
"defaultMessage": "Access"
},
"column.authorization": {
"defaultMessage": "Authorization"
},
"column.authorizations": {
"defaultMessage": "Authorizations"
},
"column.custom-locations": {
"defaultMessage": "Custom Locations"
},
"column.destination": {
"defaultMessage": "Destination"
},
"column.details": {
"defaultMessage": "Details"
},
"column.email": {
"defaultMessage": "Email"
},
"column.event": {
"defaultMessage": "Event"
},
"column.expires": {
"defaultMessage": "Expires"
},
"column.http-code": {
"defaultMessage": "HTTP Code"
},
"column.incoming-port": {
"defaultMessage": "Incoming Port"
},
"column.name": {
"defaultMessage": "Name"
},
"column.protocol": {
"defaultMessage": "Protocol"
},
"column.provider": {
"defaultMessage": "Provider"
},
"column.roles": {
"defaultMessage": "Roles"
},
"column.rules": {
"defaultMessage": "Rules"
},
"column.satisfy": {
"defaultMessage": "Satisfy"
},
"column.satisfy-all": {
"defaultMessage": "All"
},
"column.satisfy-any": {
"defaultMessage": "Any"
},
"column.scheme": {
"defaultMessage": "Scheme"
},
"column.source": {
"defaultMessage": "Source"
},
"column.ssl": {
"defaultMessage": "SSL"
},
"column.status": {
"defaultMessage": "Status"
},
"created-on": {
"defaultMessage": "Created: {date}"
},
"dashboard": {
"defaultMessage": "Dashboard"
},
"dead-host": {
"defaultMessage": "404 Host"
},
"dead-hosts": {
"defaultMessage": "404 Hosts"
},
"dead-hosts.count": {
"defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}"
},
"disabled": {
"defaultMessage": "Disabled"
},
"domain-names": {
"defaultMessage": "Domain Names"
},
"domain-names.max": {
"defaultMessage": "{count} domain names maximum"
},
"domain-names.placeholder": {
"defaultMessage": "Start typing to add domain..."
},
"domain-names.wildcards-not-permitted": {
"defaultMessage": "Wildcards not permitted for this type"
},
"domain-names.wildcards-not-supported": {
"defaultMessage": "Wildcards not supported for this CA"
},
"domains.advanced": {
"defaultMessage": "Advanced"
},
"domains.force-ssl": {
"defaultMessage": "Force SSL"
},
"domains.hsts-enabled": {
"defaultMessage": "HSTS Enabled"
},
"domains.hsts-subdomains": {
"defaultMessage": "HSTS Sub-domains"
},
"domains.http2-support": {
"defaultMessage": "HTTP/2 Support"
},
"domains.trust-forwarded-proto": {
"defaultMessage": "Trust Upstream Forwarded Proto Headers"
},
"domains.use-dns": {
"defaultMessage": "Use DNS Challenge"
},
"email-address": {
"defaultMessage": "Email address"
},
"empty-search": {
"defaultMessage": "No results found"
},
"empty-subtitle": {
"defaultMessage": "Why don't you create one?"
},
"enabled": {
"defaultMessage": "Enabled"
},
"error.access.at-least-one": {
"defaultMessage": "Either one Authorization or one Access Rule is required"
},
"error.access.duplicate-usernames": {
"defaultMessage": "Authorization Usernames must be unique"
},
"error.invalid-auth": {
"defaultMessage": "Invalid email or password"
},
"error.invalid-domain": {
"defaultMessage": "Invalid domain: {domain}"
},
"error.invalid-email": {
"defaultMessage": "Invalid email address"
},
"error.max-character-length": {
"defaultMessage": "Maximum length is {max} character{max, plural, one {} other {s}}"
},
"error.max-domains": {
"defaultMessage": "Too many domains, max is {max}"
},
"error.maximum": {
"defaultMessage": "Maximum is {max}"
},
"error.min-character-length": {
"defaultMessage": "Minimum length is {min} character{min, plural, one {} other {s}}"
},
"error.minimum": {
"defaultMessage": "Minimum is {min}"
},
"error.passwords-must-match": {
"defaultMessage": "Passwords must match"
},
"error.required": {
"defaultMessage": "This is required"
},
"expires.on": {
"defaultMessage": "Expires: {date}"
},
"footer.github-fork": {
"defaultMessage": "Fork me on Github"
},
"host.flags.block-exploits": {
"defaultMessage": "Block Common Exploits"
},
"host.flags.cache-assets": {
"defaultMessage": "Cache Assets"
},
"host.flags.preserve-path": {
"defaultMessage": "Preserve Path"
},
"host.flags.protocols": {
"defaultMessage": "Protocols"
},
"host.flags.websockets-upgrade": {
"defaultMessage": "Websockets Support"
},
"host.forward-port": {
"defaultMessage": "Forward Port"
},
"host.forward-scheme": {
"defaultMessage": "Scheme"
},
"hosts": {
"defaultMessage": "Hosts"
},
"http-only": {
"defaultMessage": "HTTP Only"
},
"lets-encrypt": {
"defaultMessage": "Let's Encrypt"
},
"lets-encrypt-via-dns": {
"defaultMessage": "Let's Encrypt via DNS"
},
"lets-encrypt-via-http": {
"defaultMessage": "Let's Encrypt via HTTP"
},
"loading": {
"defaultMessage": "Loading…"
},
"login.2fa-code": {
"defaultMessage": "Verification Code"
},
"login.2fa-code-placeholder": {
"defaultMessage": "Enter code"
},
"login.2fa-description": {
"defaultMessage": "Enter the code from your authenticator app"
},
"login.2fa-title": {
"defaultMessage": "Two-Factor Authentication"
},
"login.2fa-verify": {
"defaultMessage": "Verify"
},
"login.title": {
"defaultMessage": "Login to your account"
},
"nginx-config.label": {
"defaultMessage": "Custom Nginx Configuration"
},
"nginx-config.placeholder": {
"defaultMessage": "# Enter your custom Nginx configuration here at your own risk!"
},
"no-permission-error": {
"defaultMessage": "You do not have access to view this."
},
"notfound.action": {
"defaultMessage": "Take me home"
},
"notfound.content": {
"defaultMessage": "We are sorry but the page you are looking for was not found"
},
"notfound.title": {
"defaultMessage": "Oops… You just found an error page"
},
"notification.error": {
"defaultMessage": "Error"
},
"notification.object-deleted": {
"defaultMessage": "{object} has been deleted"
},
"notification.object-disabled": {
"defaultMessage": "{object} has been disabled"
},
"notification.object-enabled": {
"defaultMessage": "{object} has been enabled"
},
"notification.object-renewed": {
"defaultMessage": "{object} has been renewed"
},
"notification.object-saved": {
"defaultMessage": "{object} has been saved"
},
"notification.success": {
"defaultMessage": "Success"
},
"object.actions-title": {
"defaultMessage": "{object} #{id}"
},
"object.add": {
"defaultMessage": "Add {object}"
},
"object.delete": {
"defaultMessage": "Delete {object}"
},
"object.delete.content": {
"defaultMessage": "Are you sure you want to delete this {object}?"
},
"object.edit": {
"defaultMessage": "Edit {object}"
},
"object.empty": {
"defaultMessage": "There are no {objects}"
},
"object.event.created": {
"defaultMessage": "Created {object}"
},
"object.event.deleted": {
"defaultMessage": "Deleted {object}"
},
"object.event.disabled": {
"defaultMessage": "Disabled {object}"
},
"object.event.enabled": {
"defaultMessage": "Enabled {object}"
},
"object.event.renewed": {
"defaultMessage": "Renewed {object}"
},
"object.event.updated": {
"defaultMessage": "Updated {object}"
},
"offline": {
"defaultMessage": "Offline"
},
"online": {
"defaultMessage": "Online"
},
"options": {
"defaultMessage": "Options"
},
"password": {
"defaultMessage": "Password"
},
"password.generate": {
"defaultMessage": "Generate random password"
},
"password.hide": {
"defaultMessage": "Hide Password"
},
"password.show": {
"defaultMessage": "Show Password"
},
"permissions.hidden": {
"defaultMessage": "Hidden"
},
"permissions.manage": {
"defaultMessage": "Manage"
},
"permissions.view": {
"defaultMessage": "View Only"
},
"permissions.visibility.all": {
"defaultMessage": "All Items"
},
"permissions.visibility.title": {
"defaultMessage": "Item Visibility"
},
"permissions.visibility.user": {
"defaultMessage": "Created Items Only"
},
"proxy-host": {
"defaultMessage": "Proxy Host"
},
"proxy-host.forward-host": {
"defaultMessage": "Forward Hostname / IP"
},
"proxy-hosts": {
"defaultMessage": "Proxy Hosts"
},
"proxy-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}"
},
"public": {
"defaultMessage": "Public"
},
"redirection-host": {
"defaultMessage": "Redirection Host"
},
"redirection-host.forward-domain": {
"defaultMessage": "Forward Domain"
},
"redirection-host.forward-http-code": {
"defaultMessage": "HTTP Code"
},
"redirection-hosts": {
"defaultMessage": "Redirection Hosts"
},
"redirection-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}"
},
"redirection-hosts.http-code.300": {
"defaultMessage": "300 Multiple Choices"
},
"redirection-hosts.http-code.301": {
"defaultMessage": "301 Moved permanently"
},
"redirection-hosts.http-code.302": {
"defaultMessage": "302 Moved temporarily"
},
"redirection-hosts.http-code.303": {
"defaultMessage": "303 See other"
},
"redirection-hosts.http-code.307": {
"defaultMessage": "307 Temporary redirect"
},
"redirection-hosts.http-code.308": {
"defaultMessage": "308 Permanent redirect"
},
"role.admin": {
"defaultMessage": "Administrator"
},
"role.standard-user": {
"defaultMessage": "Standard User"
},
"save": {
"defaultMessage": "Save"
},
"setting": {
"defaultMessage": "Setting"
},
"settings": {
"defaultMessage": "Settings"
},
"settings.default-site": {
"defaultMessage": "Default Site"
},
"settings.default-site.404": {
"defaultMessage": "404 Page"
},
"settings.default-site.444": {
"defaultMessage": "No Response (444)"
},
"settings.default-site.congratulations": {
"defaultMessage": "Congratulations Page"
},
"settings.default-site.description": {
"defaultMessage": "What to show when Nginx is hit with an unknown Host"
},
"settings.default-site.html": {
"defaultMessage": "Custom HTML"
},
"settings.default-site.html.placeholder": {
"defaultMessage": "<!-- Enter your custom HTML content here -->"
},
"settings.default-site.redirect": {
"defaultMessage": "Redirect"
},
"setup.preamble": {
"defaultMessage": "Get started by creating your admin account."
},
"setup.title": {
"defaultMessage": "Welcome!"
},
"sign-in": {
"defaultMessage": "Sign in"
},
"ssl-certificate": {
"defaultMessage": "SSL Certificate"
},
"stream": {
"defaultMessage": "Stream"
},
"stream.forward-host": {
"defaultMessage": "Forward Host"
},
"stream.forward-host.placeholder": {
"defaultMessage": "example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888"
},
"stream.incoming-port": {
"defaultMessage": "Incoming Port"
},
"streams": {
"defaultMessage": "Streams"
},
"streams.count": {
"defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}"
},
"streams.tcp": {
"defaultMessage": "TCP"
},
"streams.udp": {
"defaultMessage": "UDP"
},
"test": {
"defaultMessage": "Test"
},
"update-available": {
"defaultMessage": "Update Available: {latestVersion}"
},
"user": {
"defaultMessage": "User"
},
"user.change-password": {
"defaultMessage": "Change Password"
},
"user.confirm-password": {
"defaultMessage": "Confirm Password"
},
"user.current-password": {
"defaultMessage": "Current Password"
},
"user.edit-profile": {
"defaultMessage": "Edit Profile"
},
"user.full-name": {
"defaultMessage": "Full Name"
},
"user.login-as": {
"defaultMessage": "Sign in as {name}"
},
"user.logout": {
"defaultMessage": "Logout"
},
"user.new-password": {
"defaultMessage": "New Password"
},
"user.nickname": {
"defaultMessage": "Nickname"
},
"user.set-password": {
"defaultMessage": "Set Password"
},
"user.set-permissions": {
"defaultMessage": "Set Permissions for {name}"
},
"user.switch-dark": {
"defaultMessage": "Switch to Dark mode"
},
"user.switch-light": {
"defaultMessage": "Switch to Light mode"
},
"user.two-factor": {
"defaultMessage": "Two-Factor Auth"
},
"username": {
"defaultMessage": "Username"
},
"users": {
"defaultMessage": "Users"
}
}

View File

@@ -5,6 +5,9 @@
"locale-es-ES": { "locale-es-ES": {
"defaultMessage": "Español" "defaultMessage": "Español"
}, },
"locale-et-EE": {
"defaultMessage": "Eesti"
},
"locale-ie-GA": { "locale-ie-GA": {
"defaultMessage": "Gaeilge" "defaultMessage": "Gaeilge"
}, },
@@ -58,5 +61,8 @@
}, },
"locale-hu-HU": { "locale-hu-HU": {
"defaultMessage": "Magyar" "defaultMessage": "Magyar"
},
"locale-no-NO": {
"defaultMessage": "Norsk"
} }
} }

View File

@@ -0,0 +1,776 @@
{
"2fa.backup-codes-remaining": {
"defaultMessage": "Gjenstående backup-koder: {count}"
},
"2fa.backup-warning": {
"defaultMessage": "Lagre disse backup-kodene på et sikkert sted. Hver kode kan kun brukes én gang."
},
"2fa.disable": {
"defaultMessage": "Deaktiver tofaktorautentisering"
},
"2fa.disable-confirm": {
"defaultMessage": "Deaktiver 2FA"
},
"2fa.disable-warning": {
"defaultMessage": "Å deaktivere tofaktorautentisering vil gjøre kontoen din mindre sikker."
},
"2fa.disabled": {
"defaultMessage": "Deaktivert"
},
"2fa.done": {
"defaultMessage": "Jeg har lagret backup-kodene mine"
},
"2fa.enable": {
"defaultMessage": "Aktiver tofaktorautentisering"
},
"2fa.enabled": {
"defaultMessage": "Aktivert"
},
"2fa.enter-code": {
"defaultMessage": "Angi verifiseringskode"
},
"2fa.enter-code-disable": {
"defaultMessage": "Angi verifiseringskode for å deaktivere"
},
"2fa.regenerate": {
"defaultMessage": "Regenerer"
},
"2fa.regenerate-backup": {
"defaultMessage": "Generer nye backup-koder"
},
"2fa.regenerate-instructions": {
"defaultMessage": "Angi en verifiseringskode for å generere nye backup-koder. Dine gamle koder vil bli ugyldige."
},
"2fa.secret-key": {
"defaultMessage": "Hemmelig nøkkel"
},
"2fa.setup-instructions": {
"defaultMessage": "Skann denne QR-koden med autentiseringsappen din, eller skriv inn nøkkelen manuelt."
},
"2fa.status": {
"defaultMessage": "Status"
},
"2fa.title": {
"defaultMessage": "Tofaktorautentisering"
},
"2fa.verify-enable": {
"defaultMessage": "Verifiser og aktiver"
},
"access-list": {
"defaultMessage": "Tilgangsliste"
},
"access-list.access-count": {
"defaultMessage": "{count} {count, plural, one {regel} other {regler}}"
},
"access-list.auth-count": {
"defaultMessage": "{count} {count, plural, one {bruker} other {brukere}}"
},
"access-list.help-rules-last": {
"defaultMessage": "Når minst én regel finnes, legges denne \"deny all\"-regelen til sist"
},
"access-list.help.rules-order": {
"defaultMessage": "Merk at tillat- og nekt-direktivene brukes i den rekkefølgen de er definert."
},
"access-list.pass-auth": {
"defaultMessage": "Send autentisering til upstream"
},
"access-list.public": {
"defaultMessage": "Offentlig tilgjengelig"
},
"access-list.public.subtitle": {
"defaultMessage": "Ingen grunnleggende autentisering kreves"
},
"access-list.rule-source.placeholder": {
"defaultMessage": "192.168.1.100 eller 192.168.1.0/24 eller 2001:0db8::/32"
},
"access-list.satisfy-any": {
"defaultMessage": "Oppfyll en av kravene"
},
"access-list.subtitle": {
"defaultMessage": "{users} {users, plural, one {bruker} other {brukere}}, {rules} {rules, plural, one {regel} other {regler}} - Opprettet: {date}"
},
"access-lists": {
"defaultMessage": "Tilgangslister"
},
"action.add": {
"defaultMessage": "Legg til"
},
"action.add-location": {
"defaultMessage": "Legg til plassering"
},
"action.allow": {
"defaultMessage": "Tillat"
},
"action.close": {
"defaultMessage": "Lukk"
},
"action.delete": {
"defaultMessage": "Slett"
},
"action.deny": {
"defaultMessage": "Nekt"
},
"action.disable": {
"defaultMessage": "Deaktiver"
},
"action.download": {
"defaultMessage": "Last ned"
},
"action.edit": {
"defaultMessage": "Rediger"
},
"action.enable": {
"defaultMessage": "Aktiver"
},
"action.permissions": {
"defaultMessage": "Tillatelser"
},
"action.renew": {
"defaultMessage": "Forny"
},
"action.view-details": {
"defaultMessage": "Vis detaljer"
},
"auditlogs": {
"defaultMessage": "Revisjonslogger"
},
"auto": {
"defaultMessage": "Auto"
},
"cancel": {
"defaultMessage": "Avbryt"
},
"certificate": {
"defaultMessage": "Sertifikat"
},
"certificate.custom-certificate": {
"defaultMessage": "Egendefinert Sertifikat"
},
"certificate.custom-certificate-key": {
"defaultMessage": "Egendefinert Sertifikat nøkkel"
},
"certificate.custom-intermediate": {
"defaultMessage": "Egendefinert Intermediate Sertifikat"
},
"certificate.in-use": {
"defaultMessage": "I bruk"
},
"certificate.none.subtitle": {
"defaultMessage": "Ingen sertifikat tildelt"
},
"certificate.none.subtitle.for-http": {
"defaultMessage": "Denne verten vil ikke bruke HTTPS"
},
"certificate.none.title": {
"defaultMessage": "Ingen"
},
"certificate.not-in-use": {
"defaultMessage": "Ikke i bruk"
},
"certificate.renew": {
"defaultMessage": "Forny sertifikat"
},
"certificates": {
"defaultMessage": "Sertifikater"
},
"certificates.custom": {
"defaultMessage": "Egendefinert Sertifikat"
},
"certificates.custom.warning": {
"defaultMessage": "Nøkkelfiler beskyttet med passordfrase støttes ikke."
},
"certificates.dns.credentials": {
"defaultMessage": "Innhold i legitimasjonsfil"
},
"certificates.dns.credentials-note": {
"defaultMessage": "Denne pluginen krever en konfigurasjonsfil som inneholder en API-token eller andre legitimasjoner for leverandøren din"
},
"certificates.dns.credentials-warning": {
"defaultMessage": "Disse dataene vil bli lagret som ren tekst i databasen og i en fil!"
},
"certificates.dns.propagation-seconds": {
"defaultMessage": "Propageringsekunder"
},
"certificates.dns.propagation-seconds-note": {
"defaultMessage": "La stå tomt for å bruke pluginens standardverdi. Antall sekunder å vente på DNS-propagasjon."
},
"certificates.dns.provider": {
"defaultMessage": "DNS-leverandør"
},
"certificates.dns.provider.placeholder": {
"defaultMessage": "Velg en leverandør..."
},
"certificates.dns.warning": {
"defaultMessage": "Denne seksjonen krever noe kunnskap om Certbot og dets DNS-plugins. Vennligst konsulter dokumentasjonen for de respektive pluginene."
},
"certificates.http.reachability-404": {
"defaultMessage": "Det finnes en server på dette domenet, men det ser ikke ut til å være Nginx Proxy Manager. Vennligst sørg for at domenet ditt peker til IP-en der NPM-instansen kjører."
},
"certificates.http.reachability-failed-to-check": {
"defaultMessage": "Kunne ikke sjekke tilgjengeligheten på grunn av en kommunikasjonsfeil med site24x7.com."
},
"certificates.http.reachability-not-resolved": {
"defaultMessage": "Det finnes ingen server tilgjengelig på dette domenet. Vennligst sørg for at domenet ditt eksisterer og peker til IP-en der NPM-instansen kjører, og om nødvendig at port 80 er videresendt i ruteren din."
},
"certificates.http.reachability-ok": {
"defaultMessage": "Serveren din er tilgjengelig, og det bør være mulig å opprette sertifikater."
},
"certificates.http.reachability-other": {
"defaultMessage": "Det finnes en server på dette domenet, men den returnerte en uventet statuskode {code}. Er det NPM-serveren? Vennligst sørg for at domenet ditt peker til IP-en der NPM-instansen kjører."
},
"certificates.http.reachability-wrong-data": {
"defaultMessage": "Det finnes en server på dette domenet, men den returnerte uventet data. Er det NPM-serveren? Vennligst sørg for at domenet ditt peker til IP-en der NPM-instansen kjører."
},
"certificates.http.test-results": {
"defaultMessage": "Testresultater"
},
"certificates.http.warning": {
"defaultMessage": "Disse domenene må allerede være konfigurert til å peke til denne installasjonen."
},
"certificates.key-type": {
"defaultMessage": "Nøkkeltype"
},
"certificates.key-type-description": {
"defaultMessage": "RSA er bredt kompatibel, ECDSA er raskere og mer sikker, men støttes kanskje ikke av eldre systemer"
},
"certificates.key-type-ecdsa": {
"defaultMessage": "ECDSA 256"
},
"certificates.key-type-rsa": {
"defaultMessage": "RSA 2048"
},
"certificates.request.subtitle": {
"defaultMessage": "med Let's Encrypt"
},
"certificates.request.title": {
"defaultMessage": "Be om et nytt sertifikat"
},
"column.access": {
"defaultMessage": "Tilgang"
},
"column.authorization": {
"defaultMessage": "Autorisasjon"
},
"column.authorizations": {
"defaultMessage": "Autorisasjoner"
},
"column.custom-locations": {
"defaultMessage": "Egendefinerte plasseringer"
},
"column.destination": {
"defaultMessage": "Destinasjon"
},
"column.details": {
"defaultMessage": "Detaljer"
},
"column.email": {
"defaultMessage": "E-post"
},
"column.event": {
"defaultMessage": "Hendelse"
},
"column.expires": {
"defaultMessage": "Utløper"
},
"column.http-code": {
"defaultMessage": "HTTP-kode"
},
"column.incoming-port": {
"defaultMessage": "Innkommende port"
},
"column.name": {
"defaultMessage": "Navn"
},
"column.protocol": {
"defaultMessage": "Protokoll"
},
"column.provider": {
"defaultMessage": "Leverandør"
},
"column.roles": {
"defaultMessage": "Roller"
},
"column.rules": {
"defaultMessage": "Regler"
},
"column.satisfy": {
"defaultMessage": "Oppfylle"
},
"column.satisfy-all": {
"defaultMessage": "Alle"
},
"column.satisfy-any": {
"defaultMessage": "Noen"
},
"column.scheme": {
"defaultMessage": "Skjema"
},
"column.source": {
"defaultMessage": "Kilde"
},
"column.ssl": {
"defaultMessage": "SSL"
},
"column.status": {
"defaultMessage": "Status"
},
"created-on": {
"defaultMessage": "Opprettet: {date}"
},
"dashboard": {
"defaultMessage": "Dashboard"
},
"dead-host": {
"defaultMessage": "404 Tjener ikke funnet"
},
"dead-hosts": {
"defaultMessage": "404 Tjenere ikke funnet"
},
"dead-hosts.count": {
"defaultMessage": "{count} {count, plural, one {404 Tjener} other {404 Tjenere}}"
},
"disabled": {
"defaultMessage": "Deaktivert"
},
"domain-names": {
"defaultMessage": "Domener"
},
"domain-names.max": {
"defaultMessage": "{count} domener maksimum"
},
"domain-names.placeholder": {
"defaultMessage": "Begynn å skrive for å legge til domene..."
},
"domain-names.wildcards-not-permitted": {
"defaultMessage": "Wildcards er ikke tillatt for denne typen"
},
"domain-names.wildcards-not-supported": {
"defaultMessage": "Wildcards støttes ikke for denne CA-en"
},
"domains.advanced": {
"defaultMessage": "Avansert"
},
"domains.force-ssl": {
"defaultMessage": "Tving SSL"
},
"domains.hsts-enabled": {
"defaultMessage": "HSTS Aktivert"
},
"domains.hsts-subdomains": {
"defaultMessage": "HSTS Underdomener"
},
"domains.http2-support": {
"defaultMessage": "HTTP/2 Støtte"
},
"domains.trust-forwarded-proto": {
"defaultMessage": "Stol på Upstream Forwarded Proto Headers"
},
"domains.use-dns": {
"defaultMessage": "Bruk DNS Utfordring"
},
"email-address": {
"defaultMessage": "E-postadresse"
},
"empty-search": {
"defaultMessage": "Ingen resultater funnet"
},
"empty-subtitle": {
"defaultMessage": "Hvorfor ikke opprette en?"
},
"enabled": {
"defaultMessage": "Aktivert"
},
"error.access.at-least-one": {
"defaultMessage": "Enten en autorisasjon eller en tilgangsregel er påkrevd"
},
"error.access.duplicate-usernames": {
"defaultMessage": "Autorisasjonsbrukernavn må være unike"
},
"error.invalid-auth": {
"defaultMessage": "Ugyldig e-post eller passord"
},
"error.invalid-domain": {
"defaultMessage": "Ugyldig domene: {domain}"
},
"error.invalid-email": {
"defaultMessage": "Ugyldig e-postadresse"
},
"error.max-character-length": {
"defaultMessage": "Maksimal lengde er {max} tegn"
},
"error.max-domains": {
"defaultMessage": "For mange domener, maks er {max}"
},
"error.maximum": {
"defaultMessage": "Maksimum er {max}"
},
"error.min-character-length": {
"defaultMessage": "Minimum lengde er {min} tegn"
},
"error.minimum": {
"defaultMessage": "Minimum er {min}"
},
"error.passwords-must-match": {
"defaultMessage": "Passordene må være like"
},
"error.required": {
"defaultMessage": "Dette er påkrevd"
},
"expires.on": {
"defaultMessage": "Utløper: {date}"
},
"footer.github-fork": {
"defaultMessage": "Fork meg på Github"
},
"host.flags.block-exploits": {
"defaultMessage": "Blokker vanlige utnyttelser"
},
"host.flags.cache-assets": {
"defaultMessage": "Mellomlagre ressurser"
},
"host.flags.preserve-path": {
"defaultMessage": "Behold sti"
},
"host.flags.protocols": {
"defaultMessage": "Protokoller"
},
"host.flags.websockets-upgrade": {
"defaultMessage": "Websockets-støtte"
},
"host.forward-port": {
"defaultMessage": "Viderekoble Port"
},
"host.forward-scheme": {
"defaultMessage": "Skjema"
},
"hosts": {
"defaultMessage": "Vertsnavn"
},
"http-only": {
"defaultMessage": "Kun HTTP"
},
"lets-encrypt": {
"defaultMessage": "Let's Encrypt"
},
"lets-encrypt-via-dns": {
"defaultMessage": "Let's Encrypt via DNS"
},
"lets-encrypt-via-http": {
"defaultMessage": "Let's Encrypt via HTTP"
},
"loading": {
"defaultMessage": "Laster…"
},
"login.2fa-code": {
"defaultMessage": "Verifikasjonskode"
},
"login.2fa-code-placeholder": {
"defaultMessage": "Skriv inn kode"
},
"login.2fa-description": {
"defaultMessage": "Skriv inn koden fra autentiseringsappen din"
},
"login.2fa-title": {
"defaultMessage": "To-faktorautentisering"
},
"login.2fa-verify": {
"defaultMessage": "Verifiser"
},
"login.title": {
"defaultMessage": "Logg på kontoen din"
},
"nginx-config.label": {
"defaultMessage": "Egendefinert Nginx-konfigurasjon"
},
"nginx-config.placeholder": {
"defaultMessage": "# Skriv inn din egendefinerte Nginx-konfigurasjon her på egen risiko!"
},
"no-permission-error": {
"defaultMessage": "Du har ikke tilgang til å se dette."
},
"notfound.action": {
"defaultMessage": "Ta meg hjem"
},
"notfound.content": {
"defaultMessage": "Beklager, siden du leter etter ble ikke funnet"
},
"notfound.title": {
"defaultMessage": "Oops… Du har nettopp funnet en feilsiden"
},
"notification.error": {
"defaultMessage": "Feil"
},
"notification.object-deleted": {
"defaultMessage": "{object} har blitt slettet"
},
"notification.object-disabled": {
"defaultMessage": "{object} har blitt deaktivert"
},
"notification.object-enabled": {
"defaultMessage": "{object} har blitt aktivert"
},
"notification.object-renewed": {
"defaultMessage": "{object} har blitt fornyet"
},
"notification.object-saved": {
"defaultMessage": "{object} har blitt lagret"
},
"notification.success": {
"defaultMessage": "Suksess"
},
"object.actions-title": {
"defaultMessage": "{object} #{id}"
},
"object.add": {
"defaultMessage": "Legg til {object}"
},
"object.delete": {
"defaultMessage": "Slett {object}"
},
"object.delete.content": {
"defaultMessage": "Er du sikker på at du vil slette dette {object}?"
},
"object.edit": {
"defaultMessage": "Rediger {object}"
},
"object.empty": {
"defaultMessage": "Det finnes ingen {objects}"
},
"object.event.created": {
"defaultMessage": "Opprettet {object}"
},
"object.event.deleted": {
"defaultMessage": "Slettet {object}"
},
"object.event.disabled": {
"defaultMessage": "Deaktivert {object}"
},
"object.event.enabled": {
"defaultMessage": "Aktivert {object}"
},
"object.event.renewed": {
"defaultMessage": "Fornyet {object}"
},
"object.event.updated": {
"defaultMessage": "Oppdatert {object}"
},
"offline": {
"defaultMessage": "Utilgjengelig"
},
"online": {
"defaultMessage": "Tilgjengelig"
},
"options": {
"defaultMessage": "Alternativer"
},
"password": {
"defaultMessage": "Passord"
},
"password.generate": {
"defaultMessage": "Generer tilfeldig passord"
},
"password.hide": {
"defaultMessage": "Skjul passord"
},
"password.show": {
"defaultMessage": "Vis passord"
},
"permissions.hidden": {
"defaultMessage": "Skjult"
},
"permissions.manage": {
"defaultMessage": "Administrer"
},
"permissions.view": {
"defaultMessage": "Kun visning"
},
"permissions.visibility.all": {
"defaultMessage": "Alle elementer"
},
"permissions.visibility.title": {
"defaultMessage": "Element Synlighet"
},
"permissions.visibility.user": {
"defaultMessage": "Kun opprettede elementer"
},
"proxy-host": {
"defaultMessage": "Proxy Host"
},
"proxy-host.forward-host": {
"defaultMessage": "Forward Hostname / IP"
},
"proxy-hosts": {
"defaultMessage": "Proxy-verter"
},
"proxy-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Proxy-vert} other {Proxy-verter}}"
},
"public": {
"defaultMessage": "Offentlig"
},
"redirection-host": {
"defaultMessage": "Omdirigeringsvert"
},
"redirection-host.forward-domain": {
"defaultMessage": "Viderekoble domene"
},
"redirection-host.forward-http-code": {
"defaultMessage": "HTTP-kode"
},
"redirection-hosts": {
"defaultMessage": "Omdirigeringsverter"
},
"redirection-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Omdirigeringsvert} other {Omdirigeringsverter}}"
},
"redirection-hosts.http-code.300": {
"defaultMessage": "300 Multiple Choices"
},
"redirection-hosts.http-code.301": {
"defaultMessage": "301 Flyttet permanent"
},
"redirection-hosts.http-code.302": {
"defaultMessage": "302 Flyttet midlertidig"
},
"redirection-hosts.http-code.303": {
"defaultMessage": "303 Se andre"
},
"redirection-hosts.http-code.307": {
"defaultMessage": "307 Midlertidig omdirigering"
},
"redirection-hosts.http-code.308": {
"defaultMessage": "308 Permanent omdirigering"
},
"role.admin": {
"defaultMessage": "Administrator"
},
"role.standard-user": {
"defaultMessage": "Standardbruker"
},
"save": {
"defaultMessage": "Lagre"
},
"setting": {
"defaultMessage": "Innstilling"
},
"settings": {
"defaultMessage": "Innstillinger"
},
"settings.default-site": {
"defaultMessage": "Standardnettsted"
},
"settings.default-site.404": {
"defaultMessage": "404-side"
},
"settings.default-site.444": {
"defaultMessage": "Ingen respons (444)"
},
"settings.default-site.congratulations": {
"defaultMessage": "Gratulerer-side"
},
"settings.default-site.description": {
"defaultMessage": "Hva som skal vises når Nginx treffes med en ukjent vert"
},
"settings.default-site.html": {
"defaultMessage": "Egendefinert HTML"
},
"settings.default-site.html.placeholder": {
"defaultMessage": "<!-- Skriv inn ditt egendefinerte HTML-innhold her -->"
},
"settings.default-site.redirect": {
"defaultMessage": "Omdiriger"
},
"setup.preamble": {
"defaultMessage": "Kom i gang ved å opprette din administratorkonto."
},
"setup.title": {
"defaultMessage": "Velkommen!"
},
"sign-in": {
"defaultMessage": "Logg inn"
},
"ssl-certificate": {
"defaultMessage": "SSL-sertifikat"
},
"stream": {
"defaultMessage": "Strøm"
},
"stream.forward-host": {
"defaultMessage": "Viderekoble vert"
},
"stream.forward-host.placeholder": {
"defaultMessage": "example.com eller 10.0.0.1 eller 2001:db8:3333:4444:5555:6666:7777:8888"
},
"stream.incoming-port": {
"defaultMessage": "Innkommende port"
},
"streams": {
"defaultMessage": "Strømmer"
},
"streams.count": {
"defaultMessage": "{count} {count, plural, one {Strøm} other {Strømmer}}"
},
"streams.tcp": {
"defaultMessage": "TCP"
},
"streams.udp": {
"defaultMessage": "UDP"
},
"test": {
"defaultMessage": "Test"
},
"update-available": {
"defaultMessage": "Oppdatering tilgjengelig: {latestVersion}"
},
"user": {
"defaultMessage": "Bruker"
},
"user.change-password": {
"defaultMessage": "Endre passord"
},
"user.confirm-password": {
"defaultMessage": "Bekreft passord"
},
"user.current-password": {
"defaultMessage": "Nåværende passord"
},
"user.edit-profile": {
"defaultMessage": "Rediger profil"
},
"user.full-name": {
"defaultMessage": "Fullt navn"
},
"user.login-as": {
"defaultMessage": "Logg inn som {name}"
},
"user.logout": {
"defaultMessage": "Logg ut"
},
"user.new-password": {
"defaultMessage": "Nytt passord"
},
"user.nickname": {
"defaultMessage": "Kallenavn"
},
"user.set-password": {
"defaultMessage": "Angi passord"
},
"user.set-permissions": {
"defaultMessage": "Angi tillatelser for {name}"
},
"user.switch-dark": {
"defaultMessage": "Bytt til mørk modus"
},
"user.switch-light": {
"defaultMessage": "Bytt til lys modus"
},
"user.two-factor": {
"defaultMessage": "To-faktor autentisering"
},
"username": {
"defaultMessage": "Brukernavn"
},
"users": {
"defaultMessage": "Brukere"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
FROM cypress/included:15.9.0 FROM cypress/included:15.11.0
# Disable Cypress CLI colors # Disable Cypress CLI colors
ENV FORCE_COLOR=0 ENV FORCE_COLOR=0

View File

@@ -5,19 +5,19 @@
"main": "index.js", "main": "index.js",
"dependencies": { "dependencies": {
"@jc21/cypress-swagger-validation": "^0.3.2", "@jc21/cypress-swagger-validation": "^0.3.2",
"@quobix/vacuum": "^0.23.4", "@quobix/vacuum": "^0.24.0",
"axios": "^1.13.1", "axios": "^1.13.6",
"chalk": "^5.6.2", "chalk": "^5.6.2",
"cypress": "^15.9.0", "cypress": "^15.11.0",
"cypress-multi-reporters": "^2.0.5", "cypress-multi-reporters": "^2.0.5",
"cypress-wait-until": "^3.0.2", "cypress-wait-until": "^3.0.2",
"eslint": "^10.0.0", "eslint": "^10.0.2",
"eslint-plugin-align-assignments": "^1.1.2", "eslint-plugin-align-assignments": "^1.1.2",
"eslint-plugin-chai-friendly": "^1.1.0", "eslint-plugin-chai-friendly": "^1.1.0",
"eslint-plugin-cypress": "^5.2.0", "eslint-plugin-cypress": "^6.1.0",
"form-data": "^4.0.4", "form-data": "^4.0.5",
"lodash": "^4.17.21", "lodash": "^4.17.23",
"mocha": "^11.7.4", "mocha": "^11.7.5",
"mocha-junit-reporter": "^2.2.1" "mocha-junit-reporter": "^2.2.1"
}, },
"scripts": { "scripts": {

File diff suppressed because it is too large Load Diff