Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/backend/src/activity/activity.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,4 +144,4 @@ export class ActivityService {
nextCursor: events.length === safeLimit ? safeCursor + safeLimit : null,
};
}
}
}
3 changes: 1 addition & 2 deletions apps/mobile/.turbo/turbo-build.log
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

> mobile@1.0.0 build D:\ak\project\FairShare\apps\mobile
> mobile@1.0.0 build /home/jailuser/git/apps/mobile
> tsc --noEmit

61 changes: 3 additions & 58 deletions apps/web/.turbo/turbo-build.log
Original file line number Diff line number Diff line change
@@ -1,61 +1,6 @@

> web@1.0.0 build D:\ak\project\FairShare\apps\web
> web@1.0.0 build /home/jailuser/git/apps/web
> next build

▲ Next.js 15.2.0
- Environments: .env.local

Creating an optimized production build ...
✓ Compiled successfully
Linting and checking validity of types ...
Collecting page data ...
Generating static pages (0/28) ...
Generating static pages (7/28)
Generating static pages (14/28)
Generating static pages (21/28)
✓ Generating static pages (28/28)
Finalizing page optimization ...
Collecting build traces ...

Route (app) Size First Load JS
┌ ○ / 4.26 kB 175 kB
├ ○ /_not-found 181 B 118 kB
├ ○ /about 3.38 kB 175 kB
├ ƒ /api/activity 181 B 118 kB
├ ƒ /api/auth/login 181 B 118 kB
├ ƒ /api/auth/logout 181 B 118 kB
├ ƒ /api/auth/register 181 B 118 kB
├ ƒ /api/auth/session 181 B 118 kB
├ ƒ /api/auth/token 181 B 118 kB
├ ○ /blog 5.52 kB 177 kB
├ ƒ /blog/[slug] 5.73 kB 177 kB
├ ○ /contact 7 kB 178 kB
├ ƒ /dashboard 5.47 kB 177 kB
├ ƒ /dashboard/activity 5.15 kB 179 kB
├ ƒ /dashboard/expenses/[expenseId] 290 B 190 kB
├ ƒ /dashboard/groups 296 B 190 kB
├ ƒ /dashboard/groups/[groupId] 296 B 190 kB
├ ƒ /dashboard/groups/[groupId]/settle 296 B 190 kB
├ ƒ /dashboard/profile 4.39 kB 176 kB
├ ○ /dashboard/settings 3.72 kB 175 kB
├ ○ /faq 5.67 kB 177 kB
├ ○ /features 9.34 kB 168 kB
├ ○ /how-it-works 3.68 kB 175 kB
├ ○ /login 5.64 kB 177 kB
├ ○ /pricing 4.01 kB 175 kB
├ ○ /privacy 178 B 118 kB
├ ○ /register 6.14 kB 177 kB
├ ƒ /supabase-test 181 B 118 kB
├ ○ /terms 178 B 118 kB
└ ○ /waitlist 5.66 kB 177 kB
+ First Load JS shared by all 118 kB
├ chunks/7327-e92cc0d296786b90.js 62.6 kB
├ chunks/d926b3a0-ef5c8671b7884e91.js 53 kB
└ other shared chunks (total) 2.02 kB


ƒ Middleware 84.6 kB

○ (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand

sh: 1: next: not found
 ELIFECYCLE  Command failed.
13 changes: 1 addition & 12 deletions apps/web/src/components/groups/RecurringExpenseList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,17 +81,6 @@ function formatGeneratedLabel(lastGeneratedAt?: string | null): string {
return `Last generated ${new Date(lastGeneratedAt).toLocaleDateString()}`;
}

/**
* Renders a UI list of recurring bills with edit and remove capabilities.
*
* Displays grouped sections (overdue, today, upcoming), per-item status, next run date, payer, generated info, and formatted amount.
*
* @param recurringExpenses - Array of recurring expense DTOs to display
* @param members - Group member summaries used to resolve payer names
* @param currency - Currency code used to format displayed amounts
* @param onChanged - Optional callback invoked after a successful update or removal
* @returns The React element for the recurring expenses list
*/
export function RecurringExpenseList({ recurringExpenses, members, currency, onChanged }: RecurringExpenseListProps) {
const [removingId, setRemovingId] = useState<string | null>(null);
const [editingId, setEditingId] = useState<string | null>(null);
Expand Down Expand Up @@ -336,4 +325,4 @@ export function RecurringExpenseList({ recurringExpenses, members, currency, onC
</div>
</section>
);
}
}
4 changes: 2 additions & 2 deletions infra/terraform/.turbo/turbo-build.log
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

> infra-terraform@1.0.0 build D:\ak\project\FairShare\infra\terraform
> infra-terraform@1.0.0 build /home/jailuser/git/infra/terraform
> echo "Terraform has no build step"

"Terraform has no build step"
Terraform has no build step
3 changes: 1 addition & 2 deletions packages/shared-types/.turbo/turbo-build.log
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

> @fairshare/shared-types@1.0.0 build D:\ak\project\FairShare\packages\shared-types
> @fairshare/shared-types@1.0.0 build /home/jailuser/git/packages/shared-types
> tsc -p tsconfig.json

19 changes: 2 additions & 17 deletions packages/shared-types/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ const CURRENCY_SYMBOLS: Record<CurrencyCode, string> = {
INR: '₹',
};

/**
* Normalize a cents amount input into a trimmed string representing whole cents.
*
* @param amountCents - A `bigint`, `number`, or `string` representing cents. If a `number`, it must be an integer; if a `string`, surrounding whitespace will be trimmed.
* @returns The normalized string representation of whole cents.
* @throws Error if `amountCents` is a `number` that is not an integer.
*/
function normalizeCentsInput(amountCents: bigint | number | string): string {
if (typeof amountCents === 'bigint') {
return amountCents.toString();
Expand All @@ -26,19 +19,11 @@ function normalizeCentsInput(amountCents: bigint | number | string): string {

const trimmed = amountCents.trim();
if (!/^-?\d+$/.test(trimmed)) {
throw new Error('Currency formatter expects an integer-cent string.');
throw new Error('Currency formatter expects a valid integer string.');
}
return trimmed;
}

/**
* Format a whole-cents monetary value into a currency string with symbol, thousands separators, and two decimal places.
*
* @param amountCents - The amount in whole cents (`bigint | number | string`). If a `number` is provided it must be an integer; `string` inputs are trimmed.
* @param currency - The target currency code used to pick the symbol (defaults to `'USD'`).
* @returns The formatted currency string including the currency symbol, grouped thousands, a decimal point, and exactly two fractional digits; a leading `-` is preserved for negative values.
* @throws If `amountCents` is a `number` that is not an integer.
*/
export function formatCurrencyFromCents(amountCents: bigint | number | string, currency: CurrencyCode = 'USD'): string {
const normalized = normalizeCentsInput(amountCents);
const negative = normalized.startsWith('-');
Expand Down Expand Up @@ -335,4 +320,4 @@ export interface CreatePaymentIntentResponseDto {
paymentId: string;
clientSecret: string;
paymentIntentId: string;
}
}
3 changes: 2 additions & 1 deletion packages/shared-types/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"declaration": true,
"emitDeclarationOnly": false,
"module": "CommonJS"
},
"include": ["src/**/*.ts"]
}
}
9 changes: 3 additions & 6 deletions tsconfig.base.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"compilerOptions": {
"target": "ES2022",
"module": "CommonJS",
"moduleResolution": "Node",
"moduleResolution": "Bundler",
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true,
Expand All @@ -16,9 +16,6 @@
"resolveJsonModule": true,
"declaration": true,
"sourceMap": true,
"baseUrl": ".",
"paths": {
"@fairshare/shared-types": ["packages/shared-types/src/index.ts"]
}
"ignoreDeprecations": "6.0"
}
}
}
Loading