Compare commits

...

14 Commits

Author SHA1 Message Date
Milo Schwartz
ea1ad23bff Merge pull request #1497 from fosrl/dev
Dev
2025-09-18 16:22:02 -04:00
miloschwartz
7ffc5e0212 fix 1.10.1 migration script 2025-09-18 16:19:23 -04:00
Owen Schwartz
acba9444f4 Merge pull request #1495 from Tim5965/patch-3
Update nl-NL.json
2025-09-18 15:06:44 -04:00
Tim
f7e3671801 Update nl-NL.json
I think the file was accidentally reverted to the version that contained errors. The errors that were in that version have been updated again.
2025-09-18 21:04:48 +02:00
miloschwartz
a1b2e36a5d fix installer 2025-09-18 11:55:01 -04:00
Owen Schwartz
44e96942b3 Merge pull request #1484 from fosrl/dependabot/npm_and_yarn/dev-patch-updates-2c7447d29a
Bump the dev-patch-updates group with 2 updates
2025-09-18 11:52:37 -04:00
Owen Schwartz
f2efa760ff Merge pull request #1488 from cku-heise/patch-1
Update de-DE.json
2025-09-18 11:52:18 -04:00
cku-heise
256df9042b Update de-DE.json
"Spielpfad" is literal, but wrong translation (not a word in German). "Unterverzeichnis" would be the best approximation of the UI label here.
2025-09-18 10:52:01 +02:00
miloschwartz
6d7091fb5c migrate siteId on targets table to delete on cascade 2025-09-17 22:54:29 -04:00
dependabot[bot]
0d1f88a368 Bump the dev-patch-updates group with 2 updates
Bumps the dev-patch-updates group with 2 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [esbuild](https://github.com/evanw/esbuild).


Updates `@types/node` from 24.5.0 to 24.5.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `esbuild` from 0.25.9 to 0.25.10
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.25.9...v0.25.10)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: esbuild
  dependency-version: 0.25.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-18 01:16:29 +00:00
Owen Schwartz
2ae601717d Merge pull request #1483 from barnabehvrd/patch-1
fr-fr language translation improvement
2025-09-17 17:11:03 -04:00
Barnabé Havard
c7c8b463b4 Remove customHeadersDescription from fr-FR.json
Removed translation that doesn't appear anywhere
2025-09-17 23:06:13 +02:00
Barnabé Havard
282f839211 Fix typo in French translation for 'dataIn' 2025-09-17 22:53:12 +02:00
Barnabé Havard
b2eb846b69 Update French translations in fr-FR.json 2025-09-17 22:50:41 +02:00
9 changed files with 219 additions and 148 deletions

View File

@@ -220,7 +220,7 @@ func main() {
} }
} }
if !config.HybridMode && checkIsPangolinInstalledWithHybrid() { if !config.HybridMode {
// Setup Token Section // Setup Token Section
fmt.Println("\n=== Setup Token ===") fmt.Println("\n=== Setup Token ===")

View File

@@ -513,7 +513,7 @@
"ipAddressErrorInvalidFormat": "Ungültiges IP-Adressformat", "ipAddressErrorInvalidFormat": "Ungültiges IP-Adressformat",
"ipAddressErrorInvalidOctet": "Ungültiges IP-Adress-Oktett", "ipAddressErrorInvalidOctet": "Ungültiges IP-Adress-Oktett",
"path": "Pfad", "path": "Pfad",
"matchPath": "Spielpfad", "matchPath": "Unterverzeichnis",
"ipAddressRange": "IP-Bereich", "ipAddressRange": "IP-Bereich",
"rulesErrorFetch": "Fehler beim Abrufen der Regeln", "rulesErrorFetch": "Fehler beim Abrufen der Regeln",
"rulesErrorFetchDescription": "Beim Abrufen der Regeln ist ein Fehler aufgetreten", "rulesErrorFetchDescription": "Beim Abrufen der Regeln ist ein Fehler aufgetreten",

View File

@@ -10,7 +10,7 @@
"setupErrorIdentifier": "L'ID de l'organisation est déjà pris. Veuillez en choisir un autre.", "setupErrorIdentifier": "L'ID de l'organisation est déjà pris. Veuillez en choisir un autre.",
"componentsErrorNoMemberCreate": "Vous n'êtes actuellement membre d'aucune organisation. Créez une organisation pour commencer.", "componentsErrorNoMemberCreate": "Vous n'êtes actuellement membre d'aucune organisation. Créez une organisation pour commencer.",
"componentsErrorNoMember": "Vous n'êtes actuellement membre d'aucune organisation.", "componentsErrorNoMember": "Vous n'êtes actuellement membre d'aucune organisation.",
"welcome": "Bienvenue à Pangolin", "welcome": "Bienvenue sur Pangolin",
"welcomeTo": "Bienvenue chez", "welcomeTo": "Bienvenue chez",
"componentsCreateOrg": "Créer une organisation", "componentsCreateOrg": "Créer une organisation",
"componentsMember": "Vous êtes membre de {count, plural, =0 {aucune organisation} one {une organisation} other {# organisations}}.", "componentsMember": "Vous êtes membre de {count, plural, =0 {aucune organisation} one {une organisation} other {# organisations}}.",
@@ -34,13 +34,13 @@
"confirmPassword": "Confirmer le mot de passe", "confirmPassword": "Confirmer le mot de passe",
"createAccount": "Créer un compte", "createAccount": "Créer un compte",
"viewSettings": "Afficher les paramètres", "viewSettings": "Afficher les paramètres",
"delete": "Supprimez", "delete": "Supprimer",
"name": "Nom", "name": "Nom",
"online": "En ligne", "online": "En ligne",
"offline": "Hors ligne", "offline": "Hors ligne",
"site": "Site", "site": "Site",
"dataIn": "Données dans", "dataIn": "Données reçues",
"dataOut": "Données épuisées", "dataOut": "Données envoyées",
"connectionType": "Type de connexion", "connectionType": "Type de connexion",
"tunnelType": "Type de tunnel", "tunnelType": "Type de tunnel",
"local": "Locale", "local": "Locale",
@@ -175,7 +175,7 @@
"resourceHTTPSSettingsDescription": "Configurer comment votre ressource sera accédée via HTTPS", "resourceHTTPSSettingsDescription": "Configurer comment votre ressource sera accédée via HTTPS",
"domainType": "Type de domaine", "domainType": "Type de domaine",
"subdomain": "Sous-domaine", "subdomain": "Sous-domaine",
"baseDomain": "Domaine de base", "baseDomain": "Domaine racine",
"subdomnainDescription": "Le sous-domaine où votre ressource sera accessible.", "subdomnainDescription": "Le sous-domaine où votre ressource sera accessible.",
"resourceRawSettings": "Paramètres TCP/UDP", "resourceRawSettings": "Paramètres TCP/UDP",
"resourceRawSettingsDescription": "Configurer comment votre ressource sera accédée via TCP/UDP", "resourceRawSettingsDescription": "Configurer comment votre ressource sera accédée via TCP/UDP",
@@ -309,7 +309,7 @@
"numberOfSites": "Nombre de sites", "numberOfSites": "Nombre de sites",
"licenseKeySearch": "Rechercher des clés de licence...", "licenseKeySearch": "Rechercher des clés de licence...",
"licenseKeyAdd": "Ajouter une clé de licence", "licenseKeyAdd": "Ajouter une clé de licence",
"type": "Type de texte", "type": "Type",
"licenseKeyRequired": "La clé de licence est requise", "licenseKeyRequired": "La clé de licence est requise",
"licenseTermsAgree": "Vous devez accepter les conditions de licence", "licenseTermsAgree": "Vous devez accepter les conditions de licence",
"licenseErrorKeyLoad": "Impossible de charger les clés de licence", "licenseErrorKeyLoad": "Impossible de charger les clés de licence",
@@ -598,7 +598,7 @@
"newtId": "ID Newt", "newtId": "ID Newt",
"newtSecretKey": "Clé secrète Newt", "newtSecretKey": "Clé secrète Newt",
"architecture": "Architecture", "architecture": "Architecture",
"sites": "Espaces", "sites": "Sites",
"siteWgAnyClients": "Utilisez n'importe quel client WireGuard pour vous connecter. Vous devrez adresser vos ressources internes en utilisant l'IP du pair.", "siteWgAnyClients": "Utilisez n'importe quel client WireGuard pour vous connecter. Vous devrez adresser vos ressources internes en utilisant l'IP du pair.",
"siteWgCompatibleAllClients": "Compatible avec tous les clients WireGuard", "siteWgCompatibleAllClients": "Compatible avec tous les clients WireGuard",
"siteWgManualConfigurationRequired": "Configuration manuelle requise", "siteWgManualConfigurationRequired": "Configuration manuelle requise",
@@ -1128,7 +1128,7 @@
"sidebarOverview": "Aperçu", "sidebarOverview": "Aperçu",
"sidebarHome": "Domicile", "sidebarHome": "Domicile",
"sidebarSites": "Espaces", "sidebarSites": "Espaces",
"sidebarResources": "Ressource", "sidebarResources": "Ressources",
"sidebarAccessControl": "Contrôle d'accès", "sidebarAccessControl": "Contrôle d'accès",
"sidebarUsers": "Utilisateurs", "sidebarUsers": "Utilisateurs",
"sidebarInvitations": "Invitations", "sidebarInvitations": "Invitations",

View File

@@ -38,12 +38,12 @@
"name": "naam", "name": "naam",
"online": "Online", "online": "Online",
"offline": "Offline", "offline": "Offline",
"site": "Website", "site": "Referentie",
"dataIn": "Gegevens in", "dataIn": "Dataverbruik inkomend",
"dataOut": "Data Uit", "dataOut": "Dataverbruik uitgaand",
"connectionType": "Type verbinding", "connectionType": "Type verbinding",
"tunnelType": "Tunnel type", "tunnelType": "Tunnel type",
"local": "lokaal", "local": "Lokaal",
"edit": "Bewerken", "edit": "Bewerken",
"siteConfirmDelete": "Verwijderen van site bevestigen", "siteConfirmDelete": "Verwijderen van site bevestigen",
"siteDelete": "Site verwijderen", "siteDelete": "Site verwijderen",
@@ -55,7 +55,7 @@
"siteCreate": "Site maken", "siteCreate": "Site maken",
"siteCreateDescription2": "Volg de onderstaande stappen om een nieuwe site aan te maken en te verbinden", "siteCreateDescription2": "Volg de onderstaande stappen om een nieuwe site aan te maken en te verbinden",
"siteCreateDescription": "Maak een nieuwe site aan om verbinding te maken met uw bronnen", "siteCreateDescription": "Maak een nieuwe site aan om verbinding te maken met uw bronnen",
"close": "Afsluiten", "close": "Sluiten",
"siteErrorCreate": "Fout bij maken site", "siteErrorCreate": "Fout bij maken site",
"siteErrorCreateKeyPair": "Key pair of site standaard niet gevonden", "siteErrorCreateKeyPair": "Key pair of site standaard niet gevonden",
"siteErrorCreateDefaults": "Standaardinstellingen niet gevonden", "siteErrorCreateDefaults": "Standaardinstellingen niet gevonden",
@@ -90,7 +90,7 @@
"siteGeneralDescription": "Algemene instellingen voor deze site configureren", "siteGeneralDescription": "Algemene instellingen voor deze site configureren",
"siteSettingDescription": "Configureer de instellingen op uw site", "siteSettingDescription": "Configureer de instellingen op uw site",
"siteSetting": "{siteName} instellingen", "siteSetting": "{siteName} instellingen",
"siteNewtTunnel": "Nieuwstunnel (Aanbevolen)", "siteNewtTunnel": "Newttunnel (Aanbevolen)",
"siteNewtTunnelDescription": "Gemakkelijkste manier om een ingangspunt in uw netwerk te maken. Geen extra opzet.", "siteNewtTunnelDescription": "Gemakkelijkste manier om een ingangspunt in uw netwerk te maken. Geen extra opzet.",
"siteWg": "Basis WireGuard", "siteWg": "Basis WireGuard",
"siteWgDescription": "Gebruik een WireGuard client om een tunnel te bouwen. Handmatige NAT installatie vereist.", "siteWgDescription": "Gebruik een WireGuard client om een tunnel te bouwen. Handmatige NAT installatie vereist.",
@@ -104,7 +104,7 @@
"siteCredentialsSave": "Uw referenties opslaan", "siteCredentialsSave": "Uw referenties opslaan",
"siteCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een beveiligde plek.", "siteCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een beveiligde plek.",
"siteInfo": "Site informatie", "siteInfo": "Site informatie",
"status": "status", "status": "Status",
"shareTitle": "Beheer deellinks", "shareTitle": "Beheer deellinks",
"shareDescription": "Maak deelbare links aan om tijdelijke of permanente toegang tot uw bronnen te verlenen", "shareDescription": "Maak deelbare links aan om tijdelijke of permanente toegang tot uw bronnen te verlenen",
"shareSearch": "Zoek share links...", "shareSearch": "Zoek share links...",
@@ -146,19 +146,19 @@
"never": "Nooit", "never": "Nooit",
"shareErrorSelectResource": "Selecteer een bron", "shareErrorSelectResource": "Selecteer een bron",
"resourceTitle": "Bronnen beheren", "resourceTitle": "Bronnen beheren",
"resourceDescription": "Veilige proxy's voor uw privé applicaties maken", "resourceDescription": "Veilige proxy's voor uw privé applicaties aanmaken",
"resourcesSearch": "Zoek bronnen...", "resourcesSearch": "Zoek bronnen...",
"resourceAdd": "Bron toevoegen", "resourceAdd": "Bron toevoegen",
"resourceErrorDelte": "Fout bij verwijderen document", "resourceErrorDelte": "Fout bij verwijderen document",
"authentication": "Authenticatie", "authentication": "Authenticatie",
"protected": "Beschermd", "protected": "Beveiligd",
"notProtected": "Niet beschermd", "notProtected": "Niet beveiligd",
"resourceMessageRemove": "Eenmaal verwijderd, zal het bestand niet langer toegankelijk zijn. Alle doelen die gekoppeld zijn aan het hulpbron, zullen ook verwijderd worden.", "resourceMessageRemove": "Eenmaal verwijderd, zal het bestand niet langer toegankelijk zijn. Alle doelen die gekoppeld zijn aan het hulpbron, zullen ook verwijderd worden.",
"resourceMessageConfirm": "Om te bevestigen, typ de naam van de bron hieronder.", "resourceMessageConfirm": "Om te bevestigen, typ de naam van de bron hieronder.",
"resourceQuestionRemove": "Weet u zeker dat u de resource {selectedResource} uit de organisatie wilt verwijderen?", "resourceQuestionRemove": "Weet u zeker dat u de resource {selectedResource} uit de organisatie wilt verwijderen?",
"resourceHTTP": "HTTPS bron", "resourceHTTP": "HTTPS bron",
"resourceHTTPDescription": "Proxy verzoeken aan uw app via HTTPS via een subdomein of basisdomein.", "resourceHTTPDescription": "Proxy verzoeken aan uw app via HTTPS via een subdomein of basisdomein.",
"resourceRaw": "Ruwe TCP/UDP bron", "resourceRaw": "TCP/UDP bron",
"resourceRawDescription": "Proxy verzoeken naar je app via TCP/UDP met behulp van een poortnummer.", "resourceRawDescription": "Proxy verzoeken naar je app via TCP/UDP met behulp van een poortnummer.",
"resourceCreate": "Bron maken", "resourceCreate": "Bron maken",
"resourceCreateDescription": "Volg de onderstaande stappen om een nieuwe bron te maken", "resourceCreateDescription": "Volg de onderstaande stappen om een nieuwe bron te maken",
@@ -183,7 +183,7 @@
"protocolSelect": "Selecteer een protocol", "protocolSelect": "Selecteer een protocol",
"resourcePortNumber": "Nummer van poort", "resourcePortNumber": "Nummer van poort",
"resourcePortNumberDescription": "Het externe poortnummer naar proxyverzoeken.", "resourcePortNumberDescription": "Het externe poortnummer naar proxyverzoeken.",
"cancel": "annuleren", "cancel": "Annuleren",
"resourceConfig": "Configuratie tekstbouwstenen", "resourceConfig": "Configuratie tekstbouwstenen",
"resourceConfigDescription": "Kopieer en plak deze configuratie-snippets om je TCP/UDP-bron in te stellen", "resourceConfigDescription": "Kopieer en plak deze configuratie-snippets om je TCP/UDP-bron in te stellen",
"resourceAddEntrypoints": "Traefik: Entrypoints toevoegen", "resourceAddEntrypoints": "Traefik: Entrypoints toevoegen",
@@ -212,7 +212,7 @@
"saveGeneralSettings": "Algemene instellingen opslaan", "saveGeneralSettings": "Algemene instellingen opslaan",
"saveSettings": "Instellingen opslaan", "saveSettings": "Instellingen opslaan",
"orgDangerZone": "Gevaarlijke zone", "orgDangerZone": "Gevaarlijke zone",
"orgDangerZoneDescription": "Als u deze instantie verwijdert, is er geen weg terug. Wees het alstublieft zeker.", "orgDangerZoneDescription": "Deze instantie verwijderen is onomkeerbaar. Bevestig alstublieft dat u wilt doorgaan.",
"orgDelete": "Verwijder organisatie", "orgDelete": "Verwijder organisatie",
"orgDeleteConfirm": "Bevestig Verwijderen Organisatie", "orgDeleteConfirm": "Bevestig Verwijderen Organisatie",
"orgMessageRemove": "Deze actie is onomkeerbaar en zal alle bijbehorende gegevens verwijderen.", "orgMessageRemove": "Deze actie is onomkeerbaar en zal alle bijbehorende gegevens verwijderen.",
@@ -501,8 +501,8 @@
"targetStickySessionsDescription": "Behoud verbindingen op hetzelfde backend doel voor hun hele sessie.", "targetStickySessionsDescription": "Behoud verbindingen op hetzelfde backend doel voor hun hele sessie.",
"methodSelect": "Selecteer methode", "methodSelect": "Selecteer methode",
"targetSubmit": "Doelwit toevoegen", "targetSubmit": "Doelwit toevoegen",
"targetNoOne": "Geen doelwitten. Voeg een doel toe via het formulier.", "targetNoOne": "Geen doel toegevoegd. Voeg deze toe via dit formulier.",
"targetNoOneDescription": "Het toevoegen van meer dan één doel hierboven zal de load balancering mogelijk maken.", "targetNoOneDescription": "Het toevoegen van meer dan één doel hierboven zal load balancering mogelijk maken.",
"targetsSubmit": "Doelstellingen opslaan", "targetsSubmit": "Doelstellingen opslaan",
"proxyAdditional": "Extra Proxy-instellingen", "proxyAdditional": "Extra Proxy-instellingen",
"proxyAdditionalDescription": "Configureer hoe de proxy-instellingen van uw bron worden afgehandeld", "proxyAdditionalDescription": "Configureer hoe de proxy-instellingen van uw bron worden afgehandeld",
@@ -598,7 +598,7 @@
"newtId": "Newt-ID", "newtId": "Newt-ID",
"newtSecretKey": "Nieuwe geheime sleutel", "newtSecretKey": "Nieuwe geheime sleutel",
"architecture": "Architectuur", "architecture": "Architectuur",
"sites": "Werkruimtes", "sites": "Verbindingen",
"siteWgAnyClients": "Gebruik een willekeurige WireGuard client om verbinding te maken. Je moet je interne bronnen aanspreken met behulp van de peer IP.", "siteWgAnyClients": "Gebruik een willekeurige WireGuard client om verbinding te maken. Je moet je interne bronnen aanspreken met behulp van de peer IP.",
"siteWgCompatibleAllClients": "Compatibel met alle WireGuard clients", "siteWgCompatibleAllClients": "Compatibel met alle WireGuard clients",
"siteWgManualConfigurationRequired": "Handmatige configuratie vereist", "siteWgManualConfigurationRequired": "Handmatige configuratie vereist",
@@ -729,7 +729,7 @@
"idpMessageConfirm": "Om dit te bevestigen, typt u de naam van onderstaande identiteitsprovider.", "idpMessageConfirm": "Om dit te bevestigen, typt u de naam van onderstaande identiteitsprovider.",
"idpConfirmDelete": "Bevestig verwijderen Identity Provider", "idpConfirmDelete": "Bevestig verwijderen Identity Provider",
"idpDelete": "Identity Provider verwijderen", "idpDelete": "Identity Provider verwijderen",
"idp": "Identiteit aanbieders", "idp": "Identiteitsaanbieders",
"idpSearch": "Identiteitsaanbieders zoeken...", "idpSearch": "Identiteitsaanbieders zoeken...",
"idpAdd": "Identity Provider toevoegen", "idpAdd": "Identity Provider toevoegen",
"idpClientIdRequired": "Client-ID is vereist.", "idpClientIdRequired": "Client-ID is vereist.",
@@ -801,7 +801,7 @@
"defaultMappingsOrgDescription": "Deze expressie moet de org-ID teruggeven of waar om de gebruiker toegang te geven tot de organisatie.", "defaultMappingsOrgDescription": "Deze expressie moet de org-ID teruggeven of waar om de gebruiker toegang te geven tot de organisatie.",
"defaultMappingsSubmit": "Standaard toewijzingen opslaan", "defaultMappingsSubmit": "Standaard toewijzingen opslaan",
"orgPoliciesEdit": "Organisatie beleid bewerken", "orgPoliciesEdit": "Organisatie beleid bewerken",
"org": "Rekening", "org": "Organisatie",
"orgSelect": "Selecteer organisatie", "orgSelect": "Selecteer organisatie",
"orgSearch": "Zoek in org", "orgSearch": "Zoek in org",
"orgNotFound": "Geen org gevonden.", "orgNotFound": "Geen org gevonden.",
@@ -976,10 +976,10 @@
"supportKeyEnterDescription": "Ontmoet je eigen huisdier Pangolin!", "supportKeyEnterDescription": "Ontmoet je eigen huisdier Pangolin!",
"githubUsername": "GitHub-gebruikersnaam", "githubUsername": "GitHub-gebruikersnaam",
"supportKeyInput": "Supporter Sleutel", "supportKeyInput": "Supporter Sleutel",
"supportKeyBuy": "Koop Supportersleutel", "supportKeyBuy": "Koop supportersleutel",
"logoutError": "Fout bij uitloggen", "logoutError": "Fout bij uitloggen",
"signingAs": "Ingelogd als", "signingAs": "Ingelogd als",
"serverAdmin": "Server Beheerder", "serverAdmin": "Server beheer",
"managedSelfhosted": "Beheerde Self-Hosted", "managedSelfhosted": "Beheerde Self-Hosted",
"otpEnable": "Twee-factor inschakelen", "otpEnable": "Twee-factor inschakelen",
"otpDisable": "Tweestapsverificatie uitschakelen", "otpDisable": "Tweestapsverificatie uitschakelen",
@@ -1128,7 +1128,7 @@
"sidebarOverview": "Overzicht.", "sidebarOverview": "Overzicht.",
"sidebarHome": "Startpagina", "sidebarHome": "Startpagina",
"sidebarSites": "Werkruimtes", "sidebarSites": "Werkruimtes",
"sidebarResources": "Hulpmiddelen", "sidebarResources": "Bronnen",
"sidebarAccessControl": "Toegangs controle", "sidebarAccessControl": "Toegangs controle",
"sidebarUsers": "Gebruikers", "sidebarUsers": "Gebruikers",
"sidebarInvitations": "Uitnodigingen", "sidebarInvitations": "Uitnodigingen",
@@ -1147,7 +1147,7 @@
"viewDockerContainers": "Bekijk Docker containers", "viewDockerContainers": "Bekijk Docker containers",
"containersIn": "Containers in {siteName}", "containersIn": "Containers in {siteName}",
"selectContainerDescription": "Selecteer een container om als hostnaam voor dit doel te gebruiken. Klik op een poort om een poort te gebruiken.", "selectContainerDescription": "Selecteer een container om als hostnaam voor dit doel te gebruiken. Klik op een poort om een poort te gebruiken.",
"containerName": "naam", "containerName": "Naam",
"containerImage": "Afbeelding", "containerImage": "Afbeelding",
"containerState": "Provincie", "containerState": "Provincie",
"containerNetworks": "Netwerken", "containerNetworks": "Netwerken",
@@ -1349,7 +1349,7 @@
"olmId": "Olm ID", "olmId": "Olm ID",
"olmSecretKey": "Olm Geheime Sleutel", "olmSecretKey": "Olm Geheime Sleutel",
"clientCredentialsSave": "Uw referenties opslaan", "clientCredentialsSave": "Uw referenties opslaan",
"clientCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer het naar een beveiligde plek.", "clientCredentialsSaveDescription": "Je kunt dit slechts één keer zien. Kopieer deze naar een veilige plek.",
"generalSettingsDescription": "Configureer de algemene instellingen voor deze client", "generalSettingsDescription": "Configureer de algemene instellingen voor deze client",
"clientUpdated": "Klant bijgewerkt ", "clientUpdated": "Klant bijgewerkt ",
"clientUpdatedDescription": "De client is bijgewerkt.", "clientUpdatedDescription": "De client is bijgewerkt.",

224
package-lock.json generated
View File

@@ -109,7 +109,7 @@
"@types/jmespath": "^0.15.2", "@types/jmespath": "^0.15.2",
"@types/js-yaml": "4.0.9", "@types/js-yaml": "4.0.9",
"@types/jsonwebtoken": "^9.0.10", "@types/jsonwebtoken": "^9.0.10",
"@types/node": "24.5.0", "@types/node": "24.5.2",
"@types/nodemailer": "7.0.1", "@types/nodemailer": "7.0.1",
"@types/pg": "8.15.5", "@types/pg": "8.15.5",
"@types/react": "19.1.13", "@types/react": "19.1.13",
@@ -119,7 +119,7 @@
"@types/ws": "8.18.1", "@types/ws": "8.18.1",
"@types/yargs": "17.0.33", "@types/yargs": "17.0.33",
"drizzle-kit": "0.31.4", "drizzle-kit": "0.31.4",
"esbuild": "0.25.9", "esbuild": "0.25.10",
"esbuild-node-externals": "1.18.0", "esbuild-node-externals": "1.18.0",
"postcss": "^8", "postcss": "^8",
"react-email": "4.2.11", "react-email": "4.2.11",
@@ -1556,9 +1556,9 @@
} }
}, },
"node_modules/@esbuild/aix-ppc64": { "node_modules/@esbuild/aix-ppc64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz",
"integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@@ -1573,9 +1573,9 @@
} }
}, },
"node_modules/@esbuild/android-arm": { "node_modules/@esbuild/android-arm": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz",
"integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -1590,9 +1590,9 @@
} }
}, },
"node_modules/@esbuild/android-arm64": { "node_modules/@esbuild/android-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz",
"integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1607,9 +1607,9 @@
} }
}, },
"node_modules/@esbuild/android-x64": { "node_modules/@esbuild/android-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz",
"integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1624,9 +1624,9 @@
} }
}, },
"node_modules/@esbuild/darwin-arm64": { "node_modules/@esbuild/darwin-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz",
"integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1641,9 +1641,9 @@
} }
}, },
"node_modules/@esbuild/darwin-x64": { "node_modules/@esbuild/darwin-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz",
"integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1658,9 +1658,9 @@
} }
}, },
"node_modules/@esbuild/freebsd-arm64": { "node_modules/@esbuild/freebsd-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz",
"integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1675,9 +1675,9 @@
} }
}, },
"node_modules/@esbuild/freebsd-x64": { "node_modules/@esbuild/freebsd-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz",
"integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1692,9 +1692,9 @@
} }
}, },
"node_modules/@esbuild/linux-arm": { "node_modules/@esbuild/linux-arm": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz",
"integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -1709,9 +1709,9 @@
} }
}, },
"node_modules/@esbuild/linux-arm64": { "node_modules/@esbuild/linux-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz",
"integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1726,9 +1726,9 @@
} }
}, },
"node_modules/@esbuild/linux-ia32": { "node_modules/@esbuild/linux-ia32": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz",
"integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@@ -1743,9 +1743,9 @@
} }
}, },
"node_modules/@esbuild/linux-loong64": { "node_modules/@esbuild/linux-loong64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz",
"integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==",
"cpu": [ "cpu": [
"loong64" "loong64"
], ],
@@ -1760,9 +1760,9 @@
} }
}, },
"node_modules/@esbuild/linux-mips64el": { "node_modules/@esbuild/linux-mips64el": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz",
"integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==",
"cpu": [ "cpu": [
"mips64el" "mips64el"
], ],
@@ -1777,9 +1777,9 @@
} }
}, },
"node_modules/@esbuild/linux-ppc64": { "node_modules/@esbuild/linux-ppc64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz",
"integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@@ -1794,9 +1794,9 @@
} }
}, },
"node_modules/@esbuild/linux-riscv64": { "node_modules/@esbuild/linux-riscv64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz",
"integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@@ -1811,9 +1811,9 @@
} }
}, },
"node_modules/@esbuild/linux-s390x": { "node_modules/@esbuild/linux-s390x": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz",
"integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@@ -1828,9 +1828,9 @@
} }
}, },
"node_modules/@esbuild/linux-x64": { "node_modules/@esbuild/linux-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz",
"integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1845,9 +1845,9 @@
} }
}, },
"node_modules/@esbuild/netbsd-arm64": { "node_modules/@esbuild/netbsd-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz",
"integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1862,9 +1862,9 @@
} }
}, },
"node_modules/@esbuild/netbsd-x64": { "node_modules/@esbuild/netbsd-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz",
"integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1879,9 +1879,9 @@
} }
}, },
"node_modules/@esbuild/openbsd-arm64": { "node_modules/@esbuild/openbsd-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz",
"integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1896,9 +1896,9 @@
} }
}, },
"node_modules/@esbuild/openbsd-x64": { "node_modules/@esbuild/openbsd-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz",
"integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1913,9 +1913,9 @@
} }
}, },
"node_modules/@esbuild/openharmony-arm64": { "node_modules/@esbuild/openharmony-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz",
"integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1930,9 +1930,9 @@
} }
}, },
"node_modules/@esbuild/sunos-x64": { "node_modules/@esbuild/sunos-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz",
"integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1947,9 +1947,9 @@
} }
}, },
"node_modules/@esbuild/win32-arm64": { "node_modules/@esbuild/win32-arm64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz",
"integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1964,9 +1964,9 @@
} }
}, },
"node_modules/@esbuild/win32-ia32": { "node_modules/@esbuild/win32-ia32": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz",
"integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@@ -1981,9 +1981,9 @@
} }
}, },
"node_modules/@esbuild/win32-x64": { "node_modules/@esbuild/win32-x64": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz",
"integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -6342,9 +6342,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "24.5.0", "version": "24.5.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.5.2.tgz",
"integrity": "sha512-y1dMvuvJspJiPSDZUQ+WMBvF7dpnEqN4x9DDC9ie5Fs/HUZJA3wFp7EhHoVaKX/iI0cRoECV8X2jL8zi0xrHCg==", "integrity": "sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==",
"devOptional": true, "devOptional": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -9005,9 +9005,9 @@
} }
}, },
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.25.9", "version": "0.25.10",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz",
"integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==",
"dev": true, "dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
@@ -9018,32 +9018,32 @@
"node": ">=18" "node": ">=18"
}, },
"optionalDependencies": { "optionalDependencies": {
"@esbuild/aix-ppc64": "0.25.9", "@esbuild/aix-ppc64": "0.25.10",
"@esbuild/android-arm": "0.25.9", "@esbuild/android-arm": "0.25.10",
"@esbuild/android-arm64": "0.25.9", "@esbuild/android-arm64": "0.25.10",
"@esbuild/android-x64": "0.25.9", "@esbuild/android-x64": "0.25.10",
"@esbuild/darwin-arm64": "0.25.9", "@esbuild/darwin-arm64": "0.25.10",
"@esbuild/darwin-x64": "0.25.9", "@esbuild/darwin-x64": "0.25.10",
"@esbuild/freebsd-arm64": "0.25.9", "@esbuild/freebsd-arm64": "0.25.10",
"@esbuild/freebsd-x64": "0.25.9", "@esbuild/freebsd-x64": "0.25.10",
"@esbuild/linux-arm": "0.25.9", "@esbuild/linux-arm": "0.25.10",
"@esbuild/linux-arm64": "0.25.9", "@esbuild/linux-arm64": "0.25.10",
"@esbuild/linux-ia32": "0.25.9", "@esbuild/linux-ia32": "0.25.10",
"@esbuild/linux-loong64": "0.25.9", "@esbuild/linux-loong64": "0.25.10",
"@esbuild/linux-mips64el": "0.25.9", "@esbuild/linux-mips64el": "0.25.10",
"@esbuild/linux-ppc64": "0.25.9", "@esbuild/linux-ppc64": "0.25.10",
"@esbuild/linux-riscv64": "0.25.9", "@esbuild/linux-riscv64": "0.25.10",
"@esbuild/linux-s390x": "0.25.9", "@esbuild/linux-s390x": "0.25.10",
"@esbuild/linux-x64": "0.25.9", "@esbuild/linux-x64": "0.25.10",
"@esbuild/netbsd-arm64": "0.25.9", "@esbuild/netbsd-arm64": "0.25.10",
"@esbuild/netbsd-x64": "0.25.9", "@esbuild/netbsd-x64": "0.25.10",
"@esbuild/openbsd-arm64": "0.25.9", "@esbuild/openbsd-arm64": "0.25.10",
"@esbuild/openbsd-x64": "0.25.9", "@esbuild/openbsd-x64": "0.25.10",
"@esbuild/openharmony-arm64": "0.25.9", "@esbuild/openharmony-arm64": "0.25.10",
"@esbuild/sunos-x64": "0.25.9", "@esbuild/sunos-x64": "0.25.10",
"@esbuild/win32-arm64": "0.25.9", "@esbuild/win32-arm64": "0.25.10",
"@esbuild/win32-ia32": "0.25.9", "@esbuild/win32-ia32": "0.25.10",
"@esbuild/win32-x64": "0.25.9" "@esbuild/win32-x64": "0.25.10"
} }
}, },
"node_modules/esbuild-node-externals": { "node_modules/esbuild-node-externals": {

View File

@@ -126,7 +126,7 @@
"@types/jmespath": "^0.15.2", "@types/jmespath": "^0.15.2",
"@types/js-yaml": "4.0.9", "@types/js-yaml": "4.0.9",
"@types/jsonwebtoken": "^9.0.10", "@types/jsonwebtoken": "^9.0.10",
"@types/node": "24.5.0", "@types/node": "24.5.2",
"@types/nodemailer": "7.0.1", "@types/nodemailer": "7.0.1",
"@types/pg": "8.15.5", "@types/pg": "8.15.5",
"@types/react": "19.1.13", "@types/react": "19.1.13",
@@ -136,7 +136,7 @@
"@types/ws": "8.18.1", "@types/ws": "8.18.1",
"@types/yargs": "17.0.33", "@types/yargs": "17.0.33",
"drizzle-kit": "0.31.4", "drizzle-kit": "0.31.4",
"esbuild": "0.25.9", "esbuild": "0.25.10",
"esbuild-node-externals": "1.18.0", "esbuild-node-externals": "1.18.0",
"postcss": "^8", "postcss": "^8",
"react-email": "4.2.11", "react-email": "4.2.11",

View File

@@ -2,7 +2,7 @@ import path from "path";
import { fileURLToPath } from "url"; import { fileURLToPath } from "url";
// This is a placeholder value replaced by the build process // This is a placeholder value replaced by the build process
export const APP_VERSION = "1.10.0"; export const APP_VERSION = "1.10.1";
export const __FILENAME = fileURLToPath(import.meta.url); export const __FILENAME = fileURLToPath(import.meta.url);
export const __DIRNAME = path.dirname(__FILENAME); export const __DIRNAME = path.dirname(__FILENAME);

View File

@@ -27,6 +27,7 @@ import m22 from "./scriptsSqlite/1.7.0";
import m23 from "./scriptsSqlite/1.8.0"; import m23 from "./scriptsSqlite/1.8.0";
import m24 from "./scriptsSqlite/1.9.0"; import m24 from "./scriptsSqlite/1.9.0";
import m25 from "./scriptsSqlite/1.10.0"; import m25 from "./scriptsSqlite/1.10.0";
import m26 from "./scriptsSqlite/1.10.1";
// THIS CANNOT IMPORT ANYTHING FROM THE SERVER // THIS CANNOT IMPORT ANYTHING FROM THE SERVER
// EXCEPT FOR THE DATABASE AND THE SCHEMA // EXCEPT FOR THE DATABASE AND THE SCHEMA
@@ -53,6 +54,7 @@ const migrations = [
{ version: "1.8.0", run: m23 }, { version: "1.8.0", run: m23 },
{ version: "1.9.0", run: m24 }, { version: "1.9.0", run: m24 },
{ version: "1.10.0", run: m25 }, { version: "1.10.0", run: m25 },
{ version: "1.10.1", run: m26 },
// Add new migrations here as they are created // Add new migrations here as they are created
] as const; ] as const;

View File

@@ -0,0 +1,69 @@
import { APP_PATH } from "@server/lib/consts";
import Database from "better-sqlite3";
import path from "path";
const version = "1.10.1";
export default async function migration() {
console.log(`Running setup script ${version}...`);
const location = path.join(APP_PATH, "db", "db.sqlite");
const db = new Database(location);
try {
db.pragma("foreign_keys = OFF");
db.transaction(() => {
db.exec(`ALTER TABLE "targets" RENAME TO "targets_old";
--> statement-breakpoint
CREATE TABLE "targets" (
"targetId" INTEGER PRIMARY KEY AUTOINCREMENT,
"resourceId" INTEGER NOT NULL,
"siteId" INTEGER NOT NULL,
"ip" TEXT NOT NULL,
"method" TEXT,
"port" INTEGER NOT NULL,
"internalPort" INTEGER,
"enabled" INTEGER NOT NULL DEFAULT 1,
"path" TEXT,
"pathMatchType" TEXT,
FOREIGN KEY ("resourceId") REFERENCES "resources"("resourceId") ON UPDATE no action ON DELETE cascade,
FOREIGN KEY ("siteId") REFERENCES "sites"("siteId") ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
INSERT INTO "targets" (
"targetId",
"resourceId",
"siteId",
"ip",
"method",
"port",
"internalPort",
"enabled",
"path",
"pathMatchType"
)
SELECT
targetId,
resourceId,
siteId,
ip,
method,
port,
internalPort,
enabled,
path,
pathMatchType
FROM "targets_old";
--> statement-breakpoint
DROP TABLE "targets_old";`);
})();
db.pragma("foreign_keys = ON");
console.log(`Migrated database`);
} catch (e) {
console.log("Failed to migrate db:", e);
throw e;
}
}