From 40483fea1aa0be029bf63bf3d59867e555a0864b Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 16:00:09 +0530 Subject: [PATCH 01/23] add: logic for tld, apex domain checks. --- package.json | 3 ++- pnpm-lock.yaml | 16 ++++++++++++++++ src/lib/helpers/tlds.ts | 8 ++++++++ .../domains/add-domain/+page.svelte | 9 ++++----- .../settings/domains/add-domain/+page.svelte | 9 ++++----- .../site-[site]/domains/add-domain/+page.svelte | 9 ++++----- 6 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 src/lib/helpers/tlds.ts diff --git a/package.json b/package.json index 851cb4490..83b7b7981 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,8 @@ "typescript": "^5.8.2", "typescript-eslint": "^8.30.1", "vite": "^6.2.3", - "vitest": "^3.0.0" + "vitest": "^3.0.0", + "tldts": "^7.0.7" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92351d55c..b14eb716f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -177,6 +177,9 @@ importers: svelte-sequential-preprocessor: specifier: ^2.0.2 version: 2.0.2 + tldts: + specifier: ^7.0.7 + version: 7.0.7 tslib: specifier: ^2.8.1 version: 2.8.1 @@ -3239,10 +3242,17 @@ packages: tldts-core@6.1.85: resolution: {integrity: sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==} + tldts-core@7.0.7: + resolution: {integrity: sha512-ECqb8imSroX1UmUuhRBNPkkmtZ8mHEenieim80UVxG0M5wXVjY2Fp2tYXCPvk+nLy1geOhFpeD5YQhM/gF63Jg==} + tldts@6.1.85: resolution: {integrity: sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==} hasBin: true + tldts@7.0.7: + resolution: {integrity: sha512-ETNXj36ql5BXDa4VVJk3wgqansg8TI1Yqo217twSAPjyDnh/b2T+XzrI0ftn6EnzVPbXpMTZHOWj5s3a8/uGPA==} + hasBin: true + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -6834,10 +6844,16 @@ snapshots: tldts-core@6.1.85: {} + tldts-core@7.0.7: {} + tldts@6.1.85: dependencies: tldts-core: 6.1.85 + tldts@7.0.7: + dependencies: + tldts-core: 7.0.7 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts new file mode 100644 index 000000000..d7421b0d2 --- /dev/null +++ b/src/lib/helpers/tlds.ts @@ -0,0 +1,8 @@ +import { parse } from 'tldts'; + +/** + * Returns the apex/root domain from a full domain string. + */ +export function getApexDomain(domain: string): string { + return parse(domain).domain; +} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index dd26bd21f..f2df1d77f 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -20,6 +20,7 @@ import { isValueOfStringEnum } from '$lib/helpers/types.js'; import { isCloud } from '$lib/system'; import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/functions/function-${page.params.function}/domains`; @@ -47,14 +48,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domain); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 09ff91999..49091e243 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -11,6 +11,7 @@ import { onMount } from 'svelte'; import { isCloud } from '$lib/system'; import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/settings/domains`; @@ -27,14 +28,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domain); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index 3b053e49f..c50094ae8 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -25,6 +25,7 @@ import { ConnectRepoModal } from '$lib/components/git/index.js'; import { project } from '$routes/(console)/project-[region]-[project]/store'; import { isCloud } from '$lib/system'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/sites/site-${page.params.site}/domains`; @@ -52,14 +53,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domain); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', From 417feedeffaa3ddb6b26484c25b717941c4617cd Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 16:46:25 +0530 Subject: [PATCH 02/23] update: var names. --- .../function-[function]/domains/add-domain/+page.svelte | 2 +- .../settings/domains/add-domain/+page.svelte | 4 ++-- .../sites/site-[site]/domains/add-domain/+page.svelte | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index f2df1d77f..8e70f0618 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -48,7 +48,7 @@ }); async function addDomain() { - const apexDomain = getApexDomain(domain); + const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 49091e243..1eb1695e6 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -28,7 +28,7 @@ }); async function addDomain() { - const apexDomain = getApexDomain(domain); + const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { @@ -47,7 +47,7 @@ try { const rule = await sdk .forProject(page.params.region, page.params.project) - .proxy.createAPIRule(domainName); + .proxy.createAPIRule(domainName.toLocaleLowerCase()); if (rule?.status === 'verified') { await goto(routeBase); await invalidate(Dependencies.DOMAINS); diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index c50094ae8..ce7ff80ec 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -53,7 +53,7 @@ }); async function addDomain() { - const apexDomain = getApexDomain(domain); + const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { From a0eeee5ee873a516842c5e220c1edf218be948df Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 17:01:34 +0530 Subject: [PATCH 03/23] improve: subdomain logic. --- src/lib/helpers/tlds.ts | 15 ++++++++++++++- .../add-domain/verify-[domain]/+page.svelte | 3 ++- .../add-domain/verify-[domain]/+page.svelte | 3 ++- .../add-domain/verify-[domain]/+page.svelte | 4 +++- .../site-[site]/domains/retryDomainModal.svelte | 5 ++--- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts index d7421b0d2..7eb8e32cc 100644 --- a/src/lib/helpers/tlds.ts +++ b/src/lib/helpers/tlds.ts @@ -4,5 +4,18 @@ import { parse } from 'tldts'; * Returns the apex/root domain from a full domain string. */ export function getApexDomain(domain: string): string { - return parse(domain).domain; + return parse(domain).domain || ''; +} + +/** + * Checks whether the given domain is a subdomain. + */ +export function isASubdomain(domain: string | null): boolean { + if (!domain) return false; + + const { domain: apex, subdomain } = parse(domain); + if (!apex) return false; + if (subdomain === 'www') return false; + + return !!subdomain; } diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index f8b03eb86..9e3cac8f3 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index ac027c30b..9de063361 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index cc27aa40b..236abcbfb 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,9 +28,10 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); + $effect(() => { if ($consoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { selectedTab = 'cname'; diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte index f18c1b664..0b1981d9e 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte @@ -11,6 +11,7 @@ import { consoleVariables } from '$routes/(console)/store'; import { isCloud } from '$lib/system'; import { page } from '$app/state'; + import { isASubdomain } from '$lib/helpers/tlds'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -22,9 +23,7 @@ selectedDomain: Models.ProxyRule; } = $props(); - let isSubDomain = $derived.by(() => - selectedDomain?.domain?.length ? selectedDomain?.domain?.split('.')?.length >= 3 : false - ); + let isSubDomain = $derived.by(() => isASubdomain(selectedDomain?.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { From f5501f30a57f72bc932e5a470d83a923bdff4084 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 17:13:33 +0530 Subject: [PATCH 04/23] address comments. --- src/lib/helpers/tlds.ts | 4 ++-- .../function-[function]/domains/add-domain/+page.svelte | 2 +- .../domains/add-domain/verify-[domain]/+page.svelte | 2 +- .../settings/domains/add-domain/+page.svelte | 2 +- .../settings/domains/add-domain/verify-[domain]/+page.svelte | 2 +- .../sites/site-[site]/domains/add-domain/+page.svelte | 2 +- .../domains/add-domain/verify-[domain]/+page.svelte | 2 +- .../sites/site-[site]/domains/retryDomainModal.svelte | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts index 7eb8e32cc..d4eaecfbc 100644 --- a/src/lib/helpers/tlds.ts +++ b/src/lib/helpers/tlds.ts @@ -3,8 +3,8 @@ import { parse } from 'tldts'; /** * Returns the apex/root domain from a full domain string. */ -export function getApexDomain(domain: string): string { - return parse(domain).domain || ''; +export function getApexDomain(domain: string): string|null { + return parse(domain).domain; } /** diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index 8e70f0618..e7a55a956 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -51,7 +51,7 @@ const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index 9e3cac8f3..be84fec9f 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -28,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 1eb1695e6..781c68bb2 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -31,7 +31,7 @@ const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index 9de063361..9866c94f0 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -28,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index ce7ff80ec..c57b7c2b6 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -56,7 +56,7 @@ const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index 236abcbfb..108d34030 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -28,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte index 0b1981d9e..389cbc2f7 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte @@ -23,7 +23,7 @@ selectedDomain: Models.ProxyRule; } = $props(); - let isSubDomain = $derived.by(() => isASubdomain(selectedDomain?.domain)); + const isSubDomain = $derived.by(() => isASubdomain(selectedDomain?.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { From b18aa1ccb55e672918866b72b1000bdf8f720ea6 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 17:15:10 +0530 Subject: [PATCH 05/23] lint. --- src/lib/helpers/tlds.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts index d4eaecfbc..23adffb4c 100644 --- a/src/lib/helpers/tlds.ts +++ b/src/lib/helpers/tlds.ts @@ -3,7 +3,7 @@ import { parse } from 'tldts'; /** * Returns the apex/root domain from a full domain string. */ -export function getApexDomain(domain: string): string|null { +export function getApexDomain(domain: string): string | null { return parse(domain).domain; } From 814723baf229aaa00a9156996e730b7e2eb275cd Mon Sep 17 00:00:00 2001 From: Arman Date: Thu, 22 May 2025 14:09:36 +0200 Subject: [PATCH 06/23] feat: use combobox for branch inputs --- package.json | 2 +- pnpm-lock.yaml | 43 ++++++++++--------- .../(modals)/createGit.svelte | 18 +++++--- .../createGitDeploymentModal.svelte | 18 +++++--- .../domains/add-domain/+page.svelte | 14 +++--- 5 files changed, 58 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 851cb4490..4c468640b 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "^2.0.0-RC.1", "@appwrite.io/pink-legacy": "^1.0.3", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92351d55c..9ef86d116 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,13 +22,13 @@ importers: version: 0.25.0 '@appwrite.io/pink-icons-svelte': specifier: ^2.0.0-RC.1 - version: 2.0.0-RC.1(svelte@5.25.3) + version: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9(svelte@5.25.3) '@appwrite.io/pink-legacy': specifier: ^1.0.3 version: 1.0.3 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c(svelte@5.25.3) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9(svelte@5.25.3) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -258,13 +258,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1959} version: 1.5.2 - '@appwrite.io/pink-icons-svelte@2.0.0-RC.1': - resolution: {integrity: sha512-iLFlV55hj8mGuAbmxJGenxN5RaZMmVT4GJb9dv/MP1xBAtYibFq7JvBcxm18qV2KU8c31Rntf+Ub4GL7HwqTYg==} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498} + version: 2.0.0-RC.1 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea} + '@appwrite.io/pink-icons-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9': + resolution: {tarball: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9} version: 2.0.0-RC.1 peerDependencies: svelte: ^4.0.0 @@ -278,8 +279,8 @@ packages: '@appwrite.io/pink-legacy@1.0.3': resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9} version: 2.0.0-RC.2 peerDependencies: svelte: ^4.0.0 @@ -1340,8 +1341,8 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/react@18.3.20': - resolution: {integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==} + '@types/react@18.3.22': + resolution: {integrity: sha512-vUhG0YmQZ7kL/tmKLrD3g5zXbXXreZXB3pmROW8bg3CnLnpjkRVwUlLne7Ufa2r9yJ8+/6B73RzhAek5TBKh2Q==} '@types/remarkable@2.0.8': resolution: {integrity: sha512-eKXqPZfpQl1kOADjdKchHrp2gwn9qMnGXhH/AtZe0UrklzhGJkawJo/Y/D0AlWcdWoWamFNIum8+/nkAISQVGg==} @@ -2852,8 +2853,8 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - property-information@7.0.0: - resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -3617,11 +3618,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1959': {} - '@appwrite.io/pink-icons-svelte@2.0.0-RC.1(svelte@5.25.3)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498(svelte@5.25.3)': dependencies: svelte: 5.25.3 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea(svelte@5.25.3)': + '@appwrite.io/pink-icons-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-icons-svelte@12707b9(svelte@5.25.3)': dependencies: svelte: 5.25.3 @@ -3634,9 +3635,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@67c988c(svelte@5.25.3)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9(svelte@5.25.3)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@67c988c04de3464a9c39630fd798e2316d157fea(svelte@5.25.3) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498(svelte@5.25.3) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.25.3))(svelte@5.25.3) '@melt-ui/svelte': 0.86.6(svelte@5.25.3) @@ -4777,7 +4778,7 @@ snapshots: '@types/prop-types@15.7.14': {} - '@types/react@18.3.20': + '@types/react@18.3.22': dependencies: '@types/prop-types': 15.7.14 csstype: 3.1.3 @@ -5879,7 +5880,7 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - property-information: 7.0.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -6412,7 +6413,7 @@ snapshots: progress@2.0.3: {} - property-information@7.0.0: {} + property-information@7.1.0: {} proxy-from-env@1.1.0: {} @@ -6725,7 +6726,7 @@ snapshots: svelte-motion@0.12.2(svelte@5.25.3): dependencies: - '@types/react': 18.3.20 + '@types/react': 18.3.22 framesync: 6.1.2 popmotion: 11.0.5 style-value-types: 5.1.2 diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createGit.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createGit.svelte index 8c7011a44..ac269c51e 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createGit.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/(modals)/createGit.svelte @@ -4,14 +4,14 @@ import { Repositories } from '$lib/components/git'; import { Dependencies } from '$lib/constants'; import { Link } from '$lib/elements'; - import { Button, InputCheckbox, InputSelect } from '$lib/elements/forms'; + import { Button, InputCheckbox } from '$lib/elements/forms'; import { timeFromNow } from '$lib/helpers/date'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { installation, repository, sortBranches } from '$lib/stores/vcs'; import { Runtime, VCSDeploymentType, type Models } from '@appwrite.io/console'; import { IconGithub } from '@appwrite.io/pink-icons-svelte'; - import { Icon, Layout, Skeleton, Typography } from '@appwrite.io/pink-svelte'; + import { Icon, Input, Layout, Skeleton, Typography } from '@appwrite.io/pink-svelte'; import { func } from '../store'; import { page } from '$app/state'; @@ -120,6 +120,14 @@ error = e.message; } } + + $: if (!show) { + error = ''; + branch = null; + commit = null; + activate = true; + hasRepository = !!$func?.providerRepositoryId; + } @@ -179,13 +187,13 @@ - { branch = event.detail.value; }} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte index 836628f5c..98984359a 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte @@ -5,7 +5,7 @@ import { Repositories } from '$lib/components/git'; import { Dependencies } from '$lib/constants'; import { Link } from '$lib/elements'; - import { Button, InputCheckbox, InputSelect } from '$lib/elements/forms'; + import { Button, InputCheckbox } from '$lib/elements/forms'; import { timeFromNow } from '$lib/helpers/date'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; @@ -18,7 +18,7 @@ type Models } from '@appwrite.io/console'; import { IconGithub } from '@appwrite.io/pink-icons-svelte'; - import { Icon, Layout, Skeleton, Typography } from '@appwrite.io/pink-svelte'; + import { Icon, Input, Layout, Skeleton, Typography } from '@appwrite.io/pink-svelte'; export let show = false; export let site: Models.Site; @@ -125,6 +125,14 @@ error = e.message; } } + + $: if (!show) { + error = ''; + branch = null; + commit = null; + activate = true; + hasRepository = !!site?.providerRepositoryId; + } @@ -184,13 +192,13 @@ - { branch = event.detail.value; }} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index 3b053e49f..38ea51c9a 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -175,13 +175,17 @@ value: branch.name }))} - + on:select={(event) => { + branch = event.detail.value; + }} + {options} /> {#if !data.branches?.total} No branches found in the selected repository. Create a From d3e51c6e7c1b0c9a7ff97b741315f9b35b4c82d9 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 18:11:43 +0530 Subject: [PATCH 07/23] update: badge sizes. --- src/lib/components/domains/nameserverTable.svelte | 2 +- src/lib/components/domains/recordTable.svelte | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/components/domains/nameserverTable.svelte b/src/lib/components/domains/nameserverTable.svelte index da5375bce..f9cbcecfc 100644 --- a/src/lib/components/domains/nameserverTable.svelte +++ b/src/lib/components/domains/nameserverTable.svelte @@ -17,7 +17,7 @@ {domain} {#if verified} - + {:else if verified === false} {/if} diff --git a/src/lib/components/domains/recordTable.svelte b/src/lib/components/domains/recordTable.svelte index 6dc6e6724..f099fa003 100644 --- a/src/lib/components/domains/recordTable.svelte +++ b/src/lib/components/domains/recordTable.svelte @@ -38,9 +38,9 @@ {domain} {#if verified} - + {:else if verified === false} - + {:else} Date: Thu, 22 May 2025 18:12:02 +0530 Subject: [PATCH 08/23] update: DNS tabs on sites. --- .../domains/add-domain/verify-[domain]/+page.svelte | 6 +++--- .../domains/add-domain/verify-[domain]/+page.ts | 10 ++-------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index 108d34030..73a4eba46 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -129,7 +129,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -137,7 +137,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} @@ -148,7 +148,7 @@ - {#if selectedTab === 'nameserver'} + {#if isCloud && selectedTab === 'nameserver'} {:else} { +export const load = async ({ parent, depends }) => { const { site } = await parent(); depends(Dependencies.SITES_DOMAINS); - let domain: Domain; let domainsList: DomainsList; if (isCloud) { domainsList = await sdk.forConsole.domains.list(); - const domainId = domainsList.domains.find( - (domain: Domain) => domain.domain === params.domain - ).$id; - domain = await sdk.forConsole.domains.get(domainId); } return { site, - domain, domainsList }; }; From 757f20cfdfab699c5e4be7995102f25ae6210457 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 18:13:46 +0530 Subject: [PATCH 09/23] update: DNS tabs on settings. --- .../domains/add-domain/verify-[domain]/+page.svelte | 4 ++-- .../domains/add-domain/verify-[domain]/+page.ts | 12 +++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index 9866c94f0..dc9946534 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -126,7 +126,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -134,7 +134,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts index 5fbb56d85..a5f6b1910 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.ts @@ -1,23 +1,17 @@ import { sdk } from '$lib/stores/sdk'; -import { Dependencies } from '$lib/constants.js'; import { isCloud } from '$lib/system'; -import type { Domain, DomainsList } from '$lib/sdk/domains.js'; +import { Dependencies } from '$lib/constants.js'; +import type { DomainsList } from '$lib/sdk/domains.js'; -export const load = async ({ depends, params }) => { +export const load = async ({ depends }) => { depends(Dependencies.DOMAINS); - let domain: Domain; let domainsList: DomainsList; if (isCloud) { domainsList = await sdk.forConsole.domains.list(); - const domainId = domainsList.domains.find( - (domain: Domain) => domain.domain === params.domain - ).$id; - domain = await sdk.forConsole.domains.get(domainId); } return { - domain, domainsList }; }; From a07f7e269fb6ebfdd088f9761d89e0b2950d3def Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 18:14:45 +0530 Subject: [PATCH 10/23] update: DNS tabs on functions. --- .../domains/add-domain/verify-[domain]/+page.svelte | 4 ++-- .../domains/add-domain/verify-[domain]/+page.ts | 12 +++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index be84fec9f..0ca8e0f52 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -127,7 +127,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -135,7 +135,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts index 5fbb56d85..a5f6b1910 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.ts @@ -1,23 +1,17 @@ import { sdk } from '$lib/stores/sdk'; -import { Dependencies } from '$lib/constants.js'; import { isCloud } from '$lib/system'; -import type { Domain, DomainsList } from '$lib/sdk/domains.js'; +import { Dependencies } from '$lib/constants.js'; +import type { DomainsList } from '$lib/sdk/domains.js'; -export const load = async ({ depends, params }) => { +export const load = async ({ depends }) => { depends(Dependencies.DOMAINS); - let domain: Domain; let domainsList: DomainsList; if (isCloud) { domainsList = await sdk.forConsole.domains.list(); - const domainId = domainsList.domains.find( - (domain: Domain) => domain.domain === params.domain - ).$id; - domain = await sdk.forConsole.domains.get(domainId); } return { - domain, domainsList }; }; From 4b23c8edfd11402352322cad920e1ede5eca4da6 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 18:21:49 +0530 Subject: [PATCH 11/23] fix: check. --- .../domains/add-domain/verify-[domain]/+page.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index 73a4eba46..9e30d8a05 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -148,14 +148,14 @@ - {#if isCloud && selectedTab === 'nameserver'} + {#if selectedTab === 'nameserver'} {:else} + domain={page.params.domain} /> {/if} From 0126622e5103903f6356fcc47f0c46c16ed1171d Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 18:41:09 +0530 Subject: [PATCH 12/23] fix: return to domains list on deletion. --- .../domains/deleteDomainModal.svelte | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte b/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte index cdbb00b8c..b30ec8bf1 100644 --- a/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte +++ b/src/routes/(console)/organization-[organization]/domains/deleteDomainModal.svelte @@ -1,27 +1,31 @@ @@ -64,11 +72,7 @@ {/if} {:else if column.id === 'target'} - {domain?.redirectUrl - ? 'Redirect to ' + domain.redirectUrl - : domain?.deploymentVcsProviderBranch - ? 'Deployed from' + domain.deploymentVcsProviderBranch - : '-'} + {domainTarget(domain)} {/if} {/each} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte index 020947970..0d82b3bc3 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte @@ -27,6 +27,14 @@ let showDelete = $state(false); let showRetry = $state(false); let selectedDomain: Models.ProxyRule = $state(null); + + const domainTarget = (proxy: Models.ProxyRule) => { + return proxy?.redirectUrl + ? 'Redirect to ' + proxy.redirectUrl + : proxy?.deploymentVcsProviderBranch + ? 'Deployed from' + proxy.deploymentVcsProviderBranch + : 'Active deployment'; + }; @@ -65,11 +73,7 @@ {/if} {:else if column.id === 'target'} - {domain?.redirectUrl - ? 'Redirect to ' + domain.redirectUrl - : domain?.deploymentVcsProviderBranch - ? 'Deployed from' + domain.deploymentVcsProviderBranch - : '-'} + {domainTarget(domain)} {/if} {/each} From 289d9fc94c216fcf4469e583aac348ce2919ba4f Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 23 May 2025 13:04:30 +0530 Subject: [PATCH 17/23] update: rename all `domain` vars to `proxy` if `ProxyRule` type for clarity in functions. --- .../function-[function]/domains/+page.svelte | 6 ++-- .../function-[function]/domains/+page.ts | 2 +- .../domains/deleteDomainModal.svelte | 11 +++---- .../domains/recordsCard.svelte | 7 ++--- .../domains/retryDomainModal.svelte | 15 +++++----- .../function-[function]/domains/table.svelte | 30 +++++++++---------- 6 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.svelte index e1ab5a837..eaba6f04b 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.svelte @@ -18,7 +18,7 @@ let showDelete = $state(false); let showRetry = $state(false); - let selectedDomain: Models.ProxyRule = null; + let selectedProxyRule: Models.ProxyRule = null; @@ -83,9 +83,9 @@ {#if showDelete} - + {/if} {#if showRetry} - + {/if} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.ts index 8e96e426a..50397306c 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/+page.ts @@ -26,7 +26,7 @@ export const load: PageLoad = async ({ depends, params, url, route }) => { limit, query, search, - domains: await sdk + proxyRules: await sdk .forProject(params.region, params.project) .proxy.listRules( [ diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/deleteDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/deleteDomainModal.svelte index 1882bc282..c5ce1db80 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/deleteDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/deleteDomainModal.svelte @@ -11,15 +11,16 @@ import { page } from '$app/state'; export let show = false; - export let selectedDomain: Models.ProxyRule; - let confirm = false; + export let selectedProxyRule: Models.ProxyRule; + let error = ''; + let confirm = false; async function deleteDomain() { try { await sdk .forProject(page.params.region, page.params.project) - .proxy.deleteRule(selectedDomain.$id); + .proxy.deleteRule(selectedProxyRule.$id); await invalidate(Dependencies.FUNCTION_DOMAINS); show = false; addNotification({ @@ -35,13 +36,13 @@ - {#if selectedDomain} + {#if selectedProxyRule} Are you sure you want to delete this domain? You will no longer be able to execute your function by visiting: - {selectedDomain.domain} + {selectedProxyRule.domain} {/if} import { Link } from '$lib/elements'; - import type { Domain } from '$lib/sdk/domains'; import { IconInfo } from '@appwrite.io/pink-icons-svelte'; import { Badge, @@ -14,7 +13,7 @@ import type { Models } from '@appwrite.io/console'; import { consoleVariables } from '$routes/(console)/store'; - export let domain: Domain | Models.ProxyRule; + export let proxyRule: Models.ProxyRule;
@@ -22,7 +21,7 @@ - {domain?.domain} + {proxyRule?.domain} @@ -39,7 +38,7 @@ CNAME - {domain?.domain} + {proxyRule?.domain} - - {#if selectedDomain} - + + {#if selectedProxyRule} + {/if} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte index 4cd12187b..1c9df426f 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte @@ -19,16 +19,16 @@ import { columns } from './store'; let { - domains + proxyRules }: { - domains: Models.ProxyRuleList; + proxyRules: Models.ProxyRuleList; } = $props(); let showDelete = $state(false); let showRetry = $state(false); - let selectedDomain: Models.ProxyRule = $state(null); + let selectedProxyRule: Models.ProxyRule = $state(null); - const domainTarget = (proxy: Models.ProxyRule) => { + const proxyTarget = (proxy: Models.ProxyRule) => { return proxy?.redirectUrl ? 'Redirect to ' + proxy.redirectUrl : proxy?.deploymentVcsProviderBranch @@ -46,24 +46,24 @@ {/each} - {#each domains.rules as domain} + {#each proxyRules.rules as proxyRule} {#each $columns as column} {#if column.id === 'domain'} - + - {domain.domain} + {proxyRule.domain} - {#if domain.status === 'verifying'} + {#if proxyRule.status === 'verifying'} - {:else if domain.status !== 'verified'} + {:else if proxyRule.status !== 'verified'} {:else if column.id === 'target'} - {domainTarget(domain)} + {proxyTarget(proxyRule)} {/if} {/each} @@ -91,11 +91,11 @@ - {#if domain.status !== 'verified'} + {#if proxyRule.status !== 'verified'} { - selectedDomain = domain; + selectedProxyRule = proxyRule; showRetry = true; toggle(e); }}> @@ -106,7 +106,7 @@ status="danger" leadingIcon={IconTrash} on:click={(e) => { - selectedDomain = domain; + selectedProxyRule = proxyRule; showDelete = true; toggle(e); trackEvent(Click.DomainDeleteClick, { @@ -125,9 +125,9 @@ {#if showDelete} - + {/if} {#if showRetry} - + {/if} From 6ead88a74353d58e545675da6fc36269caa75da2 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 23 May 2025 13:50:25 +0530 Subject: [PATCH 18/23] update: rename all `domain` vars to `proxy` if `ProxyRule` type for clarity in sites. --- .../sites/site-[site]/domains/+page.svelte | 6 ++-- .../sites/site-[site]/domains/+page.ts | 2 +- .../domains/deleteDomainModal.svelte | 10 +++---- .../domains/retryDomainModal.svelte | 14 ++++----- .../sites/site-[site]/domains/table.svelte | 30 +++++++++---------- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/+page.svelte index 23537ff99..8e4d4c3e7 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/+page.svelte @@ -29,14 +29,14 @@ - {#if data.domains.total} - + {#if data.proxyRules.total} +
+ total={data.proxyRules.total} /> {:else if data?.search} - {#if data.domains.total} -
+ {#if data.proxyRules.total} +
+ total={data.proxyRules.total} /> {:else if data?.search} From cdd1eb6dc8992847aa9a133287aecf02002129d2 Mon Sep 17 00:00:00 2001 From: ernstmul Date: Fri, 23 May 2025 10:31:25 +0200 Subject: [PATCH 20/23] Cronjob field as text --- src/lib/elements/forms/inputCron.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elements/forms/inputCron.svelte b/src/lib/elements/forms/inputCron.svelte index 7e2a2ef53..7f31312f4 100644 --- a/src/lib/elements/forms/inputCron.svelte +++ b/src/lib/elements/forms/inputCron.svelte @@ -49,7 +49,7 @@ {pattern} on:input on:invalid={handleInvalid} - type="email" + type="text" helper={error} state={error ? 'error' : 'default'} autofocus={autofocus || undefined} From 6816c63fa8196e0e914804f41f09b6555b7eab29 Mon Sep 17 00:00:00 2001 From: Arman Date: Fri, 23 May 2025 11:27:44 +0200 Subject: [PATCH 21/23] fix: logs missing url, deploments overview table --- package.json | 6 +++--- pnpm-lock.yaml | 19 +++++++++---------- src/lib/components/logs/logsRequest.svelte | 9 +++++++-- .../site-[site]/deploymentsOverview.svelte | 10 +++++++--- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index dd211eda9..14e3308bb 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "^2.0.0-RC.1", "@appwrite.io/pink-legacy": "^1.0.3", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9", + "@appwrite.io/pink-svelte": "https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-svelte@510c1a7", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", @@ -79,12 +79,12 @@ "svelte-check": "^4.1.5", "svelte-preprocess": "^6.0.3", "svelte-sequential-preprocessor": "^2.0.2", + "tldts": "^7.0.7", "tslib": "^2.8.1", "typescript": "^5.8.2", "typescript-eslint": "^8.30.1", "vite": "^6.2.3", - "vitest": "^3.0.0", - "tldts": "^7.0.7" + "vitest": "^3.0.0" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4585dc30e..ad29a5d49 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,8 +27,8 @@ importers: specifier: ^1.0.3 version: 1.0.3 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9(svelte@5.25.3) + specifier: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-svelte@510c1a7 + version: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-svelte@510c1a7(svelte@5.25.3) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -261,9 +261,8 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1959} version: 1.5.2 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498} - version: 2.0.0-RC.1 + '@appwrite.io/pink-icons-svelte@2.0.0-RC.1': + resolution: {integrity: sha512-iLFlV55hj8mGuAbmxJGenxN5RaZMmVT4GJb9dv/MP1xBAtYibFq7JvBcxm18qV2KU8c31Rntf+Ub4GL7HwqTYg==} peerDependencies: svelte: ^4.0.0 @@ -282,8 +281,8 @@ packages: '@appwrite.io/pink-legacy@1.0.3': resolution: {integrity: sha512-GGde5fmPhs+s6/3aFeMPc/kKADG/gTFkYQSy6oBN8pK0y0XNCLrZZgBv+EBbdhwdtqVEWXa0X85Mv9w7jcIlwQ==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9} + '@appwrite.io/pink-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-svelte@510c1a7': + resolution: {tarball: https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-svelte@510c1a7} version: 2.0.0-RC.2 peerDependencies: svelte: ^4.0.0 @@ -3628,7 +3627,7 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1959': {} - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498(svelte@5.25.3)': + '@appwrite.io/pink-icons-svelte@2.0.0-RC.1(svelte@5.25.3)': dependencies: svelte: 5.25.3 @@ -3645,9 +3644,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@12707b9(svelte@5.25.3)': + '@appwrite.io/pink-svelte@https://try-module.cloud/module/@appwrite/%40appwrite.io%2Fpink-svelte@510c1a7(svelte@5.25.3)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@12707b95033c5822745ec6a2250a9cd0de10a498(svelte@5.25.3) + '@appwrite.io/pink-icons-svelte': 2.0.0-RC.1(svelte@5.25.3) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.25.3))(svelte@5.25.3) '@melt-ui/svelte': 0.86.6(svelte@5.25.3) diff --git a/src/lib/components/logs/logsRequest.svelte b/src/lib/components/logs/logsRequest.svelte index 85bd2482a..0e05ce4ed 100644 --- a/src/lib/components/logs/logsRequest.svelte +++ b/src/lib/components/logs/logsRequest.svelte @@ -1,4 +1,5 @@ @@ -122,12 +133,8 @@ - Missing headers? Check the docs to see the supported data and how to log it. + Missing headers? Check the docs to see + the supported data and how to log it. {:else} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/executions/sheet.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/executions/sheet.svelte index fd6e2bee1..e31caff20 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/executions/sheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/executions/sheet.svelte @@ -167,7 +167,7 @@ - + diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/logs/sheet.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/logs/sheet.svelte index 881e4e3d2..184406e24 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/logs/sheet.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/logs/sheet.svelte @@ -141,7 +141,7 @@ - + From 275b0f4cd340b160d077bfca1d219465028250db Mon Sep 17 00:00:00 2001 From: Arman Date: Fri, 23 May 2025 13:57:03 +0200 Subject: [PATCH 23/23] fix: logic --- src/lib/components/logs/logsRequest.svelte | 11 +++++------ src/lib/components/logs/logsResponse.svelte | 5 ++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/lib/components/logs/logsRequest.svelte b/src/lib/components/logs/logsRequest.svelte index 3d582f2d0..dc04eb022 100644 --- a/src/lib/components/logs/logsRequest.svelte +++ b/src/lib/components/logs/logsRequest.svelte @@ -25,6 +25,11 @@ let parameters = $state([]); + const href = + product === 'site' + ? 'https://appwrite.io/docs/products/sites/logs#log-details' + : 'https://appwrite.io/docs/products/functions/develop#logging'; + onMount(() => { try { // Add dummy base URL to parse relative paths @@ -47,12 +52,6 @@ requestTab = 'headers'; } }); - - let href = $derived( - product === 'site' - ? 'https://appwrite.io/docs/products/sites/logs#log-details' - : 'https://appwrite.io/docs/products/functions/develop#logging' - ); diff --git a/src/lib/components/logs/logsResponse.svelte b/src/lib/components/logs/logsResponse.svelte index 227efc636..a1361af54 100644 --- a/src/lib/components/logs/logsResponse.svelte +++ b/src/lib/components/logs/logsResponse.svelte @@ -28,11 +28,10 @@ let responseTab: 'logs' | 'errors' | 'headers' | 'body' = $state('logs'); - let href = $derived( + const href = product === 'site' ? 'https://appwrite.io/docs/products/sites/logs#log-details' - : 'https://appwrite.io/docs/products/functions/develop#logging' - ); + : 'https://appwrite.io/docs/products/functions/develop#logging'; onMount(() => { if (selectedLog?.errors) {