diff --git a/package-lock.json b/package-lock.json index ace5f6d0d9..590e07f9ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "dependencies": { "@analytics/google-analytics": "^1.0.5", "@analytics/google-tag-manager": "^0.5.3", - "@appwrite.io/console": "npm:matej-appwrite-console@7.1.130", + "@appwrite.io/console": "^0.3.0", "@appwrite.io/pink": "0.1.0-next.8", "@appwrite.io/pink-icons": "^0.1.0-next.8", "@popperjs/core": "^2.11.6", @@ -169,10 +169,9 @@ "integrity": "sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==" }, "node_modules/@appwrite.io/console": { - "name": "matej-appwrite-console", - "version": "7.1.130", - "resolved": "https://registry.npmjs.org/matej-appwrite-console/-/matej-appwrite-console-7.1.130.tgz", - "integrity": "sha512-XsaGxuUNznKKiQpbYAy7VYtj5f0CitrMcIh+9UiHzI0dVXe4ck8humDv6l8XVFp0aQZWxc6RfiPuHo9oreEKuw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@appwrite.io/console/-/console-0.3.0.tgz", + "integrity": "sha512-XHKQHirzQliXoDpMLakSdXwpq9aPoeTABNhW8Z7MK3p6oBfp2gMplDD43Fbd91JREXoJ+RG8okX0z0nIc6hDiQ==", "dependencies": { "cross-fetch": "3.1.5", "isomorphic-form-data": "2.0.0" @@ -8985,9 +8984,9 @@ "integrity": "sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==" }, "@appwrite.io/console": { - "version": "npm:matej-appwrite-console@7.1.130", - "resolved": "https://registry.npmjs.org/matej-appwrite-console/-/matej-appwrite-console-7.1.130.tgz", - "integrity": "sha512-XsaGxuUNznKKiQpbYAy7VYtj5f0CitrMcIh+9UiHzI0dVXe4ck8humDv6l8XVFp0aQZWxc6RfiPuHo9oreEKuw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@appwrite.io/console/-/console-0.3.0.tgz", + "integrity": "sha512-XHKQHirzQliXoDpMLakSdXwpq9aPoeTABNhW8Z7MK3p6oBfp2gMplDD43Fbd91JREXoJ+RG8okX0z0nIc6hDiQ==", "requires": { "cross-fetch": "3.1.5", "isomorphic-form-data": "2.0.0" diff --git a/package.json b/package.json index e38f65dc4a..27292b7bbc 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "dependencies": { "@analytics/google-analytics": "^1.0.5", "@analytics/google-tag-manager": "^0.5.3", - "@appwrite.io/console": "npm:matej-appwrite-console@7.1.130", + "@appwrite.io/console": "^0.3.0", "@appwrite.io/pink": "0.1.0-next.8", "@appwrite.io/pink-icons": "^0.1.0-next.8", "@popperjs/core": "^2.11.6", diff --git a/src/lib/constants.ts b/src/lib/constants.ts index b73ecbbb99..a2107d03cd 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -40,7 +40,9 @@ export enum Dependencies { WEBHOOK = 'dependency:webhook', WEBHOOKS = 'dependency:webhooks', MIGRATIONS = 'dependency:migrations', - COLLECTIONS = 'dependency:collections' + COLLECTIONS = 'dependency:collections', + RUNTIMES = 'dependency:runtimes', + CONSOLE_VARIABLES = 'dependency:console_variables' } export const scopes: { diff --git a/src/lib/helpers/debounce.ts b/src/lib/helpers/debounce.ts index afb93f4a26..6a36b4e47d 100644 --- a/src/lib/helpers/debounce.ts +++ b/src/lib/helpers/debounce.ts @@ -1,6 +1,6 @@ -export function debounce void>(fn: F, delay: number) { +export function debounce void>(fn: F, delay: number) { let timeoutID: ReturnType = null; - const debounceFn = function (this: any, ...args: any[]) { + const debounceFn = function (this: unknown, ...args: unknown[]) { clearTimeout(timeoutID); timeoutID = window.setTimeout(() => fn.apply(this, args), delay) as unknown as ReturnType< typeof setTimeout diff --git a/src/lib/helpers/object.ts b/src/lib/helpers/object.ts index fb09d2ab51..0a901aed30 100644 --- a/src/lib/helpers/object.ts +++ b/src/lib/helpers/object.ts @@ -45,7 +45,7 @@ export function deepMap( return result; } -export function parseIfString(value: unknown): any { +export function parseIfString(value: unknown): unknown { if (typeof value === 'string') { try { return JSON.parse(value); diff --git a/src/lib/helpers/project.ts b/src/lib/helpers/project.ts index ff8f887b05..a8a88cd3f7 100644 --- a/src/lib/helpers/project.ts +++ b/src/lib/helpers/project.ts @@ -1,5 +1,5 @@ export function getProjectId() { - const pathname = window.location.pathname; + const pathname = window.location.pathname + '/'; const projectMatch = pathname.match(/\/project-(.*?)\//); return projectMatch?.[1] || null; } diff --git a/src/lib/helpers/stores.ts b/src/lib/helpers/stores.ts index 509693a9e3..13a63437d2 100644 --- a/src/lib/helpers/stores.ts +++ b/src/lib/helpers/stores.ts @@ -9,7 +9,7 @@ import { deepClone, objectEntries } from './object'; * * @export */ -export function createConservative>(obj: Obj) { +export function createConservative>(obj: Obj) { const stores = Object.fromEntries( objectEntries(obj).map(([key, value]) => [key, writable(value)]) ) as { diff --git a/src/lib/pages/domains/wizard/step1.svelte b/src/lib/pages/domains/wizard/step1.svelte index fa00ce536d..5b21ca35be 100644 --- a/src/lib/pages/domains/wizard/step1.svelte +++ b/src/lib/pages/domains/wizard/step1.svelte @@ -9,6 +9,7 @@ import { onMount } from 'svelte'; import { ProxyTypes } from '../index.svelte'; import { domain, typeStore } from './store'; + import { consoleVariables } from '$routes/console/store'; let error = null; let isDomainsEnabled = false; @@ -17,9 +18,8 @@ if (!isSelfHosted) { return; } - const vars = await sdk.forConsole.console.variables(); - //@ts-expect-error needs an sdk release - isDomainsEnabled = vars?._APP_DOMAIN_ENABLED === true; + + isDomainsEnabled = (await $consoleVariables)?._APP_DOMAIN_ENABLED === true; }); async function createDomain() { diff --git a/src/lib/wizards/functions/cover.svelte b/src/lib/wizards/functions/cover.svelte index f38cfa2b2c..ee607e3c34 100644 --- a/src/lib/wizards/functions/cover.svelte +++ b/src/lib/wizards/functions/cover.svelte @@ -2,7 +2,7 @@ import CreateTemplate from './createTemplate.svelte'; export function connectTemplate(template: MarketplaceTemplate, runtime: string | null = null) { - const variables: any = {}; + const variables: Record = {}; template.variables.forEach((variable) => { variables[variable.name] = variable.value ?? ''; }); @@ -29,17 +29,19 @@
@@ -282,7 +280,7 @@ {:else} - {#if isSelfHosted && !isVcsEnabled} + {#if isSelfHosted && !isVcsEnabled($consoleVariables)} Installing Git to a self-hosted instance diff --git a/src/lib/stores/consoleVariables.ts b/src/routes/console/project-[project]/functions/store.ts similarity index 56% rename from src/lib/stores/consoleVariables.ts rename to src/routes/console/project-[project]/functions/store.ts index 887820b6bc..029ac922dc 100644 --- a/src/lib/stores/consoleVariables.ts +++ b/src/routes/console/project-[project]/functions/store.ts @@ -2,7 +2,7 @@ import { page } from '$app/stores'; import { derived } from 'svelte/store'; import type { Models } from '@appwrite.io/console'; -export const consoleVariables = derived( +export const runtimes = derived( page, - ($page) => $page.data.consoleVariables as Models.ConsoleVariables + async ($page) => (await $page.data.runtimes) as Models.RuntimeList ); diff --git a/src/routes/console/project-[project]/functions/templates/template-[template]/+page.svelte b/src/routes/console/project-[project]/functions/templates/template-[template]/+page.svelte index e70569173d..5362ac55cd 100644 --- a/src/routes/console/project-[project]/functions/templates/template-[template]/+page.svelte +++ b/src/routes/console/project-[project]/functions/templates/template-[template]/+page.svelte @@ -4,12 +4,10 @@ import { Pill } from '$lib/elements'; import { Button } from '$lib/elements/forms'; import { Container } from '$lib/layout'; - import { consoleVariables } from '$lib/stores/consoleVariables'; import { isSelfHosted } from '$lib/system'; import { connectTemplate } from '$lib/wizards/functions/cover.svelte'; + import { consoleVariables, isVcsEnabled } from '$routes/console/store'; import { template } from './store'; - - $: isVcsEnabled = $consoleVariables?._APP_VCS_ENABLED === true; @@ -62,7 +60,7 @@

{$template.tagline}

- {#if isSelfHosted && !isVcsEnabled} + {#if isSelfHosted && !isVcsEnabled($consoleVariables)} Cloning templates to a self-hosted instance diff --git a/src/routes/console/project-[project]/functions/wizard/step1.svelte b/src/routes/console/project-[project]/functions/wizard/step1.svelte index 7c5853fccd..08ca69fbea 100644 --- a/src/routes/console/project-[project]/functions/wizard/step1.svelte +++ b/src/routes/console/project-[project]/functions/wizard/step1.svelte @@ -5,7 +5,7 @@ import { WizardStep } from '$lib/layout'; import { onMount } from 'svelte'; import { createFunction } from './store'; - import { runtimes } from '$lib/wizards/functions/store'; + import { runtimes } from '../store'; let showCustomId = false; diff --git a/src/routes/console/project-[project]/rawVariableEditor.svelte b/src/routes/console/project-[project]/rawVariableEditor.svelte index 97382f807d..012caaf69e 100644 --- a/src/routes/console/project-[project]/rawVariableEditor.svelte +++ b/src/routes/console/project-[project]/rawVariableEditor.svelte @@ -12,9 +12,13 @@ export let showEditor = false; export let variableList: Models.VariableList; - export let sdkCreateVariable: (key: string, value: string) => Promise; - export let sdkUpdateVariable: (variableId: string, key: string, value: string) => Promise; - export let sdkDeleteVariable: (variableId: string) => Promise; + export let sdkCreateVariable: (key: string, value: string) => Promise; + export let sdkUpdateVariable: ( + variableId: string, + key: string, + value: string + ) => Promise; + export let sdkDeleteVariable: (variableId: string) => Promise; let error = ''; let envCode = variableList.variables diff --git a/src/routes/console/project-[project]/settings/+page.ts b/src/routes/console/project-[project]/settings/+page.ts index e57a62558e..125a929bd6 100644 --- a/src/routes/console/project-[project]/settings/+page.ts +++ b/src/routes/console/project-[project]/settings/+page.ts @@ -1,18 +1,13 @@ import { Dependencies, PAGE_LIMIT } from '$lib/constants'; import { sdk } from '$lib/stores/sdk'; -import { Query, type Models } from '@appwrite.io/console'; +import { Query } from '@appwrite.io/console'; import type { PageLoad } from './$types'; -import { isSelfHosted } from '$lib/system'; export const load: PageLoad = async ({ depends, url }) => { depends(Dependencies.PROJECT_VARIABLES); depends(Dependencies.PROJECT_INSTALLATIONS); const limit = PAGE_LIMIT; const offset = Number(url.searchParams.get('offset') ?? 0); - let consoleVariables: Models.ConsoleVariables = null; - if (isSelfHosted) { - consoleVariables = await sdk.forConsole.console.variables(); - } return { limit, @@ -21,7 +16,6 @@ export const load: PageLoad = async ({ depends, url }) => { installations: await sdk.forProject.vcs.listInstallations([ Query.limit(limit), Query.offset(offset) - ]), - consoleVariables + ]) }; }; diff --git a/src/routes/console/project-[project]/settings/updateInstallations.svelte b/src/routes/console/project-[project]/settings/updateInstallations.svelte index 4c6f52ee7e..919377a40c 100644 --- a/src/routes/console/project-[project]/settings/updateInstallations.svelte +++ b/src/routes/console/project-[project]/settings/updateInstallations.svelte @@ -29,7 +29,7 @@ import GitDisconnectModal from './GitDisconnectModal.svelte'; import dayjs from 'dayjs'; import { isSelfHosted } from '$lib/system'; - import { consoleVariables } from '$lib/stores/consoleVariables'; + import { consoleVariables, isVcsEnabled } from '$routes/console/store'; export let total: number; export let limit: number; @@ -76,8 +76,6 @@ noScroll: true }); } - - $: isVcsEnabled = $consoleVariables?._APP_VCS_ENABLED === true; @@ -181,7 +179,7 @@ bind:offset /> {:else} - {#if isSelfHosted && !isVcsEnabled} + {#if isSelfHosted && !isVcsEnabled($consoleVariables)} Installing Git to a self-hosted instance @@ -207,7 +205,7 @@