From 05b9a7e1ff9516090e90b7f8525a41e26dacaddb Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 29 Nov 2024 17:00:07 +0530 Subject: [PATCH 1/9] feat: init dev keys. --- .../project-[project]/overview/+layout.svelte | 38 ++++++++++++++++--- .../overview/keys/+page.svelte | 8 +++- .../project-[project]/overview/keys/+page.ts | 14 ++++++- .../overview/keys/wizard.svelte | 12 +++++- .../overview/keys/wizard/step1.svelte | 13 +++++-- .../project-[project]/overview/store.ts | 2 + 6 files changed, 74 insertions(+), 13 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/+layout.svelte b/src/routes/(console)/project-[project]/overview/+layout.svelte index d0f59d1fc0..e1a191776b 100644 --- a/src/routes/(console)/project-[project]/overview/+layout.svelte +++ b/src/routes/(console)/project-[project]/overview/+layout.svelte @@ -21,7 +21,7 @@ import Onboard from './onboard.svelte'; import Realtime from './realtime.svelte'; import Requests from './requests.svelte'; - import { usage } from './store'; + import { isStandardApiKey, usage } from './store'; import { formatNum } from '$lib/helpers/string'; import { total } from '$lib/helpers/array'; import type { Metric } from '$lib/sdk/usage'; @@ -32,6 +32,14 @@ $: path = `${base}/project-${projectId}/overview`; let period: UsagePeriods = '30d'; + $: currentKeyType = $page.url.searchParams.get('mode') || 'standard'; + + $: isSelected = (mode: string): boolean => { + return $page.url.pathname === `${path}/keys` && currentKeyType === mode; + }; + + $: isStandardApiKey.set(isSelected('standard')); + onMount(handle); afterNavigate(handle); @@ -69,6 +77,16 @@ keys: ['c', 'k'], group: 'integrations', disabled: !$canWriteProjects + }, + { + label: 'Create Dev Key', + icon: 'plus', + callback() { + createApiKey(); + }, + keys: ['c', 'd'], + group: 'integrations', + disabled: !$canWriteProjects } ]); @@ -222,11 +240,21 @@ Platforms + event="platforms" + >Platforms + + API keys + API keys + href={`${path}/keys?mode=dev`} + selected={isSelected('dev')} + event="dev-keys" + >Dev keys + diff --git a/src/routes/(console)/project-[project]/overview/keys/+page.svelte b/src/routes/(console)/project-[project]/overview/keys/+page.svelte index 7a54cf0186..3ee1d948fa 100644 --- a/src/routes/(console)/project-[project]/overview/keys/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/+page.svelte @@ -24,6 +24,7 @@ import { get } from 'svelte/store'; import type { PageData } from './$types'; import Wizard from './wizard.svelte'; + import { isStandardApiKey } from '../store'; export let data: PageData; @@ -34,7 +35,9 @@ {/if} @@ -68,10 +71,11 @@ {:else} + {/if} diff --git a/src/routes/(console)/project-[project]/overview/keys/+page.ts b/src/routes/(console)/project-[project]/overview/keys/+page.ts index 160a525606..c51d5b35e5 100644 --- a/src/routes/(console)/project-[project]/overview/keys/+page.ts +++ b/src/routes/(console)/project-[project]/overview/keys/+page.ts @@ -2,12 +2,24 @@ import { Dependencies } from '$lib/constants'; import { sdk } from '$lib/stores/sdk'; import { selectedTab } from '../store'; import type { PageLoad } from './$types'; +import { sleep } from '$lib/helpers/promises'; selectedTab.set('keys'); -export const load: PageLoad = async ({ params, depends }) => { +export const load: PageLoad = async ({ params, depends, url }) => { depends(Dependencies.KEYS); + + const currentKeyType = url.searchParams.get('mode') || 'standard'; + + const isStandardApiKey = currentKeyType === 'standard'; + + // TODO: (@itznotabug) Replace this delay with a proper API call + // for development keys once the backend is implemented. + if (!isStandardApiKey) await sleep(1250); + return { + // TODO: (@itznotabug) Update this logic to fetch actual development keys from the backend + // when the console SDK supports it. keys: await sdk.forConsole.projects.listKeys(params.project) }; }; diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard.svelte index e6c6701fae..d51c3ffa3d 100644 --- a/src/routes/(console)/project-[project]/overview/keys/wizard.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/wizard.svelte @@ -11,9 +11,14 @@ import { onDestroy } from 'svelte'; import { onboarding } from '../../store'; import { Dependencies } from '$lib/constants'; - import { Submit, trackEvent, trackError } from '$lib/actions/analytics'; + import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; import { base } from '$app/paths'; + import { isStandardApiKey } from '../store'; + // TODO: check onFinish as to which key type was generated, standard or development. + // Based on that, call appropriate creator method and update notification. + + // TODO: also check if we should add different keys for events based on standard/dev keys. async function onFinish() { try { const { $id } = await sdk.forConsole.projects.createKey( @@ -53,4 +58,7 @@ }); - + diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte index cb53ed0346..6062bc6f8b 100644 --- a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte @@ -3,16 +3,23 @@ import { WizardStep } from '$lib/layout'; import ExpirationInput from '../expirationInput.svelte'; import { key } from './store'; + import { isStandardApiKey } from '../../store'; - API key - Let's create an API key. + {$isStandardApiKey ? 'API' : 'Dev'} key + + {#if $isStandardApiKey} + Generate API keys to authenticate your application. + {:else} + Generate Dev keys, suited for improved debugging. + {/if} + diff --git a/src/routes/(console)/project-[project]/overview/store.ts b/src/routes/(console)/project-[project]/overview/store.ts index 2c18cefa96..6f139b5cd8 100644 --- a/src/routes/(console)/project-[project]/overview/store.ts +++ b/src/routes/(console)/project-[project]/overview/store.ts @@ -18,3 +18,5 @@ export const usage = cachedStore< }); export const selectedTab: Writable<'platforms' | 'keys'> = writable('platforms'); + +export const isStandardApiKey = writable(true); From 1e7371106d90b39e0802a0b13a25d0abfab1731c Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 29 Nov 2024 17:33:50 +0530 Subject: [PATCH 2/9] add: new dev keys card on onboarding. --- .../project-[project]/overview/onboard.svelte | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/onboard.svelte b/src/routes/(console)/project-[project]/overview/onboard.svelte index 677258ccc6..8f98c51b28 100644 --- a/src/routes/(console)/project-[project]/overview/onboard.svelte +++ b/src/routes/(console)/project-[project]/overview/onboard.svelte @@ -13,6 +13,7 @@ import Wizard from './keys/wizard.svelte'; import { canWriteKeys, canWritePlatforms } from '$lib/stores/roles'; import { base } from '$app/paths'; + import { isStandardApiKey } from './store'; export let projectId: string; @@ -44,8 +45,9 @@ } ]; - function createKey() { + function createKey(isDevKey: boolean = false) { wizard.start(Wizard); + isStandardApiKey.set(!isDevKey) } $: onBoardImage1Mobile = $app.themeInUse === 'dark' ? OnboardDark1Mobile : OnboardLight1Mobile; @@ -121,7 +123,7 @@ +
  • + +
  • Date: Fri, 29 Nov 2024 17:34:27 +0530 Subject: [PATCH 3/9] misc: update copies, comments, etc. --- .../(console)/project-[project]/overview/keys/+page.svelte | 2 +- .../(console)/project-[project]/overview/keys/wizard.svelte | 2 +- .../project-[project]/overview/keys/wizard/step1.svelte | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/keys/+page.svelte b/src/routes/(console)/project-[project]/overview/keys/+page.svelte index 3ee1d948fa..60ff3c907e 100644 --- a/src/routes/(console)/project-[project]/overview/keys/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/+page.svelte @@ -71,7 +71,7 @@ {:else} - + diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte index 6062bc6f8b..1e78164ba2 100644 --- a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte @@ -12,7 +12,7 @@ {#if $isStandardApiKey} Generate API keys to authenticate your application. {:else} - Generate Dev keys, suited for improved debugging. + Generate Dev keys for improved debugging while still developing. {/if} From 7fed9c02e2739e02fc6325d0fb525c85e7630c66 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 29 Nov 2024 17:36:37 +0530 Subject: [PATCH 4/9] ran: formatter. --- src/routes/(console)/project-[project]/overview/onboard.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[project]/overview/onboard.svelte b/src/routes/(console)/project-[project]/overview/onboard.svelte index 8f98c51b28..61142c29d3 100644 --- a/src/routes/(console)/project-[project]/overview/onboard.svelte +++ b/src/routes/(console)/project-[project]/overview/onboard.svelte @@ -47,7 +47,7 @@ function createKey(isDevKey: boolean = false) { wizard.start(Wizard); - isStandardApiKey.set(!isDevKey) + isStandardApiKey.set(!isDevKey); } $: onBoardImage1Mobile = $app.themeInUse === 'dark' ? OnboardDark1Mobile : OnboardLight1Mobile; From d37192cb47db130c8fa2533e0c9b182d182b5405 Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 29 Nov 2024 18:08:57 +0530 Subject: [PATCH 5/9] update: expirations for different key types. --- .../overview/keys/+page.svelte | 2 +- .../overview/keys/expirationInput.svelte | 25 +++++++++++++++++-- .../overview/keys/wizard/step1.svelte | 13 ++++++---- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/src/routes/(console)/project-[project]/overview/keys/+page.svelte b/src/routes/(console)/project-[project]/overview/keys/+page.svelte index 60ff3c907e..fefc9bb678 100644 --- a/src/routes/(console)/project-[project]/overview/keys/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/+page.svelte @@ -76,6 +76,6 @@ single allowCreate={$canWriteKeys} href="https://appwrite.io/docs/advanced/platform/api-keys" - target={$isStandardApiKey ? 'API key' : 'Dev key'} + target="{$isStandardApiKey ? 'API' : 'Dev'} key" on:click={createApiKey} /> {/if} diff --git a/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte b/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte index 843cc9f3d4..1f0fe1930a 100644 --- a/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte @@ -19,7 +19,7 @@ return date.toISOString(); } - const options = [ + const defaultOptions = [ { label: 'Never', value: null @@ -46,10 +46,31 @@ } ]; + const limitedOptions = [ + { + label: '1 Day', + value: incrementToday(1, 'day') + }, + { + label: '7 Days', + value: incrementToday(7, 'day') + }, + { + label: '30 days', + value: incrementToday(30, 'day') + } + ]; + export let value: string | null = null; + export let isStandardApiKey: boolean = false; + + const options = isStandardApiKey ? defaultOptions : limitedOptions; + function initExpirationSelect() { - if (value === null || !isValidDate(value)) return null; + if (value === null || !isValidDate(value)) { + return options[0]?.value ?? null; + } let result = 'custom'; for (const option of options) { diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte index 1e78164ba2..78a0df02db 100644 --- a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte @@ -4,24 +4,27 @@ import ExpirationInput from '../expirationInput.svelte'; import { key } from './store'; import { isStandardApiKey } from '../../store'; + + const keyTypeName = $isStandardApiKey ? 'API' : 'Dev'; - {$isStandardApiKey ? 'API' : 'Dev'} key + {keyTypeName} key {#if $isStandardApiKey} - Generate API keys to authenticate your application. + Generate API keys to authenticate your application. While still in development, use Dev + keys instead, as they're better suited for debugging. {:else} - Generate Dev keys for improved debugging while still developing. + Test your app without rate limits and more detailed error messages. {/if} - + From af3199f223e5cb5ac97a7fe003c47d2fabb54cba Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 28 Feb 2025 17:54:21 +0530 Subject: [PATCH 6/9] refactor: use separate routes for keys & dev-keys. --- package.json | 2 +- pnpm-lock.yaml | 11 +- src/lib/actions/analytics.ts | 4 + src/lib/constants.ts | 2 + .../project-[project]/overview/+layout.svelte | 35 ++--- .../{keys => components}/checkbox.svelte | 0 .../overview/components/delete.svelte | 66 ++++++++ .../expirationInput.svelte | 5 +- .../components/updateExpirationDate.svelte | 48 ++++++ .../overview/dev-keys/+page.svelte | 74 +++++++++ .../overview/dev-keys/+page.ts | 13 ++ .../overview/dev-keys/[key]/+page.ts | 23 +++ .../[key]/+page@project-[project].svelte | 142 ++++++++++++++++++ .../dev-keys/[key]/breadcrumbs.svelte | 28 ++++ .../overview/dev-keys/[key]/header.svelte | 18 +++ .../overview/dev-keys/[key]/store.ts | 5 + .../overview/dev-keys/wizard.svelte | 48 ++++++ .../overview/dev-keys/wizard/step1.svelte | 22 +++ .../overview/keys/+page.svelte | 8 +- .../project-[project]/overview/keys/+page.ts | 14 +- .../overview/keys/[key]/+page.ts | 12 +- .../keys/[key]/+page@project-[project].svelte | 66 +++++--- .../overview/keys/[key]/breadcrumbs.svelte | 6 +- .../overview/keys/[key]/delete.svelte | 49 ------ .../overview/keys/[key]/header.svelte | 6 +- .../overview/keys/[key]/store.ts | 2 +- .../keys/[key]/updateExpirationDate.svelte | 74 --------- .../overview/keys/scopes.svelte | 4 +- .../overview/keys/wizard.svelte | 24 +-- .../overview/keys/wizard/step1.svelte | 26 +--- .../overview/keys/wizard/step2.svelte | 8 +- .../overview/keys/wizard/store.ts | 25 --- .../project-[project]/overview/onboard.svelte | 11 +- .../project-[project]/overview/store.ts | 29 +++- 34 files changed, 629 insertions(+), 281 deletions(-) rename src/routes/(console)/project-[project]/overview/{keys => components}/checkbox.svelte (100%) create mode 100644 src/routes/(console)/project-[project]/overview/components/delete.svelte rename src/routes/(console)/project-[project]/overview/{keys => components}/expirationInput.svelte (95%) create mode 100644 src/routes/(console)/project-[project]/overview/components/updateExpirationDate.svelte create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/+page.svelte create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/+page.ts create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page.ts create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page@project-[project].svelte create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/[key]/breadcrumbs.svelte create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/[key]/header.svelte create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/[key]/store.ts create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/wizard.svelte create mode 100644 src/routes/(console)/project-[project]/overview/dev-keys/wizard/step1.svelte delete mode 100644 src/routes/(console)/project-[project]/overview/keys/[key]/delete.svelte delete mode 100644 src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte delete mode 100644 src/routes/(console)/project-[project]/overview/keys/wizard/store.ts diff --git a/package.json b/package.json index d942ead4e2..f93eda80e7 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "e2e:ui": "playwright test tests/e2e --ui" }, "dependencies": { - "@appwrite.io/console": "1.5.1", + "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378", "@appwrite.io/pink": "0.25.0", "@appwrite.io/pink-icons": "0.25.0", "@popperjs/core": "^2.11.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8fc1d7b8f..0b53b423c1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@appwrite.io/console': - specifier: 1.5.1 - version: 1.5.1 + specifier: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378 + version: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378 '@appwrite.io/pink': specifier: 0.25.0 version: 0.25.0 @@ -199,8 +199,9 @@ packages: '@analytics/type-utils@0.6.2': resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} - '@appwrite.io/console@1.5.1': - resolution: {integrity: sha512-H0fkBprsxXjOhbrE+MqXt1e4Gx4QeRdHuvMs7UxqGr2fAVEqh4ez2yk40A0ZSQvvN+rqLduoItMHQFl+sCPbtQ==} + '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378': + resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378} + version: 1.2.1 '@appwrite.io/pink-icons@0.25.0': resolution: {integrity: sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q==} @@ -3837,7 +3838,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@1.5.1': {} + '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378': {} '@appwrite.io/pink-icons@0.25.0': {} diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts index 036cf56c89..2bfac51cb2 100644 --- a/src/lib/actions/analytics.ts +++ b/src/lib/actions/analytics.ts @@ -249,6 +249,10 @@ export enum Submit { KeyUpdateName = 'submit_key_update_name', KeyUpdateScopes = 'submit_key_update_scopes', KeyUpdateExpire = 'submit_key_update_expire', + DevKeyCreate = 'submit_dev_key_create', + DevKeyDelete = 'submit_dev_key_delete', + DevKeyUpdateName = 'submit_dev_key_update_name', + DevKeyUpdateExpire = 'submit_dev_key_update_expire', PlatformCreate = 'submit_platform_create', PlatformDelete = 'submit_platform_delete', PlatformUpdate = 'submit_platform_update', diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 00ee09df31..b089e8b8ed 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -46,6 +46,8 @@ export enum Dependencies { PLATFORMS = 'dependency:platforms', KEY = 'dependency:key', KEYS = 'dependency:keys', + DEV_KEY = 'dependency:dev_key', + DEV_KEYS = 'dependency:dev_keys', DOMAINS = 'dependency:domains', WEBHOOK = 'dependency:webhook', WEBHOOKS = 'dependency:webhooks', diff --git a/src/routes/(console)/project-[project]/overview/+layout.svelte b/src/routes/(console)/project-[project]/overview/+layout.svelte index e1a191776b..6fbf04ccde 100644 --- a/src/routes/(console)/project-[project]/overview/+layout.svelte +++ b/src/routes/(console)/project-[project]/overview/+layout.svelte @@ -21,25 +21,18 @@ import Onboard from './onboard.svelte'; import Realtime from './realtime.svelte'; import Requests from './requests.svelte'; - import { isStandardApiKey, usage } from './store'; + import { usage } from './store'; import { formatNum } from '$lib/helpers/string'; import { total } from '$lib/helpers/array'; import type { Metric } from '$lib/sdk/usage'; import { periodToDates } from '$lib/layout/usage.svelte'; import { canWriteProjects } from '$lib/stores/roles'; + import { createDevKey } from '$routes/(console)/project-[project]/overview/dev-keys/+page.svelte'; $: projectId = $page.params.project; $: path = `${base}/project-${projectId}/overview`; let period: UsagePeriods = '30d'; - $: currentKeyType = $page.url.searchParams.get('mode') || 'standard'; - - $: isSelected = (mode: string): boolean => { - return $page.url.pathname === `${path}/keys` && currentKeyType === mode; - }; - - $: isStandardApiKey.set(isSelected('standard')); - onMount(handle); afterNavigate(handle); @@ -82,9 +75,9 @@ label: 'Create Dev Key', icon: 'plus', callback() { - createApiKey(); + createDevKey(); }, - keys: ['c', 'd'], + keys: ['c', 'd', 'k'], group: 'integrations', disabled: !$canWriteProjects } @@ -240,21 +233,15 @@ Platforms - + event="platforms">Platforms API keys - + href={`${path}/keys`} + selected={$page.url.pathname === `${path}/keys`} + event="keys">API keys Dev keys - + href={`${path}/dev-keys`} + selected={$page.url.pathname === `${path}/dev-keys`} + event="keys">Dev keys diff --git a/src/routes/(console)/project-[project]/overview/keys/checkbox.svelte b/src/routes/(console)/project-[project]/overview/components/checkbox.svelte similarity index 100% rename from src/routes/(console)/project-[project]/overview/keys/checkbox.svelte rename to src/routes/(console)/project-[project]/overview/components/checkbox.svelte diff --git a/src/routes/(console)/project-[project]/overview/components/delete.svelte b/src/routes/(console)/project-[project]/overview/components/delete.svelte new file mode 100644 index 0000000000..3070197598 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/components/delete.svelte @@ -0,0 +1,66 @@ + + + +

    The {resourceType} key will be permanently deleted. This action is irreversible.

    + + + + + +
    diff --git a/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte b/src/routes/(console)/project-[project]/overview/components/expirationInput.svelte similarity index 95% rename from src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte rename to src/routes/(console)/project-[project]/overview/components/expirationInput.svelte index 1f0fe1930a..bd60a1b431 100644 --- a/src/routes/(console)/project-[project]/overview/keys/expirationInput.svelte +++ b/src/routes/(console)/project-[project]/overview/components/expirationInput.svelte @@ -62,10 +62,9 @@ ]; export let value: string | null = null; + export let resourceType: 'API' | 'Dev' = 'API'; - export let isStandardApiKey: boolean = false; - - const options = isStandardApiKey ? defaultOptions : limitedOptions; + const options = resourceType === 'API' ? defaultOptions : limitedOptions; function initExpirationSelect() { if (value === null || !isValidDate(value)) { diff --git a/src/routes/(console)/project-[project]/overview/components/updateExpirationDate.svelte b/src/routes/(console)/project-[project]/overview/components/updateExpirationDate.svelte new file mode 100644 index 0000000000..0a14b1f124 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/components/updateExpirationDate.svelte @@ -0,0 +1,48 @@ + + +
    + + Expiration date +

    Set a date after which your {resourceType} key will expire.

    + + {#if isExpired} + (alertsDismissed = true)}> + Your {resourceType} key has expired +

    + For security reasons, we recommend you delete your expired key and create a + new one. +

    +
    + {:else if isExpiring} + (alertsDismissed = true)}> + Your {resourceType} key is about to expire +

    Update the expiration date to keep the key active

    +
    + {/if} + + + +
    + + + + +
    +
    diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/+page.svelte b/src/routes/(console)/project-[project]/overview/dev-keys/+page.svelte new file mode 100644 index 0000000000..54699cfa65 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/+page.svelte @@ -0,0 +1,74 @@ + + + + +
    + Dev keys + {#if $canWriteKeys} + + + + {/if} +
    + +{#if data.devKeys.total} + + + Name + last accessed + expiration date + + + {#each data.devKeys.keys as key} + + + {key.name} + + + {key.accessedAt ? toLocaleDate(key.accessedAt) : 'never'} + + + {key.expire ? toLocaleDateTime(key.expire) : 'never'} + + + {/each} + +
    +{:else} + + +{/if} diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/+page.ts b/src/routes/(console)/project-[project]/overview/dev-keys/+page.ts new file mode 100644 index 0000000000..5f7e3e6238 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/+page.ts @@ -0,0 +1,13 @@ +import { Dependencies } from '$lib/constants'; +import { sdk } from '$lib/stores/sdk'; +import { selectedTab } from '../store'; +import type { PageLoad } from './$types'; + +selectedTab.set('dev-keys'); + +export const load: PageLoad = async ({ params, depends }) => { + depends(Dependencies.DEV_KEYS); + return { + devKeys: await sdk.forConsole.projects.listDevKeys(params.project) + }; +}; diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page.ts b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page.ts new file mode 100644 index 0000000000..b47b352d06 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page.ts @@ -0,0 +1,23 @@ +import Header from './header.svelte'; +import Breadcrumbs from './breadcrumbs.svelte'; +import { sdk } from '$lib/stores/sdk'; +import { Dependencies } from '$lib/constants'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ params, depends }) => { + depends(Dependencies.DEV_KEY); + + const devKey = await sdk.forConsole.projects.getDevKey(params.project, params.key); + + if (devKey.expire) { + devKey.expire = new Date(devKey.expire).toISOString().slice(0, 23); + } else { + devKey.expire = undefined; + } + + return { + devKey, + header: Header, + breadcrumbs: Breadcrumbs + }; +}; diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page@project-[project].svelte b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page@project-[project].svelte new file mode 100644 index 0000000000..1ae5a0ba0b --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/+page@project-[project].svelte @@ -0,0 +1,142 @@ + + + + Dev key - Appwrite + + + + {@const accessedAt = $devKey.accessedAt ? toLocaleDate($devKey.accessedAt) : 'never'} + +
    + {$devKey.name} +
    + +

    + Last accessed: {accessedAt}
    +

    +
    +
    + + + Dev key secret + + + + + +
    + + Name +

    Choose any name that will help you distinguish between Dev keys.

    + + + + + + + + + +
    +
    + + + + +
    + Delete Dev key +
    +

    The Dev key will be permanently deleted. This action is irreversible.

    + + +
    +
    +
    {$devKey.name}
    +

    Last accessed: {accessedAt}

    +
    +
    +
    +
    + + + + +
    +
    + + diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/[key]/breadcrumbs.svelte b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/breadcrumbs.svelte new file mode 100644 index 0000000000..a1a2f9f7c6 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/breadcrumbs.svelte @@ -0,0 +1,28 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/[key]/header.svelte b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/header.svelte new file mode 100644 index 0000000000..54e1f51c56 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/header.svelte @@ -0,0 +1,18 @@ + + + + + + {$devKey?.name} + + Dev key secret + + diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/[key]/store.ts b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/store.ts new file mode 100644 index 0000000000..c2da2a1610 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/[key]/store.ts @@ -0,0 +1,5 @@ +import { derived } from 'svelte/store'; +import { page } from '$app/stores'; +import type { Models } from '@appwrite.io/console'; + +export const devKey = derived(page, ($page) => $page.data.devKey as Models.DevKey); diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/wizard.svelte b/src/routes/(console)/project-[project]/overview/dev-keys/wizard.svelte new file mode 100644 index 0000000000..fb23bb50a4 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/wizard.svelte @@ -0,0 +1,48 @@ + + + diff --git a/src/routes/(console)/project-[project]/overview/dev-keys/wizard/step1.svelte b/src/routes/(console)/project-[project]/overview/dev-keys/wizard/step1.svelte new file mode 100644 index 0000000000..5c631ab577 --- /dev/null +++ b/src/routes/(console)/project-[project]/overview/dev-keys/wizard/step1.svelte @@ -0,0 +1,22 @@ + + + + Dev key + + Test your app without rate limits and more detailed error messages. + + + + + + diff --git a/src/routes/(console)/project-[project]/overview/keys/+page.svelte b/src/routes/(console)/project-[project]/overview/keys/+page.svelte index fefc9bb678..7a54cf0186 100644 --- a/src/routes/(console)/project-[project]/overview/keys/+page.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/+page.svelte @@ -24,7 +24,6 @@ import { get } from 'svelte/store'; import type { PageData } from './$types'; import Wizard from './wizard.svelte'; - import { isStandardApiKey } from '../store'; export let data: PageData; @@ -35,9 +34,7 @@ {/if} @@ -71,11 +68,10 @@ {:else} - {/if} diff --git a/src/routes/(console)/project-[project]/overview/keys/+page.ts b/src/routes/(console)/project-[project]/overview/keys/+page.ts index c51d5b35e5..160a525606 100644 --- a/src/routes/(console)/project-[project]/overview/keys/+page.ts +++ b/src/routes/(console)/project-[project]/overview/keys/+page.ts @@ -2,24 +2,12 @@ import { Dependencies } from '$lib/constants'; import { sdk } from '$lib/stores/sdk'; import { selectedTab } from '../store'; import type { PageLoad } from './$types'; -import { sleep } from '$lib/helpers/promises'; selectedTab.set('keys'); -export const load: PageLoad = async ({ params, depends, url }) => { +export const load: PageLoad = async ({ params, depends }) => { depends(Dependencies.KEYS); - - const currentKeyType = url.searchParams.get('mode') || 'standard'; - - const isStandardApiKey = currentKeyType === 'standard'; - - // TODO: (@itznotabug) Replace this delay with a proper API call - // for development keys once the backend is implemented. - if (!isStandardApiKey) await sleep(1250); - return { - // TODO: (@itznotabug) Update this logic to fetch actual development keys from the backend - // when the console SDK supports it. keys: await sdk.forConsole.projects.listKeys(params.project) }; }; diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/+page.ts b/src/routes/(console)/project-[project]/overview/keys/[key]/+page.ts index e235ed2d60..3b8b7b0b57 100644 --- a/src/routes/(console)/project-[project]/overview/keys/[key]/+page.ts +++ b/src/routes/(console)/project-[project]/overview/keys/[key]/+page.ts @@ -7,16 +7,16 @@ import type { PageLoad } from './$types'; export const load: PageLoad = async ({ params, depends }) => { depends(Dependencies.KEY); - const key = await sdk.forConsole.projects.getKey(params.project, params.key); - if (key.expire) { - key.expire = new Date(key.expire).toISOString().slice(0, 23); + const apiKey = await sdk.forConsole.projects.getKey(params.project, params.key); + if (apiKey.expire) { + apiKey.expire = new Date(apiKey.expire).toISOString().slice(0, 23); } else { - key.expire = undefined; + apiKey.expire = undefined; } return { + apiKey, header: Header, - breadcrumbs: Breadcrumbs, - key + breadcrumbs: Breadcrumbs }; }; diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/+page@project-[project].svelte b/src/routes/(console)/project-[project]/overview/keys/[key]/+page@project-[project].svelte index bbf1c1b6e0..820141f486 100644 --- a/src/routes/(console)/project-[project]/overview/keys/[key]/+page@project-[project].svelte +++ b/src/routes/(console)/project-[project]/overview/keys/[key]/+page@project-[project].svelte @@ -12,9 +12,9 @@ import { onMount } from 'svelte'; import { project } from '../../../store'; import Scopes from '../scopes.svelte'; - import Delete from './delete.svelte'; - import { key } from './store'; - import UpdateExpirationDate from './updateExpirationDate.svelte'; + import { apiKey } from './store'; + import Delete from '../../components/delete.svelte'; + import UpdateExpirationDate from '../../components/updateExpirationDate.svelte'; let showDelete = false; let name: string = null; @@ -22,19 +22,43 @@ let scopes: string[] = null; onMount(() => { - name ??= $key.name; - secret ??= $key.secret; - scopes ??= $key.scopes; + name ??= $apiKey.name; + secret ??= $apiKey.secret; + scopes ??= $apiKey.scopes; }); + async function updateExpire() { + try { + await sdk.forConsole.projects.updateKey( + $project.$id, + $apiKey.$id, + $apiKey.name, + $apiKey.scopes, + $apiKey.expire + ); + await invalidate(Dependencies.KEY); + trackEvent(Submit.KeyUpdateExpire); + addNotification({ + type: 'success', + message: 'API key expiration has been updated' + }); + } catch (error) { + addNotification({ + type: 'error', + message: error.message + }); + trackError(error, Submit.KeyUpdateExpire); + } + } + async function updateName() { try { await sdk.forConsole.projects.updateKey( $project.$id, - $key.$id, + $apiKey.$id, name, - $key.scopes, - $key.expire + $apiKey.scopes, + $apiKey.expire ); await invalidate(Dependencies.KEY); trackEvent(Submit.KeyUpdateName); @@ -55,10 +79,10 @@ try { await sdk.forConsole.projects.updateKey( $project.$id, - $key.$id, - $key.name, + $apiKey.$id, + $apiKey.name, scopes, - $key.expire + $apiKey.expire ); await invalidate(Dependencies.KEY); trackEvent(Submit.KeyUpdateScopes, { @@ -83,15 +107,15 @@ - {@const accessedAt = $key.accessedAt ? toLocaleDate($key.accessedAt) : 'never'} + {@const accessedAt = $apiKey.accessedAt ? toLocaleDate($apiKey.accessedAt) : 'never'}
    - {$key.name} + {$apiKey.name}

    Last accessed: {accessedAt}
    - Scopes granted: {$key.scopes.length} + Scopes granted: {$apiKey.scopes.length}

    @@ -119,7 +143,7 @@ - + @@ -140,13 +164,13 @@ + $apiKey?.scopes && + !symmetricDifference(scopes, $apiKey.scopes).length}>Update - +
    @@ -157,7 +181,7 @@
    -
    {$key.name}
    +
    {$apiKey.name}

    Last accessed: {accessedAt}

    @@ -170,4 +194,4 @@ - + diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/breadcrumbs.svelte b/src/routes/(console)/project-[project]/overview/keys/[key]/breadcrumbs.svelte index 426594191e..7971aeb78a 100644 --- a/src/routes/(console)/project-[project]/overview/keys/[key]/breadcrumbs.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/[key]/breadcrumbs.svelte @@ -3,7 +3,7 @@ import { Breadcrumbs } from '$lib/layout'; import { organization } from '$lib/stores/organization'; import { project } from '../../../store'; - import { key } from './store'; + import { apiKey } from './store'; $: breadcrumbs = [ { @@ -19,8 +19,8 @@ title: 'API keys' }, { - href: `${base}/project-${$project?.$id}/overview/keys/${$key?.$id}`, - title: $key?.name + href: `${base}/project-${$project?.$id}/overview/keys/${$apiKey?.$id}`, + title: $apiKey?.name } ]; diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/delete.svelte b/src/routes/(console)/project-[project]/overview/keys/[key]/delete.svelte deleted file mode 100644 index cbf3d0b7da..0000000000 --- a/src/routes/(console)/project-[project]/overview/keys/[key]/delete.svelte +++ /dev/null @@ -1,49 +0,0 @@ - - - -

    The API key will be permanently deleted. This action is irreversible.

    - - - - - -
    diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/header.svelte b/src/routes/(console)/project-[project]/overview/keys/[key]/header.svelte index 09259d5588..9e28e510c7 100644 --- a/src/routes/(console)/project-[project]/overview/keys/[key]/header.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/[key]/header.svelte @@ -3,7 +3,7 @@ import { page } from '$app/stores'; import { Id } from '$lib/components'; import { Cover, CoverTitle } from '$lib/layout'; - import { key } from './store'; + import { apiKey } from './store'; const projectId = $page.params.project; @@ -11,8 +11,8 @@ - {$key?.name} + {$apiKey?.name} - API key secret + API key secret diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/store.ts b/src/routes/(console)/project-[project]/overview/keys/[key]/store.ts index dc984c86ca..bfdff943cc 100644 --- a/src/routes/(console)/project-[project]/overview/keys/[key]/store.ts +++ b/src/routes/(console)/project-[project]/overview/keys/[key]/store.ts @@ -2,4 +2,4 @@ import { derived } from 'svelte/store'; import { page } from '$app/stores'; import type { Models } from '@appwrite.io/console'; -export const key = derived(page, ($page) => $page.data.key as Models.Key); +export const apiKey = derived(page, ($page) => $page.data.apiKey as Models.Key); diff --git a/src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte b/src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte deleted file mode 100644 index 2a819a37aa..0000000000 --- a/src/routes/(console)/project-[project]/overview/keys/[key]/updateExpirationDate.svelte +++ /dev/null @@ -1,74 +0,0 @@ - - -
    - - Expiration date -

    Set a date after which your API key will expire.

    - - {#if isExpired} - (alertsDismissed = true)}> - Your API key has expired -

    - For security reasons, we recommend you delete your expired key and create a - new one. -

    -
    - {:else if isExpiring} - (alertsDismissed = true)}> - Your API key is about to expire -

    Update the expiration date to keep the key active

    -
    - {/if} - - - -
    - - - - -
    -
    diff --git a/src/routes/(console)/project-[project]/overview/keys/scopes.svelte b/src/routes/(console)/project-[project]/overview/keys/scopes.svelte index 946de6153a..31b7ff9839 100644 --- a/src/routes/(console)/project-[project]/overview/keys/scopes.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/scopes.svelte @@ -4,7 +4,7 @@ import { scopes as allScopes } from '$lib/constants'; import { onMount } from 'svelte'; import { symmetricDifference } from '$lib/helpers/array'; - import Checkbox from './checkbox.svelte'; + import Checkbox from '../components/checkbox.svelte'; export let scopes: string[]; @@ -96,7 +96,7 @@ onCategoryChange(e, category)} /> diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard.svelte index da34315877..badb10c303 100644 --- a/src/routes/(console)/project-[project]/overview/keys/wizard.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/wizard.svelte @@ -4,34 +4,29 @@ import type { WizardStepsType } from '$lib/layout/wizard.svelte'; import Step1 from './wizard/step1.svelte'; import Step2 from './wizard/step2.svelte'; - import { key } from './wizard/store'; + import { apiKey } from '../store'; import { sdk } from '$lib/stores/sdk'; import { page } from '$app/stores'; import { addNotification } from '$lib/stores/notifications'; import { onDestroy } from 'svelte'; import { onboarding } from '../../store'; import { Dependencies } from '$lib/constants'; - import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; + import { Submit, trackEvent, trackError } from '$lib/actions/analytics'; import { base } from '$app/paths'; - import { isStandardApiKey } from '../store'; - // TODO: check onFinish as to which key type was generated, standard or development. - // Based on that, call appropriate creator method and update notification. - - // TODO: also check if we should add different keys for events based on standard/dev keys. async function onFinish() { try { const { $id } = await sdk.forConsole.projects.createKey( $page.params.project, - $key.name, - $key.scopes, - $key.expire || undefined + $apiKey.name, + $apiKey.scopes, + $apiKey.expire || undefined ); if ($onboarding) { await invalidate(Dependencies.PROJECT); } trackEvent(Submit.KeyCreate, { - scopes: $key.scopes + scopes: $apiKey.scopes }); goto(`${base}/project-${$page.params.project}/overview/keys/${$id}`); } catch (error) { @@ -44,7 +39,7 @@ } onDestroy(() => { - key.reset(); + apiKey.reset(); }); const stepsComponents: WizardStepsType = new Map(); @@ -58,7 +53,4 @@ }); - + diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte index 78a0df02db..8b1c3019c0 100644 --- a/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/wizard/step1.svelte @@ -1,30 +1,20 @@ - {keyTypeName} key - - {#if $isStandardApiKey} - Generate API keys to authenticate your application. While still in development, use Dev - keys instead, as they're better suited for debugging. - {:else} - Test your app without rate limits and more detailed error messages. - {/if} - + API key + Let's create an API key. - + bind:value={$apiKey.name} /> + diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard/step2.svelte b/src/routes/(console)/project-[project]/overview/keys/wizard/step2.svelte index 383a8d4262..ada219a88b 100644 --- a/src/routes/(console)/project-[project]/overview/keys/wizard/step2.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/wizard/step2.svelte @@ -1,8 +1,8 @@ @@ -12,6 +12,6 @@ the permissions you need to meet your project goals. - + diff --git a/src/routes/(console)/project-[project]/overview/keys/wizard/store.ts b/src/routes/(console)/project-[project]/overview/keys/wizard/store.ts deleted file mode 100644 index 49f23c0e91..0000000000 --- a/src/routes/(console)/project-[project]/overview/keys/wizard/store.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { writable } from 'svelte/store'; -import type { Models } from '@appwrite.io/console'; - -function createKeyStore() { - const { subscribe, update, set } = writable>({ - name: null, - expire: null, - scopes: [] - }); - - return { - subscribe, - update, - set, - reset() { - set({ - name: null, - expire: null, - scopes: [] - }); - } - }; -} - -export const key = createKeyStore(); diff --git a/src/routes/(console)/project-[project]/overview/onboard.svelte b/src/routes/(console)/project-[project]/overview/onboard.svelte index 61142c29d3..6ac8cea3d9 100644 --- a/src/routes/(console)/project-[project]/overview/onboard.svelte +++ b/src/routes/(console)/project-[project]/overview/onboard.svelte @@ -10,10 +10,11 @@ import OnboardLight2Mobile from './onboard-2-light-mobile.svg'; import { app } from '$lib/stores/app'; import { wizard } from '$lib/stores/wizard'; - import Wizard from './keys/wizard.svelte'; + import ApiKeyWizard from './keys/wizard.svelte'; + import DevKeyWizard from './dev-keys/wizard.svelte'; import { canWriteKeys, canWritePlatforms } from '$lib/stores/roles'; import { base } from '$app/paths'; - import { isStandardApiKey } from './store'; + import { keyType } from './store'; export let projectId: string; @@ -45,9 +46,9 @@ } ]; - function createKey(isDevKey: boolean = false) { - wizard.start(Wizard); - isStandardApiKey.set(!isDevKey); + function createKey(isDev: boolean = false) { + keyType.set(!isDev ? 'api' : 'dev'); + wizard.start(!isDev ? ApiKeyWizard : DevKeyWizard); } $: onBoardImage1Mobile = $app.themeInUse === 'dark' ? OnboardDark1Mobile : OnboardLight1Mobile; diff --git a/src/routes/(console)/project-[project]/overview/store.ts b/src/routes/(console)/project-[project]/overview/store.ts index 6f139b5cd8..2ad4c61bcb 100644 --- a/src/routes/(console)/project-[project]/overview/store.ts +++ b/src/routes/(console)/project-[project]/overview/store.ts @@ -17,6 +17,31 @@ export const usage = cachedStore< }; }); -export const selectedTab: Writable<'platforms' | 'keys'> = writable('platforms'); +export const keyType: Writable<'api' | 'dev'> = writable('api'); -export const isStandardApiKey = writable(true); +export const selectedTab: Writable<'platforms' | 'keys' | 'dev-keys'> = writable('platforms'); + +function createKeyStore(isDevKey = false) { + const { subscribe, update, set } = writable>({ + name: null, + expire: null, + ...(isDevKey ? {} : { scopes: [] }) + }); + + return { + subscribe, + update, + set, + reset() { + set({ + name: null, + expire: null, + ...(isDevKey ? {} : { scopes: [] }) + }); + } + }; +} + +export const apiKey = createKeyStore(); + +export const devKey = createKeyStore(true); From 7aaf85556be6f9a8726cecb40fdb5d65ffe4705f Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 5 Mar 2025 13:47:39 +0530 Subject: [PATCH 7/9] update: sdk. --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index f93eda80e7..5ee5979347 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "e2e:ui": "playwright test tests/e2e --ui" }, "dependencies": { - "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378", + "@appwrite.io/console": "https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641", "@appwrite.io/pink": "0.25.0", "@appwrite.io/pink-icons": "0.25.0", "@popperjs/core": "^2.11.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b53b423c1..a5f85b6700 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@appwrite.io/console': - specifier: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378 - version: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378 + specifier: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641 + version: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641 '@appwrite.io/pink': specifier: 0.25.0 version: 0.25.0 @@ -199,9 +199,9 @@ 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@8378': - resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378} - version: 1.2.1 + '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641': + resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641} + version: 1.4.1 '@appwrite.io/pink-icons@0.25.0': resolution: {integrity: sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q==} @@ -3838,7 +3838,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@8378': {} + '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641': {} '@appwrite.io/pink-icons@0.25.0': {} From 4cf0283445c2f77356d83ed824ca52d3e6a812ff Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 5 Mar 2025 16:07:47 +0530 Subject: [PATCH 8/9] ci: empty commit --- pnpm-lock.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a5f85b6700..72072365e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@appwrite.io/console': - specifier: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641 - version: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641 + specifier: 1.5.2 + version: 1.5.2 '@appwrite.io/pink': specifier: 0.25.0 version: 0.25.0 @@ -199,9 +199,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-labs/cloud/@appwrite.io/console@1641': - resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641} - version: 1.4.1 + '@appwrite.io/console@1.5.2': + resolution: {integrity: sha512-9nNZzxoQcpm5C5pKlGJLWxsEJ4sr5mdt01Hg6M8QpfMtsRe0gjaPa7WGrGBepRnZVKPDNpozh3Hua7nqgx4aEA==} '@appwrite.io/pink-icons@0.25.0': resolution: {integrity: sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q==} @@ -3838,7 +3837,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641': {} + '@appwrite.io/console@1.5.2': {} '@appwrite.io/pink-icons@0.25.0': {} From 3868aba41bed2d448ed86eb363785a481398c8c9 Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 5 Mar 2025 16:08:46 +0530 Subject: [PATCH 9/9] update: sdk for build. --- pnpm-lock.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72072365e4..a5f85b6700 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@appwrite.io/console': - specifier: 1.5.2 - version: 1.5.2 + specifier: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641 + version: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641 '@appwrite.io/pink': specifier: 0.25.0 version: 0.25.0 @@ -199,8 +199,9 @@ packages: '@analytics/type-utils@0.6.2': resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} - '@appwrite.io/console@1.5.2': - resolution: {integrity: sha512-9nNZzxoQcpm5C5pKlGJLWxsEJ4sr5mdt01Hg6M8QpfMtsRe0gjaPa7WGrGBepRnZVKPDNpozh3Hua7nqgx4aEA==} + '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641': + resolution: {tarball: https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641} + version: 1.4.1 '@appwrite.io/pink-icons@0.25.0': resolution: {integrity: sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q==} @@ -3837,7 +3838,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@1.5.2': {} + '@appwrite.io/console@https://pkg.pr.new/appwrite-labs/cloud/@appwrite.io/console@1641': {} '@appwrite.io/pink-icons@0.25.0': {}