From ff4ff0c16d821476b9693978c72ed051da39fdc8 Mon Sep 17 00:00:00 2001 From: Hemachandar Date: Fri, 28 Nov 2025 12:23:39 +0530 Subject: [PATCH 1/3] Pagination for list repositories --- package.json | 2 +- pnpm-lock.yaml | 10 +- src/lib/components/git/repositories.svelte | 235 ++++++++++-------- .../components/git/skeletonRepoList.svelte | 4 +- .../functions/function-[function]/store.ts | 4 +- 5 files changed, 141 insertions(+), 114 deletions(-) diff --git a/package.json b/package.json index 1c916e1814..b4a3758396 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@ai-sdk/svelte": "^1.1.24", - "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@acef319", + "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@eb6be9d", "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@6916470", "@appwrite.io/pink-legacy": "^1.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1724be8386..1bfe1f4511 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^1.1.24 version: 1.1.24(svelte@5.25.3)(zod@3.24.3) '@appwrite.io/console': - specifier: https://pkg.vc/-/@appwrite/@appwrite.io/console@acef319 - version: https://pkg.vc/-/@appwrite/@appwrite.io/console@acef319 + specifier: https://pkg.vc/-/@appwrite/@appwrite.io/console@eb6be9d + version: https://pkg.vc/-/@appwrite/@appwrite.io/console@eb6be9d '@appwrite.io/pink-icons': specifier: 0.25.0 version: 0.25.0 @@ -260,8 +260,8 @@ packages: '@analytics/type-utils@0.6.2': resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} - '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@acef319': - resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/console@acef319} + '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@eb6be9d': + resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/console@eb6be9d} version: 1.10.0 '@appwrite.io/pink-icons-svelte@2.0.0-RC.1': @@ -3703,7 +3703,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@acef319': {} + '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@eb6be9d': {} '@appwrite.io/pink-icons-svelte@2.0.0-RC.1(svelte@5.25.3)': dependencies: diff --git a/src/lib/components/git/repositories.svelte b/src/lib/components/git/repositories.svelte index 260576f324..2d83745188 100644 --- a/src/lib/components/git/repositories.svelte +++ b/src/lib/components/git/repositories.svelte @@ -1,5 +1,5 @@ - {#each Array(4) as _} + {#each Array(count) as _} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts index 2ee9630477..c6630be5da 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts @@ -17,10 +17,12 @@ export const proxyRuleList = derived( export const repositories: Writable<{ search: string; installationId: string; - repositories: Models.ProviderRepository[]; + total: number; + repositories: Models.ProviderRepository[] | Models.ProviderRepositoryFramework[] | Models.ProviderRepositoryRuntime[]; }> = writable({ search: '', installationId: '', + total: 0, repositories: [] }); From 97afec41fcadccba3befb1d0ef243e965db992ed Mon Sep 17 00:00:00 2001 From: Hemachandar Date: Fri, 5 Dec 2025 13:34:09 +0530 Subject: [PATCH 2/3] update SDK --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- .../functions/create-function/deploy/+page.svelte | 4 ++-- .../repository-[repository]/+page.svelte | 4 ++-- .../create-function/template-[template]/+page.svelte | 4 ++-- .../function-[function]/(modals)/createGit.svelte | 6 +++--- .../functions/function-[function]/store.ts | 5 ++++- .../sites/create-site/deploy/+page.svelte | 10 ++++++++-- .../repositories/repository-[repository]/+page.svelte | 4 ++-- .../templates/template-[template]/+page.svelte | 11 +++++++++-- .../deployments/createGitDeploymentModal.svelte | 6 +++--- 11 files changed, 41 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 7be776a0f1..5579ef2721 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@ai-sdk/svelte": "^1.1.24", - "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@406d8be", + "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@9b32107", "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@865e2fc", "@appwrite.io/pink-legacy": "^1.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc4cef1cd0..479be4ae9f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^1.1.24 version: 1.1.24(svelte@5.25.3)(zod@3.24.3) '@appwrite.io/console': - specifier: https://pkg.vc/-/@appwrite/@appwrite.io/console@406d8be - version: https://pkg.vc/-/@appwrite/@appwrite.io/console@406d8be + specifier: https://pkg.vc/-/@appwrite/@appwrite.io/console@9b32107 + version: https://pkg.vc/-/@appwrite/@appwrite.io/console@9b32107 '@appwrite.io/pink-icons': specifier: 0.25.0 version: 0.25.0 @@ -260,8 +260,8 @@ packages: '@analytics/type-utils@0.6.2': resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} - '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@406d8be': - resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/console@406d8be} + '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@9b32107': + resolution: {tarball: https://pkg.vc/-/@appwrite/@appwrite.io/console@9b32107} version: 1.10.0 '@appwrite.io/pink-icons-svelte@2.0.0-RC.1': @@ -3703,7 +3703,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@406d8be': {} + '@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@9b32107': {} '@appwrite.io/pink-icons-svelte@2.0.0-RC.1(svelte@5.25.3)': dependencies: diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/deploy/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/deploy/+page.svelte index 6166daa519..04c757d768 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/create-function/deploy/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/deploy/+page.svelte @@ -11,7 +11,7 @@ import { Fieldset, Layout, Icon, Input, Tag } from '@appwrite.io/pink-svelte'; import { IconGithub, IconPencil } from '@appwrite.io/pink-icons-svelte'; import { onMount } from 'svelte'; - import { ID, Runtime, Type } from '@appwrite.io/console'; + import { ID, Runtime, TemplateReferenceType } from '@appwrite.io/console'; import { CustomId } from '$lib/components'; import { getIconFromRuntime } from '$lib/stores/runtimes'; import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; @@ -134,7 +134,7 @@ repository: data.repository.name, owner: data.repository.owner, rootDirectory: rootDir || '.', - type: Type.Tag, + type: TemplateReferenceType.Tag, reference: latestTag ?? '1.0.0', activate: true }); diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte index 2cc5e7b28d..476b1d27ca 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte @@ -10,7 +10,7 @@ import { installation, repository } from '$lib/stores/vcs'; import { Layout } from '@appwrite.io/pink-svelte'; import { writable } from 'svelte/store'; - import { ID, Runtime, VCSDeploymentType, VCSDetectionType } from '@appwrite.io/console'; + import { ID, Runtime, VCSReferenceType, VCSDetectionType } from '@appwrite.io/console'; import type { Models } from '@appwrite.io/console'; import { onMount } from 'svelte'; import Details from '../(components)/details.svelte'; @@ -132,7 +132,7 @@ .forProject(page.params.region, page.params.project) .functions.createVcsDeployment({ functionId: func.$id, - type: VCSDeploymentType.Branch, + type: VCSReferenceType.Branch, reference: branch, activate: true }); diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte index 6c6617df67..3eb10a02f0 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte @@ -15,7 +15,7 @@ import { writable } from 'svelte/store'; import ProductionBranch from '$lib/components/git/productionBranchFieldset.svelte'; import Configuration from './configuration.svelte'; - import { ID, Runtime, Type, type Models } from '@appwrite.io/console'; + import { ID, Runtime, TemplateReferenceType, type Models } from '@appwrite.io/console'; import { ConnectBehaviour, NewRepository, @@ -179,7 +179,7 @@ repository: data.template.providerRepositoryId || undefined, owner: data.template.providerOwner || undefined, rootDirectory: rt?.providerRootDirectory || undefined, - type: Type.Tag, + type: TemplateReferenceType.Tag, reference: data.template.providerVersion || undefined, activate: true }); 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 a65ae194fe..24a05f760f 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 @@ -9,7 +9,7 @@ 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 { Runtime, VCSReferenceType, type Models } from '@appwrite.io/console'; import { IconGithub } from '@appwrite.io/pink-icons-svelte'; import { Icon, Input, Layout, Skeleton, Typography } from '@appwrite.io/pink-svelte'; import { func } from '../store'; @@ -98,7 +98,7 @@ .forProject(page.params.region, page.params.project) .functions.createVcsDeployment({ functionId: $func.$id, - type: VCSDeploymentType.Commit, + type: VCSReferenceType.Commit, reference: commit, activate }); @@ -107,7 +107,7 @@ .forProject(page.params.region, page.params.project) .functions.createVcsDeployment({ functionId: $func.$id, - type: VCSDeploymentType.Branch, + type: VCSReferenceType.Branch, reference: branch, activate }); diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts index c6630be5da..42bf293ced 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/store.ts @@ -18,7 +18,10 @@ export const repositories: Writable<{ search: string; installationId: string; total: number; - repositories: Models.ProviderRepository[] | Models.ProviderRepositoryFramework[] | Models.ProviderRepositoryRuntime[]; + repositories: + | Models.ProviderRepository[] + | Models.ProviderRepositoryFramework[] + | Models.ProviderRepositoryRuntime[]; }> = writable({ search: '', installationId: '', diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/deploy/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/deploy/+page.svelte index 5dc5b86c37..4264c02291 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/deploy/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/deploy/+page.svelte @@ -12,7 +12,13 @@ import { IconGithub, IconPencil } from '@appwrite.io/pink-icons-svelte'; import { onMount } from 'svelte'; import Domain from '../domain.svelte'; - import { Adapter, BuildRuntime, Framework, ID, Type } from '@appwrite.io/console'; + import { + Adapter, + BuildRuntime, + Framework, + ID, + TemplateReferenceType + } from '@appwrite.io/console'; import { CustomId } from '$lib/components'; import { getFrameworkIcon } from '$lib/stores/sites'; import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; @@ -172,7 +178,7 @@ repository: data.repository.name, owner: data.repository.owner, rootDirectory: rootDir || '.', - type: Type.Tag, + type: TemplateReferenceType.Tag, reference: latestTag ?? '1.0.0', activate: true }); diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte index 7657aa9a59..8171be094a 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte @@ -19,7 +19,7 @@ BuildRuntime, Framework, ID, - VCSDeploymentType, + VCSReferenceType, VCSDetectionType } from '@appwrite.io/console'; import type { Models } from '@appwrite.io/console'; @@ -131,7 +131,7 @@ .forProject(page.params.region, page.params.project) .sites.createVcsDeployment({ siteId: site.$id, - type: VCSDeploymentType.Branch, + type: VCSReferenceType.Branch, reference: branch, activate: true }); diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte index 9928060140..0e57e223a6 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte @@ -24,7 +24,14 @@ import Details from '../../details.svelte'; import Configuration from './configuration.svelte'; import Aside from '../../aside.svelte'; - import { Adapter, BuildRuntime, Framework, ID, Type, type Models } from '@appwrite.io/console'; + import { + Adapter, + BuildRuntime, + Framework, + ID, + TemplateReferenceType, + type Models + } from '@appwrite.io/console'; import { ConnectBehaviour, NewRepository, @@ -159,7 +166,7 @@ repository: data.template.providerRepositoryId, owner: data.template.providerOwner, rootDirectory: framework.providerRootDirectory, - type: Type.Tag, + type: TemplateReferenceType.Tag, reference: data.template.providerVersion, activate: true }); 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 5cd9308eef..341eec2aad 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 @@ -14,7 +14,7 @@ Adapter, BuildRuntime, Framework, - VCSDeploymentType, + VCSReferenceType, type Models } from '@appwrite.io/console'; import { IconGithub } from '@appwrite.io/pink-icons-svelte'; @@ -106,7 +106,7 @@ .forProject(page.params.region, page.params.project) .sites.createVcsDeployment({ siteId: site.$id, - type: VCSDeploymentType.Commit, + type: VCSReferenceType.Commit, reference: commit, activate }); @@ -115,7 +115,7 @@ .forProject(page.params.region, page.params.project) .sites.createVcsDeployment({ siteId: site.$id, - type: VCSDeploymentType.Branch, + type: VCSReferenceType.Branch, reference: branch, activate }); From 1ab59eb7b3cecd8ab373a4c7bc1ed4394d47b392 Mon Sep 17 00:00:00 2001 From: Hemachandar Date: Fri, 5 Dec 2025 14:24:38 +0530 Subject: [PATCH 3/3] feedback --- src/lib/components/git/repositories.svelte | 42 ++++++++++------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/src/lib/components/git/repositories.svelte b/src/lib/components/git/repositories.svelte index 2d83745188..d0dbaf8003 100644 --- a/src/lib/components/git/repositories.svelte +++ b/src/lib/components/git/repositories.svelte @@ -49,7 +49,7 @@ let isLoadingRepositories = $state(null); let installationsMap = $state(null); let offset = $state(0); - let limit = 5; + const limit = 5; onMount(() => { loadInstallations(); @@ -115,29 +115,23 @@ } async function loadRepositories(installationId: string, search: string) { - if (product === 'functions') { - const result = (await sdk - .forProject(page.params.region, page.params.project) - .vcs.listRepositories({ - installationId, - type: VCSDetectionType.Runtime, - search: search || undefined, - queries: [Query.limit(limit), Query.offset(offset)] - })) as unknown as Models.ProviderRepositoryRuntimeList; - $repositories.repositories = result.runtimeProviderRepositories; //TODO: remove forced cast after backend fixes - $repositories.total = result.total; - } else { - const result = (await sdk - .forProject(page.params.region, page.params.project) - .vcs.listRepositories({ - installationId, - type: VCSDetectionType.Framework, - search: search || undefined, - queries: [Query.limit(limit), Query.offset(offset)] - })) as unknown as Models.ProviderRepositoryFrameworkList; - $repositories.repositories = result.frameworkProviderRepositories; - $repositories.total = result.total; - } + const result = await sdk + .forProject(page.params.region, page.params.project) + .vcs.listRepositories({ + installationId, + type: + product === 'functions' ? VCSDetectionType.Runtime : VCSDetectionType.Framework, + search: search || undefined, + queries: [Query.limit(limit), Query.offset(offset)] + }); + + $repositories.repositories = + product === 'functions' + ? (result as unknown as Models.ProviderRepositoryRuntimeList) + .runtimeProviderRepositories + : (result as unknown as Models.ProviderRepositoryFrameworkList) + .frameworkProviderRepositories; //TODO: remove forced cast after backend fixes + $repositories.total = result.total; $repositories.search = search; $repositories.installationId = installationId; return $repositories.repositories;