diff --git a/bun.lock b/bun.lock
index 03a18eb5a5..8db6da9fae 100644
--- a/bun.lock
+++ b/bun.lock
@@ -90,11 +90,12 @@
},
},
"overrides": {
- "brace-expansion": ">=5.0.5",
+ "brace-expansion": ">=5.0.7",
"cookie": "^0.7.0",
"devalue": "^5.8.1",
"flatted": "^3.4.2",
"immutable": "^5.1.5",
+ "js-yaml": "^4.3.0",
"minimatch": "10.2.3",
"picomatch": "^4.0.4",
"vite": "npm:rolldown-vite@latest",
@@ -648,7 +649,7 @@
"binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="],
- "brace-expansion": ["brace-expansion@5.0.5", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ=="],
+ "brace-expansion": ["brace-expansion@5.0.7", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA=="],
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
@@ -1022,7 +1023,7 @@
"js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
- "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="],
+ "js-yaml": ["js-yaml@4.3.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q=="],
"jsdom": ["jsdom@26.1.0", "", { "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", "decimal.js": "^10.5.0", "html-encoding-sniffer": "^4.0.0", "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.6", "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.16", "parse5": "^7.2.1", "rrweb-cssom": "^0.8.0", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^5.1.1", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", "whatwg-encoding": "^3.1.1", "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.1.1", "ws": "^8.18.0", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg=="],
diff --git a/package.json b/package.json
index 1623eb16e0..ccde1e9adc 100644
--- a/package.json
+++ b/package.json
@@ -104,7 +104,8 @@
"overrides": {
"vite": "npm:rolldown-vite@latest",
"minimatch": "10.2.3",
- "brace-expansion": ">=5.0.5",
+ "brace-expansion": ">=5.0.7",
+ "js-yaml": "^4.3.0",
"immutable": "^5.1.5",
"flatted": "^3.4.2",
"devalue": "^5.8.1",
diff --git a/src/lib/commandCenter/searchers/functions.ts b/src/lib/commandCenter/searchers/functions.ts
index d28992964e..0e708d5a96 100644
--- a/src/lib/commandCenter/searchers/functions.ts
+++ b/src/lib/commandCenter/searchers/functions.ts
@@ -56,16 +56,6 @@ export const functionsSearcher = (async (query: string) => {
},
group: 'functions'
},
- {
- label: 'Go to usage',
- nested: true,
- callback() {
- goto(
- `${base}/project-${page.params.region}-${projectId}/functions/function-${func.$id}/usage`
- );
- },
- group: 'functions'
- },
{
label: 'Go to executions',
nested: true,
diff --git a/src/lib/layout/index.ts b/src/lib/layout/index.ts
index d280202090..004b68fbb7 100644
--- a/src/lib/layout/index.ts
+++ b/src/lib/layout/index.ts
@@ -10,8 +10,7 @@ export { default as WizardWithSteps } from './wizardWithSteps.svelte';
export { default as WizardStep } from './wizardStep.svelte';
export { default as Breadcrumbs } from './breadcrumbs.svelte';
export { default as Unauthenticated } from './unauthenticated.svelte';
-export { default as Usage, type UsagePeriods } from './usage.svelte';
-export { default as UsageMultiple } from './usageMultiple.svelte';
+export type { UsagePeriods } from './usageHelpers';
export { default as Progress } from './progress.svelte';
export { default as GridHeader } from './gridHeader.svelte';
export { default as ContainerHeader } from './containerHeader.svelte';
diff --git a/src/lib/layout/usage.svelte b/src/lib/layout/usage.svelte
deleted file mode 100644
index 9f5889b046..0000000000
--- a/src/lib/layout/usage.svelte
+++ /dev/null
@@ -1,145 +0,0 @@
-
-
-
-
-
- {#if !hidePeriodSelect}
-
- goto(`${path}/${e.detail}`)}
- id="period"
- options={[
- {
- label: '24 hours',
- value: '24h'
- },
- {
- label: '30 days',
- value: '30d'
- },
- {
- label: '90 days',
- value: '90d'
- }
- ]}
- value={page.params.period ?? '30d'} />
-
- {/if}
-
- {#if count}
-
- {formatNumberWithCommas(total)}
- {countMetadata.title}
-
-
- [m.date, m.value])
- : accumulateFromEndingTotal(count, total)
- }
- ]} />
-
- {/if}
-
-
-
-
diff --git a/src/lib/layout/usageHelpers.ts b/src/lib/layout/usageHelpers.ts
new file mode 100644
index 0000000000..61c457ef39
--- /dev/null
+++ b/src/lib/layout/usageHelpers.ts
@@ -0,0 +1,68 @@
+import { ProjectUsageRange, type Models } from '@appwrite.io/console';
+
+export type UsagePeriods = '24h' | '30d' | '90d';
+
+export function periodToDates(period: UsagePeriods): {
+ start: string;
+ end: string;
+ period: ProjectUsageRange;
+} {
+ const start = new Date();
+ switch (period) {
+ case '24h':
+ start.setUTCHours(start.getHours() - 24);
+ break;
+ case '30d':
+ start.setUTCHours(0, 0, 0, 0);
+ start.setUTCDate(start.getDate() - 30);
+ break;
+ case '90d':
+ start.setUTCHours(0, 0, 0, 0);
+ start.setUTCDate(start.getDate() - 90);
+ break;
+ }
+ const end = new Date();
+ end.setUTCDate(end.getUTCDate() + 1);
+ end.setUTCHours(0, 0, 0, 0);
+ return {
+ start: start.toISOString(),
+ end: end.toISOString(),
+ period: period === '24h' ? ProjectUsageRange.OneHour : ProjectUsageRange.OneDay
+ };
+}
+
+export function last(set: Models.Metric[]): Models.Metric | null {
+ if (!set) return null;
+ return set.slice(-1)[0] ?? null;
+}
+
+export function total(set: Models.Metric[]): number {
+ return set?.reduce((prev, curr) => prev + curr.value, 0) ?? 0;
+}
+
+export function accumulateFromEndingTotal(
+ metrics: Models.Metric[],
+ endingTotal: number,
+ startingDayToFillZero: Date = null
+): Array<[string, number]> {
+ return (metrics ?? []).reduceRight(
+ (acc, curr) => {
+ if (startingDayToFillZero !== null && startingDayToFillZero instanceof Date) {
+ const date = new Date(curr.date);
+ if (date > startingDayToFillZero) {
+ acc.data.unshift([date.toISOString(), 0]);
+ acc.total -= 0;
+
+ return acc;
+ }
+ }
+ acc.data.unshift([curr.date, acc.total]);
+ acc.total -= curr.value;
+ return acc;
+ },
+ {
+ total: endingTotal,
+ data: []
+ }
+ ).data;
+}
diff --git a/src/lib/layout/usageMultiple.svelte b/src/lib/layout/usageMultiple.svelte
deleted file mode 100644
index ff1789c49a..0000000000
--- a/src/lib/layout/usageMultiple.svelte
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
- {#if showHeader}
-
- {title}
-
- {#if path}
-
-
- 24h
-
-
- 30d
-
-
- 90d
-
-
- {/if}
-
- {/if}
-
-
- {#if count}
-
- {formatNumberWithCommas(totalCount)}
- Total {title.toLocaleLowerCase()}
-
-
-
-
- {#if legendData}
-
- {/if}
-
- {/if}
-
-
-
-
diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte
index 874cc23ec1..cdee868486 100644
--- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte
@@ -15,7 +15,7 @@
import { organization } from '$lib/stores/organization';
import ProjectBreakdown from './ProjectBreakdown.svelte';
import { formatNum } from '$lib/helpers/string';
- import { accumulateFromEndingTotal, total } from '$lib/layout/usage.svelte';
+ import { accumulateFromEndingTotal, total } from '$lib/layout/usageHelpers';
import { Click, trackEvent } from '$lib/actions/analytics';
import TotalMembers from './totalMembers.svelte';
import { formatCurrency, formatNumberWithCommas } from '$lib/helpers/numbers';
diff --git a/src/routes/(console)/project-[region]-[project]/auth/+layout.svelte b/src/routes/(console)/project-[region]-[project]/auth/+layout.svelte
index 2c8c7a904d..ddfdd3d56a 100644
--- a/src/routes/(console)/project-[region]-[project]/auth/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/auth/+layout.svelte
@@ -58,16 +58,6 @@
rank: 1,
disabled: page.url.pathname.endsWith('teams')
},
- {
- label: 'Go to usage',
- keys: ['g', 'u'],
- callback: async () => {
- await goto(withPath(authProjectRoute, '/usage'));
- },
- group: 'navigation',
- rank: 1,
- disabled: page.url.pathname.endsWith('usage')
- },
{
label: 'Go to security',
keys: ['g', 'e'],
diff --git a/src/routes/(console)/project-[region]-[project]/auth/header.svelte b/src/routes/(console)/project-[region]-[project]/auth/header.svelte
index bb425c2b54..4c2cddbb39 100644
--- a/src/routes/(console)/project-[region]-[project]/auth/header.svelte
+++ b/src/routes/(console)/project-[region]-[project]/auth/header.svelte
@@ -34,12 +34,6 @@
event: 'templates',
disabled: !$canWriteProjects
},
- {
- href: `${path}/usage`,
- title: 'Usage',
- hasChildren: true,
- event: 'usage'
- },
{
href: `${path}/settings`,
title: 'Settings',
diff --git a/src/routes/(console)/project-[region]-[project]/auth/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/auth/usage/[[period]]/+page.svelte
deleted file mode 100644
index 9879c54e4d..0000000000
--- a/src/routes/(console)/project-[region]-[project]/auth/usage/[[period]]/+page.svelte
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
diff --git a/src/routes/(console)/project-[region]-[project]/auth/usage/[[period]]/+page.ts b/src/routes/(console)/project-[region]-[project]/auth/usage/[[period]]/+page.ts
deleted file mode 100644
index 7356f8c309..0000000000
--- a/src/routes/(console)/project-[region]-[project]/auth/usage/[[period]]/+page.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { isValueOfStringEnum } from '$lib/helpers/types';
-import { sdk } from '$lib/stores/sdk';
-import { UsageRange } from '@appwrite.io/console';
-import type { PageLoad } from './$types';
-
-export const load: PageLoad = async ({ params }) => {
- const period = isValueOfStringEnum(UsageRange, params.period)
- ? params.period
- : UsageRange.ThirtyDays;
-
- return {
- ...(await sdk.forProject(params.region, params.project).users.getUsage({ range: period }))
- };
-};
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/index.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/index.ts
index 8437673d36..e2964fbdd6 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/index.ts
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/index.ts
@@ -7,6 +7,5 @@ export * from './views/settings';
export { default as Header } from './views/header.svelte';
export { default as Breadcrumbs } from './views/breadcrumbs.svelte';
-export { default as Usage } from './views/usage/view.svelte';
export { default as CreateEntity } from './views/create.svelte';
export { default as FailedModal } from './views/failedModal.svelte';
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/usage/view.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/usage/view.svelte
deleted file mode 100644
index c47c8da008..0000000000
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/views/usage/view.svelte
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte
index 5109887944..05312ab837 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte
@@ -147,18 +147,6 @@
keys: ['g', 'c'],
group: 'databases'
},
- {
- label: 'Go to usage',
- callback() {
- goto(
- `${base}/project-${page.params.region}-${project}/databases/database-${databaseId}/usage`
- );
- },
- disabled:
- page.url.pathname.includes('/usage') || page.url.pathname.includes('table-'),
- keys: ['g', 'u'],
- group: 'databases'
- },
{
label: 'Go to backups',
callback() {
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte
index 1d3ded6c0d..7bd3d0756a 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte
@@ -34,12 +34,6 @@
event: 'backups',
hasChildren: true
},
- {
- href: withPath(baseDatabasePath, '/usage'),
- title: 'Usage',
- event: 'usage',
- hasChildren: true
- },
{
href: withPath(baseDatabasePath, '/settings'),
event: 'settings',
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/store.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/store.ts
index a34a5d001d..1a378fe435 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/store.ts
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/store.ts
@@ -1,6 +1,6 @@
import { writable } from 'svelte/store';
import type { Column } from '$lib/helpers/types';
-import { IconChartBar, IconCloudUpload, IconCog } from '@appwrite.io/pink-icons-svelte';
+import { IconCloudUpload, IconCog } from '@appwrite.io/pink-icons-svelte';
import { resolveRoute, withPath } from '$lib/stores/navigation';
import type { Page } from '@sveltejs/kit';
import { type Models, Query } from '@appwrite.io/console';
@@ -104,7 +104,6 @@ export const customRetainingOptions = [
export const databaseSubNavigationItems = [
{ title: 'Backups', href: 'backups', icon: IconCloudUpload },
- { title: 'Usage', href: 'usage', icon: IconChartBar },
{ title: 'Settings', href: 'settings', icon: IconCog }
];
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte
index 6bd8212f66..57e32165ba 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/+layout.svelte
@@ -204,15 +204,6 @@
disabled: page.url.pathname.endsWith('indexes'),
group: 'tables'
},
- {
- label: 'Go to usage',
- keys: ['g', 'u'],
- callback() {
- goto(withPath(basePath, '/usage'));
- },
- disabled: page.url.pathname.endsWith('usage'),
- group: 'tables'
- },
{
label: 'Go to settings',
keys: ['g', 's'],
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte
index b408f6d22b..5c4463f04b 100644
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte
+++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/header.svelte
@@ -32,12 +32,6 @@
title: 'Indexes',
event: 'indexes'
},
- {
- href: `${path}/usage`,
- title: 'Usage',
- event: 'usage',
- hasChildren: true
- },
{
href: `${path}/settings`,
title: 'Settings',
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/usage/[[period]]/+page.svelte
deleted file mode 100644
index a8d8fdb0b0..0000000000
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/usage/[[period]]/+page.svelte
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/usage/[[period]]/+page.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/usage/[[period]]/+page.ts
deleted file mode 100644
index 2881862b8f..0000000000
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/usage/[[period]]/+page.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { isValueOfStringEnum } from '$lib/helpers/types';
-import { sdk } from '$lib/stores/sdk';
-import { UsageRange } from '@appwrite.io/console';
-import type { PageLoad } from './$types';
-
-export const load: PageLoad = async ({ params }) => {
- const period = isValueOfStringEnum(UsageRange, params.period)
- ? params.period
- : UsageRange.ThirtyDays;
-
- return {
- ...(await sdk.forProject(params.region, params.project).tablesDB.getTableUsage({
- databaseId: params.database,
- tableId: params.table,
- range: period
- }))
- };
-};
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte
deleted file mode 100644
index 3563aba6ed..0000000000
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.svelte
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.ts
deleted file mode 100644
index 9391c5451a..0000000000
--- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/usage/[[period]]/+page.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { isValueOfStringEnum } from '$lib/helpers/types';
-import { sdk } from '$lib/stores/sdk';
-import { UsageRange } from '@appwrite.io/console';
-import type { PageLoad } from './$types';
-
-export const load: PageLoad = async ({ params }) => {
- const period = isValueOfStringEnum(UsageRange, params.period)
- ? params.period
- : UsageRange.ThirtyDays;
-
- return {
- ...(await sdk.forProject(params.region, params.project).tablesDB.getUsage({
- databaseId: params.database,
- range: period
- }))
- };
-};
diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+layout.svelte
index 24aadfb532..5bbf865c2f 100644
--- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/+layout.svelte
@@ -131,18 +131,6 @@
rank: 10,
disabled: page.url.pathname.endsWith($func.$id)
},
- {
- label: 'Go to usage',
- callback() {
- goto(
- `${base}/project-${page.params.region}-${page.params.project}/functions/function-${$func.$id}/usage`
- );
- },
- keys: ['g', 'u'],
- group: 'navigation',
- rank: 10,
- disabled: page.url.pathname.endsWith('usage')
- },
{
label: 'Go to executions',
callback() {
diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/header.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/header.svelte
index 22f1ac8671..2dbc394bd4 100644
--- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/header.svelte
+++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/header.svelte
@@ -28,12 +28,6 @@
title: 'Domains',
event: 'domains'
},
- {
- href: `${path}/usage`,
- title: 'Usage',
- event: 'usage',
- hasChildren: true
- },
{
href: `${path}/settings`,
event: 'settings',
diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/usage/[[period]]/+page.svelte
deleted file mode 100644
index 4a1316b98e..0000000000
--- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/usage/[[period]]/+page.svelte
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
- {#if count.length}
-
- {/if}
-
- {#if executionsTime.length}
-
- {/if}
-
-
diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/usage/[[period]]/+page.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/usage/[[period]]/+page.ts
deleted file mode 100644
index 3ac7b0bde9..0000000000
--- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/usage/[[period]]/+page.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { sdk } from '$lib/stores/sdk';
-import { UsageRange } from '@appwrite.io/console';
-import type { PageLoad } from './$types';
-import { isValueOfStringEnum } from '$lib/helpers/types';
-
-export const load: PageLoad = async ({ params }) => {
- const period = isValueOfStringEnum(UsageRange, params.period)
- ? params.period
- : UsageRange.ThirtyDays;
-
- return {
- ...(await sdk.forProject(params.region, params.project).functions.getUsage({
- functionId: params.function,
- range: period
- }))
- };
-};
diff --git a/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte b/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte
index 6f52422be6..059310af00 100644
--- a/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte
@@ -22,7 +22,7 @@
import Bandwidth from './bandwidth.svelte';
import Requests from './requests.svelte';
import { usage } from './store';
- import { periodToDates } from '$lib/layout/usage.svelte';
+ import { periodToDates } from '$lib/layout/usageHelpers';
import { canWriteProjects } from '$lib/stores/roles';
import { Card, Layout, Typography } from '@appwrite.io/pink-svelte';
import { writable, type Writable } from 'svelte/store';
diff --git a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte
index b6d5350784..085865d6de 100644
--- a/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte
+++ b/src/routes/(console)/project-[region]-[project]/settings/usage/[[invoice]]/+page.svelte
@@ -12,7 +12,7 @@
import { bytesToSize, humanFileSize, mbSecondsToGBHours } from '$lib/helpers/sizeConvertion';
import { BarChart, Legend } from '$lib/charts';
import { formatNum } from '$lib/helpers/string';
- import { total } from '$lib/layout/usage.svelte';
+ import { total } from '$lib/layout/usageHelpers';
import { base } from '$app/paths';
import { formatCurrency, formatNumberWithCommas, clampMin } from '$lib/helpers/numbers';
import { getCountryName } from '$lib/helpers/diallingCodes.js';
diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+layout.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+layout.svelte
index 64a7454fa3..a0452b110d 100644
--- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/+layout.svelte
@@ -90,18 +90,6 @@
rank: 10,
disabled: page.url.pathname.endsWith('deployments')
},
- {
- label: 'Go to usage',
- callback() {
- goto(
- `${base}/project-${$project.region}-${$project.$id}/sites/site-${page.params.site}/usage`
- );
- },
- keys: ['g', 'u'],
- group: 'navigation',
- rank: 10,
- disabled: page.url.pathname.endsWith('usage')
- },
{
label: 'Go to logs',
callback() {
diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/usage/[[period]]/+page.svelte
deleted file mode 100644
index cb464c166c..0000000000
--- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/usage/[[period]]/+page.svelte
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/usage/[[period]]/+page.ts b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/usage/[[period]]/+page.ts
deleted file mode 100644
index 80b1ec6bf5..0000000000
--- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/usage/[[period]]/+page.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { PageLoad } from './$types';
-
-export const load: PageLoad = async () => ({});
diff --git a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+layout.svelte
index 5988aa94c1..b919dc87ea 100644
--- a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/+layout.svelte
@@ -74,18 +74,6 @@
group: 'navigation',
rank: 10
},
- {
- label: 'Go to usage',
- callback() {
- goto(
- `${base}/project-${$project.region}-${$project.$id}/storage/bucket-${$bucket.$id}/usage`
- );
- },
- disabled: page.url.pathname.endsWith('usage'),
- keys: ['g', 'u'],
- group: 'navigation',
- rank: 10
- },
{
label: 'Go to settings',
callback() {
diff --git a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/usage/[[period]]/+page.svelte
deleted file mode 100644
index 3ef899e530..0000000000
--- a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/usage/[[period]]/+page.svelte
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/usage/[[period]]/+page.ts b/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/usage/[[period]]/+page.ts
deleted file mode 100644
index 80b1ec6bf5..0000000000
--- a/src/routes/(console)/project-[region]-[project]/storage/bucket-[bucket]/usage/[[period]]/+page.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import type { PageLoad } from './$types';
-
-export const load: PageLoad = async () => ({});