From 66b4c0189dc1384086b312ee81b9d3e7b8bed4de Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 5 May 2025 14:56:21 +0200 Subject: [PATCH 1/6] chore: update sdk --- package.json | 4 ++-- pnpm-lock.yaml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index a52b0a0de..e9ac3b98c 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "e2e:ui": "playwright test --ui" }, "dependencies": { - "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@e2f082e", + "@ai-sdk/svelte": "^1.1.22", + "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1", "@appwrite.io/pink": "0.25.0", "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f", @@ -32,7 +33,6 @@ "@stripe/stripe-js": "^3.5.0", "ai": "^2.2.37", "analytics": "^0.8.16", - "@ai-sdk/svelte": "^1.1.22", "cron-parser": "^4.9.0", "dayjs": "^1.11.13", "deep-equal": "^2.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5aefd5fd1..b39b94c6f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^1.1.22 version: 1.1.22(svelte@5.25.3)(zod@3.24.3) '@appwrite.io/console': - specifier: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@e2f082e - version: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@e2f082e + specifier: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1 + version: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1 '@appwrite.io/pink': specifier: 0.25.0 version: 0.25.0 @@ -254,8 +254,8 @@ packages: '@analytics/type-utils@0.6.2': resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} - '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@e2f082e': - resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@e2f082e} + '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1': + resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1} version: 1.2.1 '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f': @@ -3625,7 +3625,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@e2f082e': {} + '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@f76aff1': {} '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@bd21ff7f(svelte@5.25.3)': dependencies: From e865f83fb20f64bc054a0467c592d6fc5a15f592 Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 5 May 2025 15:23:44 +0200 Subject: [PATCH 2/6] fix: deployment metrics --- src/lib/helpers/timeConversion.ts | 6 +++++ .../deployments/deploymentMetrics.svelte | 24 +++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/lib/helpers/timeConversion.ts b/src/lib/helpers/timeConversion.ts index a0cdf725e..7cf8de166 100644 --- a/src/lib/helpers/timeConversion.ts +++ b/src/lib/helpers/timeConversion.ts @@ -101,6 +101,12 @@ export function secsToUnit(time: number, unit: Unit) { * @returns Formatted string like "3d 4h 30m 23s" */ export function formatTimeDetailed(time: number): string { + if (typeof time !== 'number' || time === undefined || time === null) { + return '-'; + } + if (time <= 0) { + return '0s'; + } const seconds = Math.floor(time % 60); const minutes = Math.floor((time / 60) % 60); const hours = Math.floor((time / (60 * 60)) % 24); diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte index a14fb82e1..7e93abd7c 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte @@ -7,6 +7,8 @@ import { onMount } from 'svelte'; import { page } from '$app/state'; import { UsageCard } from '$lib/components'; + import { humanFileSize } from '$lib/helpers/sizeConvertion'; + import { formatTimeDetailed } from '$lib/helpers/timeConversion'; const now = new Date(); const rangeOptions = [ @@ -33,17 +35,17 @@ description: 'Total builds time' }, { - id: 'avgTime', + id: 'buildsTimeAverage', value: null, description: 'Avg. builds time' }, { - id: 'success', + id: 'buildsSuccessTotal', value: null, description: 'Successful' }, { - id: 'failed', + id: 'buildsFailedTotal', value: null, description: 'Failed ' } @@ -63,7 +65,21 @@ try { const usage = await sdk.forProject.sites.getUsage(page.params.site, range); metrics = metrics.map((metric) => { - metric.value = usage[metric.id] ?? '-'; + if (metric.id === 'buildsStorageTotal') { + const size = humanFileSize(usage[metric.id]); + + metric.value = parseInt(size?.value) > 0 ? size.value + size.unit : '-'; + } else if ( + metric.id === 'buildsTimeTotal' || + metric.id === 'buildsTimeAverage' + ) { + const seconds = usage[metric.id] > 0 ? usage[metric.id] / 1000 : 0; + const time = formatTimeDetailed(seconds); + + metric.value = time !== '0s' ? time : '-'; + } else { + metric.value = usage[metric.id] ?? '-'; + } return metric; }); metrics = metrics; From 0a17f52d2e31ed29dc9ee4d6197523c99b2da29f Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 5 May 2025 18:52:19 +0200 Subject: [PATCH 3/6] feat: add missing docs links --- src/lib/components/logs/logsResponse.svelte | 17 +++++++++-------- .../(modals)/createGit.svelte | 4 +++- .../create-site/variableEditorModal.svelte | 6 +++++- .../deployments/createGitDeploymentModal.svelte | 4 +++- .../sites/site-[site]/domains/+page.svelte | 2 +- .../site-[site]/instantRollbackModal.svelte | 3 ++- .../sites/site-[site]/logs/+page.svelte | 2 +- 7 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/lib/components/logs/logsResponse.svelte b/src/lib/components/logs/logsResponse.svelte index 605ddaea9..7953ba33a 100644 --- a/src/lib/components/logs/logsResponse.svelte +++ b/src/lib/components/logs/logsResponse.svelte @@ -32,6 +32,12 @@ let responseTab: 'logs' | 'errors' | 'headers' | 'body' = $state('logs'); + let href = $derived( + product === 'site' + ? 'https://appwrite.io/docs/products/sites/logs#log-details' + : 'https://appwrite.io/docs/products/functions/develop#logging' + ); + onMount(() => { if (selectedLog?.errors) { responseTab = 'errors'; @@ -128,8 +134,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} @@ -146,12 +152,7 @@ Body data is not captured by Appwrite for your user's security and privacy. To display body data in the Logs tab, use . - Learn more. + size="s" />. Learn more. {/if} diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createGit.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createGit.svelte index 19d81e0ca..b9c62c8d6 100644 --- a/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createGit.svelte +++ b/src/routes/(console)/project-[project]/functions/function-[function]/(modals)/createGit.svelte @@ -122,7 +122,9 @@ - Enter a valid commit reference to create a new deployment. Learn more + Enter a valid commit reference to create a new deployment. Learn more {#if hasRepository} {#await load()} diff --git a/src/routes/(console)/project-[project]/sites/create-site/variableEditorModal.svelte b/src/routes/(console)/project-[project]/sites/create-site/variableEditorModal.svelte index 891679b1c..9d95f8665 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/variableEditorModal.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/variableEditorModal.svelte @@ -122,7 +122,11 @@ {#if secretVariables?.length > 0} {secretVariables.length} secret variables are hidden from the editor. Their values will - remain unchanged. Learn more. + remain unchanged. Learn more. {/if} diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte index 631342ac1..0b943ba9e 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/createGitDeploymentModal.svelte @@ -127,7 +127,9 @@ - Enter a valid commit reference to create a new deployment. Learn more + Enter a valid commit reference to create a new deployment. Learn more {#if hasRepository} {#await load()} diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/domains/+page.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/domains/+page.svelte index 343292e19..50fbd7359 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/domains/+page.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/domains/+page.svelte @@ -58,7 +58,7 @@ - - + {#if data.rules.total} diff --git a/src/routes/(console)/project-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[project]/settings/domains/add-domain/+page.svelte index fc11c25ec..ea86dce94 100644 --- a/src/routes/(console)/project-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[project]/settings/domains/add-domain/+page.svelte @@ -5,21 +5,27 @@ import { Wizard } from '$lib/layout'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; - import { Fieldset, Layout } from '@appwrite.io/pink-svelte'; + import { Fieldset } from '@appwrite.io/pink-svelte'; import { goto, invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import { writable } from 'svelte/store'; + import { onMount } from 'svelte'; const routeBase = `${base}/project-${page.params.project}/settings/domains`; - //TODO: enable once combo box is fixed // let { data } = $props(); let formComponent: Form; let isSubmitting = $state(writable(false)); - + let showConnectRepo = $state(false); let domainName = $state(''); + onMount(() => { + if (page.url.searchParams.has('domain')) { + domainName = page.url.searchParams.get('domain'); + } + }); + async function addDomain() { try { const rule = await sdk.forProject.proxy.createAPIRule(domainName); @@ -41,27 +47,12 @@
- -
- - -
-
+ diff --git a/src/routes/(console)/project-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index b70833e06..9606b0f8e 100644 --- a/src/routes/(console)/project-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -1,7 +1,14 @@ - -
- -
- - {#if isSubDomain} - (selectedTab = 'cname')} - active={selectedTab === 'cname'}> - CNAME - - {/if} - {#if isCloud} - (selectedTab = 'nameserver')} - active={selectedTab === 'nameserver'}> - Nameservers - - {/if} - - -
- {#if selectedTab === 'cname' && isSubDomain} - - {:else if isCloud} - - {/if} - -
-
diff --git a/src/routes/(console)/project-[project]/settings/domains/deleteDomainModal.svelte b/src/routes/(console)/project-[project]/settings/domains/deleteDomainModal.svelte index 3b2657c63..e2e937ff6 100644 --- a/src/routes/(console)/project-[project]/settings/domains/deleteDomainModal.svelte +++ b/src/routes/(console)/project-[project]/settings/domains/deleteDomainModal.svelte @@ -21,7 +21,7 @@ async function deleteDomain() { try { await sdk.forProject.proxy.deleteRule(selectedDomain.$id); - await invalidate(Dependencies.SITES_DOMAINS); + await invalidate(Dependencies.DOMAINS); show = false; addNotification({ type: 'success', @@ -38,11 +38,7 @@ {#if selectedDomain} - Are you sure you want to delete this domain? You will no longer be able to view your - site by visiting: - - - {selectedDomain.domain} + Are you sure you want to delete this domain? {/if} diff --git a/src/routes/(console)/project-[project]/settings/domains/retryDomainModal.svelte b/src/routes/(console)/project-[project]/settings/domains/retryDomainModal.svelte index 5f0845c30..b5f451d85 100644 --- a/src/routes/(console)/project-[project]/settings/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[project]/settings/domains/retryDomainModal.svelte @@ -21,7 +21,7 @@ async function retryDomain() { try { await sdk.forProject.proxy.updateRuleVerification(selectedDomain.$id); - await invalidate(Dependencies.SITES_DOMAINS); + await invalidate(Dependencies.DOMAINS); show = false; addNotification({ type: 'success', diff --git a/src/routes/(console)/project-[project]/settings/domains/table.svelte b/src/routes/(console)/project-[project]/settings/domains/table.svelte index 8631c7c55..8529c72dc 100644 --- a/src/routes/(console)/project-[project]/settings/domains/table.svelte +++ b/src/routes/(console)/project-[project]/settings/domains/table.svelte @@ -5,7 +5,15 @@ import { protocol } from '$routes/(console)/store'; import type { Models } from '@appwrite.io/console'; import { IconDotsHorizontal, IconRefresh, IconTrash } from '@appwrite.io/pink-icons-svelte'; - import { ActionMenu, Icon, Layout, Popover, Table, Typography } from '@appwrite.io/pink-svelte'; + import { + ActionMenu, + Badge, + Icon, + Layout, + Popover, + Table, + Typography + } from '@appwrite.io/pink-svelte'; import DeleteDomainModal from './deleteDomainModal.svelte'; import RetryDomainModal from './retryDomainModal.svelte'; import { columns } from './store'; @@ -19,7 +27,6 @@ let showDelete = $state(false); let showRetry = $state(false); let selectedDomain: Models.ProxyRule = $state(null); - let showPreviewDomainModal = $state(false); @@ -39,14 +46,15 @@ {domain.domain} + {#if domain.status !== 'verified'} + + {/if} - {:else if column.id === 'redirectUrl'} - - {domain?.redirectUrl || 'No redirect'} - {domain?.redirectStatusCode ? `(${domain.redirectStatusCode})` : ''} - {:else if column.id === 'deploymentVcsProviderBranch'} - {domain.deploymentVcsProviderBranch || '-'} {/if} {/each} @@ -69,7 +77,6 @@ { - e.preventDefault(); selectedDomain = domain; showRetry = true; toggle(e); @@ -81,12 +88,11 @@ status="danger" leadingIcon={IconTrash} on:click={(e) => { - e.preventDefault(); selectedDomain = domain; showDelete = true; toggle(e); trackEvent(Click.DomainDeleteClick, { - source: 'sites_domain_overview' + source: 'settings_domain_overview' }); }}> Delete From 2206dc2fbe15f659e08f324409f7a1198775d3ac Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 5 May 2025 19:20:27 +0200 Subject: [PATCH 5/6] fix: api domains --- .../project-[project]/settings/domains/+page.svelte | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[project]/settings/domains/+page.svelte b/src/routes/(console)/project-[project]/settings/domains/+page.svelte index e74803dd3..431a02178 100644 --- a/src/routes/(console)/project-[project]/settings/domains/+page.svelte +++ b/src/routes/(console)/project-[project]/settings/domains/+page.svelte @@ -5,8 +5,7 @@ import { Button } from '$lib/elements/forms'; import Container from '$lib/layout/container.svelte'; import { IconPlus } from '@appwrite.io/pink-icons-svelte'; - import { Card, Empty, Icon, Layout } from '@appwrite.io/pink-svelte'; - import SearchQuery from '$lib/components/searchQuery.svelte'; + import { Card, Empty, Icon } from '@appwrite.io/pink-svelte'; import { app } from '$lib/stores/app'; import { Click, trackEvent } from '$lib/actions/analytics'; import Table from './table.svelte'; @@ -16,7 +15,11 @@ - +