@@ -246,7 +254,7 @@
Calculated for all functions that are executed in this project.
{#if executions}
- {@const current = formatNum(executionsTotal)}
+ {@const current = formatNum(Math.max(0, executionsTotal))}
{current}
@@ -356,23 +364,26 @@
{#if data.usage.executionsMbSecondsTotal}
{@const totalGbHours = mbSecondsToGBHours(
- data.usage.executionsMbSecondsTotal + data.usage.buildsMbSecondsTotal
+ Math.max(
+ 0,
+ data.usage.executionsMbSecondsTotal + data.usage.buildsMbSecondsTotal
+ )
)}
{@const progressBarStorageDate = [
{
- size: mbSecondsToGBHours(data.usage.executionsMbSecondsTotal),
+ size: mbSecondsToGBHours(Math.max(0, data.usage.executionsMbSecondsTotal)),
color: '#85DBD8',
tooltip: {
title: 'Executions',
- label: `${(Math.round(mbSecondsToGBHours(data.usage.executionsMbSecondsTotal) * 100) / 100).toLocaleString('en-US')} GB hours`
+ label: `${(Math.round(mbSecondsToGBHours(Math.max(0, data.usage.executionsMbSecondsTotal)) * 100) / 100).toLocaleString('en-US')} GB hours`
}
},
{
- size: mbSecondsToGBHours(data.usage.buildsMbSecondsTotal),
+ size: mbSecondsToGBHours(Math.max(0, data.usage.buildsMbSecondsTotal)),
color: '#FE9567',
tooltip: {
title: 'Deployments',
- label: `${(Math.round(mbSecondsToGBHours(data.usage.buildsMbSecondsTotal) * 100) / 100).toLocaleString('en-US')} GB hours`
+ label: `${(Math.round(mbSecondsToGBHours(Math.max(0, data.usage.buildsMbSecondsTotal)) * 100) / 100).toLocaleString('en-US')} GB hours`
}
}
]}
@@ -405,7 +416,7 @@
- {formatNumberWithCommas(data.usage.authPhoneTotal)}
+ {formatNumberWithCommas(Math.max(0, data.usage.authPhoneTotal))}
OTPs
diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte
index 6a3fbb1e0..cdb59c7c5 100644
--- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte
+++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte
@@ -84,7 +84,10 @@
metric.value = time !== '0s' ? time : '-';
} else {
- metric.value = usage[metric.id] ?? '-';
+ metric.value =
+ usage[metric.id] !== undefined
+ ? Math.max(0, usage[metric.id]).toString()
+ : '-';
}
return metric;
});
From 242a2649c1d3ddab23abea03fc32fd5f421e7892 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Thu, 9 Oct 2025 11:38:39 +0530
Subject: [PATCH 94/99] used helper functions and expanded current ones
---
src/lib/helpers/numbers.ts | 27 ++++++++++--
src/lib/helpers/string.ts | 5 ++-
src/lib/layout/usage.svelte | 2 +-
src/lib/layout/usageMultiple.svelte | 7 +---
.../usage/[[invoice]]/+page.svelte | 23 ++++-------
.../overview/+layout.svelte | 11 ++---
.../settings/usage/[[invoice]]/+page.svelte | 41 +++++++------------
.../deployments/deploymentMetrics.svelte | 3 +-
8 files changed, 59 insertions(+), 60 deletions(-)
diff --git a/src/lib/helpers/numbers.ts b/src/lib/helpers/numbers.ts
index ce1c0a0bb..43309650e 100644
--- a/src/lib/helpers/numbers.ts
+++ b/src/lib/helpers/numbers.ts
@@ -18,21 +18,40 @@ export function toDecimals(num: number, decimals: number = 1): number {
return parseFloat(num.toFixed(decimals));
}
-export function formatNumberWithCommas(number: number): string {
+export function formatNumberWithCommas(number: number, min: number = 0): string {
if (isNaN(number)) return String(number);
+ const value = Math.max(min, number);
const formatter = new Intl.NumberFormat('en');
- return formatter.format(number);
+ return formatter.format(value);
}
-export function formatCurrency(number: number, locale = 'en-US', currency = 'USD'): string {
+export function formatCurrency(
+ number: number,
+ locale = 'en-US',
+ currency = 'USD',
+ min: number = 0
+): string {
if (isNaN(number)) return String(number);
+ const value = Math.max(min, number);
const formatter = new Intl.NumberFormat(locale, {
style: 'currency',
currency
});
- return formatter.format(number);
+ return formatter.format(value);
}
export function isWithinSafeRange(val: number) {
return Math.abs(val) < Number.MAX_SAFE_INTEGER;
}
+
+/**
+ * Clamps a number to a minimum value
+ *
+ * @export
+ * @param {number} value
+ * @param {number} min
+ * @returns {number}
+ */
+export function clampMin(value: number, min: number = 0): number {
+ return Math.max(min, value || 0);
+}
diff --git a/src/lib/helpers/string.ts b/src/lib/helpers/string.ts
index 91dd9a37c..77df5102f 100644
--- a/src/lib/helpers/string.ts
+++ b/src/lib/helpers/string.ts
@@ -45,8 +45,9 @@ const formatter = Intl.NumberFormat('en', {
notation: 'compact'
});
-export function formatNum(number: number): string {
- return formatter.format(number);
+export function formatNum(number: number, min: number = 0): string {
+ const value = Math.max(min, number);
+ return formatter.format(value);
}
/**
diff --git a/src/lib/layout/usage.svelte b/src/lib/layout/usage.svelte
index b084fb626..9f5889b04 100644
--- a/src/lib/layout/usage.svelte
+++ b/src/lib/layout/usage.svelte
@@ -119,7 +119,7 @@
{#if count}
- {formatNumberWithCommas(Math.max(0, total))}
+ {formatNumberWithCommas(total)}
{countMetadata.title}
diff --git a/src/lib/layout/usageMultiple.svelte b/src/lib/layout/usageMultiple.svelte
index bc8bc8734..85f5091ca 100644
--- a/src/lib/layout/usageMultiple.svelte
+++ b/src/lib/layout/usageMultiple.svelte
@@ -4,7 +4,7 @@
import { Card, SecondaryTabs, SecondaryTabsItem } from '$lib/components';
import { page } from '$app/state';
import { type Models } from '@appwrite.io/console';
- import { formatNumberWithCommas } from '$lib/helpers/numbers';
+ import { formatNumberWithCommas, clampMin } from '$lib/helpers/numbers';
import { Layout, Typography } from '@appwrite.io/pink-svelte';
export let title: string;
@@ -41,10 +41,7 @@
{#if count}
- {@const totalCount = Math.max(
- 0,
- total.reduce((a, b) => a + b, 0)
- )}
+ {@const totalCount = clampMin(total.reduce((a, b) => a + b, 0))}
{formatNumberWithCommas(totalCount)}
diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte
index b947a1102..a9422df60 100644
--- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte
@@ -445,31 +445,24 @@
{#if data.organizationUsage.storageTotal}
{@const totalGbHours = mbSecondsToGBHours(
- Math.max(
- 0,
- data.organizationUsage.executionsMBSecondsTotal +
- data.organizationUsage.buildsMBSecondsTotal
- )
+ data.organizationUsage.executionsMBSecondsTotal +
+ data.organizationUsage.buildsMBSecondsTotal
)}
{@const progressBarStorageDate = [
{
- size: mbSecondsToGBHours(
- Math.max(0, data.organizationUsage.executionsMBSecondsTotal)
- ),
+ size: mbSecondsToGBHours(data.organizationUsage.executionsMBSecondsTotal),
color: '#85DBD8',
tooltip: {
title: 'Executions',
- label: `${(Math.round(mbSecondsToGBHours(Math.max(0, data.organizationUsage.executionsMBSecondsTotal)) * 100) / 100).toLocaleString('en-US')} GB hours`
+ label: `${(Math.round(mbSecondsToGBHours(data.organizationUsage.executionsMBSecondsTotal) * 100) / 100).toLocaleString('en-US')} GB hours`
}
},
{
- size: mbSecondsToGBHours(
- Math.max(0, data.organizationUsage.buildsMBSecondsTotal)
- ),
+ size: mbSecondsToGBHours(data.organizationUsage.buildsMBSecondsTotal),
color: '#FE9567',
tooltip: {
title: 'Deployments',
- label: `${(Math.round(mbSecondsToGBHours(Math.max(0, data.organizationUsage.buildsMBSecondsTotal)) * 100) / 100).toLocaleString('en-US')} GB hours`
+ label: `${(Math.round(mbSecondsToGBHours(data.organizationUsage.buildsMBSecondsTotal) * 100) / 100).toLocaleString('en-US')} GB hours`
}
}
]}
@@ -512,9 +505,7 @@
- {formatNumberWithCommas(
- Math.max(0, data.organizationUsage.authPhoneTotal)
- )}
+ {formatNumberWithCommas(data.organizationUsage.authPhoneTotal)}
OTPs
diff --git a/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte b/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte
index efeb8da3e..4c6fb4341 100644
--- a/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte
+++ b/src/routes/(console)/project-[region]-[project]/overview/+layout.svelte
@@ -1,10 +1,11 @@
@@ -100,7 +101,7 @@
{#if $usage}
- {@const storage = humanFileSize(Math.max(0, $usage.filesStorageTotal ?? 0))}
+ {@const storage = humanFileSize($usage.filesStorageTotal ?? 0)}
- {formatNum(Math.max(0, $usage.documentsTotal ?? 0))}
+ {formatNum($usage.documentsTotal ?? 0)}
Rows
@@ -177,7 +178,7 @@
- {formatNum(Math.max(0, $usage.usersTotal ?? 0))}
+ {formatNum($usage.usersTotal ?? 0)}
Users
@@ -199,7 +200,7 @@
- {formatNum(Math.max(0, $usage.executionsTotal ?? 0))}
+ {formatNum($usage.executionsTotal ?? 0)}
Executions
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 d0cf04644..76d4d5e1e 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
@@ -10,7 +10,7 @@
import { total } from '$lib/layout/usage.svelte';
import { BillingPlan } from '$lib/constants.js';
import { base } from '$app/paths';
- import { formatCurrency, formatNumberWithCommas } from '$lib/helpers/numbers';
+ import { formatCurrency, formatNumberWithCommas, clampMin } from '$lib/helpers/numbers';
import { getCountryName } from '$lib/helpers/diallingCodes.js';
import { Accordion, Icon, Layout, Link, Table, Typography } from '@appwrite.io/pink-svelte';
import { IconChartSquareBar } from '@appwrite.io/pink-icons-svelte';
@@ -24,12 +24,10 @@
$: usersTotal = data.usage.usersTotal;
$: executions = data.usage.executions;
$: executionsTotal = data.usage.executionsTotal;
- $: storage = Math.max(
- 0,
+ $: storage =
data.usage.filesStorageTotal +
- data.usage.deploymentsStorageTotal +
- data.usage.buildsStorageTotal
- );
+ data.usage.deploymentsStorageTotal +
+ data.usage.buildsStorageTotal;
$: imageTransformations = data.usage.imageTransformations;
$: imageTransformationsTotal = data.usage.imageTransformationsTotal;
$: dbReads = data.usage.databasesReads;
@@ -38,17 +36,11 @@
$: legendData = [
{
name: 'Reads',
- value: Math.max(
- 0,
- data.usage.databasesReads.reduce((sum, item) => sum + item.value, 0)
- )
+ value: clampMin(data.usage.databasesReads.reduce((sum, item) => sum + item.value, 0))
},
{
name: 'Writes',
- value: Math.max(
- 0,
- data.usage.databasesWrites.reduce((sum, item) => sum + item.value, 0)
- )
+ value: clampMin(data.usage.databasesWrites.reduce((sum, item) => sum + item.value, 0))
}
];
@@ -140,7 +132,7 @@
Total user in your project.
{#if users}
- {@const current = formatNum(Math.max(0, usersTotal))}
+ {@const current = formatNum(usersTotal)}
{current}
@@ -216,7 +208,7 @@
Total unique image transformations in your project.
{#if imageTransformations}
- {@const current = formatNum(Math.max(0, imageTransformationsTotal))}
+ {@const current = formatNum(imageTransformationsTotal)}
@@ -254,7 +246,7 @@
Calculated for all functions that are executed in this project.
{#if executions}
- {@const current = formatNum(Math.max(0, executionsTotal))}
+ {@const current = formatNum(executionsTotal)}
{current}
@@ -364,26 +356,23 @@
{#if data.usage.executionsMbSecondsTotal}
{@const totalGbHours = mbSecondsToGBHours(
- Math.max(
- 0,
- data.usage.executionsMbSecondsTotal + data.usage.buildsMbSecondsTotal
- )
+ data.usage.executionsMbSecondsTotal + data.usage.buildsMbSecondsTotal
)}
{@const progressBarStorageDate = [
{
- size: mbSecondsToGBHours(Math.max(0, data.usage.executionsMbSecondsTotal)),
+ size: mbSecondsToGBHours(data.usage.executionsMbSecondsTotal),
color: '#85DBD8',
tooltip: {
title: 'Executions',
- label: `${(Math.round(mbSecondsToGBHours(Math.max(0, data.usage.executionsMbSecondsTotal)) * 100) / 100).toLocaleString('en-US')} GB hours`
+ label: `${(Math.round(mbSecondsToGBHours(data.usage.executionsMbSecondsTotal) * 100) / 100).toLocaleString('en-US')} GB hours`
}
},
{
- size: mbSecondsToGBHours(Math.max(0, data.usage.buildsMbSecondsTotal)),
+ size: mbSecondsToGBHours(data.usage.buildsMbSecondsTotal),
color: '#FE9567',
tooltip: {
title: 'Deployments',
- label: `${(Math.round(mbSecondsToGBHours(Math.max(0, data.usage.buildsMbSecondsTotal)) * 100) / 100).toLocaleString('en-US')} GB hours`
+ label: `${(Math.round(mbSecondsToGBHours(data.usage.buildsMbSecondsTotal) * 100) / 100).toLocaleString('en-US')} GB hours`
}
}
]}
@@ -416,7 +405,7 @@
- {formatNumberWithCommas(Math.max(0, data.usage.authPhoneTotal))}
+ {formatNumberWithCommas(data.usage.authPhoneTotal)}
OTPs
diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte
index cdb59c7c5..731cd4513 100644
--- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte
+++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deploymentMetrics.svelte
@@ -9,6 +9,7 @@
import { UsageCard } from '$lib/components';
import { humanFileSize } from '$lib/helpers/sizeConvertion';
import { formatTimeDetailed } from '$lib/helpers/timeConversion';
+ import { clampMin } from '$lib/helpers/numbers';
const now = new Date();
const rangeOptions = [
@@ -86,7 +87,7 @@
} else {
metric.value =
usage[metric.id] !== undefined
- ? Math.max(0, usage[metric.id]).toString()
+ ? clampMin(usage[metric.id]).toString()
: '-';
}
return metric;
From 460fc7870bff2e22060511eb86d55a8c079d1655 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Thu, 9 Oct 2025 11:58:16 +0530
Subject: [PATCH 95/99] used clamp inside expansion
---
src/lib/helpers/numbers.ts | 6 ++----
src/lib/helpers/string.ts | 5 +++--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/lib/helpers/numbers.ts b/src/lib/helpers/numbers.ts
index 43309650e..a3ad303b5 100644
--- a/src/lib/helpers/numbers.ts
+++ b/src/lib/helpers/numbers.ts
@@ -20,9 +20,8 @@ export function toDecimals(num: number, decimals: number = 1): number {
export function formatNumberWithCommas(number: number, min: number = 0): string {
if (isNaN(number)) return String(number);
- const value = Math.max(min, number);
const formatter = new Intl.NumberFormat('en');
- return formatter.format(value);
+ return formatter.format(clampMin(number, min));
}
export function formatCurrency(
@@ -32,12 +31,11 @@ export function formatCurrency(
min: number = 0
): string {
if (isNaN(number)) return String(number);
- const value = Math.max(min, number);
const formatter = new Intl.NumberFormat(locale, {
style: 'currency',
currency
});
- return formatter.format(value);
+ return formatter.format(clampMin(number, min));
}
export function isWithinSafeRange(val: number) {
diff --git a/src/lib/helpers/string.ts b/src/lib/helpers/string.ts
index 77df5102f..6f867f86c 100644
--- a/src/lib/helpers/string.ts
+++ b/src/lib/helpers/string.ts
@@ -1,3 +1,5 @@
+import { clampMin } from './numbers';
+
/**
* Capitalizes the first letter of a string
*
@@ -46,8 +48,7 @@ const formatter = Intl.NumberFormat('en', {
});
export function formatNum(number: number, min: number = 0): string {
- const value = Math.max(min, number);
- return formatter.format(value);
+ return formatter.format(clampMin(number, min));
}
/**
From 5d5229b662c325305f19138ed0fdf9b0296d6bea Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Thu, 9 Oct 2025 13:54:52 +0530
Subject: [PATCH 96/99] Add missing link
---
src/lib/components/git/connectRepoModal.svelte | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/lib/components/git/connectRepoModal.svelte b/src/lib/components/git/connectRepoModal.svelte
index 68acdab02..0f5eb76d4 100644
--- a/src/lib/components/git/connectRepoModal.svelte
+++ b/src/lib/components/git/connectRepoModal.svelte
@@ -13,6 +13,7 @@
import { Click, trackEvent } from '$lib/actions/analytics';
import RepositoryBehaviour from '$lib/components/git/repositoryBehaviour.svelte';
import { page } from '$app/state';
+ import { connectGitHub } from '$lib/stores/git';
let {
show = $bindable(false),
@@ -121,7 +122,7 @@
{#if repositoryBehaviour === 'existing'}
-
+
Missing a repository? check your permissions
From 622fd45e73dcd2f1310611d5b0847ebfdf905ec7 Mon Sep 17 00:00:00 2001
From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com>
Date: Thu, 9 Oct 2025 15:52:41 +0530
Subject: [PATCH 97/99] add Transactions API console notification
---
.../promos/time-helper-queries-dark.png | Bin 278704 -> 0 bytes
.../promos/time-helper-queries-light.png | Bin 171294 -> 0 bytes
.../images/promos/transactions-api-dark.png | Bin 0 -> 92965 bytes
.../images/promos/transactions-api-light.png | Bin 0 -> 85236 bytes
src/routes/(console)/bottomAlerts.ts | 20 +++++++++---------
5 files changed, 10 insertions(+), 10 deletions(-)
delete mode 100644 src/lib/images/promos/time-helper-queries-dark.png
delete mode 100644 src/lib/images/promos/time-helper-queries-light.png
create mode 100644 src/lib/images/promos/transactions-api-dark.png
create mode 100644 src/lib/images/promos/transactions-api-light.png
diff --git a/src/lib/images/promos/time-helper-queries-dark.png b/src/lib/images/promos/time-helper-queries-dark.png
deleted file mode 100644
index 0adf4b23114d20abcd86c3210870208b380b8376..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 278704
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