From 9f979c50198f105073f6b20693107f27b145eb61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 09:32:28 +0000 Subject: [PATCH 01/19] Bump tar-fs from 2.1.2 to 2.1.3 Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.2 to 2.1.3. - [Commits](https://github.com/mafintosh/tar-fs/commits) --- updated-dependencies: - dependency-name: tar-fs dependency-version: 2.1.3 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fbe68e12..5a03267d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14252,9 +14252,9 @@ } }, "node_modules/tar-fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", - "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", + "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", "license": "MIT", "dependencies": { "chownr": "^1.1.1", From c1fd38ac39f6f61bedfffba128ea72938c1c67c1 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Thu, 5 Jun 2025 15:48:37 -0400 Subject: [PATCH 02/19] fix typo --- src/components/ContainersSelector.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ContainersSelector.tsx b/src/components/ContainersSelector.tsx index 7e5dfd6f..1cd8389b 100644 --- a/src/components/ContainersSelector.tsx +++ b/src/components/ContainersSelector.tsx @@ -95,7 +95,7 @@ export const ContainersSelector: FC = ({ Containers in {site.name} Select any container to use as a hostname for this - target. Click a port to use select a port. + target. Click a port to use a port. From c135b5e3cf2eb8f8816cb66716256a53fb3c38cc Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 6 Jun 2025 12:15:15 -0400 Subject: [PATCH 03/19] Dont request unless its a newt --- src/hooks/useDockerSocket.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hooks/useDockerSocket.ts b/src/hooks/useDockerSocket.ts index 3cab4b55..dc4f08f4 100644 --- a/src/hooks/useDockerSocket.ts +++ b/src/hooks/useDockerSocket.ts @@ -21,7 +21,8 @@ export function useDockerSocket(site: Site) { const api = createApiClient(useEnvContext()); - const { dockerSocketEnabled: isEnabled = true } = site || {}; + const { dockerSocketEnabled: rawIsEnabled = true, type: siteType } = site || {}; + const isEnabled = rawIsEnabled && siteType === "newt"; const { isAvailable = false, socketPath } = dockerSocket || {}; const checkDockerSocket = useCallback(async () => { From 3ed681e2778386c02e655a8fc51e6c57f804037b Mon Sep 17 00:00:00 2001 From: Owen Date: Fri, 6 Jun 2025 12:16:58 -0400 Subject: [PATCH 04/19] Bump temp version --- server/lib/consts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/consts.ts b/server/lib/consts.ts index ea50af6d..1dc46d2b 100644 --- a/server/lib/consts.ts +++ b/server/lib/consts.ts @@ -2,7 +2,7 @@ import path from "path"; import { fileURLToPath } from "url"; // This is a placeholder value replaced by the build process -export const APP_VERSION = "1.5.0"; +export const APP_VERSION = "1.5.1"; export const __FILENAME = fileURLToPath(import.meta.url); export const __DIRNAME = path.dirname(__FILENAME); From 26207bd9511691c6bb9551eb8bc22fec0f060600 Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Sun, 8 Jun 2025 00:07:49 +0200 Subject: [PATCH 05/19] add datasize helper and add correct sorting to sitestable --- src/app/[orgId]/settings/sites/SitesTable.tsx | 15 +++++++++++++-- src/lib/dataSize.ts | 11 +++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/lib/dataSize.ts diff --git a/src/app/[orgId]/settings/sites/SitesTable.tsx b/src/app/[orgId]/settings/sites/SitesTable.tsx index c032800f..e2fba418 100644 --- a/src/app/[orgId]/settings/sites/SitesTable.tsx +++ b/src/app/[orgId]/settings/sites/SitesTable.tsx @@ -27,6 +27,7 @@ import { formatAxiosError } from "@app/lib/api"; import { createApiClient } from "@app/lib/api"; import { useEnvContext } from "@app/hooks/useEnvContext"; import CreateSiteFormModal from "./CreateSiteModal"; +import { parseDataSize } from '@app/lib/dataSize'; export type SiteRow = { id: number; @@ -197,7 +198,12 @@ export default function SitesTable({ sites, orgId }: SitesTableProps) { ); - } + }, + sortingFn: (rowA, rowB) => { + const a = parseDataSize(rowA.original.mbIn); + const b = parseDataSize(rowB.original.mbIn); + return a > b ? 1 : a < b ? -1 : 0; + }, }, { accessorKey: "mbOut", @@ -213,7 +219,12 @@ export default function SitesTable({ sites, orgId }: SitesTableProps) { ); - } + }, + sortingFn: (rowA, rowB) => { + const a = parseDataSize(rowA.original.mbOut); + const b = parseDataSize(rowB.original.mbOut); + return a > b ? 1 : a < b ? -1 : 0; + }, }, { accessorKey: "type", diff --git a/src/lib/dataSize.ts b/src/lib/dataSize.ts new file mode 100644 index 00000000..5ac4e4ae --- /dev/null +++ b/src/lib/dataSize.ts @@ -0,0 +1,11 @@ +export function parseDataSize(sizeStr: string): number { + if (!sizeStr) return 0; + const match = sizeStr.trim().toUpperCase().match(/^([\d.]+)\s*([KMGT]?B)$/); + if (!match) return 0; + const [, numStr, unit] = match; + const num = parseFloat(numStr) || 0; + const multipliers: Record = { + B: 1, KB: 1024, MB: 1024**2, GB: 1024**3, TB: 1024**4, + }; + return num * (multipliers[unit] || 1); +} \ No newline at end of file From 7b0e1df77802e9972289a79a880efa1002175384 Mon Sep 17 00:00:00 2001 From: Marvin <127591405+Lokowitz@users.noreply.github.com> Date: Sun, 8 Jun 2025 17:29:14 +0200 Subject: [PATCH 06/19] Update dependabot.yml --- .github/dependabot.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2394b2f9..802c003f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,10 +13,6 @@ updates: dependency-type: "development" update-types: - "minor" - dev-major-updates: - dependency-type: "development" - update-types: - - "major" prod-patch-updates: dependency-type: "production" update-types: @@ -25,10 +21,6 @@ updates: dependency-type: "production" update-types: - "minor" - prod-major-updates: - dependency-type: "production" - update-types: - - "major" - package-ecosystem: "docker" directory: "/" @@ -41,6 +33,3 @@ updates: minor-updates: update-types: - "minor" - major-updates: - update-types: - - "major" From 1a6942ccc9da3976bf15b71d355b9547d2b043ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jun 2025 02:05:59 +0000 Subject: [PATCH 07/19] Bump zod in the prod-patch-updates group across 1 directory Bumps the prod-patch-updates group with 1 update in the / directory: [zod](https://github.com/colinhacks/zod). Updates `zod` from 3.25.46 to 3.25.56 - [Release notes](https://github.com/colinhacks/zod/releases) - [Commits](https://github.com/colinhacks/zod/compare/v3.25.46...v3.25.56) --- updated-dependencies: - dependency-name: zod dependency-version: 3.25.56 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-patch-updates ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dab2c935..0bc3c585 100644 --- a/package-lock.json +++ b/package-lock.json @@ -87,7 +87,7 @@ "winston": "3.17.0", "winston-daily-rotate-file": "5.0.0", "ws": "8.18.2", - "zod": "3.25.46", + "zod": "3.25.56", "zod-validation-error": "3.4.1" }, "devDependencies": { @@ -16370,9 +16370,9 @@ } }, "node_modules/zod": { - "version": "3.25.46", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.46.tgz", - "integrity": "sha512-IqRxcHEIjqLd4LNS/zKffB3Jzg3NwqJxQQ0Ns7pdrvgGkwQsEBdEQcOHaBVqvvZArShRzI39+aMST3FBGmTrLQ==", + "version": "3.25.56", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.56.tgz", + "integrity": "sha512-rd6eEF3BTNvQnR2e2wwolfTmUTnp70aUTqr0oaGbHifzC3BKJsoV+Gat8vxUMR1hwOKBs6El+qWehrHbCpW6SQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index 0e6ecc91..fb329fc2 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "winston": "3.17.0", "winston-daily-rotate-file": "5.0.0", "ws": "8.18.2", - "zod": "3.25.46", + "zod": "3.25.56", "zod-validation-error": "3.4.1" }, "devDependencies": { From 8125622c98c055ae7c9fa897b2a316dc5f832c22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jun 2025 02:06:40 +0000 Subject: [PATCH 08/19] Bump the dev-patch-updates group across 1 directory with 4 updates Bumps the dev-patch-updates group with 4 updates in the / directory: [@types/cookie-parser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cookie-parser), [@types/cors](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cors), [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) and [react-email](https://github.com/resend/react-email/tree/HEAD/packages/react-email). Updates `@types/cookie-parser` from 1.4.8 to 1.4.9 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/cookie-parser) Updates `@types/cors` from 2.8.18 to 2.8.19 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/cors) Updates `@types/react-dom` from 19.1.5 to 19.1.6 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom) Updates `react-email` from 4.0.15 to 4.0.16 - [Release notes](https://github.com/resend/react-email/releases) - [Changelog](https://github.com/resend/react-email/blob/canary/packages/react-email/CHANGELOG.md) - [Commits](https://github.com/resend/react-email/commits/react-email@4.0.16/packages/react-email) --- updated-dependencies: - dependency-name: "@types/cookie-parser" dependency-version: 1.4.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates - dependency-name: "@types/cors" dependency-version: 2.8.19 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates - dependency-name: "@types/react-dom" dependency-version: 19.1.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates - dependency-name: react-email dependency-version: 4.0.16 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates ... Signed-off-by: dependabot[bot] --- package-lock.json | 32 ++++++++++++++++---------------- package.json | 8 ++++---- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index dab2c935..a630f36c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,8 +95,8 @@ "@esbuild-plugins/tsconfig-paths": "0.1.2", "@tailwindcss/postcss": "^4.1.8", "@types/better-sqlite3": "7.6.12", - "@types/cookie-parser": "1.4.8", - "@types/cors": "2.8.18", + "@types/cookie-parser": "1.4.9", + "@types/cors": "2.8.19", "@types/crypto-js": "^4.2.2", "@types/express": "5.0.0", "@types/jmespath": "^0.15.2", @@ -105,7 +105,7 @@ "@types/node": "^22", "@types/nodemailer": "6.4.17", "@types/react": "19.1.6", - "@types/react-dom": "19.1.5", + "@types/react-dom": "19.1.6", "@types/semver": "7.7.0", "@types/swagger-ui-express": "^4.1.8", "@types/ws": "8.18.1", @@ -114,7 +114,7 @@ "esbuild": "0.25.5", "esbuild-node-externals": "1.18.0", "postcss": "^8", - "react-email": "4.0.15", + "react-email": "4.0.16", "tailwindcss": "^4.1.4", "tsc-alias": "1.8.16", "tsx": "4.19.4", @@ -4532,9 +4532,9 @@ } }, "node_modules/@types/cookie-parser": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.8.tgz", - "integrity": "sha512-l37JqFrOJ9yQfRQkljb41l0xVphc7kg5JTjjr+pLRZ0IyZ49V4BQ8vbF4Ut2C2e+WH4al3xD3ZwYwIUfnbT4NQ==", + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.9.tgz", + "integrity": "sha512-tGZiZ2Gtc4m3wIdLkZ8mkj1T6CEHb35+VApbL2T14Dew8HA7c+04dmKqsKRNC+8RJPm16JEK0tFSwdZqubfc4g==", "dev": true, "license": "MIT", "peerDependencies": { @@ -4542,9 +4542,9 @@ } }, "node_modules/@types/cors": { - "version": "2.8.18", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.18.tgz", - "integrity": "sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==", + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz", + "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==", "dev": true, "license": "MIT", "dependencies": { @@ -4693,9 +4693,9 @@ } }, "node_modules/@types/react-dom": { - "version": "19.1.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz", - "integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", "devOptional": true, "license": "MIT", "peerDependencies": { @@ -13999,9 +13999,9 @@ "license": "0BSD" }, "node_modules/react-email": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/react-email/-/react-email-4.0.15.tgz", - "integrity": "sha512-UQR18Toi3TAasqcZal69rYZ9RiIKRvHRW69tN6k7hONJpEPeiC4uBtDwH5VxpllW591D+NOdpBF/V1pTansaKg==", + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/react-email/-/react-email-4.0.16.tgz", + "integrity": "sha512-auhFU+nQxAkKkP6lQhPyGsa9exwfUEzp2BwZnjHokCwphZlg30tu4t1LgdKRwGPYsi7XNGy6asbVLAUhOVpzzg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 0e6ecc91..fec73a34 100644 --- a/package.json +++ b/package.json @@ -112,8 +112,8 @@ "@esbuild-plugins/tsconfig-paths": "0.1.2", "@tailwindcss/postcss": "^4.1.8", "@types/better-sqlite3": "7.6.12", - "@types/cookie-parser": "1.4.8", - "@types/cors": "2.8.18", + "@types/cookie-parser": "1.4.9", + "@types/cors": "2.8.19", "@types/crypto-js": "^4.2.2", "@types/express": "5.0.0", "@types/jmespath": "^0.15.2", @@ -122,7 +122,7 @@ "@types/node": "^22", "@types/nodemailer": "6.4.17", "@types/react": "19.1.6", - "@types/react-dom": "19.1.5", + "@types/react-dom": "19.1.6", "@types/semver": "7.7.0", "@types/swagger-ui-express": "^4.1.8", "@types/ws": "8.18.1", @@ -131,7 +131,7 @@ "esbuild": "0.25.5", "esbuild-node-externals": "1.18.0", "postcss": "^8", - "react-email": "4.0.15", + "react-email": "4.0.16", "tailwindcss": "^4.1.4", "tsc-alias": "1.8.16", "tsx": "4.19.4", From f2e461a1ee2827de148083bec21015281daaa70b Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Mon, 9 Jun 2025 13:06:08 +0200 Subject: [PATCH 09/19] improve readability --- src/app/[orgId]/settings/sites/SitesTable.tsx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/app/[orgId]/settings/sites/SitesTable.tsx b/src/app/[orgId]/settings/sites/SitesTable.tsx index e2fba418..b266b162 100644 --- a/src/app/[orgId]/settings/sites/SitesTable.tsx +++ b/src/app/[orgId]/settings/sites/SitesTable.tsx @@ -199,11 +199,8 @@ export default function SitesTable({ sites, orgId }: SitesTableProps) { ); }, - sortingFn: (rowA, rowB) => { - const a = parseDataSize(rowA.original.mbIn); - const b = parseDataSize(rowB.original.mbIn); - return a > b ? 1 : a < b ? -1 : 0; - }, + sortingFn: (rowA, rowB) => + parseDataSize(rowA.original.mbIn) - parseDataSize(rowB.original.mbIn) }, { accessorKey: "mbOut", @@ -220,11 +217,8 @@ export default function SitesTable({ sites, orgId }: SitesTableProps) { ); }, - sortingFn: (rowA, rowB) => { - const a = parseDataSize(rowA.original.mbOut); - const b = parseDataSize(rowB.original.mbOut); - return a > b ? 1 : a < b ? -1 : 0; - }, + sortingFn: (rowA, rowB) => + parseDataSize(rowA.original.mbOut) - parseDataSize(rowB.original.mbOut), }, { accessorKey: "type", From 96151de814459a420e0c94a81226190f48767c0e Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Mon, 9 Jun 2025 13:18:22 +0200 Subject: [PATCH 10/19] improve readability --- src/lib/dataSize.ts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/lib/dataSize.ts b/src/lib/dataSize.ts index 5ac4e4ae..67439d31 100644 --- a/src/lib/dataSize.ts +++ b/src/lib/dataSize.ts @@ -1,11 +1,21 @@ export function parseDataSize(sizeStr: string): number { - if (!sizeStr) return 0; - const match = sizeStr.trim().toUpperCase().match(/^([\d.]+)\s*([KMGT]?B)$/); + if (typeof sizeStr !== 'string') return 0; + + const match = /^\s*([\d.]+)\s*([KMGT]?B)\s*$/i.exec(sizeStr); if (!match) return 0; - const [, numStr, unit] = match; - const num = parseFloat(numStr) || 0; - const multipliers: Record = { - B: 1, KB: 1024, MB: 1024**2, GB: 1024**3, TB: 1024**4, - }; - return num * (multipliers[unit] || 1); + + const [ , numStr, unitRaw ] = match; + const num = parseFloat(numStr); + if (isNaN(num)) return 0; + + const unit = unitRaw.toUpperCase(); + const multipliers = { + B: 1, + KB: 1024, + MB: 1024 ** 2, + GB: 1024 ** 3, + TB: 1024 ** 4, + } as const; + + return num * (multipliers[unit as keyof typeof multipliers] ?? 1); } \ No newline at end of file From c4092669547c170135093328a55170e8aa730b6a Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 9 Jun 2025 11:13:58 -0400 Subject: [PATCH 11/19] Fix #860 --- src/app/setup/page.tsx | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/app/setup/page.tsx b/src/app/setup/page.tsx index 5420748c..68e78cbc 100644 --- a/src/app/setup/page.tsx +++ b/src/app/setup/page.tsx @@ -82,7 +82,14 @@ export default function StepperForm() { ); const generateId = (name: string) => { - return name.toLowerCase().replace(/\s+/g, "-"); + // Replace any character that is not a letter, number, space, or hyphen with a hyphen + // Also collapse multiple hyphens and trim + return name + .toLowerCase() + .replace(/[^a-z0-9\s-]/g, "-") + .replace(/\s+/g, "-") + .replace(/-+/g, "-") + .replace(/^-+|-+$/g, ""); }; async function orgSubmit(values: z.infer) { @@ -207,23 +214,22 @@ export default function StepperForm() { type="text" {...field} onChange={(e) => { - const orgId = - generateId( - e.target - .value - ); + // Prevent "/" in orgName input + const sanitizedValue = e.target.value.replace(/\//g, "-"); + const orgId = generateId(sanitizedValue); orgForm.setValue( "orgId", orgId ); orgForm.setValue( "orgName", - e.target.value + sanitizedValue ); debouncedCheckOrgIdAvailability( orgId ); }} + value={field.value.replace(/\//g, "-")} /> From cd54e7dd387cffd89d3cb151242e8079a5265e3a Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 9 Jun 2025 13:01:53 -0400 Subject: [PATCH 12/19] pick first port on select container --- src/components/ContainersSelector.tsx | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/components/ContainersSelector.tsx b/src/components/ContainersSelector.tsx index 1cd8389b..edc6b77c 100644 --- a/src/components/ContainersSelector.tsx +++ b/src/components/ContainersSelector.tsx @@ -346,16 +346,19 @@ const DockerContainersTable: FC<{ { id: "actions", header: "Actions", - cell: ({ row }) => ( - - ) + cell: ({ row }) => { + const ports = getExposedPorts(row.original); + return ( + + ); + } } ]; From 3257edc2a062852eda23a1766296b1c7cbeaef79 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 9 Jun 2025 14:23:16 -0400 Subject: [PATCH 13/19] Add link to docs for newt --- .../settings/sites/[niceId]/general/page.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx b/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx index 8fd15ddc..6501889d 100644 --- a/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx @@ -32,6 +32,8 @@ import { createApiClient } from "@app/lib/api"; import { useEnvContext } from "@app/hooks/useEnvContext"; import { useState } from "react"; import { SwitchInput } from "@app/components/SwitchInput"; +import Link from "next/link"; +import { ArrowRight } from "lucide-react"; const GeneralFormSchema = z.object({ name: z.string().nonempty("Name is required"), @@ -153,6 +155,20 @@ export default function GeneralPage() { discovery for populating container information, useful in resource targets. + + + {" "} + Docker socket path + must be provided to + Newt in order to use + this feature. + + )} From 3b10453af3afc5f91371f06a5aafc27156f9d961 Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Mon, 9 Jun 2025 22:18:38 +0200 Subject: [PATCH 14/19] define files in eslint --- eslint.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/eslint.config.js b/eslint.config.js index 71dc862c..de201044 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,6 +1,7 @@ // eslint.config.js export default [ { + files: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"], rules: { semi: "error", "prefer-const": "error" From 2047aa30e13daed36ac0db13b9ccbe6e654adb42 Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Mon, 9 Jun 2025 22:25:27 +0200 Subject: [PATCH 15/19] add typescript specific linting --- eslint.config.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index de201044..32a7f598 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,5 +1,7 @@ -// eslint.config.js -export default [ +import tseslint from 'typescript-eslint'; + +export default tseslint.config( + tseslint.configs.recommended, { files: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"], rules: { @@ -7,4 +9,4 @@ export default [ "prefer-const": "error" } } -]; +); From a575bace39f475cf546330de067fff1f29025f89 Mon Sep 17 00:00:00 2001 From: Thijs van Loef Date: Mon, 9 Jun 2025 22:32:38 +0200 Subject: [PATCH 16/19] add typescript eslint --- package-lock.json | 133 ++++++++++++++++++++++++++++------------------ package.json | 1 + 2 files changed, 81 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3e8e6f08..f4260fea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -119,6 +119,7 @@ "tsc-alias": "1.8.16", "tsx": "4.19.4", "typescript": "^5", + "typescript-eslint": "^8.34.0", "yargs": "18.0.0" } }, @@ -2943,16 +2944,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.33.0.tgz", - "integrity": "sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.34.0.tgz", + "integrity": "sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==", "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.33.0", - "@typescript-eslint/type-utils": "8.33.0", - "@typescript-eslint/utils": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0", + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/type-utils": "8.34.0", + "@typescript-eslint/utils": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -2966,7 +2967,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.33.0", + "@typescript-eslint/parser": "^8.34.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } @@ -2981,15 +2982,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.33.0.tgz", - "integrity": "sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.34.0.tgz", + "integrity": "sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==", "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.33.0", - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/typescript-estree": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0", + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/typescript-estree": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", "debug": "^4.3.4" }, "engines": { @@ -3005,13 +3006,13 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.0.tgz", - "integrity": "sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.34.0.tgz", + "integrity": "sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==", "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.33.0", - "@typescript-eslint/types": "^8.33.0", + "@typescript-eslint/tsconfig-utils": "^8.34.0", + "@typescript-eslint/types": "^8.34.0", "debug": "^4.3.4" }, "engines": { @@ -3020,16 +3021,19 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.0.tgz", - "integrity": "sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.34.0.tgz", + "integrity": "sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0" + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3040,9 +3044,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.0.tgz", - "integrity": "sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz", + "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3056,13 +3060,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.33.0.tgz", - "integrity": "sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.34.0.tgz", + "integrity": "sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==", "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.33.0", - "@typescript-eslint/utils": "8.33.0", + "@typescript-eslint/typescript-estree": "8.34.0", + "@typescript-eslint/utils": "8.34.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -3079,9 +3083,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.0.tgz", - "integrity": "sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.34.0.tgz", + "integrity": "sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3092,15 +3096,15 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.0.tgz", - "integrity": "sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.34.0.tgz", + "integrity": "sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==", "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.33.0", - "@typescript-eslint/tsconfig-utils": "8.33.0", - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/visitor-keys": "8.33.0", + "@typescript-eslint/project-service": "8.34.0", + "@typescript-eslint/tsconfig-utils": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/visitor-keys": "8.34.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3172,15 +3176,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.0.tgz", - "integrity": "sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.34.0.tgz", + "integrity": "sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==", "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.33.0", - "@typescript-eslint/types": "8.33.0", - "@typescript-eslint/typescript-estree": "8.33.0" + "@typescript-eslint/scope-manager": "8.34.0", + "@typescript-eslint/types": "8.34.0", + "@typescript-eslint/typescript-estree": "8.34.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3195,12 +3199,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.0.tgz", - "integrity": "sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==", + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.34.0.tgz", + "integrity": "sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.33.0", + "@typescript-eslint/types": "8.34.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -13214,6 +13218,29 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.34.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.34.0.tgz", + "integrity": "sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.34.0", + "@typescript-eslint/parser": "8.34.0", + "@typescript-eslint/utils": "8.34.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", diff --git a/package.json b/package.json index 0e6ecc91..c1a570c4 100644 --- a/package.json +++ b/package.json @@ -136,6 +136,7 @@ "tsc-alias": "1.8.16", "tsx": "4.19.4", "typescript": "^5", + "typescript-eslint": "^8.34.0", "yargs": "18.0.0" }, "overrides": { From 3d59556bcd4d98f9c60e84228689d95ab100aa8f Mon Sep 17 00:00:00 2001 From: Thijs van Loef <58031337+thijsvanloef@users.noreply.github.com> Date: Mon, 9 Jun 2025 22:38:38 +0200 Subject: [PATCH 17/19] readd accidentally removed line --- package-lock.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package-lock.json b/package-lock.json index 821f2239..10240a4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4880,6 +4880,7 @@ "node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.34.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.34.0.tgz", + "integrity": "sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" From e41eafd4976109745cf53e40f241da2ecb04252a Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Mon, 9 Jun 2025 17:38:18 -0400 Subject: [PATCH 18/19] enhance link styling and bump traefik version --- install/config/docker-compose.yml | 4 ++-- .../settings/sites/[niceId]/general/page.tsx | 22 ++++++++----------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/install/config/docker-compose.yml b/install/config/docker-compose.yml index ca2890b5..90349b7a 100644 --- a/install/config/docker-compose.yml +++ b/install/config/docker-compose.yml @@ -35,7 +35,7 @@ services: - 80:80 # Port for traefik because of the network_mode {{end}} traefik: - image: traefik:v3.4.0 + image: traefik:v3.4.1 container_name: traefik restart: unless-stopped {{if .InstallGerbil}} @@ -58,4 +58,4 @@ services: networks: default: driver: bridge - name: pangolin \ No newline at end of file + name: pangolin diff --git a/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx b/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx index 6501889d..ae9de83d 100644 --- a/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx @@ -33,7 +33,7 @@ import { useEnvContext } from "@app/hooks/useEnvContext"; import { useState } from "react"; import { SwitchInput } from "@app/components/SwitchInput"; import Link from "next/link"; -import { ArrowRight } from "lucide-react"; +import { ArrowRight, ExternalLink } from "lucide-react"; const GeneralFormSchema = z.object({ name: z.string().nonempty("Name is required"), @@ -153,22 +153,18 @@ export default function GeneralPage() { Enable Docker Socket discovery for populating - container information, - useful in resource targets. - - - {" "} - Docker socket path - must be provided to - Newt in order to use - this feature. - - + Learn more + + )} From 97ef3634617ec15c90a0310ed20cb1849216f283 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Jun 2025 01:20:20 +0000 Subject: [PATCH 19/19] Bump @types/react from 19.1.6 to 19.1.7 in the dev-patch-updates group Bumps the dev-patch-updates group with 1 update: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react). Updates `@types/react` from 19.1.6 to 19.1.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) --- updated-dependencies: - dependency-name: "@types/react" dependency-version: 19.1.7 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 10240a4b..a7d59325 100644 --- a/package-lock.json +++ b/package-lock.json @@ -104,7 +104,7 @@ "@types/jsonwebtoken": "^9.0.9", "@types/node": "^22", "@types/nodemailer": "6.4.17", - "@types/react": "19.1.6", + "@types/react": "19.1.7", "@types/react-dom": "19.1.6", "@types/semver": "7.7.0", "@types/swagger-ui-express": "^4.1.8", @@ -4684,9 +4684,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.6.tgz", - "integrity": "sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==", + "version": "19.1.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.7.tgz", + "integrity": "sha512-BnsPLV43ddr05N71gaGzyZ5hzkCmGwhMvYc8zmvI8Ci1bRkkDSzDDVfAXfN2tk748OwI7ediiPX6PfT9p0QGVg==", "devOptional": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 39fc573f..5b0ff4b9 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "@types/jsonwebtoken": "^9.0.9", "@types/node": "^22", "@types/nodemailer": "6.4.17", - "@types/react": "19.1.6", + "@types/react": "19.1.7", "@types/react-dom": "19.1.6", "@types/semver": "7.7.0", "@types/swagger-ui-express": "^4.1.8",