From f6c7fd1bd257f44eac24d2a316cd2f575806218c Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 23 Apr 2025 10:08:26 +0530 Subject: [PATCH 1/3] update: allow ip-addresses and chrome extension ids. --- src/lib/helpers/string.ts | 7 +++++++ .../overview/platforms/[platform]/web.svelte | 4 ++-- .../overview/platforms/wizard/flutter/step1.svelte | 4 ++-- .../overview/platforms/wizard/web/step1.svelte | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/lib/helpers/string.ts b/src/lib/helpers/string.ts index 4ef014dd5..595286b87 100644 --- a/src/lib/helpers/string.ts +++ b/src/lib/helpers/string.ts @@ -53,3 +53,10 @@ export function formatNum(number: number): string { * Returns a regex to check hostname validity. Supports wildcards too! */ export const hostnameRegex = String.raw`(\*)|(\*\.)?(?!-)[A-Za-z0-9\-]+([\-\.]{1}[a-z0-9]+)*\.[A-Za-z]{2,18}|localhost`; + +/** + * Returns a regex to check hostname validity. + * + * Supports domains, localhost, wildcards, ip-addresses and Chrome extension IDs! + */ +export const extendedHostnameRegex = String.raw`(\*)|(\*\.)?((?!-)[A-Za-z0-9-]+([-.]{1}[a-z0-9]+)*\.[A-Za-z]{2,18}|localhost|(\d{1,3}\.){3}\d{1,3}|[a-z0-9]{32})`; \ No newline at end of file diff --git a/src/routes/(console)/project-[region]-[project]/overview/platforms/[platform]/web.svelte b/src/routes/(console)/project-[region]-[project]/overview/platforms/[platform]/web.svelte index 1d1f4520e..3f2c7fbb6 100644 --- a/src/routes/(console)/project-[region]-[project]/overview/platforms/[platform]/web.svelte +++ b/src/routes/(console)/project-[region]-[project]/overview/platforms/[platform]/web.svelte @@ -8,7 +8,7 @@ import { onMount } from 'svelte'; import { project } from '../../../store'; import { platform } from './store'; - import { hostnameRegex } from '$lib/helpers/string'; + import { extendedHostnameRegex } from '$lib/helpers/string'; let hostname: string = null; @@ -50,7 +50,7 @@ id="hostname" label="Hostname" bind:value={hostname} - pattern={hostnameRegex} + pattern={extendedHostnameRegex} patternError="Please enter a valid hostname" placeholder="myapp.com" /> diff --git a/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/flutter/step1.svelte b/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/flutter/step1.svelte index d67c3f6d9..bda3e569c 100644 --- a/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/flutter/step1.svelte +++ b/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/flutter/step1.svelte @@ -8,7 +8,7 @@ import { Submit, trackEvent } from '$lib/actions/analytics'; import { PlatformType } from '@appwrite.io/console'; import { isValueOfStringEnum } from '$lib/helpers/types'; - import { hostnameRegex } from '$lib/helpers/string'; + import { extendedHostnameRegex } from '$lib/helpers/string'; // enum Platform { // Android = 'flutter-android', @@ -174,7 +174,7 @@ placeholder={placeholder[platform].hostname} tooltip={placeholder[platform].tooltip} required - pattern={hostnameRegex} + pattern={extendedHostnameRegex} patternError="Please enter a valid hostname" bind:value={$createPlatform.hostname} /> diff --git a/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/web/step1.svelte b/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/web/step1.svelte index 308cd4bc7..1d81e6ebb 100644 --- a/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/web/step1.svelte +++ b/src/routes/(console)/project-[region]-[project]/overview/platforms/wizard/web/step1.svelte @@ -8,7 +8,7 @@ import { createPlatform } from '../store'; import { Submit, trackEvent } from '$lib/actions/analytics'; import { PlatformType } from '@appwrite.io/console'; - import { hostnameRegex } from '$lib/helpers/string'; + import { extendedHostnameRegex } from '$lib/helpers/string'; const projectId = $page.params.project; const suggestions = ['*.vercel.app', '*.netlify.app', '*.gitpod.io']; @@ -60,7 +60,7 @@ placeholder="localhost" tooltip="The hostname that your website will use to interact with the Appwrite APIs in production or development environments. No protocol or port number required." required - pattern={hostnameRegex} + pattern={extendedHostnameRegex} patternError="Please enter a valid hostname" bind:value={$createPlatform.hostname} /> From 5a478124bbbacdc7560881dd902f95286de55fc0 Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 23 Apr 2025 11:39:17 +0530 Subject: [PATCH 2/3] fix: lint. --- src/lib/helpers/string.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/helpers/string.ts b/src/lib/helpers/string.ts index 595286b87..e4e1ec7bf 100644 --- a/src/lib/helpers/string.ts +++ b/src/lib/helpers/string.ts @@ -59,4 +59,4 @@ export const hostnameRegex = String.raw`(\*)|(\*\.)?(?!-)[A-Za-z0-9\-]+([\-\.]{1 * * Supports domains, localhost, wildcards, ip-addresses and Chrome extension IDs! */ -export const extendedHostnameRegex = String.raw`(\*)|(\*\.)?((?!-)[A-Za-z0-9-]+([-.]{1}[a-z0-9]+)*\.[A-Za-z]{2,18}|localhost|(\d{1,3}\.){3}\d{1,3}|[a-z0-9]{32})`; \ No newline at end of file +export const extendedHostnameRegex = String.raw`(\*)|(\*\.)?((?!-)[A-Za-z0-9-]+([-.]{1}[a-z0-9]+)*\.[A-Za-z]{2,18}|localhost|(\d{1,3}\.){3}\d{1,3}|[a-z0-9]{32})`; From 580779fc9138c2573e7a9c7b5a9ff769742412c4 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 24 Apr 2025 09:53:47 +0530 Subject: [PATCH 3/3] Update src/lib/helpers/string.ts Co-authored-by: Steven Nguyen <1477010+stnguyen90@users.noreply.github.com> --- src/lib/helpers/string.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/helpers/string.ts b/src/lib/helpers/string.ts index e4e1ec7bf..31e5f905b 100644 --- a/src/lib/helpers/string.ts +++ b/src/lib/helpers/string.ts @@ -59,4 +59,4 @@ export const hostnameRegex = String.raw`(\*)|(\*\.)?(?!-)[A-Za-z0-9\-]+([\-\.]{1 * * Supports domains, localhost, wildcards, ip-addresses and Chrome extension IDs! */ -export const extendedHostnameRegex = String.raw`(\*)|(\*\.)?((?!-)[A-Za-z0-9-]+([-.]{1}[a-z0-9]+)*\.[A-Za-z]{2,18}|localhost|(\d{1,3}\.){3}\d{1,3}|[a-z0-9]{32})`; +export const extendedHostnameRegex = String.raw`(\*)|(\*\.)?((?!-)[A-Za-z0-9\-]+([\-\.]{1}[a-z0-9]+)*\.[A-Za-z]{2,18}|localhost|(\d{1,3}\.){3}\d{1,3}|[a-z0-9]{32})`;