Adding all the tests and fixes to the passengers app
@@ -863,6 +863,9 @@ export class BookingsService {
|
|||||||
const allFaresProvided = seatedPassengers.length > 0 && seatedPassengers.every(p => p.seatFareMinor != null);
|
const allFaresProvided = seatedPassengers.length > 0 && seatedPassengers.every(p => p.seatFareMinor != null);
|
||||||
let resolvedTotalMinor: number;
|
let resolvedTotalMinor: number;
|
||||||
let displayTotalMinor: number;
|
let displayTotalMinor: number;
|
||||||
|
// True when the total came from a client-summed subtotal (per-seat sum or reviewedTotalMinor),
|
||||||
|
// which the portal computes UNDISCOUNTED — the promo must still be applied to it (H-13).
|
||||||
|
let usedClientSubtotal = false;
|
||||||
|
|
||||||
if (allFaresProvided && !dto.packageId) {
|
if (allFaresProvided && !dto.packageId) {
|
||||||
// Server has every passenger's berth fare — sum is the authoritative display total.
|
// Server has every passenger's berth fare — sum is the authoritative display total.
|
||||||
@@ -870,6 +873,7 @@ export class BookingsService {
|
|||||||
resolvedTotalMinor = displayCurrency !== Currency.ETB
|
resolvedTotalMinor = displayCurrency !== Currency.ETB
|
||||||
? await this.currencyService.convertAmount(displayTotalMinor, displayCurrency, Currency.ETB)
|
? await this.currencyService.convertAmount(displayTotalMinor, displayCurrency, Currency.ETB)
|
||||||
: displayTotalMinor;
|
: displayTotalMinor;
|
||||||
|
usedClientSubtotal = true;
|
||||||
if (dto.reviewedTotalMinor != null && dto.reviewedTotalMinor !== displayTotalMinor) {
|
if (dto.reviewedTotalMinor != null && dto.reviewedTotalMinor !== displayTotalMinor) {
|
||||||
this.logger.warn(`createOneWayBooking: reviewedTotalMinor=${dto.reviewedTotalMinor} ignored — using server-computed sum=${displayTotalMinor}`);
|
this.logger.warn(`createOneWayBooking: reviewedTotalMinor=${dto.reviewedTotalMinor} ignored — using server-computed sum=${displayTotalMinor}`);
|
||||||
}
|
}
|
||||||
@@ -891,13 +895,35 @@ export class BookingsService {
|
|||||||
resolvedTotalMinor = displayCurrency !== Currency.ETB
|
resolvedTotalMinor = displayCurrency !== Currency.ETB
|
||||||
? await this.currencyService.convertAmount(dto.reviewedTotalMinor, displayCurrency, Currency.ETB)
|
? await this.currencyService.convertAmount(dto.reviewedTotalMinor, displayCurrency, Currency.ETB)
|
||||||
: dto.reviewedTotalMinor;
|
: dto.reviewedTotalMinor;
|
||||||
|
usedClientSubtotal = true;
|
||||||
} else {
|
} else {
|
||||||
resolvedTotalMinor = fareCalculation.totalMinor;
|
resolvedTotalMinor = fareCalculation.totalMinor;
|
||||||
displayTotalMinor = displayCurrency !== Currency.ETB
|
displayTotalMinor = displayCurrency !== Currency.ETB
|
||||||
? await this.currencyService.convertAmount(resolvedTotalMinor, Currency.ETB, displayCurrency)
|
? await this.currencyService.convertAmount(resolvedTotalMinor, Currency.ETB, displayCurrency)
|
||||||
: resolvedTotalMinor;
|
: resolvedTotalMinor;
|
||||||
}
|
}
|
||||||
this.logger.log(`createOneWayBooking: resolvedTotalMinor=${resolvedTotalMinor} displayTotalMinor=${displayTotalMinor} displayCurrency=${displayCurrency} (reviewedTotalMinor=${dto.reviewedTotalMinor} allFaresProvided=${allFaresProvided} fareEngine=${fareCalculation.totalMinor})`);
|
|
||||||
|
// H-13 fix: the portal sums UNDISCOUNTED per-passenger fares into the total it sends, silently
|
||||||
|
// dropping the promo the fare engine recognized (the discount lives only in the fare-breakdown).
|
||||||
|
// When the total came from that client subtotal, apply the authoritative promo discount so the
|
||||||
|
// customer is charged the discounted price. No-op when no promo applies (discountMinor === 0).
|
||||||
|
// The fallback branch above already books fareCalculation.totalMinor (discount included), so it is
|
||||||
|
// excluded via usedClientSubtotal to avoid double-subtracting.
|
||||||
|
if (usedClientSubtotal && fareCalculation.discountMinor > 0) {
|
||||||
|
resolvedTotalMinor = Math.max(0, resolvedTotalMinor - fareCalculation.discountMinor);
|
||||||
|
const discountDisplayMinor = displayCurrency !== Currency.ETB
|
||||||
|
? await this.currencyService.convertAmount(fareCalculation.discountMinor, Currency.ETB, displayCurrency)
|
||||||
|
: fareCalculation.discountMinor;
|
||||||
|
displayTotalMinor = Math.max(0, displayTotalMinor - discountDisplayMinor);
|
||||||
|
}
|
||||||
|
this.logger.log(`createOneWayBooking: resolvedTotalMinor=${resolvedTotalMinor} displayTotalMinor=${displayTotalMinor} displayCurrency=${displayCurrency} (reviewedTotalMinor=${dto.reviewedTotalMinor} allFaresProvided=${allFaresProvided} discountMinor=${fareCalculation.discountMinor} fareEngine=${fareCalculation.totalMinor})`);
|
||||||
|
|
||||||
|
// C-1 guard: never charge less than the server-recomputed authoritative fare. resolvedTotalMinor
|
||||||
|
// is the ETB charge basis; fareCalculation.totalMinor is the authoritative ETB fare (already net
|
||||||
|
// of promo/loyalty/free-child). A client that forges seatFareMinor / reviewedTotalMinor below it
|
||||||
|
// is rejected. Floor (not equality) so legitimate berth surcharges — which only raise the total —
|
||||||
|
// still pass; the tolerance absorbs FX-conversion rounding.
|
||||||
|
this.assertTotalNotUnderAuthoritative(resolvedTotalMinor, fareCalculation.totalMinor, 'createOneWayBooking');
|
||||||
|
|
||||||
const booking = await this.prisma.booking.create({
|
const booking = await this.prisma.booking.create({
|
||||||
data: {
|
data: {
|
||||||
@@ -1028,6 +1054,9 @@ export class BookingsService {
|
|||||||
loyaltyMinor = (dto.loyaltyRedemptionPoints ?? 0) * 10;
|
loyaltyMinor = (dto.loyaltyRedemptionPoints ?? 0) * 10;
|
||||||
totalMinor = Math.max(0, combinedBaseFareMinor - discountMinor - loyaltyMinor);
|
totalMinor = Math.max(0, combinedBaseFareMinor - discountMinor - loyaltyMinor);
|
||||||
}
|
}
|
||||||
|
// C-1 guard: authoritative ETB fare for both legs, captured before the client-driven branches
|
||||||
|
// below may overwrite totalMinor with a per-seat sum or reviewedTotalMinor.
|
||||||
|
const authoritativeTotalMinor = totalMinor;
|
||||||
const taxesMinor = 0;
|
const taxesMinor = 0;
|
||||||
|
|
||||||
const displayCurrency = dto.displayCurrency || resolveCurrencyFromNationality(passengersData[0]?.nationality);
|
const displayCurrency = dto.displayCurrency || resolveCurrencyFromNationality(passengersData[0]?.nationality);
|
||||||
@@ -1093,6 +1122,9 @@ export class BookingsService {
|
|||||||
: dto.reviewedTotalMinor;
|
: dto.reviewedTotalMinor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// C-1 guard: never charge less than the server-recomputed authoritative round-trip fare.
|
||||||
|
this.assertTotalNotUnderAuthoritative(totalMinor, authoritativeTotalMinor, 'createRoundTripBooking');
|
||||||
|
|
||||||
const booking = await this.prisma.booking.create({
|
const booking = await this.prisma.booking.create({
|
||||||
data: {
|
data: {
|
||||||
bookingRef: generateRef(),
|
bookingRef: generateRef(),
|
||||||
@@ -1675,6 +1707,21 @@ export class BookingsService {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C-1 protection: reject a booking whose ETB charge basis is below the server-recomputed
|
||||||
|
* authoritative fare. A floor (not equality) so legitimate berth surcharges — which only raise
|
||||||
|
* the total — still pass; a 1% tolerance absorbs FX-conversion rounding. A forged seatFareMinor /
|
||||||
|
* reviewedTotalMinor that lowers the charge (e.g. to 1 or 0) is refused with a 400 and nothing is
|
||||||
|
* persisted.
|
||||||
|
*/
|
||||||
|
private assertTotalNotUnderAuthoritative(resolvedTotalMinor: number, authoritativeMinor: number, context: string): void {
|
||||||
|
const tolerance = Math.max(1, Math.round(authoritativeMinor * 0.01));
|
||||||
|
if (resolvedTotalMinor < authoritativeMinor - tolerance) {
|
||||||
|
this.logger.warn(`${context}: rejecting booking — resolvedTotalMinor=${resolvedTotalMinor} below authoritative fare=${authoritativeMinor}`);
|
||||||
|
throw new BadRequestException('Booking total does not match the authoritative fare');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async calculateFare(
|
private async calculateFare(
|
||||||
scheduleId: string,
|
scheduleId: string,
|
||||||
seatClassId: string,
|
seatClassId: string,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Injectable, BadRequestException, NotFoundException } from '@nestjs/common';
|
import { Injectable, BadRequestException, NotFoundException, Logger } from '@nestjs/common';
|
||||||
import { PrismaService } from '../../common/prisma.service';
|
import { PrismaService } from '../../common/prisma.service';
|
||||||
import { SeatsService } from '../seats/seats.service';
|
import { SeatsService } from '../seats/seats.service';
|
||||||
import { VerifaydaService } from '../verifayda/verifayda.service';
|
import { VerifaydaService } from '../verifayda/verifayda.service';
|
||||||
@@ -42,6 +42,8 @@ function calculateAge(dateOfBirth: Date): number {
|
|||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class GuestBookingService {
|
export class GuestBookingService {
|
||||||
|
private readonly logger = new Logger(GuestBookingService.name);
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private prisma: PrismaService,
|
private prisma: PrismaService,
|
||||||
private seatsService: SeatsService,
|
private seatsService: SeatsService,
|
||||||
@@ -52,6 +54,21 @@ export class GuestBookingService {
|
|||||||
private eventEmitter: EventEmitter2,
|
private eventEmitter: EventEmitter2,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C-1 protection (guest path): reject a booking whose ETB charge basis is below the
|
||||||
|
* server-recomputed authoritative fare. A floor (not equality) so legitimate berth surcharges —
|
||||||
|
* which only raise the total — still pass; a 1% tolerance absorbs FX-conversion rounding. A forged
|
||||||
|
* seatFareMinor / reviewedTotalMinor that lowers the charge (e.g. to 0) is refused with a 400 and
|
||||||
|
* nothing is persisted.
|
||||||
|
*/
|
||||||
|
private assertTotalNotUnderAuthoritative(resolvedTotalMinor: number, authoritativeMinor: number, context: string): void {
|
||||||
|
const tolerance = Math.max(1, Math.round(authoritativeMinor * 0.01));
|
||||||
|
if (resolvedTotalMinor < authoritativeMinor - tolerance) {
|
||||||
|
this.logger.warn(`${context}: rejecting booking — resolvedTotalMinor=${resolvedTotalMinor} below authoritative fare=${authoritativeMinor}`);
|
||||||
|
throw new BadRequestException('Booking total does not match the authoritative fare');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async createGuestBooking(dto: CreateGuestBookingDto, req?: any) {
|
async createGuestBooking(dto: CreateGuestBookingDto, req?: any) {
|
||||||
// Enrich passengers with phone/email from SavedPassengerProfile when not supplied inline.
|
// Enrich passengers with phone/email from SavedPassengerProfile when not supplied inline.
|
||||||
// The portal calls /passengers/save-details before booking but doesn't re-send contact
|
// The portal calls /passengers/save-details before booking but doesn't re-send contact
|
||||||
@@ -250,6 +267,9 @@ export class GuestBookingService {
|
|||||||
? await this.currencyService.convertAmount(displayTotalMinor, displayCurrency, Currency.ETB)
|
? await this.currencyService.convertAmount(displayTotalMinor, displayCurrency, Currency.ETB)
|
||||||
: displayTotalMinor;
|
: displayTotalMinor;
|
||||||
|
|
||||||
|
// C-1 guard: never charge less than the server-recomputed authoritative ETB fare (net of promo).
|
||||||
|
this.assertTotalNotUnderAuthoritative(resolvedTotalMinor, Math.max(0, totalBaseFareMinor - discountMinor), 'createGuestBooking');
|
||||||
|
|
||||||
// Resolve or create the guest Passenger record
|
// Resolve or create the guest Passenger record
|
||||||
const firstPassenger = passengersData[0];
|
const firstPassenger = passengersData[0];
|
||||||
const { guestPassengerId, iamUserId, createdAccount } = await this.resolveGuestPassenger(dto, firstPassenger, req);
|
const { guestPassengerId, iamUserId, createdAccount } = await this.resolveGuestPassenger(dto, firstPassenger, req);
|
||||||
@@ -485,6 +505,9 @@ export class GuestBookingService {
|
|||||||
|
|
||||||
const taxesMinor = 0;
|
const taxesMinor = 0;
|
||||||
let totalMinor = Math.max(0, combinedBaseFareMinor - discountMinor);
|
let totalMinor = Math.max(0, combinedBaseFareMinor - discountMinor);
|
||||||
|
// C-1 guard: authoritative ETB fare for both legs, captured before the client-driven branches
|
||||||
|
// below may overwrite totalMinor with a per-seat sum or reviewedTotalMinor.
|
||||||
|
const authoritativeTotalMinor = totalMinor;
|
||||||
|
|
||||||
const displayCurrency = dto.displayCurrency || Currency.ETB;
|
const displayCurrency = dto.displayCurrency || Currency.ETB;
|
||||||
let displayTotalMinor = displayCurrency !== Currency.ETB
|
let displayTotalMinor = displayCurrency !== Currency.ETB
|
||||||
@@ -540,6 +563,9 @@ export class GuestBookingService {
|
|||||||
: displayTotalMinor;
|
: displayTotalMinor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// C-1 guard: never charge less than the server-recomputed authoritative round-trip fare.
|
||||||
|
this.assertTotalNotUnderAuthoritative(totalMinor, authoritativeTotalMinor, 'createGuestRoundTripBooking');
|
||||||
|
|
||||||
// Create or resolve guest passenger (same as one-way)
|
// Create or resolve guest passenger (same as one-way)
|
||||||
const { guestPassengerId, iamUserId, createdAccount } = await this.resolveGuestPassenger(dto, passengersData[0], req);
|
const { guestPassengerId, iamUserId, createdAccount } = await this.resolveGuestPassenger(dto, passengersData[0], req);
|
||||||
|
|
||||||
|
|||||||
@@ -140,10 +140,14 @@ export class CurrencyService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!exchangeRate) {
|
if (!exchangeRate) {
|
||||||
this.logger.warn(
|
// H-2: fail closed. Never price at parity (1.0) when a required rate is absent — a silent 1.0
|
||||||
`No exchange rate found for ${fromCurrency} to ${toCurrency}, using 1.0`,
|
// substitution underprices international fares ~100×. Reject the quote/booking instead.
|
||||||
|
this.logger.error(
|
||||||
|
`No exchange rate configured for ${fromCurrency}->${toCurrency}; refusing to price at parity`,
|
||||||
|
);
|
||||||
|
throw new BadRequestException(
|
||||||
|
`No exchange rate configured for ${fromCurrency}->${toCurrency}`,
|
||||||
);
|
);
|
||||||
return 1.0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const ageMs = Date.now() - exchangeRate.effectiveDate.getTime();
|
const ageMs = Date.now() - exchangeRate.effectiveDate.getTime();
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ export class CurrencyController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Put()
|
@Put()
|
||||||
|
@PassengerAdmin()
|
||||||
|
@ApiBearerAuth('IAM-auth')
|
||||||
@ApiOperation({ summary: 'Upsert an exchange rate for today' })
|
@ApiOperation({ summary: 'Upsert an exchange rate for today' })
|
||||||
@ApiResponse({ status: 200, description: 'Rate created or updated for today\'s effective date' })
|
@ApiResponse({ status: 200, description: 'Rate created or updated for today\'s effective date' })
|
||||||
upsert(@Body() dto: UpsertExchangeRateDto) {
|
upsert(@Body() dto: UpsertExchangeRateDto) {
|
||||||
@@ -30,6 +32,8 @@ export class CurrencyController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Patch(':id')
|
@Patch(':id')
|
||||||
|
@PassengerAdmin()
|
||||||
|
@ApiBearerAuth('IAM-auth')
|
||||||
@ApiOperation({ summary: 'Update an exchange rate by ID' })
|
@ApiOperation({ summary: 'Update an exchange rate by ID' })
|
||||||
@ApiParam({ name: 'id', description: 'CurrencyExchangeRate UUID' })
|
@ApiParam({ name: 'id', description: 'CurrencyExchangeRate UUID' })
|
||||||
@ApiResponse({ status: 200, description: 'Rate updated' })
|
@ApiResponse({ status: 200, description: 'Rate updated' })
|
||||||
|
|||||||
@@ -969,6 +969,19 @@ export class PaymentsService {
|
|||||||
return { processed: false, reason: "booking-not-found" };
|
return { processed: false, reason: "booking-not-found" };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// C-4 guard: a settlement must cover what the passenger was quoted. Compare the provider-settled
|
||||||
|
// amount against the booking's display-currency total (the amount the customer agreed to pay);
|
||||||
|
// a short payment must NOT confirm the booking. Amount-only — the display↔charge currency
|
||||||
|
// divergence is tracked separately under the USD/DJF findings. The 1% tolerance absorbs rounding.
|
||||||
|
const expectedMinor = booking.displayTotalMinor ?? booking.totalMinor;
|
||||||
|
const shortPayTolerance = Math.max(1, Math.round(expectedMinor * 0.01));
|
||||||
|
if (event.amountMinor < expectedMinor - shortPayTolerance) {
|
||||||
|
this.logger.error(
|
||||||
|
`mark-paid: short payment for booking ${booking.id} — settled ${event.amountMinor} ${event.currency} < expected ${expectedMinor} ${booking.displayCurrency}; not confirming`,
|
||||||
|
);
|
||||||
|
return { processed: false, reason: "amount-mismatch" };
|
||||||
|
}
|
||||||
|
|
||||||
// Local intent row is a projection during the strangler migration: reuse it when the
|
// Local intent row is a projection during the strangler migration: reuse it when the
|
||||||
// legacy initiate path created one, otherwise materialize it from the event.
|
// legacy initiate path created one, otherwise materialize it from the event.
|
||||||
let intent = await this.prisma.paymentIntent.findUnique({
|
let intent = await this.prisma.paymentIntent.findUnique({
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { IsString, IsOptional, IsInt, IsBoolean } from 'class-validator';
|
import { IsString, IsOptional, IsInt, IsBoolean, Min, Max } from 'class-validator';
|
||||||
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||||
|
|
||||||
export class CreatePromotionDto {
|
export class CreatePromotionDto {
|
||||||
@@ -15,14 +15,17 @@ export class CreatePromotionDto {
|
|||||||
@IsString()
|
@IsString()
|
||||||
subtitle?: string;
|
subtitle?: string;
|
||||||
|
|
||||||
@ApiPropertyOptional({ example: 15 })
|
@ApiPropertyOptional({ example: 15, description: 'Percentage discount, bounded 0..100' })
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsInt()
|
@IsInt()
|
||||||
|
@Min(0)
|
||||||
|
@Max(100)
|
||||||
percentOff?: number;
|
percentOff?: number;
|
||||||
|
|
||||||
@ApiPropertyOptional({ example: 5000 })
|
@ApiPropertyOptional({ example: 5000 })
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsInt()
|
@IsInt()
|
||||||
|
@Min(0)
|
||||||
amountOffMinor?: number;
|
amountOffMinor?: number;
|
||||||
|
|
||||||
@ApiProperty({ example: '2026-12-31T23:59:59Z' })
|
@ApiProperty({ example: '2026-12-31T23:59:59Z' })
|
||||||
|
|||||||
@@ -103,6 +103,8 @@ export class SchedulesService {
|
|||||||
const dep = parseEthiopianTime(dto.departureAt);
|
const dep = parseEthiopianTime(dto.departureAt);
|
||||||
const arr = parseEthiopianTime(dto.arrivalAt);
|
const arr = parseEthiopianTime(dto.arrivalAt);
|
||||||
if (arr <= dep) throw new BadRequestException('arrivalAt must be after departureAt');
|
if (arr <= dep) throw new BadRequestException('arrivalAt must be after departureAt');
|
||||||
|
// M-4: a new schedule cannot depart in the past — the backoffice form does not enforce this.
|
||||||
|
if (dep.getTime() < Date.now()) throw new BadRequestException('departureAt must be in the future');
|
||||||
|
|
||||||
const [train, route] = await Promise.all([
|
const [train, route] = await Promise.all([
|
||||||
this.prisma.train.findUnique({ where: { id: dto.trainId } }),
|
this.prisma.train.findUnique({ where: { id: dto.trainId } }),
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { IsString, IsInt, IsBoolean, IsOptional, IsIn } from 'class-validator';
|
import { IsString, IsInt, IsBoolean, IsOptional, IsIn, Min } from 'class-validator';
|
||||||
import { ApiProperty, ApiPropertyOptional, PartialType } from '@nestjs/swagger';
|
import { ApiProperty, ApiPropertyOptional, PartialType } from '@nestjs/swagger';
|
||||||
|
|
||||||
export class CreateSeatClassDto {
|
export class CreateSeatClassDto {
|
||||||
@@ -27,11 +27,13 @@ export class CreateSeatClassDto {
|
|||||||
|
|
||||||
@ApiProperty({ example: 3000, description: 'Per-km rate in minor units (tariff decimal × 100000)' })
|
@ApiProperty({ example: 3000, description: 'Per-km rate in minor units (tariff decimal × 100000)' })
|
||||||
@IsInt()
|
@IsInt()
|
||||||
|
@Min(0)
|
||||||
basePrice: number;
|
basePrice: number;
|
||||||
|
|
||||||
@ApiPropertyOptional({ example: 1200, description: 'Flat insurance fee in minor units' })
|
@ApiPropertyOptional({ example: 1200, description: 'Flat insurance fee in minor units' })
|
||||||
@IsOptional()
|
@IsOptional()
|
||||||
@IsInt()
|
@IsInt()
|
||||||
|
@Min(0)
|
||||||
insuranceFeeMinor?: number;
|
insuranceFeeMinor?: number;
|
||||||
|
|
||||||
@ApiPropertyOptional({ example: true })
|
@ApiPropertyOptional({ example: true })
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { Body, Controller, Get, Patch, SetMetadata, UseGuards } from '@nestjs/common';
|
import { Body, Controller, Get, Patch, SetMetadata, UseGuards } from '@nestjs/common';
|
||||||
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
|
import { ApiTags, ApiBearerAuth, ApiOperation } from '@nestjs/swagger';
|
||||||
import { SystemConfigService } from './system-config.service';
|
import { SystemConfigService } from './system-config.service';
|
||||||
|
import { UpdateSystemConfigDto } from './system-config.dto';
|
||||||
import { IamGuard } from '../../common/iam-adapter';
|
import { IamGuard } from '../../common/iam-adapter';
|
||||||
import { Roles } from '../../common/roles.decorator';
|
import { Roles } from '../../common/roles.decorator';
|
||||||
|
|
||||||
@@ -31,7 +32,12 @@ export class SystemConfigController {
|
|||||||
@UseGuards(IamGuard)
|
@UseGuards(IamGuard)
|
||||||
@Roles('ADMIN')
|
@Roles('ADMIN')
|
||||||
@ApiOperation({ summary: 'Update system config (admin)' })
|
@ApiOperation({ summary: 'Update system config (admin)' })
|
||||||
update(@Body() body: Record<string, string>) {
|
update(@Body() dto: UpdateSystemConfigDto) {
|
||||||
return this.service.updateMany(body);
|
// The DTO validates/coerces each known key to a positive integer; persist back as strings.
|
||||||
|
const entries: Record<string, string> = {};
|
||||||
|
for (const [key, value] of Object.entries(dto)) {
|
||||||
|
if (value !== undefined) entries[key] = String(value);
|
||||||
|
}
|
||||||
|
return this.service.updateMany(entries);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
import { IsInt, IsOptional, Min, Max } from 'class-validator';
|
||||||
|
import { Type } from 'class-transformer';
|
||||||
|
import { ApiPropertyOptional } from '@nestjs/swagger';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whitelisted, typed body for `PATCH /config`. Config is persisted as string key/values, but every
|
||||||
|
* known key is a positive integer (durations, hour windows, throttle limits/TTLs). Values arrive as
|
||||||
|
* strings from the backoffice form; `@Type(() => Number)` coerces them so the numeric/range checks
|
||||||
|
* apply (M-3 — the endpoint previously stored any raw string, e.g. `seat_hold_duration_minutes: -1`).
|
||||||
|
* Unknown keys are stripped by the global whitelisting ValidationPipe.
|
||||||
|
*/
|
||||||
|
export class UpdateSystemConfigDto {
|
||||||
|
@ApiPropertyOptional({ example: 5, description: 'Seat-hold duration in minutes (1..60)' })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(1) @Max(60)
|
||||||
|
seat_hold_duration_minutes?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 2 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(0)
|
||||||
|
hold_cutoff_hours_before_departure?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 4 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(0)
|
||||||
|
boarding_window_hours_before_departure?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 5 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(1)
|
||||||
|
throttle_auth_limit?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 60000 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(1)
|
||||||
|
throttle_auth_ttl_ms?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 20 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(1)
|
||||||
|
throttle_strict_limit?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 60000 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(1)
|
||||||
|
throttle_strict_ttl_ms?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 100 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(1)
|
||||||
|
throttle_default_limit?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ example: 60000 })
|
||||||
|
@IsOptional() @Type(() => Number) @IsInt() @Min(1)
|
||||||
|
throttle_default_ttl_ms?: number;
|
||||||
|
}
|
||||||
@@ -1,29 +1,34 @@
|
|||||||
/**
|
/**
|
||||||
* Auth/authorization gaps (matrix Suite J), proven via route guard metadata — no boot needed.
|
* Auth/authorization gaps (matrix Suite J), via route guard metadata — no boot needed.
|
||||||
* J1 🔴 The exchange-rate controller's write routes (PUT upsert, PATCH update) carry NO guard,
|
*
|
||||||
* so USD/ETB/DJF rates — which every international fare multiplies by — can be rewritten by
|
* C-8 🔴 The exchange-rate write routes (PUT upsert, PATCH update) carry no METHOD-LEVEL guard, so
|
||||||
* an unauthenticated caller. Only DELETE is guarded (@PassengerAdmin). fare-engine/currency.controller.ts:25,32,42
|
* they get only the global JwtGuard (authentication) and NOT @PassengerAdmin (authorization)
|
||||||
|
* — unlike DELETE, which is admin-gated. Net effect (verified live in
|
||||||
|
* e2e-ui .../pb-config-propagation.spec.ts BC-11): anonymous → 401, but ANY authenticated
|
||||||
|
* user incl. a passenger → 200 rewrites live FX. fare-engine/currency.controller.ts:25,32,42
|
||||||
|
*
|
||||||
|
* NOTE: this metadata check proves the missing ADMIN guard, NOT "unauthenticated" — a global
|
||||||
|
* APP_GUARD=JwtGuard (SharedAuthModule) still requires a valid token. The earlier "unauthenticated
|
||||||
|
* FX write" reading was a false positive corrected by the live BC-11 test.
|
||||||
*/
|
*/
|
||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
import { CurrencyController } from "../src/modules/fare-engine/currency.controller";
|
import { CurrencyController } from "../src/modules/fare-engine/currency.controller";
|
||||||
|
|
||||||
// Nest stores @UseGuards under the "__guards__" metadata key on the route handler.
|
|
||||||
const GUARDS_METADATA = "__guards__";
|
const GUARDS_METADATA = "__guards__";
|
||||||
|
|
||||||
function guardsOn(handler: unknown): unknown[] {
|
function guardsOn(handler: unknown): unknown[] {
|
||||||
return (Reflect.getMetadata(GUARDS_METADATA, handler as object) as unknown[]) ?? [];
|
return (Reflect.getMetadata(GUARDS_METADATA, handler as object) as unknown[]) ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("Auth gaps (Suite J)", () => {
|
describe("Auth gaps (Suite J)", () => {
|
||||||
it("J1 🔴 PUT upsert exchange-rate has NO guard (unauthenticated FX write)", () => {
|
it("C-8 🔴 PUT upsert exchange-rate has NO admin guard (only the global JwtGuard applies)", () => {
|
||||||
expect(guardsOn(CurrencyController.prototype.upsert)).toHaveLength(0);
|
expect(guardsOn(CurrencyController.prototype.upsert)).toHaveLength(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("J1 🔴 PATCH update exchange-rate has NO guard (unauthenticated FX write)", () => {
|
it("C-8 🔴 PATCH update exchange-rate has NO admin guard (only the global JwtGuard applies)", () => {
|
||||||
expect(guardsOn(CurrencyController.prototype.update)).toHaveLength(0);
|
expect(guardsOn(CurrencyController.prototype.update)).toHaveLength(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("J1 control: DELETE exchange-rate IS guarded — proving the omission on writes is not global", () => {
|
it("C-8 control: DELETE exchange-rate IS admin-gated — proving writes should be too", () => {
|
||||||
expect(guardsOn(CurrencyController.prototype.remove).length).toBeGreaterThan(0);
|
expect(guardsOn(CurrencyController.prototype.remove).length).toBeGreaterThan(0);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
/**
|
||||||
|
* C-9-UI 🔴 Authenticated POST /bookings is broken: the controller overrides passengerId with the
|
||||||
|
* JWT user id (`bookings.controller.ts:528-532`, "never trust the request body"), but the service
|
||||||
|
* only resolves an iamUserId → Passenger when it is NON-UUID (`bookings.service.ts:773`). Real IAM
|
||||||
|
* ids are UUIDs, and registration creates `Passenger.id ≠ iamUserId` (`passenger-auth.service.ts:225`),
|
||||||
|
* so `booking.create` uses the iamUserId directly as passengerId → foreign-key violation.
|
||||||
|
*
|
||||||
|
* This reproduces the controller's behavior by calling BookingsService.create with passengerId set to
|
||||||
|
* a UUID iamUserId (not the Passenger.id), exactly as the authed controller does. It also shows the
|
||||||
|
* CONTROL: passing the real Passenger.id succeeds — proving the resolution gap, not a fixture problem.
|
||||||
|
*/
|
||||||
|
import { BookingsService } from "../src/modules/bookings/bookings.service";
|
||||||
|
import { getTestPrisma, disconnectTestPrisma } from "./setup/prisma";
|
||||||
|
import { truncateAllPassenger, seedCore, IDS } from "./fixtures/seed-core";
|
||||||
|
|
||||||
|
function asyncStub(): any {
|
||||||
|
return new Proxy({}, { get: () => async () => undefined });
|
||||||
|
}
|
||||||
|
|
||||||
|
let seq = 0;
|
||||||
|
async function buildBookableGraph(prisma: any, passengerId: string, iamUserId: string) {
|
||||||
|
const passenger = await prisma.passenger.create({ data: { id: passengerId, iamUserId } });
|
||||||
|
const train = await prisma.train.create({ data: { number: `AB-${++seq}`, name: "T" } });
|
||||||
|
const schedule = await prisma.trainSchedule.create({
|
||||||
|
data: {
|
||||||
|
trainId: train.id,
|
||||||
|
routeId: IDS.route,
|
||||||
|
originStationId: IDS.stationA,
|
||||||
|
destinationStationId: IDS.stationB,
|
||||||
|
departureAt: new Date(Date.now() + 86_400_000),
|
||||||
|
arrivalAt: new Date(Date.now() + 90_000_000),
|
||||||
|
durationMinutes: 60,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
await prisma.tripStopTime.createMany({
|
||||||
|
data: [
|
||||||
|
{ scheduleId: schedule.id, stationId: IDS.stationA, sequence: 1 },
|
||||||
|
{ scheduleId: schedule.id, stationId: IDS.stationB, sequence: 2 },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
const coach = await prisma.coach.create({ data: { coachTypeId: IDS.coachType, number: `AB-${seq}` } });
|
||||||
|
const seat = await prisma.seat.create({ data: { coachId: coach.id, seatNumber: "1A", row: 1, col: "1" } });
|
||||||
|
await prisma.fareRule.create({
|
||||||
|
data: { tripId: schedule.id, seatClassId: IDS.seatClassLocal, baseFareMinor: 30_000, currency: "ETB", validFrom: new Date("2020-01-01") },
|
||||||
|
});
|
||||||
|
const hold = await prisma.seatHold.create({
|
||||||
|
data: { scheduleId: schedule.id, seatIds: [seat.id], passengerId, expiresAt: new Date(Date.now() + 3_600_000) },
|
||||||
|
});
|
||||||
|
return { schedule, seat, hold };
|
||||||
|
}
|
||||||
|
|
||||||
|
function dtoFor(passengerId: string, schedule: any, hold: any, seat: any) {
|
||||||
|
return {
|
||||||
|
passengerId, // the controller passes req.user.id here (the iamUserId)
|
||||||
|
scheduleId: schedule.id,
|
||||||
|
holdId: hold.id,
|
||||||
|
originStationId: IDS.stationA,
|
||||||
|
destinationStationId: IDS.stationB,
|
||||||
|
seatClassId: IDS.seatClassLocal,
|
||||||
|
bookingType: "ONE_WAY",
|
||||||
|
passengers: [
|
||||||
|
{
|
||||||
|
seatId: seat.id,
|
||||||
|
passengerName: "Auth User",
|
||||||
|
dateOfBirth: new Date("1990-01-01"),
|
||||||
|
idDocumentType: "PASSPORT",
|
||||||
|
passportNumber: "P1",
|
||||||
|
passportCountry: "ET",
|
||||||
|
nationality: "Ethiopian",
|
||||||
|
seatFareMinor: 30_000,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("Authenticated booking passengerId resolution (regression)", () => {
|
||||||
|
const prisma = getTestPrisma();
|
||||||
|
let bookings: BookingsService;
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
|
bookings = new BookingsService(
|
||||||
|
prisma as any,
|
||||||
|
{ query: async () => [] } as any, // dataSource (resolveIamContact raw SQL → [])
|
||||||
|
asyncStub(), // seatsService
|
||||||
|
{ emit: () => true } as any,
|
||||||
|
asyncStub(), // verifaydaService (PASSPORT skips)
|
||||||
|
asyncStub(), // currencyService (ETB skips)
|
||||||
|
asyncStub(), // fareEngine (FareRule short-circuits)
|
||||||
|
asyncStub(), // auditService
|
||||||
|
);
|
||||||
|
});
|
||||||
|
beforeEach(async () => {
|
||||||
|
await truncateAllPassenger(prisma);
|
||||||
|
await seedCore(prisma);
|
||||||
|
});
|
||||||
|
afterAll(async () => {
|
||||||
|
await disconnectTestPrisma();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("🔴 create() with a UUID iamUserId (as the authed controller passes) FAILS the passenger FK", async () => {
|
||||||
|
const passengerId = "aaaaaaaa-0000-4000-8000-000000000001"; // real Passenger.id
|
||||||
|
const iamUserId = "bbbbbbbb-0000-4000-8000-000000000002"; // UUID iamUserId ≠ Passenger.id
|
||||||
|
const { schedule, hold, seat } = await buildBookableGraph(prisma, passengerId, iamUserId);
|
||||||
|
|
||||||
|
// The controller calls service.create({ ...dto, passengerId: req.user.id }) — i.e. the iamUserId.
|
||||||
|
await expect(
|
||||||
|
bookings.create(dtoFor(iamUserId, schedule, hold, seat) as any),
|
||||||
|
).rejects.toThrow(); // Prisma P2003 on Booking_passengerId_fkey
|
||||||
|
|
||||||
|
expect(await prisma.booking.count()).toBe(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("control: create() with the real Passenger.id succeeds — proving the gap is the id, not the fixture", async () => {
|
||||||
|
const passengerId = "aaaaaaaa-0000-4000-8000-000000000003";
|
||||||
|
const iamUserId = "bbbbbbbb-0000-4000-8000-000000000004";
|
||||||
|
const { schedule, hold, seat } = await buildBookableGraph(prisma, passengerId, iamUserId);
|
||||||
|
|
||||||
|
const booking: any = await bookings.create(dtoFor(passengerId, schedule, hold, seat) as any);
|
||||||
|
expect(booking.id).toBeTruthy();
|
||||||
|
expect(booking.passengerId).toBe(passengerId);
|
||||||
|
});
|
||||||
|
});
|
||||||
89
apps/edr-passenger-api/test/fixtures/seed-passenger-session.ts
vendored
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
/**
|
||||||
|
* Seeds a passenger IAM user + session directly (no OTP flow) and mints an access token the portal
|
||||||
|
* accepts. The API JwtGuard verifies the JWT signature (JWT_ACCESS_TOKEN_SECRET) and looks up the
|
||||||
|
* session by its `id` claim; the portal then calls /auth/profile which needs a Passenger row linked
|
||||||
|
* by iamUserId. Returns { token, profile } for the Playwright passenger storageState.
|
||||||
|
*
|
||||||
|
* Run standalone to validate: `npx ts-node test/fixtures/seed-passenger-session.ts` (prints the
|
||||||
|
* token and the /auth/profile status via the running API on :4000).
|
||||||
|
*/
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { SignJWT } from "jose";
|
||||||
|
import { UI_IDS } from "./seed-ui";
|
||||||
|
|
||||||
|
export const PASSENGER_USER_ID = "11111111-0000-4000-8000-000000000001";
|
||||||
|
export const PASSENGER_SESSION_ID = "11111111-0000-4000-8000-000000000002";
|
||||||
|
const EMAIL = "test.passenger@edr.local";
|
||||||
|
const USERNAME = "test_passenger";
|
||||||
|
|
||||||
|
export async function seedPassengerSession(prisma: PrismaClient): Promise<{ token: string }> {
|
||||||
|
const secret = process.env.JWT_ACCESS_TOKEN_SECRET;
|
||||||
|
if (!secret) throw new Error("JWT_ACCESS_TOKEN_SECRET is required to mint the passenger token");
|
||||||
|
|
||||||
|
const userInfo = {
|
||||||
|
id: PASSENGER_USER_ID,
|
||||||
|
name: { en: "Test Passenger" },
|
||||||
|
email: EMAIL,
|
||||||
|
roles: [] as unknown[],
|
||||||
|
status: "accepted",
|
||||||
|
employee: [] as unknown[],
|
||||||
|
userType: "individual",
|
||||||
|
username: USERNAME,
|
||||||
|
permissions: [] as unknown[],
|
||||||
|
};
|
||||||
|
const expiry = new Date(Date.now() + 7 * 86400_000);
|
||||||
|
|
||||||
|
// iam.users (delete-then-insert so re-seeding is idempotent).
|
||||||
|
await prisma.$executeRawUnsafe(`DELETE FROM iam.sessions WHERE id = $1::uuid`, PASSENGER_SESSION_ID);
|
||||||
|
await prisma.$executeRawUnsafe(`DELETE FROM iam.users WHERE id = $1::uuid`, PASSENGER_USER_ID);
|
||||||
|
await prisma.$executeRawUnsafe(
|
||||||
|
`INSERT INTO iam.users (created_at, id, name, username, email, user_type, status, is_active, has_set_password, is_phone_number_verified, verified_by)
|
||||||
|
VALUES (now(), $1::uuid, $2::jsonb, $3, $4, 'individual', 'accepted', true, true, true, 'SYSTEM')`,
|
||||||
|
PASSENGER_USER_ID,
|
||||||
|
JSON.stringify(userInfo.name),
|
||||||
|
USERNAME,
|
||||||
|
EMAIL,
|
||||||
|
);
|
||||||
|
await prisma.$executeRawUnsafe(
|
||||||
|
`INSERT INTO iam.sessions (created_at, id, email, device, "userInfo", expiry_time, refresh_count, status, user_id)
|
||||||
|
VALUES (now(), $1::uuid, $2, 'e2e', $3::jsonb, $4, 0, 'ACTIVE', $5::uuid)`,
|
||||||
|
PASSENGER_SESSION_ID,
|
||||||
|
EMAIL,
|
||||||
|
JSON.stringify(userInfo),
|
||||||
|
expiry,
|
||||||
|
PASSENGER_USER_ID,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Link the seeded Passenger row to this IAM user so /auth/profile resolves.
|
||||||
|
await prisma.passenger.update({
|
||||||
|
where: { id: UI_IDS.passenger },
|
||||||
|
data: { iamUserId: PASSENGER_USER_ID },
|
||||||
|
});
|
||||||
|
|
||||||
|
const token = await new SignJWT({ id: PASSENGER_SESSION_ID })
|
||||||
|
.setProtectedHeader({ alg: "HS256", typ: "JWT" })
|
||||||
|
.setIssuedAt()
|
||||||
|
.setExpirationTime("7d")
|
||||||
|
.sign(new TextEncoder().encode(secret));
|
||||||
|
|
||||||
|
return { token };
|
||||||
|
}
|
||||||
|
|
||||||
|
if (require.main === module) {
|
||||||
|
(async () => {
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
try {
|
||||||
|
const { token } = await seedPassengerSession(prisma);
|
||||||
|
const api = process.env.API_URL ?? "http://localhost:4000";
|
||||||
|
const res = await fetch(`${api}/auth/profile`, {
|
||||||
|
headers: { Authorization: `Bearer ${token}` },
|
||||||
|
});
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log(`[passenger-session] /auth/profile -> HTTP ${res.status}`);
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log((await res.text()).slice(0, 400));
|
||||||
|
} finally {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
}
|
||||||
197
apps/edr-passenger-api/test/fixtures/seed-ui.ts
vendored
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
/**
|
||||||
|
* UI E2E seed — extends seed-core with a BOOKABLE trip + payment methods + promos so the portal
|
||||||
|
* search/booking flow and the backoffice config flow have real data to drive. Runnable standalone
|
||||||
|
* (`ts-node test/fixtures/seed-ui.ts`) or importable (`seedUi(prisma)`) from the Playwright
|
||||||
|
* global-setup. Reads DATABASE_URL from the environment (the UI stack points at the 5544 test DB).
|
||||||
|
*
|
||||||
|
* Searchability: a schedule shows in POST /search when it is SCHEDULED, not package-only, has a
|
||||||
|
* future departure on the searched date, operational coaches with AVAILABLE seats, and a resolvable
|
||||||
|
* fare (seat-class distance formula using the seeded route-stop distances + USD→ETB rate).
|
||||||
|
*/
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { IDS, resetAndSeedCore } from "./seed-core";
|
||||||
|
|
||||||
|
export const UI_IDS = {
|
||||||
|
train: "00000000-0000-4000-8000-000000000100",
|
||||||
|
schedule: "00000000-0000-4000-8000-000000000101",
|
||||||
|
coach: "00000000-0000-4000-8000-000000000102",
|
||||||
|
// Passenger.id is set EQUAL to the IAM user id. The bookings controller overrides passengerId
|
||||||
|
// with the JWT user id (req.user.id), and the service only resolves iamUserId→passenger when it
|
||||||
|
// is NON-UUID — since IAM ids are UUIDs, it uses the id directly, so Passenger.id must equal it.
|
||||||
|
passenger: "11111111-0000-4000-8000-000000000001",
|
||||||
|
promoValid: "PROMO10",
|
||||||
|
promoExpired: "EXPIRED50",
|
||||||
|
// Return leg C→A on the same calendar date, for ROUND_TRIP scenarios (UA-6). The route stops are
|
||||||
|
// symmetric in distance (A=0, C=250) so the reverse leg prices identically to the outbound.
|
||||||
|
returnSchedule: "00000000-0000-4000-8000-000000000201",
|
||||||
|
returnCoach: "00000000-0000-4000-8000-000000000202",
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
/** Days-from-now the sample trip departs (tests search on this calendar date, Addis TZ). */
|
||||||
|
export const DEPART_IN_DAYS = 2;
|
||||||
|
|
||||||
|
export function sampleDepartAt(): Date {
|
||||||
|
const d = new Date();
|
||||||
|
d.setUTCDate(d.getUTCDate() + DEPART_IN_DAYS);
|
||||||
|
d.setUTCHours(6, 0, 0, 0); // 06:00Z ~ 09:00 Addis — safely same calendar day either TZ
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** The date string a test passes to POST /search for the sample trip (YYYY-MM-DD). */
|
||||||
|
export function sampleDepartDate(): string {
|
||||||
|
return sampleDepartAt().toISOString().slice(0, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function seedUi(prisma: PrismaClient): Promise<void> {
|
||||||
|
await resetAndSeedCore(prisma);
|
||||||
|
|
||||||
|
// Give the two seed-core seat classes the exact names the portal review flow maps by.
|
||||||
|
await prisma.seatClass.update({
|
||||||
|
where: { id: IDS.seatClassLocal },
|
||||||
|
data: { name: "Economy Regular" },
|
||||||
|
});
|
||||||
|
await prisma.seatClass.update({
|
||||||
|
where: { id: IDS.seatClassIntl },
|
||||||
|
data: { name: "Economy Regular Intl" },
|
||||||
|
});
|
||||||
|
|
||||||
|
// Enabled payment methods — the portal pay page renders ONLY enabled PaymentMethod rows.
|
||||||
|
await prisma.paymentMethod.createMany({
|
||||||
|
data: [
|
||||||
|
{ type: "WALLET", displayName: "Wallet", currency: "ETB", enabled: true, isDefault: true, sortOrder: 0 },
|
||||||
|
{ type: "TELEBIRR", displayName: "telebirr", currency: "ETB", enabled: true, sortOrder: 1 },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
const departAt = sampleDepartAt();
|
||||||
|
const arriveAt = new Date(departAt.getTime() + 4 * 3600_000);
|
||||||
|
|
||||||
|
await prisma.train.create({
|
||||||
|
data: { id: UI_IDS.train, number: "UI-100", name: "UI Test Express" },
|
||||||
|
});
|
||||||
|
|
||||||
|
await prisma.trainSchedule.create({
|
||||||
|
data: {
|
||||||
|
id: UI_IDS.schedule,
|
||||||
|
trainId: UI_IDS.train,
|
||||||
|
routeId: IDS.route,
|
||||||
|
originStationId: IDS.stationA,
|
||||||
|
destinationStationId: IDS.stationC,
|
||||||
|
departureAt: departAt,
|
||||||
|
arrivalAt: arriveAt,
|
||||||
|
durationMinutes: 240,
|
||||||
|
status: "SCHEDULED",
|
||||||
|
stopsCount: 3,
|
||||||
|
isPackageOnly: false,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await prisma.tripStopTime.createMany({
|
||||||
|
data: [
|
||||||
|
{ scheduleId: UI_IDS.schedule, stationId: IDS.stationA, sequence: 1, plannedDepartureAt: departAt, status: "OPEN" },
|
||||||
|
{ scheduleId: UI_IDS.schedule, stationId: IDS.stationB, sequence: 2, plannedDepartureAt: new Date(departAt.getTime() + 2 * 3600_000), status: "OPEN" },
|
||||||
|
{ scheduleId: UI_IDS.schedule, stationId: IDS.stationC, sequence: 3, plannedArrivalAt: arriveAt, status: "OPEN" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
// Enough seats that a full suite run (many bookings share one seeded DB, seats are not released
|
||||||
|
// between specs) never exhausts availability: 12 rows × 4 cols = 48 seats.
|
||||||
|
const SEAT_ROWS = 12;
|
||||||
|
await prisma.coach.create({
|
||||||
|
data: { id: UI_IDS.coach, coachTypeId: IDS.coachType, number: "UI-C1", capacity: SEAT_ROWS * 4, sequence: 1, status: "ACTIVE" },
|
||||||
|
});
|
||||||
|
await prisma.coachAssignment.create({
|
||||||
|
data: { scheduleId: UI_IDS.schedule, coachId: UI_IDS.coach, positionNumber: 1, isOperational: true },
|
||||||
|
});
|
||||||
|
await prisma.seat.createMany({ data: buildSeats(UI_IDS.coach, SEAT_ROWS) });
|
||||||
|
|
||||||
|
// Logged-in passenger with a funded wallet + loyalty (used by the portal storageState + WALLET pay).
|
||||||
|
await prisma.passenger.create({ data: { id: UI_IDS.passenger } });
|
||||||
|
await prisma.walletAccount.create({
|
||||||
|
data: { passengerId: UI_IDS.passenger, balanceMinor: 100_000_000 },
|
||||||
|
});
|
||||||
|
await prisma.loyaltyAccount.create({
|
||||||
|
data: { passengerId: UI_IDS.passenger, pointsBalance: 500 },
|
||||||
|
});
|
||||||
|
|
||||||
|
// Promotions (schema field names, NOT the backoffice UI names). Unique exact codes.
|
||||||
|
await prisma.promotion.createMany({
|
||||||
|
data: [
|
||||||
|
{ title: "10% off", code: UI_IDS.promoValid, percentOff: 10, validUntil: new Date(Date.now() + 30 * 86400_000), active: true },
|
||||||
|
{ title: "Expired", code: UI_IDS.promoExpired, percentOff: 50, validUntil: new Date(Date.now() - 86400_000), active: true },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
// One baggage allowance (for excess-baggage flows later).
|
||||||
|
await prisma.baggageAllowance.create({
|
||||||
|
data: { seatClassId: IDS.seatClassLocal, maxWeightKg: 20, maxPiecesCount: 2, excessFeePerKg: 50 },
|
||||||
|
});
|
||||||
|
|
||||||
|
// ── Return leg (C→A) for ROUND_TRIP (UA-6) ──────────────────────────────────
|
||||||
|
// Same train, same day, departs after the outbound arrives. Distances are symmetric
|
||||||
|
// (A=0km … C=250km) so the reverse leg prices the same as the outbound.
|
||||||
|
const returnDepart = new Date(departAt.getTime() + 8 * 3600_000); // 8h after outbound departs
|
||||||
|
const returnArrive = new Date(returnDepart.getTime() + 4 * 3600_000);
|
||||||
|
await prisma.trainSchedule.create({
|
||||||
|
data: {
|
||||||
|
id: UI_IDS.returnSchedule,
|
||||||
|
trainId: UI_IDS.train,
|
||||||
|
routeId: IDS.route,
|
||||||
|
originStationId: IDS.stationC,
|
||||||
|
destinationStationId: IDS.stationA,
|
||||||
|
departureAt: returnDepart,
|
||||||
|
arrivalAt: returnArrive,
|
||||||
|
durationMinutes: 240,
|
||||||
|
status: "SCHEDULED",
|
||||||
|
stopsCount: 3,
|
||||||
|
isPackageOnly: false,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
await prisma.tripStopTime.createMany({
|
||||||
|
data: [
|
||||||
|
{ scheduleId: UI_IDS.returnSchedule, stationId: IDS.stationC, sequence: 1, plannedDepartureAt: returnDepart, status: "OPEN" },
|
||||||
|
{ scheduleId: UI_IDS.returnSchedule, stationId: IDS.stationB, sequence: 2, plannedDepartureAt: new Date(returnDepart.getTime() + 2 * 3600_000), status: "OPEN" },
|
||||||
|
{ scheduleId: UI_IDS.returnSchedule, stationId: IDS.stationA, sequence: 3, plannedArrivalAt: returnArrive, status: "OPEN" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
await prisma.coach.create({
|
||||||
|
data: { id: UI_IDS.returnCoach, coachTypeId: IDS.coachType, number: "UI-C2", capacity: 48, sequence: 1, status: "ACTIVE" },
|
||||||
|
});
|
||||||
|
await prisma.coachAssignment.create({
|
||||||
|
data: { scheduleId: UI_IDS.returnSchedule, coachId: UI_IDS.returnCoach, positionNumber: 1, isOperational: true },
|
||||||
|
});
|
||||||
|
await prisma.seat.createMany({ data: buildSeats(UI_IDS.returnCoach, 12) });
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Build `rows × 4` seats (cols A–D) for a coach. */
|
||||||
|
function buildSeats(coachId: string, rows: number) {
|
||||||
|
const cols = ["A", "B", "C", "D"];
|
||||||
|
const seats: Array<{ coachId: string; seatNumber: string; row: number; col: string; isWindow: boolean; isAisle: boolean }> = [];
|
||||||
|
for (let row = 1; row <= rows; row++) {
|
||||||
|
for (const col of cols) {
|
||||||
|
seats.push({
|
||||||
|
coachId,
|
||||||
|
seatNumber: `${row}${col}`,
|
||||||
|
row,
|
||||||
|
col,
|
||||||
|
isWindow: col === "A" || col === "D",
|
||||||
|
isAisle: col === "B" || col === "C",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return seats;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Standalone runner
|
||||||
|
if (require.main === module) {
|
||||||
|
(async () => {
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
try {
|
||||||
|
await seedUi(prisma);
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log(`[seed-ui] done. Sample trip ${IDS.stationA}→${IDS.stationC} on ${sampleDepartDate()} (schedule ${UI_IDS.schedule}).`);
|
||||||
|
} finally {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
}
|
||||||
@@ -596,6 +596,7 @@ export default function PaymentPage() {
|
|||||||
return (
|
return (
|
||||||
<button
|
<button
|
||||||
key={method.id}
|
key={method.id}
|
||||||
|
data-testid={`pay-method-${method.type}`}
|
||||||
onClick={() => setSelectedMethod(method.type)}
|
onClick={() => setSelectedMethod(method.type)}
|
||||||
disabled={isProcessing || !method.enabled}
|
disabled={isProcessing || !method.enabled}
|
||||||
className={`w-full p-4 rounded-xl border-2 transition-all text-left ${
|
className={`w-full p-4 rounded-xl border-2 transition-all text-left ${
|
||||||
|
|||||||
@@ -484,6 +484,7 @@ export default function ResultsPage() {
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={coachType.coachId}
|
key={coachType.coachId}
|
||||||
|
data-testid="coach-option"
|
||||||
role="button"
|
role="button"
|
||||||
tabIndex={0}
|
tabIndex={0}
|
||||||
onClick={selectThisCoach}
|
onClick={selectThisCoach}
|
||||||
@@ -633,6 +634,7 @@ export default function ResultsPage() {
|
|||||||
{isSelected && (
|
{isSelected && (
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
data-testid="continue-passenger-details"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
handleSelect(classModal, isOutbound);
|
handleSelect(classModal, isOutbound);
|
||||||
@@ -829,6 +831,7 @@ export default function ResultsPage() {
|
|||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
<button
|
<button
|
||||||
|
data-testid="result-select-btn"
|
||||||
onClick={() =>
|
onClick={() =>
|
||||||
setClassModal({ ...schedule, isOutbound } as any)
|
setClassModal({ ...schedule, isOutbound } as any)
|
||||||
}
|
}
|
||||||
|
|||||||
160
docs/ISSUES.md
@@ -34,6 +34,21 @@ Two structural facts frame everything:
|
|||||||
≥ 30000. Matrix A1–A4.
|
≥ 30000. Matrix A1–A4.
|
||||||
- **Fix**: recompute the fare server-side at booking creation and **reject** if the client-supplied
|
- **Fix**: recompute the fare server-side at booking creation and **reject** if the client-supplied
|
||||||
total differs beyond a rounding epsilon; never persist a client amount as the charge basis.
|
total differs beyond a rounding epsilon; never persist a client amount as the charge basis.
|
||||||
|
- **Resolution (authenticated paths)** ✅ — `bookings.service.ts` now guards both `createOneWayBooking`
|
||||||
|
and `createRoundTripBooking` with `assertTotalNotUnderAuthoritative(resolvedTotalMinor,
|
||||||
|
fareCalculation.totalMinor)`: a booking whose ETB charge basis falls below the server-recomputed
|
||||||
|
authoritative fare (net of promo/loyalty/free-child) by more than a 1% FX-rounding tolerance is
|
||||||
|
rejected with `BadRequestException` and nothing is persisted. It's a **floor** (not equality) so
|
||||||
|
legitimate berth surcharges — which only raise the total — still pass. Proven by
|
||||||
|
`e2e-ui/specs/portal/ua13-forged-total.spec.ts` (now asserts a 4xx + no 1-minor booking; red before
|
||||||
|
the guard, green after).
|
||||||
|
- **Resolution (guest paths)** ✅ — `guest-booking.service.ts` now applies the identical
|
||||||
|
`assertTotalNotUnderAuthoritative` floor guard to both the one-way and round-trip guest booking
|
||||||
|
creation paths (authoritative ETB fare captured before the client-driven per-seat/reviewed branches
|
||||||
|
overwrite the total). Proven by `e2e-ui/specs/guest/ua14-forged-seat-fare.spec.ts` (forged
|
||||||
|
`seatFareMinor=0` + `reviewedTotalMinor=0` now rejected with a 4xx and no 0-minor booking persisted;
|
||||||
|
red before the guard, green after). C-1 is now closed on all four booking-creation paths
|
||||||
|
(authenticated one-way/round-trip + guest one-way/round-trip).
|
||||||
|
|
||||||
### C-2 ✅ Loyalty redemption is unbounded and never deducted (free discount)
|
### C-2 ✅ Loyalty redemption is unbounded and never deducted (free discount)
|
||||||
- **Where**: `bookings.service.ts:1705,1707` (and `:1028,:1249,:1451`); DTO `bookings.dto.ts:155`.
|
- **Where**: `bookings.service.ts:1705,1707` (and `:1028,:1249,:1451`); DTO `bookings.dto.ts:155`.
|
||||||
@@ -67,6 +82,18 @@ Two structural facts frame everything:
|
|||||||
booking in full; short payments are undetectable. Matrix G1/G7.
|
booking in full; short payments are undetectable. Matrix G1/G7.
|
||||||
- **Fix**: compare provider-confirmed amount to the intent/booking total in `applyProviderResult`
|
- **Fix**: compare provider-confirmed amount to the intent/booking total in `applyProviderResult`
|
||||||
and `finalizePaymentSuccess`; do not confirm on mismatch.
|
and `finalizePaymentSuccess`; do not confirm on mismatch.
|
||||||
|
- **Resolution (passenger side)** ✅ — `payments.service.ts` `handlePaymentEvent` (the consumer of
|
||||||
|
the payment service's `mark-paid` relay — the passenger-side settlement entry point) now compares
|
||||||
|
the provider-settled `event.amountMinor` against the booking's display-currency total
|
||||||
|
(`displayTotalMinor`, i.e. the amount the passenger was quoted) before materializing the intent or
|
||||||
|
finalizing. A short payment (below the expected amount beyond a 1% rounding tolerance) is refused
|
||||||
|
with `{ processed: false, reason: 'amount-mismatch' }` and the booking is left unconfirmed — no
|
||||||
|
ticket. Amount-only by design: the display↔charge-currency divergence for USD/DJF (UA-1b/2/3) is
|
||||||
|
tracked separately, so the guard compares against `displayTotalMinor` to stay correct for both ETB
|
||||||
|
and the currently-diverging currencies. Proven by `e2e-ui/specs/portal/ua15-telebirr-shortpay.spec.ts`
|
||||||
|
(forged `amountMinor:1` now leaves the booking unconfirmed; red before the guard, green after). The
|
||||||
|
**payment-side** `intents.service.ts` mismatch (`applyProviderResult`) lives in `edr-payment-api`
|
||||||
|
and is out of scope for the passenger-app fix.
|
||||||
|
|
||||||
### C-5 🔎 A late webhook re-confirms an expired/cancelled booking
|
### C-5 🔎 A late webhook re-confirms an expired/cancelled booking
|
||||||
- **Where**: `payments.service.ts:809-848` (`finalizePaymentSuccess` never reads `booking.status`);
|
- **Where**: `payments.service.ts:809-848` (`finalizePaymentSuccess` never reads `booking.status`);
|
||||||
@@ -99,27 +126,69 @@ Two structural facts frame everything:
|
|||||||
- **Fix**: implement disbursement (wallet credit or provider refund) and move `refundStatus`
|
- **Fix**: implement disbursement (wallet credit or provider refund) and move `refundStatus`
|
||||||
through `PROCESSING → COMPLETED`; reconcile stuck PENDING rows.
|
through `PROCESSING → COMPLETED`; reconcile stuck PENDING rows.
|
||||||
|
|
||||||
### C-8 🔎 Unauthenticated exchange-rate writes ✅ (guard metadata verified)
|
### C-8 ✅ Exchange-rate writes are missing the ADMIN check (any passenger can rewrite FX) — CORRECTED
|
||||||
- **Where**: `fare-engine/currency.controller.ts:25` (`PUT`), `:32` (`PATCH`) — no `@UseGuards`;
|
- **⚠️ Corrected by live testing** — the original claim (*unauthenticated* FX writes) was a **false
|
||||||
only `:42` DELETE is `@PassengerAdmin()`.
|
positive**: `@tria-plc/api-common`'s `SharedAuthModule` registers a **global `APP_GUARD` = JwtGuard**
|
||||||
- **Repro (verified)**: `auth-gaps.e2e-spec.ts` → `upsert`/`update` handlers have **0** guards,
|
(`shared-auth.module` `APP_GUARD`), so anonymous requests get **401**. The metadata-only J1 check
|
||||||
`remove` has ≥1.
|
saw no *method-level* guard and wrongly concluded "unauthenticated". The real defect is
|
||||||
- **Expected**: FX writes are admin-only. **Actual**: an anonymous caller can rewrite USD↔ETB↔DJF
|
**authorization**, not authentication.
|
||||||
rates, which every international fare multiplies by (`fare-engine.service.ts:132,157,195`), and
|
- **Where**: `fare-engine/currency.controller.ts:25` (`PUT`), `:32` (`PATCH`) — authenticated but
|
||||||
which — combined with C-9 — silently reprices the whole system. Matrix J1.
|
**no `@PassengerAdmin`** (only `:42` DELETE has it).
|
||||||
|
- **Repro (verified live)**: `e2e-ui/specs/propagation/pb-config-propagation.spec.ts` (BC-11) —
|
||||||
|
anon → **401**, but a **regular passenger token → 200** rewrites the live USD↔ETB rate.
|
||||||
|
- **Expected**: FX writes are admin-only. **Actual**: any logged-in user (incl. a passenger) can
|
||||||
|
rewrite USD↔ETB↔DJF rates, which every international fare multiplies by
|
||||||
|
(`fare-engine.service.ts:132,157,195`). Needs a valid login (not anonymous), so **HIGH, not
|
||||||
|
CRITICAL** — but a single passenger can still distort all international pricing. Same class as C-9.
|
||||||
- **Fix**: add `@PassengerAdmin()` (or `@PassengerStaff([currencies.manage])`) to `PUT`/`PATCH`.
|
- **Fix**: add `@PassengerAdmin()` (or `@PassengerStaff([currencies.manage])`) to `PUT`/`PATCH`.
|
||||||
|
- **Resolution** ✅ — `fare-engine/currency.controller.ts` now decorates both `@Put()` and
|
||||||
|
`@Patch(':id')` with `@PassengerAdmin()` + `@ApiBearerAuth('IAM-auth')`, matching the existing
|
||||||
|
`@Delete` handler. `@PassengerAdmin()` is the repo's established guard decorator (`JwtGuard` +
|
||||||
|
`PassengerPermissionGuard(admin)`) — no new auth code, and no `@edr/auth` placeholder needed since
|
||||||
|
the permission infra already exists and the seeded staff admin carries the permission. The sibling
|
||||||
|
`/currencies` write surfaces (`currency.controller.ts`, `currencies.controller.ts`) were already
|
||||||
|
guarded, so `/fare-engine/exchange-rates` was the sole gap. Proven by
|
||||||
|
`e2e-ui/specs/propagation/pb-config-propagation.spec.ts` (BC-11): anon → 401, regular passenger PUT
|
||||||
|
and PATCH → **403**, staff admin → 200; red before the guard, green after.
|
||||||
|
|
||||||
### C-9 🔎 `@Roles('ADMIN')` is dead everywhere (RolesGuard never wired)
|
### C-9 ✅ `@Roles('ADMIN')` is dead everywhere (RolesGuard never wired) — verified live
|
||||||
- **Where**: `common/roles.guard.ts` defines `RolesGuard` but it is never registered (no `APP_GUARD`,
|
- **Where**: `common/roles.guard.ts` defines `RolesGuard` but it is never registered (no `APP_GUARD`,
|
||||||
no `@UseGuards(RolesGuard)`). So `@Roles(...)` is inert on:
|
no `@UseGuards(RolesGuard)`). The global `JwtGuard` (SharedAuthModule) does authN but NOT authZ, so
|
||||||
`configurable-fare.controller.ts:20,111,187` (create/activate/delete fare configs + feature
|
`@Roles(...)` is inert on: `configurable-fare.controller.ts:20,111,187` (fare configs + feature
|
||||||
toggle), `segments/segment-fare.controller.ts:15` (`/admin/segment-fares`),
|
toggle), `segments/segment-fare.controller.ts:15` (`/admin/segment-fares`),
|
||||||
`system-config.controller.ts:23,32` (`GET/PATCH /config`).
|
`system-config.controller.ts:23,32` (`GET/PATCH /config`).
|
||||||
- **Expected**: these are admin-only. **Actual**: any authenticated IAM user (incl. a passenger who
|
- **Repro (verified live)**: a **regular passenger token** → `PATCH /config` (`@Roles('ADMIN')`) →
|
||||||
obtained a token) can CRUD fare configuration and system config. Matrix J2–J4.
|
**HTTP 200** (wrote admin-only system config); `POST /admin/fare-configurations` → 400 (reached DTO
|
||||||
|
validation, i.e. it passed the role guard). So any authenticated user bypasses the ADMIN gate.
|
||||||
|
- **Expected**: these are admin-only. **Actual**: any authenticated IAM user (incl. a passenger) can
|
||||||
|
CRUD fare configuration and system config. Matrix J2–J4.
|
||||||
- **Fix**: register `RolesGuard` globally (or via `@UseGuards`) so `@Roles` is enforced, OR convert
|
- **Fix**: register `RolesGuard` globally (or via `@UseGuards`) so `@Roles` is enforced, OR convert
|
||||||
these to the working `@PassengerAdmin()`/`@PassengerStaff()` guards used elsewhere.
|
these to the working `@PassengerAdmin()`/`@PassengerStaff()` guards used elsewhere.
|
||||||
|
|
||||||
|
### C-10 ✅ Authenticated `POST /bookings` is BROKEN (passengerId resolution regression)
|
||||||
|
- **Where**: `bookings.controller.ts:528-532` overrides `passengerId` with the JWT user id
|
||||||
|
(`req.user.id`, the iamUserId — "never trust the request body", added in commit `25fdf88a`).
|
||||||
|
`bookings.service.ts:773` resolves an iamUserId → Passenger ONLY when it is **non-UUID**. IAM user
|
||||||
|
ids are UUIDs, and registration creates `Passenger.id ≠ iamUserId` (`passenger-auth.service.ts:225`
|
||||||
|
— only `iamUserId` is set; `id` auto-generates). So the resolver never fires and `booking.create`
|
||||||
|
(`bookings.service.ts:905`) uses the iamUserId directly as `passengerId`.
|
||||||
|
- **Repro**: ✅ verified two ways — (1) live browser: the full UI booking flow returns **HTTP 400
|
||||||
|
P2003** on `Booking_passengerId_fkey` for a logged-in passenger whose `Passenger.id ≠ iamUserId`
|
||||||
|
(the realistic case); (2) deterministic API test `test/authed-booking-passengerid.e2e-spec.ts` —
|
||||||
|
`create()` with a UUID iamUserId fails the FK, while `create()` with the real `Passenger.id`
|
||||||
|
succeeds (control). The UI suite only goes green because `seed-ui.ts` deliberately sets
|
||||||
|
`Passenger.id == iamUserId`.
|
||||||
|
- **Expected**: every IAM-authenticated passenger can book. **Actual**: every authenticated
|
||||||
|
`POST /bookings` fails with a foreign-key error; only the guest path (`/bookings/guest`, which
|
||||||
|
creates a fresh passenger) works. This is a **regression** — before `25fdf88a`, the controller
|
||||||
|
used the frontend-supplied `passengerId` (the real `Passenger.id`), which worked.
|
||||||
|
- **Fix**: resolve the passenger by iamUserId unconditionally (`passenger.findUnique({ where: {
|
||||||
|
iamUserId } })`) in the controller or service — drop the UUID-format gate at `bookings.service.ts:773`
|
||||||
|
— and pass the resolved `Passenger.id` to `booking.create`. (Keep the "don't trust the body"
|
||||||
|
intent; just translate the identity correctly.)
|
||||||
|
- **⚠️ Confirm the deployment window**: verify whether `25fdf88a` is already in production. If so,
|
||||||
|
authenticated bookings are down platform-wide; if it's only on `dev`, this is a pre-release blocker.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## HIGH — pricing is wrong or exploitable
|
## HIGH — pricing is wrong or exploitable
|
||||||
@@ -137,6 +206,18 @@ Two structural facts frame everything:
|
|||||||
the fare ~100×; `pricing-currency.e2e-spec.ts` (C2b) — silent 1.0 vs `getRateOrThrow` throwing.
|
the fare ~100×; `pricing-currency.e2e-spec.ts` (C2b) — silent 1.0 vs `getRateOrThrow` throwing.
|
||||||
- **Fix**: fail closed (reject the quote/booking) when a required rate is absent; never price at
|
- **Fix**: fail closed (reject the quote/booking) when a required rate is absent; never price at
|
||||||
parity by default.
|
parity by default.
|
||||||
|
- **Resolution** ✅ — `currency.service.ts` `getExchangeRate` no longer substitutes `1.0` on a missing
|
||||||
|
rate; it logs and throws `BadRequestException` (`No exchange rate configured for X->Y`), matching
|
||||||
|
`getRateOrThrow`. Fare pricing therefore fails closed: with the `USD→ETB` pair deleted the fare
|
||||||
|
engine (`fare-engine.service.ts:157`) throws, so the search returns **no priced class** for the
|
||||||
|
affected currency (the per-seat-class fare error is caught in `search.service.ts:1041`, so the trip
|
||||||
|
is listed without a fare rather than 500ing), and an authoritative `calculateFare` on the booking
|
||||||
|
path — which does not swallow the error — rejects the booking. No path prices at parity by default.
|
||||||
|
Proven by `e2e-ui/specs/propagation/pb-config-propagation.spec.ts` (PB-10): with the rate present the
|
||||||
|
USD search returns a priced fare; with it deleted the search returns an empty `faresByClass` instead
|
||||||
|
of a ~100×-collapsed fare (red before the fix, green after). Note: `getExchangeRate` still resolves
|
||||||
|
only the *direct* rate (no inverse/bridge) — unifying it with `getRateOrThrow` is the separate H-3
|
||||||
|
cleanup; failing closed here is strictly safer than the old silent 1.0.
|
||||||
|
|
||||||
### H-3 ✅ Display path and charge path diverge on the same FX state (100×)
|
### H-3 ✅ Display path and charge path diverge on the same FX state (100×)
|
||||||
- **Where**: `getExchangeRate` (`:131`, no inverse fallback) vs `getRateOrThrow` (`:81`, inverse +
|
- **Where**: `getExchangeRate` (`:131`, no inverse fallback) vs `getRateOrThrow` (`:81`, inverse +
|
||||||
@@ -214,6 +295,37 @@ Two structural facts frame everything:
|
|||||||
multi-child parties. Matrix B6/B7.
|
multi-child parties. Matrix B6/B7.
|
||||||
- **Fix**: one shared fare function used by quote, booking, and payment.
|
- **Fix**: one shared fare function used by quote, booking, and payment.
|
||||||
|
|
||||||
|
### H-13 ✅ A valid promo is silently dropped in the browser flow (customer overcharged)
|
||||||
|
- **Where**: `GET /search/fare-breakdown` (`search.service.ts:940-970`) computes the discount into a
|
||||||
|
SEPARATE `discountMinor` / discounted `totalMinor`, but returns per-passenger `displayFareMinor`
|
||||||
|
**undiscounted**. The review page (`portal/src/app/booking/review/page.tsx:587`) reduces the
|
||||||
|
per-passenger fares and sends their sum as `reviewedTotalMinor` — i.e. the **undiscounted
|
||||||
|
subtotal** — ignoring `discountMinor`. Promo only enters via the `?promoCode=` URL param (no UI
|
||||||
|
input).
|
||||||
|
- **Repro**: ✅ verified in-browser — `e2e-ui/specs/portal/ua8-promo-drop.spec.ts`: with a valid 10%
|
||||||
|
promo, the breakdown shows `discountMinor > 0` and `totalMinor < subtotalMinor`, yet the booking is
|
||||||
|
stored at the full `subtotalMinor`.
|
||||||
|
- **Expected**: the discounted total is booked and charged. **Actual**: the customer is charged full
|
||||||
|
price despite a valid promo — a silent overcharge (and a broken promo feature). Matrix D / UA-8.
|
||||||
|
- **Fix**: book the breakdown's discounted `totalMinor` (not the client-summed per-pax undiscounted
|
||||||
|
fares); or return discounted per-pax fares. Best combined with C-1 (server recomputes the
|
||||||
|
authoritative total, promo included, and rejects a client mismatch).
|
||||||
|
- **Resolution (authed one-way)** ✅ — `bookings.service.ts` `createOneWayBooking` now applies the
|
||||||
|
authoritative promo discount server-side. The portal still forwards `promoCode` in the booking body,
|
||||||
|
so `calculateFare` already computes `discountMinor` — the total-resolution branches simply never
|
||||||
|
subtracted it. When the total comes from a client-summed subtotal (per-seat sum or
|
||||||
|
`reviewedTotalMinor`, both undiscounted), the code now subtracts `fareCalculation.discountMinor`
|
||||||
|
(converted to display currency for the display total) so the stored/charged `totalMinor` =
|
||||||
|
`subtotal − discount`. The engine-fallback branch already booked the discounted `totalMinor`, so it
|
||||||
|
is excluded (via a `usedClientSubtotal` flag) to avoid double-subtracting; no-op when no promo
|
||||||
|
applies (`discountMinor === 0`), so UA-11 (expired promo) and the non-promo specs are unaffected.
|
||||||
|
This composes with the C-1 floor guard: after the discount is applied the resolved total equals the
|
||||||
|
authoritative fare, so the guard passes. Proven by `e2e-ui/specs/portal/ua8-promo-drop.spec.ts`
|
||||||
|
(booking now stored at `subtotal − discount`; red before the fix, green after). The **round-trip**
|
||||||
|
and **guest** paths share the same latent frontend drop but have no UI spec yet — tracked for a
|
||||||
|
follow-up; the guest service additionally still overrides its discounted total with
|
||||||
|
`reviewedTotalMinor` (see the PROMO REALITY note in `docs/ui-e2e-test-matrix.md`).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## MEDIUM — backoffice config accepts invalid data / unsafe deletes
|
## MEDIUM — backoffice config accepts invalid data / unsafe deletes
|
||||||
@@ -225,6 +337,14 @@ Two structural facts frame everything:
|
|||||||
- **Repro (verified)**: `config-validation.e2e-spec.ts` (H1/H2) — negative values pass validation;
|
- **Repro (verified)**: `config-validation.e2e-spec.ts` (H1/H2) — negative values pass validation;
|
||||||
the guarded sibling rejects them.
|
the guarded sibling rejects them.
|
||||||
- **Fix**: add `@Min(0)` to every money DTO field.
|
- **Fix**: add `@Min(0)` to every money DTO field.
|
||||||
|
- **Resolution (seat-class base price)** ✅ — `seat-classes.dto.ts` `CreateSeatClassDto.basePrice` and
|
||||||
|
`insuranceFeeMinor` now carry `@Min(0)`; because `UpdateSeatClassDto extends PartialType(...)` the
|
||||||
|
constraint applies to `PATCH /seat-classes/:id` too. A negative `basePrice` is rejected with 400 at
|
||||||
|
the DTO layer (matching the backoffice form's `min=0`), so it never reaches the DB. Proven by
|
||||||
|
`e2e-ui/specs/propagation/pb-config-propagation.spec.ts` (BC-7): `basePrice:-500` → 400, a valid
|
||||||
|
write still succeeds (red before the `@Min`, green after). The other money DTOs named above
|
||||||
|
(`schedules.dto.ts` `CreateFareRuleDto`/`CreateSegmentFareRuleDto.baseFareMinor`) are not exercised
|
||||||
|
by a UI spec and remain a follow-up for full M-1 closure.
|
||||||
|
|
||||||
### M-2 ✅ Promo bounds/date not validated
|
### M-2 ✅ Promo bounds/date not validated
|
||||||
- **Where**: `promos.dto.ts:20` (`percentOff` no `@Max(100)`/`@Min(0)`), `:29` (`validUntil`
|
- **Where**: `promos.dto.ts:20` (`percentOff` no `@Max(100)`/`@Min(0)`), `:29` (`validUntil`
|
||||||
@@ -233,12 +353,26 @@ Two structural facts frame everything:
|
|||||||
`validUntil:"not-a-real-date"` both pass.
|
`validUntil:"not-a-real-date"` both pass.
|
||||||
- **Fix**: `@Min(0) @Max(100)` on `percentOff`; `@IsDateString()` on `validUntil`; add min-spend /
|
- **Fix**: `@Min(0) @Max(100)` on `percentOff`; `@IsDateString()` on `validUntil`; add min-spend /
|
||||||
usage-limit / max-cap columns (all currently absent — `schema.prisma:785`).
|
usage-limit / max-cap columns (all currently absent — `schema.prisma:785`).
|
||||||
|
- **Resolution (percentOff bounds)** ✅ — `promos.dto.ts` `CreatePromotionDto.percentOff` now carries
|
||||||
|
`@Min(0) @Max(100)` and `amountOffMinor` carries `@Min(0)`, so `POST /promos` with `percentOff:200`
|
||||||
|
is rejected with 400 at the DTO layer while a valid ≤100% promo still saves. Proven by
|
||||||
|
`e2e-ui/specs/backoffice/config-validation.spec.ts` (BC-8): `percentOff:200` → 400, `percentOff:50`
|
||||||
|
→ 201 (red before the bounds, green after). The `validUntil` `@IsDateString` tightening and the
|
||||||
|
missing min-spend/usage-limit/max-cap columns remain a follow-up (not exercised by BC-8).
|
||||||
|
|
||||||
### M-3 🔎 `PATCH /config` accepts arbitrary unvalidated key/values
|
### M-3 🔎 `PATCH /config` accepts arbitrary unvalidated key/values
|
||||||
- **Where**: `system-config.controller.ts:34` (no DTO) → `system-config.service.ts:56-59` stores a
|
- **Where**: `system-config.controller.ts:34` (no DTO) → `system-config.service.ts:56-59` stores a
|
||||||
raw `Record<string,string>`. Setting `seat_hold_duration_minutes = -1` or `"abc"` is persisted.
|
raw `Record<string,string>`. Setting `seat_hold_duration_minutes = -1` or `"abc"` is persisted.
|
||||||
Matrix H7.
|
Matrix H7.
|
||||||
- **Fix**: a whitelisted, typed DTO with per-key numeric/range validation.
|
- **Fix**: a whitelisted, typed DTO with per-key numeric/range validation.
|
||||||
|
- **Resolution** ✅ — `system-config.dto.ts` adds `UpdateSystemConfigDto`, a whitelisted body listing
|
||||||
|
every known config key, each `@Type(() => Number) @IsInt() @Min(...)` (seat-hold bounded 1..60,
|
||||||
|
throttle limits/TTLs `@Min(1)`, hour windows `@Min(0)`). The controller now accepts the DTO (so the
|
||||||
|
global whitelisting ValidationPipe strips unknown keys and enforces the ranges) and persists the
|
||||||
|
validated values back as strings. `PATCH /config {seat_hold_duration_minutes:"-1"}` (or `"abc"`) is
|
||||||
|
rejected with 400; a sane value still stores. Proven by
|
||||||
|
`e2e-ui/specs/backoffice/config-validation.spec.ts` (BC-9): `-1` → 400, `15` → stored (red before
|
||||||
|
the DTO, green after).
|
||||||
|
|
||||||
### M-4 🔎 Past-dated schedules accepted; train can be double-booked across routes
|
### M-4 🔎 Past-dated schedules accepted; train can be double-booked across routes
|
||||||
- **Where**: `schedules.service.ts:105` only checks `arrivalAt > departureAt` (no "future" check);
|
- **Where**: `schedules.service.ts:105` only checks `arrivalAt > departureAt` (no "future" check);
|
||||||
|
|||||||
141
docs/SOLUTIONS.md
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
# EDR Passenger — Solutions
|
||||||
|
|
||||||
|
Concrete fixes for the confirmed findings in `docs/ISSUES.md`. Ordered by priority. Each references
|
||||||
|
the exact site and the intended change. Code sketches are illustrative, not drop-in patches.
|
||||||
|
|
||||||
|
**Test coverage backing these:** 28 automated tests (25 API `jest` + 3 UI Playwright) reproduce the
|
||||||
|
✅ findings. Fix a finding → its 🔴 test flips from "bug present" to failing; update the test to
|
||||||
|
assert the corrected behavior.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P0 — deploy blockers (money creation/theft, broken booking)
|
||||||
|
|
||||||
|
### C-10 — Authenticated `POST /bookings` is broken
|
||||||
|
`bookings.service.ts:773` resolve unconditionally; delete the UUID-format gate:
|
||||||
|
```ts
|
||||||
|
// BEFORE: resolves only when passengerId is NOT a UUID (never fires for real IAM ids)
|
||||||
|
if (dto.passengerId && !dto.passengerId.match(/^[0-9a-f-]{36}$/i)) { … }
|
||||||
|
// AFTER: always translate the authenticated identity → the Passenger.id
|
||||||
|
if (dto.passengerId) {
|
||||||
|
const passenger = await this.prisma.passenger.findUnique({
|
||||||
|
where: { iamUserId: dto.passengerId }, select: { id: true },
|
||||||
|
});
|
||||||
|
if (passenger) dto = { ...dto, passengerId: passenger.id };
|
||||||
|
// else: leave as-is only if it already IS a Passenger.id (guest/admin paths)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Keep the controller's "don't trust the body" intent (`bookings.controller.ts:528`) — it's correct to
|
||||||
|
take identity from the JWT; the service just has to map iamUserId → Passenger.id. Regression test:
|
||||||
|
`test/authed-booking-passengerid.e2e-spec.ts`.
|
||||||
|
|
||||||
|
### C-1 — Booking total is client-controlled
|
||||||
|
`bookings.service.ts:863-899`: stop trusting `reviewedTotalMinor`/`seatFareMinor`. Recompute the fare
|
||||||
|
server-side and reject a mismatch:
|
||||||
|
```ts
|
||||||
|
const server = fareCalculation.totalMinor;
|
||||||
|
if (dto.reviewedTotalMinor != null && Math.abs(dto.reviewedTotalMinor - server) > 1) {
|
||||||
|
throw new BadRequestException('Price changed — please review the updated fare');
|
||||||
|
}
|
||||||
|
resolvedTotalMinor = server; // never persist a client amount as the charge basis
|
||||||
|
```
|
||||||
|
Apply the same to `guest-booking.service.ts:206-245`.
|
||||||
|
|
||||||
|
### C-2 — Loyalty redemption unbounded + never deducted
|
||||||
|
`bookings.service.ts:1705` (and `:1028/:1249/:1451`): validate + debit inside the booking transaction:
|
||||||
|
```ts
|
||||||
|
const acct = await tx.loyaltyAccount.findUnique({ where: { passengerId } });
|
||||||
|
const pts = Math.min(dto.loyaltyRedemptionPoints ?? 0, acct?.pointsBalance ?? 0, MAX_REDEEM);
|
||||||
|
const loyaltyMinor = pts * POINTS_TO_MINOR;
|
||||||
|
await tx.loyaltyLedgerEntry.create({ data: { accountId: acct.id, delta: -pts, reason: 'REDEEMED', balanceAfter: acct.pointsBalance - pts } });
|
||||||
|
await tx.loyaltyAccount.update({ where: { id: acct.id }, data: { pointsBalance: { decrement: pts } } });
|
||||||
|
```
|
||||||
|
|
||||||
|
### C-3 — Wallet top-up: no ownership, no backing
|
||||||
|
- `wallet.controller.ts:34`: enforce `req.user` owns `:passengerId` (or is admin) before top-up.
|
||||||
|
- `wallet.service.ts:50`: only credit after a confirmed `PaymentIntent` (a top-up is a purchase).
|
||||||
|
- `wallet.controller.ts:23-24`: remove `@IsPublic()` from `GET /wallet/accounts`.
|
||||||
|
|
||||||
|
### C-4 — Payment amount never validated
|
||||||
|
- `intents.service.ts:541-548`: on `confirmedAmountMinor !== intent.amountMinor`, do NOT mark
|
||||||
|
SUCCEEDED — set a `AMOUNT_MISMATCH` state and alert. Populate `confirmedAmountMinor` in each
|
||||||
|
webhook handler (e.g. `waafi-webhook.service.ts:63`).
|
||||||
|
- `payments.service.ts:809` `finalizePaymentSuccess`: assert the settled amount equals
|
||||||
|
`booking.totalMinor` before confirming.
|
||||||
|
|
||||||
|
### C-5 — Late webhook resurrects an expired/cancelled booking
|
||||||
|
`payments.service.ts:809` `finalizePaymentSuccess`: refuse to confirm unless the booking is still
|
||||||
|
`PENDING_PAYMENT`; route a late success to the refund/again-available flow:
|
||||||
|
```ts
|
||||||
|
if (booking.status !== 'PENDING_PAYMENT') { await this.refundLatePayment(intent); return { alreadyFinalized: true }; }
|
||||||
|
```
|
||||||
|
|
||||||
|
### C-6 — Wallet double-spend (no row lock)
|
||||||
|
`payments.service.ts:461-484`: lock the row or use an atomic conditional update:
|
||||||
|
```ts
|
||||||
|
const res = await tx.$executeRaw`UPDATE passenger."WalletAccount"
|
||||||
|
SET "balanceMinor" = "balanceMinor" - ${total}
|
||||||
|
WHERE "passengerId" = ${booking.passengerId} AND "balanceMinor" >= ${total}`;
|
||||||
|
if (res === 0) return { success: false }; // insufficient / lost the race
|
||||||
|
```
|
||||||
|
Regression test: `critical-repro.e2e-spec.ts` (C-6, barrier-forced interleave).
|
||||||
|
|
||||||
|
### C-7 — Refund computed but never disbursed
|
||||||
|
`bookings.service.ts:2017-2027`: on `booking.cancelled`, actually disburse — credit the wallet or call
|
||||||
|
the provider refund — and drive `refundStatus PENDING → PROCESSING → COMPLETED`. Add a reconciliation
|
||||||
|
sweep for stuck `PENDING` rows.
|
||||||
|
|
||||||
|
### C-8 — Exchange-rate writes missing the ADMIN check (any passenger can write FX)
|
||||||
|
`fare-engine/currency.controller.ts:25,32`: add `@PassengerAdmin()` (+ `@ApiBearerAuth`) to the `PUT`
|
||||||
|
and `PATCH` handlers, matching the already-guarded `DELETE`. (Not unauthenticated — the global
|
||||||
|
JwtGuard requires a token; the gap is the missing *authorization*. Verified live: passenger → 200.)
|
||||||
|
|
||||||
|
### C-9 — `@Roles('ADMIN')` is dead
|
||||||
|
Register the guard globally so `@Roles` is enforced:
|
||||||
|
```ts
|
||||||
|
// app.module.ts providers
|
||||||
|
{ provide: APP_GUARD, useClass: RolesGuard }
|
||||||
|
```
|
||||||
|
…or convert `configurable-fare` / `segment-fare` / `system-config` controllers to the working
|
||||||
|
`@PassengerAdmin()`/`@PassengerStaff()` guards.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P1 — pricing correctness (HIGH)
|
||||||
|
|
||||||
|
- **H-1 promo → negative total** (`fare-engine.service.ts:192`): `totalEtbMinor = Math.max(0, subtotal - discount)`; DTO `@Min(0) @Max(100)` on `percentOff`, `@Min(0)` on `amountOffMinor` (`promos.dto.ts:20,26`).
|
||||||
|
- **H-2 missing FX → 1.0** (`currency.service.ts:142`): remove the silent `return 1.0` — throw / block the quote so it fails closed.
|
||||||
|
- **H-3/H-4 FX divergence & unit confusion** (`currency.service.ts`): collapse the 4 routines into one `convert(fromMinor, from, to): {minor|major}` with one rounding + one fallback policy; give it a branded `Minor`/`Major` return type and audit every `amountMinor` assignment across the payment boundary.
|
||||||
|
- **H-5 `percentOff:0` treated as FIXED** (`fare-engine.service.ts:185`): use `promo.percentOff != null ? … : promo.amountOffMinor`.
|
||||||
|
- **H-6 `insuranceFeeMinor` dual meaning** (`fare-engine.service.ts:130,154,167`): split into `insuranceMultiplierBps` and `insuranceFeeMinor`; use one consistently.
|
||||||
|
- **H-7 domestic ETB fare × USD→ETB rate** (`fare-engine.service.ts:157`): don't apply a currency conversion to a domestic base fare — separate the minor-unit scaling from FX.
|
||||||
|
- **H-8 baggage ignores seat class** (`excess-baggage.service.ts:53`): `findFirst({ where: { seatClassId } })`.
|
||||||
|
- **H-9 baggage/supp skip conversion + DJF rounding** (`excess-baggage.service.ts:166`, `supplementary-charges.service.ts:132`): route through `convertMinorToChargeMajor`.
|
||||||
|
- **H-10 future-dated FX applied now** (`currency.service.ts:88,137`): add `effectiveDate: { lte: new Date() }` to the rate lookups.
|
||||||
|
- **H-11 non-deterministic fare resolution** (`fare-engine.service.ts:84,298`): add `orderBy: { validFrom: 'desc' }`; include `validFrom` in `SegmentFareRule`'s unique key (`schema.prisma:1113`) to allow dated versions.
|
||||||
|
- **H-12 divergent free-child rules** (`fare-engine.service.ts:172` vs `bookings.service.ts:1690` vs `:1622`): extract ONE `computeFare()` used by quote, booking, and payment.
|
||||||
|
- **H-13 promo silently dropped → overcharge** (`review/page.tsx:587`, `search.service.ts:940-970`): book the breakdown's discounted `totalMinor`, not the client-summed undiscounted per-pax fares — or return discounted per-pax fares. Fold into the C-1 fix (server recomputes the authoritative total incl. promo).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## P2 — config validation & safety (MEDIUM) / UI (LOW)
|
||||||
|
|
||||||
|
- **M-1 negative fares**: add `@Min(0)` to `baseFareMinor` (`schedules.dto.ts:85,95`) and `basePrice` (`seat-classes.dto.ts:29`).
|
||||||
|
- **M-2 promo bounds/date**: `@Min(0) @Max(100)` on `percentOff`, `@IsDateString()` on `validUntil` (`promos.dto.ts`); add min-spend / usage-limit / max-cap columns.
|
||||||
|
- **M-3 `PATCH /config` arbitrary**: replace the raw body with a whitelisted, typed DTO with per-key range checks (`system-config.controller.ts:34`).
|
||||||
|
- **M-4 past-date / double-booked schedules** (`schedules.service.ts:105,124`): reject past `departureAt`; widen the overlap check to the train across all routes.
|
||||||
|
- **M-5 deletes ignore references** (`stations`/`seat-classes`/`currencies`/`schedules` services): add referential guards before delete/disable; wrap the schedule cascade (`schedules.service.ts:438-485`) in a transaction.
|
||||||
|
- **M-6 non-atomic booking write** (`bookings.service.ts:883-926`): wrap create + confirmSeats + tier increment in one `$transaction`.
|
||||||
|
- **L-1 DJF shown with 2 decimals** (`portal/src/utils/format.ts:22`): format per `CHARGE_CURRENCY_DECIMALS` (DJF = 0).
|
||||||
|
- **L-2 client-side fare math** (`portal/src/utils/fare-utils.ts`, `review/page.tsx`): render only server-computed amounts; never submit a client-derived total (ties to C-1).
|
||||||
|
- **L-3 loyalty accrual currency** (`payments.service.ts:1062`): accrue from the actual charged amount/currency, not ETB minor.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Suggested sequencing
|
||||||
|
|
||||||
|
1. **C-10, C-3, C-8, C-9** — quickest high-impact (a few lines each): unblock authenticated booking, stop free wallet credit, guard FX writes, enforce roles.
|
||||||
|
2. **C-1, C-2, C-4, C-5, C-6, C-7** — the money-integrity core (needs transactions + validation).
|
||||||
|
3. **H-2, H-3, H-4, H-7** — the FX/units foundation others compound on.
|
||||||
|
4. **H-1, H-5, H-8..H-12, M-1, M-2** — pricing correctness + validation.
|
||||||
|
5. **M-3..M-6, L-1..L-3** — config safety + UI consistency.
|
||||||
137
docs/TESTING.md
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
# EDR Passenger — Testing Runbook
|
||||||
|
|
||||||
|
How to run **everything**: the API bug-hunt harness and the UI (browser) harness, view the reports,
|
||||||
|
run a single test, and troubleshoot. Both are hermetic (their own Postgres on 5544 — never prod).
|
||||||
|
|
||||||
|
- **Findings:** `docs/ISSUES.md` · **Fixes:** `docs/SOLUTIONS.md`
|
||||||
|
- **Test plans:** `docs/e2e-test-matrix.md` (API) · `docs/ui-e2e-test-matrix.md` (UI)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 0. Prerequisites (one time)
|
||||||
|
|
||||||
|
- **Docker Desktop** running (the harness starts Postgres + RabbitMQ containers).
|
||||||
|
- **Node ≥ 20**, **pnpm 11** (`corepack enable` if needed).
|
||||||
|
- Install deps once: `pnpm install` (from repo root).
|
||||||
|
|
||||||
|
That's it — no manual DB, env, or auth setup. The scripts handle migrations, seeding, and auth.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Run the API harness (fast — no browser)
|
||||||
|
|
||||||
|
Covers pricing math, FX, wallet/refund/payment integrity, config validation, auth gaps, and the
|
||||||
|
authenticated-booking regression. **25 tests.**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash e2e/run.sh # infra + migrate + run + open HTML report
|
||||||
|
# or: pnpm test:e2e:passenger
|
||||||
|
```
|
||||||
|
|
||||||
|
Flags: `bash e2e/run.sh --down` (tear DB down after) · `--no-open` (don't open the browser).
|
||||||
|
|
||||||
|
Report → `apps/edr-passenger-api/e2e-report/index.html`.
|
||||||
|
|
||||||
|
**Run a single API suite / test:**
|
||||||
|
```bash
|
||||||
|
cd apps/edr-passenger-api
|
||||||
|
npx jest --config ./test/jest-e2e.json test/pricing-fare-engine.e2e-spec.ts
|
||||||
|
npx jest --config ./test/jest-e2e.json -t "double-spend" # by test name
|
||||||
|
```
|
||||||
|
(The test DB must be up — run `bash e2e/prepare.sh` once if you skipped `e2e/run.sh`.)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Run the UI harness (browser — Playwright)
|
||||||
|
|
||||||
|
Covers the real portal booking flow (search → pay → confirm) with the price cross-check, plus
|
||||||
|
backoffice auth. **One command boots the whole stack** (Postgres + RabbitMQ + passenger-api +
|
||||||
|
portal + backoffice), seeds a bookable trip, mints passenger + staff auth, runs, and opens the report.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm test:e2e:ui # = bash e2e-ui/run.sh (turnkey)
|
||||||
|
```
|
||||||
|
|
||||||
|
First run takes ~1–2 min (it builds `@edr/types` and boots the Next.js apps). If the stack is already
|
||||||
|
running, it reuses it. Report → `e2e-ui-report/index.html`.
|
||||||
|
|
||||||
|
**Run a subset / single UI test** (stack already up):
|
||||||
|
```bash
|
||||||
|
pnpm test:e2e:ui:only --project=portal # just the portal booking tests
|
||||||
|
pnpm test:e2e:ui:only --project=backoffice
|
||||||
|
npx playwright test -c e2e-ui/playwright.config.ts ua1 # by file name
|
||||||
|
```
|
||||||
|
|
||||||
|
**Watch it run in a real browser** (headed) or step through it:
|
||||||
|
```bash
|
||||||
|
npx playwright test -c e2e-ui/playwright.config.ts --project=portal --headed
|
||||||
|
npx playwright test -c e2e-ui/playwright.config.ts --project=portal --debug # Playwright Inspector
|
||||||
|
npx playwright show-report e2e-ui-report # open a past report
|
||||||
|
npx playwright show-trace test-results/**/trace.zip # trace of a failed run
|
||||||
|
```
|
||||||
|
|
||||||
|
Projects: `portal` (logged-in passenger), `guest` (no auth), `backoffice` (staff), `propagation`
|
||||||
|
(Track B — staff writes config via API → passenger portal reads; 4 tests).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Run absolutely everything
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash e2e/run.sh --no-open # API: 25 tests
|
||||||
|
pnpm test:e2e:ui # UI: 9 tests (boots the stack)
|
||||||
|
```
|
||||||
|
|
||||||
|
Or the standalone hermetic API DB only: `bash e2e/prepare.sh` then `pnpm --filter @edr/passenger-api test:e2e`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. What each harness contains
|
||||||
|
|
||||||
|
| Harness | Location | What it proves |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| API | `apps/edr-passenger-api/test/*.e2e-spec.ts` + `e2e/` | fare/FX math, promo/negative-total, wallet double-spend, refund-never-paid, FX-write authz gap, DTO validation gaps, **C-10 authed-booking FK regression** |
|
||||||
|
| UI | `e2e-ui/` | **UA-1** booking money cross-check; **UA-13** 🔴 client-forged total (C-1); **UA-8** 🔴 promo dropped (H-13); **Track B** — fare change propagates live (PB-2), **C-8** passenger rewrites FX, **M-1** negative price accepted; smokes |
|
||||||
|
|
||||||
|
A test name with **🔴** encodes buggy behavior — when it **passes**, the bug is present. After you
|
||||||
|
apply a fix from `docs/SOLUTIONS.md`, flip that test to assert the corrected behavior.
|
||||||
|
|
||||||
|
Seed for the UI flow: `apps/edr-passenger-api/test/fixtures/seed-ui.ts` (bookable Train/Schedule/
|
||||||
|
Coach/Seats + WALLET/TELEBIRR payment methods + promos + funded wallet). Standalone:
|
||||||
|
`DATABASE_URL=…5544 npx ts-node test/fixtures/seed-ui.ts`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Teardown
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f e2e/docker-compose.yml down # stops + wipes the test DB + RabbitMQ
|
||||||
|
```
|
||||||
|
The dev app processes (api/portal/backoffice) started by Playwright's `webServer` stop with the run;
|
||||||
|
if you booted them manually, `lsof -ti :4000 :5174 :5184 | xargs kill`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Troubleshooting
|
||||||
|
|
||||||
|
| Symptom | Cause / fix |
|
||||||
|
| --- | --- |
|
||||||
|
| `Cannot find module '@edr/types'` on API boot | Types not built → `pnpm --filter @edr/types build` (the run scripts do this). |
|
||||||
|
| API boot hangs on `AmqpConnection … ECONNREFUSED` | RabbitMQ not up → `docker compose -f e2e/docker-compose.yml up -d rabbitmq-e2e`. |
|
||||||
|
| `EADDRINUSE :::4000` | A stale API instance is bound → `lsof -ti :4000 | xargs kill -9`, then re-run. |
|
||||||
|
| Backoffice test redirects to `/login` | Staff storageState missing/expired → it's re-minted every run by `global-setup`; ensure `SEED_PASSENGER_STAFF=true` in `apps/edr-passenger-api/.env`. |
|
||||||
|
| Portal booking 400 `Booking_passengerId_fkey` | **This is finding C-10** (real bug). The harness seeds `Passenger.id == iamUserId` to work around it — see `docs/ISSUES.md` C-10. |
|
||||||
|
| Docker daemon not running | `open -a Docker`, wait ~15s, re-run. |
|
||||||
|
| Ports differ | api 4000, portal 5174, backoffice 5184, payment 3003, Postgres 5544, RabbitMQ 5672. Override via `PORTAL_URL` / `BACKOFFICE_URL` / `API_URL` / `DATABASE_URL` env. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Coverage status & what's next
|
||||||
|
|
||||||
|
- **Done:** full hermetic harness, 34 green tests (25 API + 9 UI). UA-1 keystone + UA-8/UA-13 abuse
|
||||||
|
rows, Track B propagation (PB-2, C-8, M-1), both auth roles, `BookingFlow` page-object.
|
||||||
|
- **Next (Track A):** more `bookOneAdult` variations — UA-2 (USD), UA-6 (round-trip); multi-passenger
|
||||||
|
free-child (UA-4/5) + gateway/DJF (UA-3) need helper extensions (per-pax form, forged webhook).
|
||||||
|
- **Next (Track B):** PB-5 (disable station→gone), PB-10 (delete FX→1.0 fallback), config-mid-flight.
|
||||||
|
|
||||||
|
See `docs/ui-e2e-test-matrix.md` for the full row-by-row plan.
|
||||||
259
docs/ui-e2e-test-matrix.md
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
# EDR Passenger Platform — Playwright UI E2E: Scenario Matrix + Phase 2 Harness Plan
|
||||||
|
|
||||||
|
**Phase 1 synthesis (MAPPING ONLY).** Consolidates the four mapping passes (portal booking, backoffice config, API/network contracts, auth+seed gaps) plus the adversarial review into a reviewable plan. Ties every scenario to an existing finding in `docs/ISSUES.md` (C-/H-/M-/L-) and `docs/e2e-test-matrix.md` (Suites A–K). **No tests written, no code changed, stack not run.**
|
||||||
|
|
||||||
|
Two framing facts inherited from Phase 1: (a) `fare-engine` is the live pricing pipeline; `configurable-fare` is dormant. (b) The domain seed (`prisma/seed.ts`) is disabled — the harness must build fixtures. Two blockers discovered this pass that flip several scenarios from "green/repro" to "invalid as written": **(1) the portal never applies promo discounts to the booked total** (§2 note), and **(2) both web apps have ZERO `data-testid`** (`grep -rn data-testid src` → 0 in both). Section 6 is the prerequisite testid checklist.
|
||||||
|
|
||||||
|
Ports: portal 5174, backoffice 5184, passenger-api 4000 (bare paths, no `/v1` except IAM `/v1/auth/*`), payment-api 3003 (`/webhooks/*`). Test DB port 5544 (`.env.test`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Master assertion recipe — capture price at every hop
|
||||||
|
|
||||||
|
Each UI test drives the browser but asserts the **money chain** via (a) Playwright network interception (`page.route` / `page.waitForResponse`), (b) direct DB reads against the 5544 test DB (Prisma client or SQL), and (c) DOM text assertions on rendered price nodes. The master invariant (matrix "Suite A"), trimmed to links that actually have backing in the maps:
|
||||||
|
|
||||||
|
```
|
||||||
|
portal card price (displayAmountMinor)
|
||||||
|
── [BREAK] on-select stored fare == Math.min(baseFareMinor) (results/page.tsx:320) ──
|
||||||
|
== /search/fare-breakdown displayFareMinor
|
||||||
|
== review computedTotal (reviewedTotalMinor sent, review/page.tsx:587)
|
||||||
|
== Booking.totalMinor/displayTotalMinor
|
||||||
|
== PaymentIntent.amountMinor
|
||||||
|
== charged amount (WALLET debit OR gateway webhook)
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Removed from the stated invariant (over-claimed):** `loyalty accrual` — no §1.2 DB read captures a `LoyaltyAccount.pointsBalance` increment and no green row asserts accrual vs price; and `refund basis` — there is **no refund endpoint anywhere in the API map** and no refund scenario. If a loyalty-accrual assertion is wanted, add a `LoyaltyAccount.pointsBalance` read to a green WALLET row (§1.2) and re-add only that link. Refund is out of scope until a refund surface is mapped (see §7).
|
||||||
|
|
||||||
|
### 1.1 Network interception targets (exact method + path, in flow order)
|
||||||
|
|
||||||
|
| Hop | Method + Path (passenger-api :4000) | Capture for assertion | Source |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Fayda gate | `GET /config/fayda-status` (confirm prefix — see §5.2) | `enabled` — must be `false` to expose manual passenger form | system-config.controller.ts:12,16 |
|
||||||
|
| Stations load | `GET /stations` | station list (search inventory) | portal search page.tsx:606 |
|
||||||
|
| Search | `POST /search` | body `{originStationId,destinationStationId,date,adultCount,childCount,nationality,journeyType,returnDate?}`; resp `outbound[].coachTypes[].classes[].{displayAmountMinor,baseFareMinor}` | results/page.tsx:234; search.controller.ts:13 |
|
||||||
|
| **On-select stored fare** | (client-side, no request) | `minFare = Math.min(...classes.map(c => c.baseFareMinor))` — **`baseFareMinor`, NOT the card's `displayAmountMinor`**; diverges for USD/DJF and flows downstream as `baseFareAdult` | results/page.tsx:320,821 |
|
||||||
|
| Promo (URL-injected) | `POST /promos/validate` `{code}` — **note: no in-portal "apply promo" input**; promo enters via `?promoCode=` → `searchCriteria.promoCode` | discount echo (does NOT reach booked total, see §2) | results/page.tsx:142 |
|
||||||
|
| Save passengers | `POST /passengers/save-details` | `{passengers[],userId,deviceId}` | passengers/page.tsx:1062 |
|
||||||
|
| Seatmap | `GET /seats/seatmap/{scheduleId}?coachTypeId=&journeyDirection=` | seat fares (`displayAmountMinor??baseFareMinor`) | seats/page.tsx:352 |
|
||||||
|
| Hold | `POST /seats/hold` `{scheduleId,origin,dest,journeyDirection,passengers:[{passengerId,seatId}]}` | resp `{holdId,expiresAt}` — **capture `expiresAt`** for PB-9 | seats/page.tsx:617; seats.controller.ts:164 |
|
||||||
|
| Fare breakdown | `GET /search/fare-breakdown?scheduleId=&...&passengers=<JSON>&displayCurrency=[&promoCode]` | resp per-pax `{fareMinor,displayFareMinor,isFree}` (**undiscounted**) + separate top-level `discountMinor`/`totalMinor` (**ignored by portal**) | review/page.tsx:550,559,574; search.service.ts:906-975 |
|
||||||
|
| Create booking | `POST /bookings` (auth) **or** `POST /bookings/guest` | body `reviewedTotalMinor` (undiscounted per-pax sum), per-pax `seatFareMinor`; resp `{bookingId/pnr,totalMinor}` | review/page.tsx:209,394,457; bookings.controller.ts:364/181 |
|
||||||
|
| Booking amount | `GET /payments/booking-amount?bookingId=¤cy=` | resp `{amount (MAJOR, plain /100), currency}` — portal ×100; currency is driven by the **PaymentMethod.currency**, not the booking | payment/page.tsx:68,73 |
|
||||||
|
| Initiate | `POST /payments/initiate` `{bookingId,method,paymentMethodId,payerAccount?,platform}` | resp `clientAction{type,url}` **and `merchantOrderId`** (required to key the forged webhook) | payment/page.tsx:123,149; payments.controller.ts:108 |
|
||||||
|
| Confirm (CAC) | `POST /payments/{bookingId}/confirm` `{otp}` | — | payment/page.tsx:174 |
|
||||||
|
| Poll intent | `GET /payments/intents/{bookingId}` | status transitions | confirmation/page.tsx:125 |
|
||||||
|
| Ticket | `GET /bookings/{bookingId}` | `{status,totalMinor,payment:{amountMinor,currency},tickets[].barcodePayload}` | confirmation/page.tsx:105 |
|
||||||
|
|
||||||
|
**Payment methods are DB-driven and must be seeded.** The portal renders only `PaymentMethod` rows where `enabled=true` (`payment/page.tsx:593`); `getSupportedPaymentMethods` returns enabled rows from the DB (`payments.controller.ts:273`). `seed-core.ts` seeds **none** → the pay page is empty and **every Track A row (WALLET included) hangs before paying**. See §5.4.
|
||||||
|
|
||||||
|
**WALLET path** (fully offline, no payment-api/webhook): `POST /payments/initiate {method:"WALLET"}` short-circuits server-side to `finalizePaymentSuccess`, debiting `booking.totalMinor` directly (payments.service.ts:461-523). Best UI settlement path for green tests. **Note:** WALLET produces **no `edr_payment.payment_intent`** and **bypasses the charge-currency conversion** — so the DJF whole-franc rounding is not observable here (see UA-3/UA-17, §2).
|
||||||
|
|
||||||
|
**Settlement injection for gateway tests** (no real gateway):
|
||||||
|
- **Forge webhook** to payment-api :3003 — `POST /webhooks/telebirr` or `/webhooks/dmoney` (both `signatureValid=true` hardcoded) with `merch_order_id = <captured merchantOrderId>`, `trade_status=success`. Card/Waafi require valid HMAC — avoid. A TELEBIRR initiate returns `clientAction REDIRECT` and the portal does `window.location.href = url` (`payment/page.tsx:149`) → the test must `page.route`-abort that navigation to the non-existent gateway, forge the webhook, then drive to `/booking/confirmation`.
|
||||||
|
- **Direct internal** — `POST /internal/payments/mark-paid` on :4000 with `{version:1,eventType:"payment.succeeded",service:"PASSENGER",referenceType:"BOOKING",referenceId:<bookingId>,...}`. `ServiceAuthGuard` returns true when `SERVICE_AUTH_TOKEN` unset (dev). Fastest deterministic settlement — but it will **not** reproduce a *late* webhook race (C-5, see UA-15) nor the charge-currency conversion (DJF, see UA-3).
|
||||||
|
|
||||||
|
### 1.2 DB reads to assert (test DB 5544)
|
||||||
|
|
||||||
|
- **passenger.Booking** (schema.prisma:510): `totalMinor`(:520), `currency`(:519), `displayCurrency`(:523), `displayTotalMinor`(:524), `status`(:518 → `"CONFIRMED"` on settle, payments.service.ts:846), `paidAt`(:550), `bookingType`, `returnLegStatus`.
|
||||||
|
- **passenger.BookingSeat**: `fareMinor`, `displayCurrency`, `displayFareMinor` (:597-599).
|
||||||
|
- **passenger.PaymentIntent** (:621): `amountMinor` **Float** (:624 — assert numeric, not int-exact), `currency`, `status`, `method`, `merchantOrderId`(unique), `paidAt`.
|
||||||
|
- **edr_payment.payment_intent** (payment-api source of truth): `amount_minor`/`confirmed_amount_minor` **double precision** (migration 1782000000000). Assert as numeric. **Scope: gateway rows only (UA-15)** — WALLET creates no payment-api intent.
|
||||||
|
- **WALLET extras**: `WalletLedgerEntry` DEBIT of `totalMinor` w/ `relatedBookingId`; `WalletAccount.balanceMinor` decremented; ticket row / `GET /tickets/{bookingRef}`.
|
||||||
|
|
||||||
|
### 1.3 Currency-formatting assertion (the L-1 target)
|
||||||
|
|
||||||
|
Portal renders every price through `formatFare(amountMinor, code)` = `` `${code} ${(amountMinor/100).toFixed(2)}` `` (fare-utils.ts:86) — **always /100, always 2 decimals**. So DJF renders `DJF 1234.56`. Whole-franc rounding lives on the **charge conversion** (`currency.service.ts:9-13`, `CHARGE_CURRENCY_DECIMALS`; `payments.service.ts:223-298`), which **WALLET short-circuits past**.
|
||||||
|
- **ETB / USD**: assert DOM shows 2dp; assert `renderedMajor*100 == amountMinor`.
|
||||||
|
- **DJF (WALLET)**: can only assert the **shape** mismatch — DOM shows 2dp (`DJF x.yy`) while `GET /payments/booking-amount` returns whole-franc-less major via plain `/100`. No settled 0-decimal `amount_minor` exists on this path.
|
||||||
|
- **DJF (gateway / forged-telebirr)**: the real L-1 settle-side repro — assert DOM 2dp vs the charge-currency-converted, whole-franc `amount_minor`/`confirmed_amount_minor`. UA-3/UA-17 must route here to observe it.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. TRACK A — Booking combinations matrix (pruned cross-product)
|
||||||
|
|
||||||
|
Axes: booking type {one-way, round-trip} × pax mix {1A, 2A, 1A+1C-free, 1A+2C (1 free/1 paid), 2A+3C} × class/berth {Economy Regular, Economy Bed} × nationality/currency {Ethiopian→ETB / LOCAL, Djiboutian→DJF / LOCAL, Other→USD / INTERNATIONAL} × promo {none, %valid, expired} × payment {WALLET, forged-telebirr}. Pruned to meaningful, finding-bearing rows.
|
||||||
|
|
||||||
|
> **PROMO REALITY (blocking correction).** `GET /search/fare-breakdown` returns **undiscounted per-pax `displayFareMinor`** and puts the discount only in *separate* top-level `discountMinor`/`totalMinor` (`search.service.ts:906-975`). The portal review page **ignores** that top-level total and client-reduces the per-pax fares (`review/page.tsx:587`), sending that **undiscounted** sum as `reviewedTotalMinor`. The (guest) booking service then **overrides its own discounted total with `reviewedTotalMinor` when `>0`** and clamps its fallback with `Math.max(0,…)` (`guest-booking.service.ts:240-244,487,536-537,744`). Consequences: **through the browser, a valid promo is silently dropped and `Booking.totalMinor` = full price**, and a negative total is **not reproducible via UI**. Promo enters only via `?promoCode=` URL param (no selector); lookup is `findUnique({where:{code}})` (`search.service.ts:941`) — seed codes must be unique and exact. Whether the **authed** `/bookings` path shares the same override+clamp is unverified (§7).
|
||||||
|
|
||||||
|
| ID | Scenario | Key inputs | Price cross-check expectation | Finding tie-in |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| **UA-1** | One-way, 1 adult, Economy Regular, Ethiopian/ETB, WALLET, no promo | ETB LOCAL regular class | Baseline green: card price == fare-breakdown == reviewedTotalMinor == Booking.totalMinor == PaymentIntent.amountMinor == wallet DEBIT. All equal, 2dp. (Optionally assert `LoyaltyAccount.pointsBalance` accrual here if the accrual link is kept.) | matrix A6 (baseline) |
|
||||||
|
| **UA-1b** | One-way, 1 adult, **Other/USD** — assert card `displayAmountMinor` vs on-select stored `baseFareMinor` | nationality OTHER → USD; INTL class | **First chain break:** assert the value stored on select (`Math.min(baseFareMinor)`, results:320) equals what flows to review, and flag if it differs from the card's `displayAmountMinor` (results:821) | div #1 (new); H-3/H-4 |
|
||||||
|
| **UA-2** | One-way, 1 adult, Other/USD, INTERNATIONAL Regular, WALLET | OTHER → displayCurrency USD | Chain equal in USD; assert USD 2dp; verify INTL 2× surcharge NOT silently dropped on seat-class base path | H-3/H-4, matrix B3 |
|
||||||
|
| **UA-3** | One-way, 1 adult, **Djiboutian/DJF**, **forged-telebirr** | DJIBOUTIAN → DJF; gateway path | **DJF displayed 2dp (`DJF x.yy`) but charged whole-franc** — assert DOM-2dp vs settled `amount_minor` (0-decimal). Must be a **gateway** row (WALLET bypasses the charge conversion). | **L-1** ✅, matrix C6/K3 |
|
||||||
|
| **UA-3w** | One-way, 1 adult, Djiboutian/DJF, WALLET (shape-only) | DJF, WALLET | Assert only the DOM-2dp vs `booking-amount`-major **shape** mismatch (no settle-side rounding on WALLET). | L-1 (partial) |
|
||||||
|
| **UA-4** | One-way, **1A + 1 child ≤5yr (free)**, ETB, WALLET | childCount 1, DOB<5yr | Child shows "CHILD - FREE"; free child excluded from total; `fare-breakdown.isFree==true` agrees with client `fare-utils.isFirstChild` | **H-12**, matrix B6 |
|
||||||
|
| **UA-5** | One-way, **1A + 2 children** (first free, second paid), ETB, WALLET | childCount 2 | Second child paid; client reduce (review:587) == breakdown sum; assert booking vs quote free-child count agree (quote uses min(child,adult); booking uses child-1) | **H-12**, matrix B6 |
|
||||||
|
| **UA-6** | Round-trip, 1 adult, Economy Regular, ETB, WALLET | ROUND_TRIP, outbound+inbound holds | Total == outbound+inbound; per-leg split `Math.round(fareMinor/2)` (review:481) reconciles to `outbound/inboundSeatFareMinor`; both `holdId` + `returnHoldId` present | div #6; matrix A3 |
|
||||||
|
| **UA-7** | Round-trip, 2 adults, **Economy Bed / berth**, INTERNATIONAL/USD, WALLET | bed seat-class; berth seats (`bedPosition`) | Berth priced as separate class; `getSeatFare` bedPosition match (seats:433) == breakdown; INTL berth surcharge consistent | requires **berth seed** (§5); matrix B3 |
|
||||||
|
| **UA-8** | One-way, 1 adult, ETB, **valid % promo via `?promoCode=`**, WALLET | valid `percentOff:10` in URL | ✅ FIXED — the browser still sends the undiscounted `reviewedTotalMinor`, but the authed `bookings.service` recomputes the authoritative fare and applies the promo, so `Booking.totalMinor` = `subtotal − discount`. | H-13 fixed & guarded; matrix D |
|
||||||
|
| **UA-11** | One-way, 1 adult, ETB, **expired promo** (validUntil past, active:true) via URL, WALLET | expired code | Promo rejected/ignored; total unaffected; UI shows no discount (consistent with UA-8 drop). | matrix D5 |
|
||||||
|
| **UA-13** | One-way, 1 adult, ETB, **client-forged low total** (intercept `POST /bookings`, rewrite `reviewedTotalMinor:1` + every `seatFareMinor:1`) | mutate body via `page.route` | ✅ FIXED — server recomputes the authoritative fare and REJECTS the underpayment (4xx); no booking persisted | **C-1** fixed & guarded, matrix A1 |
|
||||||
|
| **UA-14** | One-way guest, forged per-pax `seatFareMinor:0` (+ `reviewedTotalMinor:0`) | intercept `/bookings/guest` | ✅ FIXED — server recomputes the authoritative fare and REJECTS the free-ride underpayment (4xx); no booking persisted | **C-1** fixed & guarded, matrix A2/A4 |
|
||||||
|
| **UA-15** | One-way, 1 adult, ETB, **forged-telebirr short-pay** | booking total in the thousands; forge `/internal/payments/mark-paid` success with `amountMinor:1` | ✅ FIXED — the server compares the settled amount to the booking's display total and REFUSES a short payment; booking stays unconfirmed, no ticket | **C-4** fixed & guarded, matrix G1/G7 |
|
||||||
|
| **UA-16** | Round-trip, 2A+3C, mixed, ETB, WALLET | max pax spread | Stress free-child + per-leg split + total reduce; every backed hop equal | H-12, div #6 |
|
||||||
|
|
||||||
|
**Moved to the API-level harness (no valid browser path):**
|
||||||
|
- **UA-9 / UA-10 / UA-17** — over-100% `percentOff:150`, fixed `amountOffMinor > subtotal`, DJF×promo negative total. Not reproducible via UI: `reviewedTotalMinor` is positive-undiscounted and the server clamps to 0 (`guest-booking.service.ts`). Keep as API-only for **H-1**.
|
||||||
|
- **UA-12** — loyalty over-redeem (**C-2**). No browser path: `grep loyalty|redeem` across `portal/src/app/booking/**` + `booking-store.ts` → zero hits; `loyaltyRedemptionPoints` exists only on `POST /search/fare-quote`, which the portal never calls (it uses fare-breakdown, no loyalty param). Keep as API-only.
|
||||||
|
|
||||||
|
> Payment method: default all rows to WALLET (deterministic, offline). UA-3 and UA-15 use forged-telebirr. Rows tagged ✅ have an existing API-level repro in `docs/ISSUES.md`; the UI test proves the defect surfaces through the real browser flow (closing the "Suite K not yet run" gap, ISSUES.md L285-290).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. TRACK B — Config→portal propagation matrix
|
||||||
|
|
||||||
|
Each row: change made in backoffice UI (:5184) → API write → portal read (:5174) → propagation + staleTime → predicted finding. Backoffice self-refreshes immediately (each mutation invalidates its own React-Query key). Staleness only bites the **portal**.
|
||||||
|
|
||||||
|
| ID | Config change (backoffice UI) | Write endpoint | Portal read path | Propagation + staleTime | Predicted |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| **PB-1** | `/currencies` → edit ETB↔USD rate | `PATCH /currencies/{id}` `{rate}` | `GET /currencies` via useCurrencies.ts:19 | **staleTime 5min** — up to 5 min stale in portal | 🟠 matrix I1; ties H-2/H-3 |
|
||||||
|
| **PB-2** | `/tariff-rates` Tab1 → edit seat-class base | `PATCH /seat-classes/{id}` `{basePrice}` (**field `basePrice`**) | next `POST /search` (staleTime:0) + `GET /search/fare-breakdown` | Live, no cache | 🟢 matrix I2/K4; **field-name split** (basePrice vs baseFareMinor) — verify which fare-engine reads (§7) |
|
||||||
|
| **PB-3** | `/tariff-rates` Tab2/3 → route/segment fare override | `POST /schedules/routes/{routeId}/fare-rules` / `POST /schedules/segment-fares` | `POST /search` results | Live | 🟠 segment rule may not bite: engine matches `dto.nationality` or null; seeder writes 'LOCAL'/'INTERNATIONAL' → won't match (§5 note); matrix B5 / H-11 |
|
||||||
|
| **PB-4** | `/stations` → add station | `POST /stations` | `GET /stations` (SearchWidget staleTime 60s; root prefetch raw fetch) | ≤60s stale in SearchWidget; prefetch uncached | 🟠 matrix K5 |
|
||||||
|
| **PB-5** | `/stations` → **disable station** (isOperational=false) | `PATCH /stations/{id}` | `GET /stations` (portal passes **no operational filter**) | Only disappears if API omits non-operational server-side — **verify** (§7) | 🔴/🟠 matrix K5/I3 |
|
||||||
|
| **PB-6** | `/classes` → create seat class | `POST /fleet/classes` `{baseFareMinor,...}` (**field `baseFareMinor`**, different endpoint than PB-2) | `POST /search` + seats page | Live (search staleTime:0) | 🟠 **two seat-class stores** (`/seat-classes` vs `/fleet/classes`) — confirm which live search reads (§7) |
|
||||||
|
| **PB-7** | `/promos` (URL, nav commented) → create promo | `POST /promos` | `POST /promos/validate {code}` at results:142 | On demand | 🔴 **field-name mismatch**: UI sends `discountType/discountValue/isActive`; DTO expects `percentOff/amountOffMinor/active` → possibly inert promo. Verify; own finding. matrix K6 |
|
||||||
|
| **PB-8** | `/schedules` → create schedule for search date | `POST /schedules` | `POST /search` | Live | 🟢 must satisfy all 9 searchability rules (§5); matrix I2 |
|
||||||
|
| **PB-9** | `/settings` → change seat-hold TTL | `PATCH /config` (raw, no RQ, no invalidate) | **no portal read path** — config is ignored by the hold | Server-side runtime | 🔴 **reframed:** capture `expiresAt` from `POST /seats/hold` and assert it does **NOT** track the config value (hold uses a fixed TTL — reconcile 15-min `seats.service.ts:~272` vs the "20-min" claim). **G6** |
|
||||||
|
| **PB-10** | `/currencies` → **delete** a rate pair | `DELETE /currencies/{id}` | `POST /search` (USD/Other) faresByClass | ✅ FIXED — `getExchangeRate` fails closed (throws) instead of substituting 1.0; the USD search returns NO priced class (no bogus ~100×-underpriced fare), and a booking would be rejected too | **M-5 / H-2** fixed & guarded, matrix I6 |
|
||||||
|
|
||||||
|
**Deferred config surfaces (mapped, out of Phase 2 scope — stated so the matrix doesn't read as complete):** `/fare-management` (schedule-scoped `FareRule`, fare-source #3), `/pricing` (`/admin/segment-fares`, the dead-`@Roles` route), and `/routes` fare-rule CRUD beyond PB-3.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. HIGH-VALUE bug-class scenarios (concrete steps)
|
||||||
|
|
||||||
|
### 4A. Config-mid-flight (edit/disable between quote and pay) — matrix I7
|
||||||
|
- **BC-1**: Portal: search → results → select → hold → `/booking/review` (fare frozen). Second (backoffice) context: `PATCH /seat-classes/{id}` to triple the base. Back in portal: **Confirm**. **Assert** booking created at the *frozen* review price (`reviewedTotalMinor`), not the new one — booking never re-quotes; payment never re-validates. (ties C-1/L-2)
|
||||||
|
- **BC-2**: Same, but **disable the station** mid-flight (PB-5). Assert the in-flight booking still completes (no re-validation of station operational state).
|
||||||
|
|
||||||
|
### 4B. Delete-referenced (M-5 / matrix I3–I6)
|
||||||
|
- **BC-3**: Create a CONFIRMED booking (UA-1). Backoffice `/stations` → delete the origin station (accept cascade if FK 400 offered). **Assert** either a referential block OR an orphaned booking (`GET /bookings/{id}` resolves but station lookups break). `stations.service.ts:110-137` ignores bookings.
|
||||||
|
- **BC-4**: `/classes` delete a seat-class referenced by a booking's `bookingSeat`. Assert orphan/FK behavior. matrix I4.
|
||||||
|
- **BC-5**: `/currencies` delete the USD↔ETB pair with active INTL fares. Next portal INTL search → fare collapses ~100× (1.0 fallback). **H-2**, matrix I6.
|
||||||
|
- **BC-3b** (new): `/routes` → delete a route referenced by a live schedule; assert orphaned schedule vs referential block. `routes.controller.ts`.
|
||||||
|
- **BC-4b** (new): `/schedules` → cancel a schedule with a CONFIRMED booking; assert whether the booking is stranded. *(Both new rows may be explicitly deferred if Phase 2 scope is tight.)*
|
||||||
|
|
||||||
|
### 4C. Staleness (matrix I1)
|
||||||
|
- **BC-6**: Backoffice edit ETB↔USD rate. Immediately do a portal USD search → **assert** portal may show the OLD rate (useCurrencies staleTime 5×60×1000). **Then force a reload / navigation / window-focus** to trigger the refetch (React-Query `staleTime` does NOT auto-refetch on its own), and assert the new rate. Distinguishes the 5-min window from live search pricing.
|
||||||
|
|
||||||
|
### 4D. Validation-via-UI vs direct-API (Suite H — direct-API bypass class; UI proves the client gaps)
|
||||||
|
- **BC-7** ✅ FIXED: `PATCH /seat-classes` with `basePrice:-500` is now rejected with **400** — `CreateSeatClassDto.basePrice` (and `insuranceFeeMinor`) carry `@Min(0)`, applied to updates via `PartialType`. **M-1**, matrix H1/H2.
|
||||||
|
- **BC-8** ✅ FIXED: `POST /promos` with `percentOff:200` is now rejected with **400** — `CreatePromotionDto.percentOff` carries `@Min(0) @Max(100)` (and `amountOffMinor` `@Min(0)`). A valid ≤100% promo still succeeds. **M-2**, matrix H4.
|
||||||
|
- **BC-9** ✅ FIXED: `PATCH /config {seat_hold_duration_minutes:"-1"}` is now rejected with **400** — a whitelisted `UpdateSystemConfigDto` coerces each known key to a positive integer (`seat_hold_duration_minutes` bounded 1..60). A sane value still stores. **M-3**, matrix H7.
|
||||||
|
- **BC-10**: `/schedules` → past `departureAt`. Client blocks only `arrival<=departure`, no past-date block. Assert schedule created in the past. **M-4**, matrix H3.
|
||||||
|
- **BC-11** ✅ FIXED: `PUT/PATCH /fare-engine/exchange-rates` now carry `@PassengerAdmin()` (as DELETE already did). Anon → 401, regular passenger → **403 forbidden**, staff admin → 200. **C-8**, matrix J1.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. PHASE 2 harness plan
|
||||||
|
|
||||||
|
### 5.1 `playwright.config.ts` structure
|
||||||
|
```
|
||||||
|
e2e-ui/ # new; sibling to existing e2e/ (API harness)
|
||||||
|
playwright.config.ts
|
||||||
|
global-setup.ts # boot+await stack (VERIFAYDA_ENABLED=false), seed, mint storageStates
|
||||||
|
fixtures/
|
||||||
|
storage/passenger.json # generated by global-setup
|
||||||
|
storage/staff.json # generated by global-setup
|
||||||
|
seed-ui.ts # domain fixtures (see 5.4)
|
||||||
|
specs/
|
||||||
|
portal/*.spec.ts # Track A (UA-*), BC-1/2/6
|
||||||
|
backoffice/*.spec.ts # Track B config CRUD
|
||||||
|
propagation/*.spec.ts # BC-3..BC-11 cross-app
|
||||||
|
```
|
||||||
|
- **projects**: `portal` (baseURL `http://localhost:5174`, storageState `passenger.json`), `backoffice` (baseURL `http://localhost:5184`, storageState `staff.json`), plus a `guest` project (no storageState) for guest rows (UA-14). Pin `viewport` per project — portal desktop layout is `hidden md:block`; mobile diverges heavily. One shared **`globalSetup`**.
|
||||||
|
- `webServer`: optionally let Playwright start portal+backoffice (`pnpm --filter @edr/passenger-portal dev` etc.); reuseExistingServer in local dev.
|
||||||
|
|
||||||
|
### 5.2 global-setup
|
||||||
|
1. Ensure Postgres :5544 up and migrated (`.env.test`, `JWT_ACCESS_TOKEN_SECRET=test-access-secret-0000…`).
|
||||||
|
2. Boot passenger-api :4000 (**with `VERIFAYDA_ENABLED=false`** so the portal exposes the manual passenger form — otherwise Fayda defaults ON and every booking flow is blocked; the flag is `enabled = process.env.VERIFAYDA_ENABLED !== 'false'`, system-config.controller.ts:12,16) and payment-api :3003 (or assert reachable). Await `/health`-style ping. **Confirm which `fayda-status` prefix the portal hits** (`/config` vs `fare-engine.controller.ts:65`, which defaults `false`) so the right flag is set.
|
||||||
|
3. Run `seed-core.ts` + new `seed-ui.ts` (§5.4).
|
||||||
|
4. Mint the two storageStates (§5.3), write to `fixtures/storage/`.
|
||||||
|
|
||||||
|
### 5.3 The two storageState fixtures (grounded in auth map)
|
||||||
|
|
||||||
|
The passenger-API `JwtGuard` is **DB-backed against `iam.sessions`** — a fake JWT 401s. JWT payload is `{ id: <sessionId> }` (NOT userId); roles/permissions live in the session's `userInfo` jsonb.
|
||||||
|
|
||||||
|
**Passenger storageState (portal :5174)** — no server gate, but `/auth/profile` runs on load and self-ejects on 401:
|
||||||
|
1. Insert `iam.users` (individual, active).
|
||||||
|
2. Insert `iam.sessions` (`status='ACTIVE'`, future expiry, `userInfo.roles=[]`).
|
||||||
|
3. Insert Prisma `Passenger{iamUserId}` **+ `LoyaltyAccount` + `WalletAccount`(funded balanceMinor) + `UserPreferences`** — required or `getProfile` throws "Passenger not found" (passenger-auth.service.ts:262) and the portal logs out.
|
||||||
|
4. Mint JWT `{id: sessionId}` with `JWT_ACCESS_TOKEN_SECRET`.
|
||||||
|
5. Write storageState `localStorage` for origin :5174: `auth_token=<jwt>`, `auth_user=<profile JSON matching getProfile shape>`.
|
||||||
|
6. *Simplest alternative*: drive real `POST /auth/login` once with a seeded passenger, snapshot localStorage.
|
||||||
|
|
||||||
|
**Staff/admin storageState (backoffice :5184)** — server middleware requires the `auth_token` **cookie**; API staff calls require `userInfo.roles` carrying `super_admin`/`organization_admin` or the right permission keys:
|
||||||
|
- **Path A (robust)**: set `SEED_EDR_PASSENGER_ORG=true` + `SEED_PASSENGER_STAFF=true`, boot API → seeds org `edr`, roles, users (`passenger.admin@edr.local` / `Test@1234`). Then `POST /v1/auth/login` → `GET /v1/auth/me`, snapshot `localStorage` (`auth_token`,`auth_user`,`auth_refresh_token`) **and** set `auth_token` cookie.
|
||||||
|
- **Path B (fast)**: insert `iam.users`+`iam.sessions` with `userInfo.roles=[{key:'super_admin'}]`, mint JWT, write storageState localStorage + `auth_token` cookie for :5184, `auth_user` with `isSuperAdmin:true`. Config pages don't use `PermissionGuard` — only middleware cookie + API guards matter.
|
||||||
|
- **Note:** the `auth_token` cookie is **host-scoped (`localhost`), not port-scoped**, so it is also sent to the portal origin. Harmless (portal reads localStorage, not this cookie) but relevant if a single shared browser context is reused across projects.
|
||||||
|
|
||||||
|
### 5.4 Seed extensions (add to `seed-core.ts` or new `seed-ui.ts`)
|
||||||
|
`seed-core.ts` today has CoachType×1, SeatClass×2 (LOCAL 300 / INTL 500, both regular), Station×3 (A/B/C), Route×1 + 3 RouteStop (0/100/250km), 4 FX rows. **No Train/Schedule/Coach/Seat/Passenger/PaymentMethod.** Add:
|
||||||
|
- **PaymentMethod rows (BLOCKING — pay page is empty without them):** at minimum an **enabled `WALLET`** (currency ETB) and an **enabled `TELEBIRR`** (for UA-15). The method's `.currency` drives `booking-amount` and the displayed pay total (`payment/page.tsx:68`), so a DJF booking paid by an ETB wallet renders ETB on the pay page — relevant to UA-3/UA-3w.
|
||||||
|
- **Bookable trip** (all 9 searchability rules): `Train`×1 → `TrainSchedule`(A→C, `status:'SCHEDULED'`, `isPackageOnly:false`, `departureAt = now+2d`, whole-day in Addis TZ, **>30min ahead**) → 3 `TripStopTime`(A/B/C seq 1/2/3, future `plannedDepartureAt`) → `Coach`×1(`status:'ACTIVE'`) → `CoachAssignment`(`isOperational:true`) → `Seat`×N (AVAILABLE, non-empty `seatNumber`, `bedPosition:null`). Fares resolve via `SEAT_CLASS_BASE_FARE` distance formula with the existing USD→ETB row — no fare-rule rows needed for the green path.
|
||||||
|
- **Seat-class names (pin exactly):** the review flow builds a `seatClassName → seatClassId` map from `GET /seat-classes` (`review/page.tsx:277`) and fare-quote expects exact names `"Economy Regular"|"Economy Bed"` (search.dto.ts). Set `SeatClass.name` to the exact client strings, or those rows won't resolve. (The axis's "VIP Bed" has no seed/scenario — seed it or drop it from the axis; this matrix drops it.)
|
||||||
|
- **Berth combos** (UA-7): LOCAL+INTL SeatClasses with `bedPosition IN ('UPPER','MIDDLE','LOWER')` + a bed `Coach` + `Seat`s with lowercase `bedPosition:'upper'|'middle'|'lower'`.
|
||||||
|
- **Promotions** (UA-8/11): valid `percentOff:10`; expired (`validUntil` past, `active:true`). **Use schema field names `percentOff/amountOffMinor/active`** — NOT the backoffice UI field names. **Pin exact, unique `code` values** (lookup is `findUnique({where:{code}})`, search.service.ts:941); tests navigate with `?promoCode=<code>`. (Over-100% / over-subtotal promos belong to the API harness, not Track A.)
|
||||||
|
- **BaggageAllowance** ×1 per seat class (for excess-baggage rows).
|
||||||
|
- **Passenger satellite** for logged-in/WALLET: `Passenger{iamUserId}` + funded `WalletAccount(balanceMinor)` + `LoyaltyAccount`.
|
||||||
|
- **Blocked-seat negative case**: one `SeatBlock` row.
|
||||||
|
- **Segment override that actually bites** (PB-3): seed `SegmentFareRule` with `nationality:null` (engine matches `dto.nationality` string or null; 'LOCAL'/'INTERNATIONAL' rows won't match a real search).
|
||||||
|
- FX: existing 4 rows suffice for ETB/USD/DJF via ETB pivot; add `USD↔DJF` only if a direct-path currency test needs it.
|
||||||
|
|
||||||
|
### 5.5 Two smoke tests
|
||||||
|
- **Portal smoke** (`guest` project): home → search (seeded A→C, date = Addis date of `departureAt`) → results shows ≥1 card with a price → `formatFare` renders `ETB N.NN`. Asserts stack+seed+search+Fayda-flag wired.
|
||||||
|
- **Backoffice smoke** (`backoffice` project): staff storageState → `/currencies` loads list → open "Add Rate" modal. Asserts staff auth (cookie+localStorage+API token) all valid.
|
||||||
|
|
||||||
|
### 5.6 pnpm scripts + turbo task
|
||||||
|
- Root `package.json`: `"test:e2e:ui": "playwright test -c e2e-ui/playwright.config.ts"`.
|
||||||
|
- turbo `test:e2e:ui` task `"cache": false`; global-setup owns boot/seed. Single command: `pnpm test:e2e:ui`.
|
||||||
|
- Specs under `e2e-ui/specs/{portal,backoffice,propagation}`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. SELECTORS TO ADD — `data-testid` checklist (PREREQUISITE; both apps have 0 today)
|
||||||
|
|
||||||
|
Without these, every locator hangs off role/text/`name=`/placeholder, which is brittle across the portal's mobile/desktop breakpoint split. Recommend adding these before authoring (out of scope this phase; flag for user approval). **Promo has no selector — it enters via `?promoCode=` URL param.**
|
||||||
|
|
||||||
|
### Portal (`apps/edr-passenger-web/portal/src`)
|
||||||
|
- **Search**: `search-trip-type-oneway`/`-roundtrip` (page.tsx:777/789), `search-origin-input` (:1234), `search-dest-input` (:1274), `search-swap` (:1261), `search-depart-date` (:1305), `search-return-date` (:1486), `search-pax-trigger` (:1334), `pax-adult-plus`/`-minus`, `pax-child-plus`/`-minus` (PassengerModal:319/330), `nationality-eth`/`-dji`/`-other` (:352), `search-submit` (:1362).
|
||||||
|
- **Results**: `result-card` (per schedule), `result-card-price` (:821 — "starting from"), `result-select-btn` (:831), `coach-option` (:487), `coach-class-price` (:609), `continue-passenger-details` (:642), `modify-search` (:1282).
|
||||||
|
- **Passengers**: `pax-name-{i}`, `pax-dob-btn` (:327), `pax-gender`, `pax-nationality`, `pax-phone`, `pax-passport`, `verify-fayda-btn`, `enter-manually-toggle` (:1003), `create-account-checkbox`, `passengers-continue`.
|
||||||
|
- **DOB picker (`DobPickerModal` — required for UA-4/UA-5 free-child):** `dob-cal-etgc-toggle` (:346), `dob-manual-toggle` (:354), `dob-manual-day`/`-month`/`-year` inputs, `dob-day-cell-{n}`, `dob-confirm`.
|
||||||
|
- **Seats**: `seat-cell-{label}` (SeatButton:119), `berth-cell-{label}` (BedCard:38), `passenger-tab-{i}`, `auto-assign-seats` (~:2006), `seats-continue` (~:1989), `fare-change-confirm` (CustomModal).
|
||||||
|
- **Review**: `review-total` (:683 desktop / :1031 mobile), `review-pax-fare-{i}` (:662), `review-outbound-line`/`-return-line` (:670/674), `review-child-badge` (:657), `confirm-and-pay` (:694), `seat-hold-timer` (:719).
|
||||||
|
- **Payment**: `pay-method-{type}` (:597), `pay-total` (:390 / :651 mobile), `pay-submit` (:406), `cac-phone-input` (:488), `cac-otp-input` (:531).
|
||||||
|
- **Confirmation**: `confirmation-pnr` (:404), `confirmation-status` (:615), `confirmation-total-paid` (:631), `ticket-number-{i}` (:659), `download-voucher` (:794), `book-another` (:815).
|
||||||
|
|
||||||
|
### Backoffice (`apps/edr-passenger-web/backoffice/src`)
|
||||||
|
- **Login**: `login-email` (:165), `login-password` (:189), `login-submit` (:221).
|
||||||
|
- **DataTable / dialogs (shared)**: `add-entity-btn` (ActionButton), `row-edit-{id}`, `row-delete-{id}`, `confirm-dialog-confirm`, `confirm-cascade-checkbox`, `modal-submit`.
|
||||||
|
- **Tariff Rates** (`/tariff-rates`): `tab-seatclass`/`tab-route`/`tab-segment`/`tab-baggage`; RateModal fields already have `name=` (`name`, `baseFareMinor`, `insuranceFeeMinor`/`surchargeMinor`, `isActive`) — add `testid` on submit + modal.
|
||||||
|
- **Currencies** (`/currencies`): controlled form (no `name=`) — add `currency-from`, `currency-to`, `currency-rate`, `currency-save`, `currency-edit-rate`.
|
||||||
|
- **Classes** (`/classes`): FormData has `name=` (`coachTypeId,name,baseFareMinor,insuranceFeeMinor,isActive`) — add submit testid.
|
||||||
|
- **Schedules** (`/schedules`): controlled `addForm`/`DateTimePicker` — add `schedule-train`, `schedule-route`, `schedule-departure`, `schedule-arrival`, `schedule-status`, `schedule-save`, `schedule-cancel-btn`.
|
||||||
|
- **Stations** (`/stations`): FormData `name=` present — add submit testid.
|
||||||
|
- **Settings** (`/settings`): real `id=` (`hold-duration`, `hold-cutoff`, `boarding-window`, throttle-*) — usable, but add `config-save` testid.
|
||||||
|
- **Promos** (`/promos`, URL-only): FormData `name=` present — add submit + note field-name mismatch (PB-7).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. OPEN QUESTIONS / RISKS (decide before Phase 2)
|
||||||
|
|
||||||
|
1. **Valid IAM token for storageState** — Path A (real `/v1/auth/login` after enabling `SEED_EDR_PASSENGER_ORG` + `SEED_PASSENGER_STAFF`) vs Path B (direct `iam.sessions` insert with `userInfo.roles=[{key:'super_admin'}]` + self-signed JWT). **Recommend Path A for staff, Path B acceptable for passenger.** Confirm.
|
||||||
|
2. **Seed `iam.sessions` vs dev bypass** — there is **no dev auth bypass** in the passenger-API `JwtGuard` (DB-backed, no env short-circuit). A session row is mandatory for any authenticated flow. Confirm we may write directly to `iam.sessions` in the test DB.
|
||||||
|
3. **Target DB / stack** — doc drift: CLAUDE.md says `postgres-passenger:5434/edr_passenger`; `.env.example` says `localhost:5432/edr_database?schema=passenger`; `.env.test` uses `5544`; no compose file provisions it. **Confirm the harness stands up its own Postgres :5544 + boots both APIs, or targets an existing dev stack.**
|
||||||
|
4. **Stack-startup reliability** — global-setup must boot passenger-api (:4000) + payment-api (:3003) + portal (:5174) + backoffice (:5184) + RabbitMQ (vhost `payment`), or route settlement through `/internal/payments/mark-paid` to avoid RabbitMQ. **Recommend the internal-endpoint path for green settlement determinism** — but note it will **not** reproduce a *late*-webhook race (C-5) nor the charge-currency conversion (DJF, UA-3), which both require a real forged-gateway webhook to :3003.
|
||||||
|
5. **Gateway webhook signing** — Telebirr/dmoney accept forged payloads (`signatureValid=true` hardcoded); Card/Waafi require valid HMAC. UA-3/UA-15/gateway rows must use Telebirr/dmoney or the internal endpoint. Confirm we won't need real Card/Waafi HMAC in Phase 2.
|
||||||
|
6. **Fayda flag & prefix** — global-setup must set `VERIFAYDA_ENABLED=false` (else the manual passenger form is hidden and every booking flow blocks). **Confirm which `fayda-status` route the portal reads** (`/config`, default-ON, vs `fare-engine.controller.ts:65`, default-OFF) so the correct flag is set.
|
||||||
|
7. **Promo money-flow — does the authed path share the guest override+clamp?** The guest booking service overrides its discounted total with `reviewedTotalMinor` and clamps (`guest-booking.service.ts:240-244,487,536-537,744`), making promos inert and negative totals unreachable via UI. **Verify whether `bookings.service.ts` (authed `POST /bookings`) has the same override+clamp** before finalizing UA-8's "promo silently dropped" assertion for logged-in users.
|
||||||
|
8. **`data-testid` addition** — Section 6 requires source edits to both web apps (including the `DobPickerModal` internals for child-fare rows). Approve adding testids (small, low-risk) vs authoring against fragile role/text selectors. **Strongly recommend adding testids first.**
|
||||||
|
9. **Two field-name mismatches to verify at runtime** (each may be its own finding): (a) Promos UI sends `discountType/discountValue/isActive` but DTO expects `percentOff/amountOffMinor/active` → possibly inert promos (PB-7). (b) Seat-class base written as `basePrice` (Tariff Rates, PB-2) vs `baseFareMinor` (Classes page, PB-6), across two endpoints (`/seat-classes` vs `/fleet/classes`) — confirm which the live `fare-engine` reads before asserting PB-2/PB-6.
|
||||||
|
10. **Portal station operational filter** (PB-5) — portal `GET /stations` passes no `operational` filter; whether a disabled station disappears depends on the server default. Verify before writing the disable-propagation assertion.
|
||||||
|
11. **Currency-controller collision** — two `@Controller('currencies')` register the same base path (`currencies.controller.ts` + `currency.controller.ts`) with different guards/bodies; confirm which one the backoffice `/currencies` page hits before asserting PB-1/PB-10 write semantics.
|
||||||
|
12. **Seat-hold TTL number** (PB-9) — the matrix draft said "20-min cron"; the seed map says `expiresAt = now + 15min` (`seats.service.ts:~272`). **Reconcile the actual fixed TTL** before asserting that the hold ignores the config value.
|
||||||
|
13. **On-select fare divergence** (UA-1b) — confirm that the value stored on select is `Math.min(baseFareMinor)` (results:320) and not the card's `displayAmountMinor` (results:821), and pin which one downstream fare-breakdown reconciles against for non-ETB currencies.
|
||||||
|
14. **Scope of Track A vs B** — Track A (UA-*) covers pricing integrity through the real browser (closes the Suite K gap); Track B/BC-* covers config propagation. Confirm both tracks are in Phase 2 scope, or prioritize Track A first (highest money-risk, most ✅ findings to surface in-browser).
|
||||||
|
15. **Explicitly out-of-scope money surfaces (deferral, not omission):** loyalty redemption (C-2, no browser path), refunds (no endpoint mapped), over-100%/over-subtotal promo negative totals (H-1, API-only), transit / `ROUND_TRIP_TRANSIT` (needs a 2nd seeded route), package booking (`/packages`, `isPackageOnly` schedules, `packageTierPriceMinor × 2`), `/pay-balance/[token]` partial-payment / `returnLegStatus`, and config surfaces `/fare-management` + `/pricing`. Confirm these stay deferred so the matrix is not read as exhaustive.
|
||||||
90
e2e-ui-report/index.html
Normal file
4
e2e-ui/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
fixtures/storage/
|
||||||
|
test-results/
|
||||||
|
../e2e-ui-report/
|
||||||
|
.last-run.json
|
||||||
154
e2e-ui/README.md
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# EDR Passenger — Playwright UI E2E
|
||||||
|
|
||||||
|
Browser E2E for the passenger platform. **Track A** = portal booking combinations; **Track B** =
|
||||||
|
backoffice config → portal propagation. Scenario matrix: `docs/ui-e2e-test-matrix.md`.
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
**Track A + Track B implemented and green** — 27 passing specs, 1 documented skip (UA-7). Full suite
|
||||||
|
runs deterministically in ~1.8 min (`workers:1`, one seeded DB shared serially). The whole booking
|
||||||
|
flow is factored into `fixtures/booking-flow.ts` — `bookTrip(page, opts)` drives an arbitrary
|
||||||
|
passenger mix, nationality, trip type, promo, and payment method end to end (search → select →
|
||||||
|
passengers → seats → review → pay → confirmation), capturing the price at each hop; `bookOneAdult` is
|
||||||
|
a thin back-compat wrapper.
|
||||||
|
|
||||||
|
### Coverage vs `docs/ui-e2e-test-matrix.md`
|
||||||
|
|
||||||
|
**Track A — booking combinations** (`specs/portal`, `specs/guest`):
|
||||||
|
|
||||||
|
| ID | Spec | What it proves |
|
||||||
|
|----|------|----------------|
|
||||||
|
| UA-1 | `ua1` | one-way 1A ETB WALLET — full money chain equal, CONFIRMED |
|
||||||
|
| UA-1b | `ua1b-usd-divergence` | 🔴 USD card display fare diverges 100× from internal `baseFareMinor` |
|
||||||
|
| UA-2 | `ua2-usd-booking` | 🔴 USD booking — reviewed total (ETB) vs stored total (USD) diverge 100× |
|
||||||
|
| UA-3 | `ua3-djf` | DJF booking settles via forged gateway payment |
|
||||||
|
| UA-3w | `ua3-djf` | 🔴 DJF WALLET — reviewed (DJF) vs stored (ETB) diverge |
|
||||||
|
| UA-4 | `ua4-child-free` | first child <5 free → total = one adult fare, free child not seated |
|
||||||
|
| UA-5 | `ua5-second-child-paid` | 1A+2C → second child pays full fare (2 seats) |
|
||||||
|
| UA-6 | `ua6-round-trip` | 🔴 round-trip inbound leg has availability but no priced coach (booking blocked) |
|
||||||
|
| UA-8 | `ua8-promo-drop` | ✅ valid promo now applied server-side; booking stored at the discounted total (H-13 fixed & guarded) |
|
||||||
|
| UA-11 | `ua11-expired-promo` | expired promo ignored → full fare booked |
|
||||||
|
| UA-13 | `ua13-forged-total` | ✅ client-forged `reviewedTotalMinor=1` now REJECTED 4xx, nothing stored (C-1 fixed & guarded) |
|
||||||
|
| UA-14 | `ua14-forged-seat-fare` | ✅ guest forged `seatFareMinor=0` now REJECTED 4xx, nothing stored (C-1 fixed & guarded) |
|
||||||
|
| UA-15 | `ua15-telebirr-shortpay` | ✅ short-paid gateway settlement now REFUSED — booking stays unconfirmed (C-4 fixed & guarded) |
|
||||||
|
| UA-16 | `ua16-family-mix` | 2A+3C → two children free, one paid (3 seats) |
|
||||||
|
|
||||||
|
**Track B — config → portal propagation & validation gaps** (`specs/backoffice`, `specs/propagation`):
|
||||||
|
|
||||||
|
| ID | Spec | What it proves |
|
||||||
|
|----|------|----------------|
|
||||||
|
| PB-1 | `pb-config-propagation` | FX-rate change propagates live to portal USD pricing |
|
||||||
|
| PB-2 / PB-2b | `pb-config-propagation` | seat-class base-price change propagates live; `basePrice` field drives the fare |
|
||||||
|
| PB-4 | `pb-config-propagation` | station added in backoffice appears in the portal station list |
|
||||||
|
| PB-7 | `config-validation` | 🔴 promo created with backoffice UI field names is inert (field-name mismatch) |
|
||||||
|
| PB-10 | `pb-config-propagation` | ✅ deleting an FX rate now FAILS CLOSED (no priced fare) instead of a silent 1.0 collapse (M-5/H-2 fixed & guarded) |
|
||||||
|
| BC-7 | `pb-config-propagation` | ✅ negative seat-class base price now REJECTED (400, DTO `@Min(0)`) (M-1 fixed & guarded) |
|
||||||
|
| BC-8 | `config-validation` | ✅ promo over 100% now REJECTED (400, DTO `@Max(100)`) (M-2 fixed & guarded) |
|
||||||
|
| BC-9 | `config-validation` | ✅ negative seat-hold duration now REJECTED (400, whitelisted typed `/config` DTO) (M-3 fixed & guarded) |
|
||||||
|
| BC-10 | `config-validation` | 🔴 schedule with a past departure accepted (M-4) |
|
||||||
|
| BC-11 | `pb-config-propagation` | ✅ non-admin passenger now FORBIDDEN (403) from FX writes; admin still allowed (C-8 fixed & guarded) |
|
||||||
|
|
||||||
|
### Deferred (documented, not silently omitted)
|
||||||
|
|
||||||
|
- **UA-7** (round-trip berth) — `specs/portal/ua7-berth.spec.ts` is `test.skip` with the reason: needs
|
||||||
|
a bed CoachType + reverse-leg pricing, both backend prerequisites (see UA-6 for the reverse-leg gap).
|
||||||
|
- **UA-9 / UA-10 / UA-12 / UA-17** — the matrix moves these to the API-level harness (over-100% /
|
||||||
|
over-subtotal promos, loyalty over-redeem, DJF×promo negative total): no reachable browser path
|
||||||
|
(server clamps `reviewedTotalMinor` ≥ 0; the portal never calls the loyalty/fare-quote path).
|
||||||
|
- **PB-3/5/6/8/9, BC-1…BC-6** — additional config surfaces and delete-referenced/mid-flight/staleness
|
||||||
|
variations of the finding classes already covered above; the matrix marks several as deferrable.
|
||||||
|
|
||||||
|
**Gateway settlement:** the real telebirr gateway is unreachable in the test env (`/payments/initiate`
|
||||||
|
502s), so gateway rows (UA-3, UA-15) create the booking through the real browser flow and then inject
|
||||||
|
settlement via `POST /internal/payments/mark-paid` — exactly the matrix's settlement-injection plan.
|
||||||
|
|
||||||
|
Portal testids used: `result-select-btn`, `coach-option`, `continue-passenger-details`,
|
||||||
|
`pay-method-{TYPE}`. Everything else (passengers form + DOB modal, seats auto-assign, review, payment)
|
||||||
|
is driven via name/placeholder/role selectors — no further source edits were needed.
|
||||||
|
|
||||||
|
**Seed note:** `Passenger.id` is set EQUAL to the IAM user id — see the comment in `seed-ui.ts`
|
||||||
|
(`UI_IDS.passenger`) and the SUSPECTED FINDING below. Each coach seeds 48 seats so a full serial run
|
||||||
|
never exhausts availability across specs.
|
||||||
|
|
||||||
|
## Suspected finding (surfaced while building UA-1)
|
||||||
|
|
||||||
|
`POST /bookings` (authenticated) overrides `passengerId` with the JWT user id
|
||||||
|
(`bookings.controller.ts:528-532`, "never trust the request body"). The service only resolves an
|
||||||
|
iamUserId → Passenger when it is **non-UUID** (`bookings.service.ts:773`). IAM user ids are UUIDs, so
|
||||||
|
the resolver never fires and `booking.create` uses the iamUserId directly as `passengerId` → FK
|
||||||
|
violation unless `Passenger.id == iamUserId`. This is why the seed aligns them. **Verify against a
|
||||||
|
real IAM-authenticated booking** — if `req.user.id` is genuinely the iamUserId in production,
|
||||||
|
authenticated portal bookings may be broken (guest path unaffected). Candidate for `docs/ISSUES.md`.
|
||||||
|
|
||||||
|
## Prerequisites — the running stack
|
||||||
|
|
||||||
|
The suite drives a live stack. `global-setup.ts` seeds + mints auth, but assumes the apps are
|
||||||
|
already up. Bring them up once (leave running across test runs):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Infra: test Postgres (5544) + RabbitMQ (5672, payment vhost)
|
||||||
|
bash e2e/prepare.sh # postgres + migrations
|
||||||
|
docker compose -f e2e/docker-compose.yml up -d rabbitmq-e2e
|
||||||
|
|
||||||
|
# 2. Build the shared types package (nest build needs the dist)
|
||||||
|
pnpm --filter @edr/types build
|
||||||
|
|
||||||
|
# 3. passenger-api on :4000 against the 5544 DB, with org+staff seeding on
|
||||||
|
# (apps/edr-passenger-api/.env sets DATABASE_URL=…5544, PORT=4000,
|
||||||
|
# RABBITMQ_ENABLED=false, FAYDA_ENABLED=false, SEED_EDR_PASSENGER_ORG=true,
|
||||||
|
# SEED_PASSENGER_STAFF=true, DEFAULT_PASSWORD=Test@1234)
|
||||||
|
( cd apps/edr-passenger-api && pnpm dev ) # background
|
||||||
|
|
||||||
|
# 4. Web apps (each has .env.local → NEXT_PUBLIC_API_URL=http://localhost:4000)
|
||||||
|
( cd apps/edr-passenger-web/portal && pnpm dev ) # :5174, background
|
||||||
|
( cd apps/edr-passenger-web/backoffice && pnpm dev ) # :5184, background
|
||||||
|
```
|
||||||
|
|
||||||
|
> `playwright.config.ts` now declares a `webServer` block that auto-boots api/portal/backoffice and
|
||||||
|
> **reuses** them if already running, so steps 3–4 are optional in local dev. Gateway rows settle via
|
||||||
|
> the internal `mark-paid` endpoint, so `apps/edr-payment-api` (:3003) is **not** required.
|
||||||
|
|
||||||
|
## Run
|
||||||
|
|
||||||
|
One command (infra → build → boot → seed+auth → run → open report):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash e2e-ui/run.sh # all projects; args pass through to playwright
|
||||||
|
bash e2e-ui/run.sh --headed # watch it in a real browser
|
||||||
|
SLOWMO=500 bash e2e-ui/run.sh --headed # slow every action by 500ms
|
||||||
|
bash e2e-ui/run.sh --project=portal ua4 # one project / filter by title
|
||||||
|
```
|
||||||
|
|
||||||
|
Or, against an already-running stack:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm test:e2e:ui # all projects
|
||||||
|
pnpm test:e2e:ui -- --project=guest --project=backoffice # smoke only
|
||||||
|
```
|
||||||
|
|
||||||
|
HTML report → `e2e-ui-report/index.html`.
|
||||||
|
|
||||||
|
## Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
e2e-ui/
|
||||||
|
playwright.config.ts projects: portal (passenger auth), guest (none),
|
||||||
|
backoffice (staff auth), propagation (cross-app)
|
||||||
|
global-setup.ts seeds test DB (seed-ui.ts) + mints staff.json via real /login
|
||||||
|
fixtures/
|
||||||
|
data.ts station IDs, sample depart date, results deep-link helper
|
||||||
|
storage/staff.json generated staff storageState (gitignored)
|
||||||
|
specs/{guest,portal,backoffice,propagation}/*.spec.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
Seed lives with the API harness: `apps/edr-passenger-api/test/fixtures/seed-ui.ts` (extends
|
||||||
|
`seed-core.ts` with a bookable Train/Schedule/Coach/Seats, enabled PaymentMethods WALLET+TELEBIRR,
|
||||||
|
promos, funded wallet). Run standalone: `npx ts-node test/fixtures/seed-ui.ts`.
|
||||||
|
|
||||||
|
## Auth model (grounded in the app)
|
||||||
|
|
||||||
|
- **Portal (passenger)**: `localStorage.auth_token` only, no server gate. (passenger storageState is
|
||||||
|
a Phase 3 item — smoke uses the `guest` project.)
|
||||||
|
- **Backoffice (staff)**: middleware requires the `auth_token` **cookie**; API guards check the
|
||||||
|
session's permissions. `global-setup` logs in as the seeded `passenger.admin@edr.local` through
|
||||||
|
the real `/login` UI and snapshots both. No hand-crafted tokens.
|
||||||
367
e2e-ui/fixtures/booking-flow.ts
Normal file
@@ -0,0 +1,367 @@
|
|||||||
|
import { expect, type Locator, type Page, type Route } from "@playwright/test";
|
||||||
|
import { API_URL, CURRENCY_BY_NATIONALITY, resultsUrl } from "./data";
|
||||||
|
|
||||||
|
export type Nationality = "Ethiopian" | "Djiboutian" | "Other";
|
||||||
|
|
||||||
|
export interface PaxSpec {
|
||||||
|
category: "ADULT" | "CHILD";
|
||||||
|
name: string;
|
||||||
|
gender: "Male" | "Female";
|
||||||
|
/** Date of birth. Adults: age 6–110. Children: age < 5 (to be free-eligible). */
|
||||||
|
dob: { d: number; m: number; y: number };
|
||||||
|
/** Adults only. */
|
||||||
|
phone?: string;
|
||||||
|
/** Non-Ethiopian adults only. */
|
||||||
|
passport?: { number: string; country: string; issue: string; expiry: string };
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TripOptions {
|
||||||
|
nationality?: Nationality;
|
||||||
|
tripType?: "ONE_WAY" | "ROUND_TRIP";
|
||||||
|
/** If `passengers` is omitted, N adults + M children are generated. */
|
||||||
|
adults?: number;
|
||||||
|
children?: number;
|
||||||
|
passengers?: PaxSpec[];
|
||||||
|
/** Promo code injected via the results URL (`?promoCode=`) — the portal has no promo input. */
|
||||||
|
promoCode?: string;
|
||||||
|
/** Mutate the outgoing POST /bookings(/guest) body (e.g. forge reviewedTotalMinor). */
|
||||||
|
mutateBookingBody?: (body: any) => any;
|
||||||
|
/**
|
||||||
|
* When the POST /bookings(/guest) is expected to be rejected (e.g. a forged total the server
|
||||||
|
* must refuse): don't assert a bookingId and return early with `bookingStatus` set, instead of
|
||||||
|
* driving on to payment. Lets a spec assert the server refused the booking.
|
||||||
|
*/
|
||||||
|
tolerateBookingError?: boolean;
|
||||||
|
paymentMethod?: "WALLET" | "TELEBIRR";
|
||||||
|
/**
|
||||||
|
* For TELEBIRR: after initiate, abort the external gateway redirect and forge settlement via the
|
||||||
|
* internal mark-paid endpoint. `amountMinor` lets a test short-pay (settle for the wrong amount).
|
||||||
|
* Defaults to settling for the real booking total.
|
||||||
|
*/
|
||||||
|
forgeSettlement?: { amountMinor?: number };
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BookingResult {
|
||||||
|
/** displayAmountMinor on the results card (what the passenger sees — passenger currency). */
|
||||||
|
cardDisplayMinor: number;
|
||||||
|
/** baseFareMinor on the results card (internal ETB fare; diverges from display for USD/DJF). */
|
||||||
|
cardBaseFareMinor: number;
|
||||||
|
/** The search response's displayCurrency (ETB/USD/DJF). */
|
||||||
|
displayCurrency: string;
|
||||||
|
/** reviewedTotalMinor the browser actually sent to POST /bookings. */
|
||||||
|
reviewedTotalMinor: number;
|
||||||
|
/** HTTP status the POST /bookings(/guest) returned (2xx on success, 4xx when the server rejects). */
|
||||||
|
bookingStatus: number;
|
||||||
|
bookingId: string;
|
||||||
|
/** Whether the flow used /bookings/guest. */
|
||||||
|
guest: boolean;
|
||||||
|
initiateStatus: number;
|
||||||
|
/** merchantOrderId returned by POST /payments/initiate (gateway methods). */
|
||||||
|
merchantOrderId?: string;
|
||||||
|
/** true once /booking/confirmation is reached. */
|
||||||
|
confirmed: boolean;
|
||||||
|
/** The GET /search/fare-breakdown payload seen on the review page (per-pax fares + discount). */
|
||||||
|
fareBreakdown: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
const PHONE_BY_NATIONALITY: Record<Nationality, string> = {
|
||||||
|
Ethiopian: "912345678",
|
||||||
|
Djiboutian: "77123456",
|
||||||
|
Other: "14155552671",
|
||||||
|
};
|
||||||
|
|
||||||
|
const PASSPORT_COUNTRY: Record<Nationality, string> = {
|
||||||
|
Ethiopian: "",
|
||||||
|
Djiboutian: "Djibouti",
|
||||||
|
Other: "Canada",
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Build a default passenger list: adults first, then children (matches form index → category). */
|
||||||
|
export function makePassengers(adults: number, children: number, nationality: Nationality): PaxSpec[] {
|
||||||
|
const list: PaxSpec[] = [];
|
||||||
|
for (let i = 0; i < adults; i++) {
|
||||||
|
list.push({
|
||||||
|
category: "ADULT",
|
||||||
|
name: `Adult ${i + 1}`,
|
||||||
|
gender: i % 2 === 0 ? "Male" : "Female",
|
||||||
|
dob: { d: 15, m: 6, y: 1990 },
|
||||||
|
phone: PHONE_BY_NATIONALITY[nationality],
|
||||||
|
passport:
|
||||||
|
nationality === "Ethiopian"
|
||||||
|
? undefined
|
||||||
|
: { number: "P1234567", country: PASSPORT_COUNTRY[nationality], issue: "2020-01-01", expiry: "2032-01-01" },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
for (let j = 0; j < children; j++) {
|
||||||
|
// Age ~3 as of 2026 → strictly under 5, so isChild() and the free-child policy apply.
|
||||||
|
list.push({ category: "CHILD", name: `Child ${j + 1}`, gender: "Female", dob: { d: 10, m: 3, y: 2023 } });
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Passenger card locator (scoped by the "Passenger N" heading; N is 1-based). */
|
||||||
|
function card(page: Page, i: number): Locator {
|
||||||
|
return page.locator("div.card").filter({ hasText: new RegExp(`Passenger ${i + 1}\\b`) });
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Open the DOB modal for a passenger card, enter the date manually, and confirm. */
|
||||||
|
async function fillDob(page: Page, c: Locator, dob: { d: number; m: number; y: number }) {
|
||||||
|
await c.getByRole("button", { name: /select date of birth/i }).click();
|
||||||
|
await page.getByRole("button", { name: /enter manually/i }).click();
|
||||||
|
await page.getByPlaceholder("DD").fill(String(dob.d));
|
||||||
|
await page.getByPlaceholder("MM").fill(String(dob.m));
|
||||||
|
await page.getByPlaceholder("YYYY").fill(String(dob.y));
|
||||||
|
await page.getByRole("button", { name: /^confirm/i }).click();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Fill one passenger card (adult or child), revealing the manual form if it's gated. */
|
||||||
|
async function fillPassenger(page: Page, i: number, spec: PaxSpec) {
|
||||||
|
const c = card(page, i);
|
||||||
|
const nameInput = page.locator(`input[name="passengers.${i}.name"]`);
|
||||||
|
// Adults may sit behind a Fayda gate that must be toggled open. Wait for whichever appears first —
|
||||||
|
// the name field (already expanded) or the reveal button — so we never toggle an open form closed.
|
||||||
|
const reveal = c.getByRole("button", { name: /enter details manually|skip for now/i }).first();
|
||||||
|
await Promise.race([
|
||||||
|
nameInput.waitFor({ state: "visible", timeout: 15_000 }).catch(() => {}),
|
||||||
|
reveal.waitFor({ state: "visible", timeout: 15_000 }).catch(() => {}),
|
||||||
|
]);
|
||||||
|
if (!(await nameInput.isVisible().catch(() => false)) && (await reveal.isVisible().catch(() => false))) {
|
||||||
|
await reveal.click();
|
||||||
|
}
|
||||||
|
await nameInput.waitFor({ state: "visible", timeout: 15_000 });
|
||||||
|
|
||||||
|
await nameInput.fill(spec.name);
|
||||||
|
await page.locator(`select[name="passengers.${i}.gender"]`).selectOption(spec.gender);
|
||||||
|
if (spec.category === "ADULT" && spec.phone) {
|
||||||
|
await c.locator('input[type="tel"]').first().fill(spec.phone);
|
||||||
|
}
|
||||||
|
if (spec.passport) {
|
||||||
|
await page.locator(`input[name="passengers.${i}.passportNumber"]`).fill(spec.passport.number);
|
||||||
|
await page.locator(`select[name="passengers.${i}.passportCountry"]`).selectOption(spec.passport.country);
|
||||||
|
await page.locator(`input[name="passengers.${i}.passportIssueDate"]`).fill(spec.passport.issue);
|
||||||
|
await page.locator(`input[name="passengers.${i}.passportExpiryDate"]`).fill(spec.passport.expiry);
|
||||||
|
}
|
||||||
|
await fillDob(page, c, spec.dob);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Select a coach + continue, once for a one-way leg or twice for a round trip. */
|
||||||
|
async function selectResultsAndContinue(page: Page, roundTrip: boolean) {
|
||||||
|
const pickCoach = async (scope: Locator | Page) => {
|
||||||
|
await (scope as Page).getByTestId("result-select-btn").first().click();
|
||||||
|
await page.getByTestId("coach-option").first().click();
|
||||||
|
await page.getByTestId("continue-passenger-details").first().click();
|
||||||
|
};
|
||||||
|
await pickCoach(page); // outbound (advances to the inbound step for a round trip)
|
||||||
|
if (roundTrip) {
|
||||||
|
// The inbound step re-renders result cards; scope to the inbound section if present.
|
||||||
|
const inbound = page.locator("#inbound-section");
|
||||||
|
const scope = (await inbound.count()) > 0 ? inbound : page;
|
||||||
|
await scope.getByTestId("result-select-btn").first().click();
|
||||||
|
await page.getByTestId("coach-option").first().click();
|
||||||
|
await page.getByTestId("continue-passenger-details").first().click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Auto-assign seats (fills all passengers at once and auto-continues). Twice for a round trip. */
|
||||||
|
async function assignSeatsAndContinue(page: Page, roundTrip: boolean) {
|
||||||
|
const autoAssign = () => page.getByRole("button", { name: /auto assign seats/i }).first().click();
|
||||||
|
await autoAssign(); // outbound
|
||||||
|
if (roundTrip) {
|
||||||
|
// After the outbound hold, the page switches to the return-seat map.
|
||||||
|
await page.getByRole("heading", { name: /return seats/i }).waitFor({ timeout: 20_000 });
|
||||||
|
await autoAssign(); // inbound
|
||||||
|
}
|
||||||
|
await page.waitForURL(/\/booking\/review/, { timeout: 30_000 });
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Drives the real portal booking flow end to end for an arbitrary passenger mix, nationality,
|
||||||
|
* trip type, promo, and payment method. Captures the price at each hop for DB cross-checks.
|
||||||
|
* Runs as a guest when the page context has no auth token (the `guest` Playwright project).
|
||||||
|
*/
|
||||||
|
export async function bookTrip(page: Page, opts: TripOptions = {}): Promise<BookingResult> {
|
||||||
|
const nationality = opts.nationality ?? "Ethiopian";
|
||||||
|
const tripType = opts.tripType ?? "ONE_WAY";
|
||||||
|
const roundTrip = tripType === "ROUND_TRIP";
|
||||||
|
const passengers =
|
||||||
|
opts.passengers ?? makePassengers(opts.adults ?? 1, opts.children ?? 0, nationality);
|
||||||
|
const adults = passengers.filter((p) => p.category === "ADULT").length;
|
||||||
|
const children = passengers.filter((p) => p.category === "CHILD").length;
|
||||||
|
|
||||||
|
// Optional: forge the POST /bookings body before it leaves the browser.
|
||||||
|
if (opts.mutateBookingBody) {
|
||||||
|
await page.route(/\/bookings(\/guest)?(\?|$)/, async (route: Route) => {
|
||||||
|
if (route.request().method() !== "POST") return route.continue();
|
||||||
|
const body = route.request().postDataJSON();
|
||||||
|
await route.continue({ postData: JSON.stringify(opts.mutateBookingBody!(body)) });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Search / results ────────────────────────────────────────────────────────
|
||||||
|
const searchDone = page.waitForResponse(
|
||||||
|
(r) => r.url().includes("/search") && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
const base = resultsUrl({ nationality, adults, children, tripType });
|
||||||
|
await page.goto(opts.promoCode ? `${base}&promoCode=${encodeURIComponent(opts.promoCode)}` : base);
|
||||||
|
const search = await searchDone;
|
||||||
|
const out = (await search.json())?.data?.outbound?.[0];
|
||||||
|
const cardCls = out?.faresByClass?.[0];
|
||||||
|
const cardBaseFareMinor = cardCls?.baseFareMinor;
|
||||||
|
const cardDisplayMinor = cardCls?.displayAmountMinor ?? cardBaseFareMinor;
|
||||||
|
const displayCurrency = out?.displayCurrency ?? CURRENCY_BY_NATIONALITY[nationality];
|
||||||
|
expect(cardBaseFareMinor).toBeGreaterThan(0);
|
||||||
|
|
||||||
|
await selectResultsAndContinue(page, roundTrip);
|
||||||
|
// Both authenticated users and guests may pass through the auth-check interstitial: authenticated
|
||||||
|
// users auto-forward to passengers, guests must click "Continue as guest". Handle whichever wins.
|
||||||
|
await page.waitForURL(/\/booking\/(passengers|auth-check)/, { timeout: 30_000 });
|
||||||
|
if (/\/booking\/auth-check/.test(page.url())) {
|
||||||
|
await Promise.race([
|
||||||
|
page.waitForURL(/\/booking\/passengers/, { timeout: 15_000 }).catch(() => {}),
|
||||||
|
page
|
||||||
|
.getByRole("button", { name: /continue as guest/i })
|
||||||
|
.click({ timeout: 15_000 })
|
||||||
|
.catch(() => {}),
|
||||||
|
]);
|
||||||
|
await page.waitForURL(/\/booking\/passengers/, { timeout: 30_000 });
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Passenger form ────────────────────────────────────────────────────────────
|
||||||
|
for (let i = 0; i < passengers.length; i++) await fillPassenger(page, i, passengers[i]);
|
||||||
|
await page.getByRole("button", { name: /continue to seat selection/i }).click();
|
||||||
|
await page.waitForURL(/\/booking\/seats/, { timeout: 30_000 });
|
||||||
|
|
||||||
|
// ── Seats: auto-assign → hold → review ────────────────────────────────────────
|
||||||
|
const fbDone = page
|
||||||
|
.waitForResponse((r) => r.url().includes("/search/fare-breakdown"), { timeout: 25_000 })
|
||||||
|
.catch(() => null);
|
||||||
|
await assignSeatsAndContinue(page, roundTrip);
|
||||||
|
const fbRes = await fbDone;
|
||||||
|
const fbJson = fbRes ? await fbRes.json() : null;
|
||||||
|
const fareBreakdown = fbJson?.data ?? fbJson;
|
||||||
|
|
||||||
|
// ── Review: confirm → POST /bookings(/guest) ──────────────────────────────────
|
||||||
|
const bookingDone = page.waitForResponse(
|
||||||
|
(r) => /\/bookings(\/guest)?(\?|$)/.test(r.url()) && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
await page.getByRole("button", { name: /^confirm/i }).first().click();
|
||||||
|
const bookingRes = await bookingDone;
|
||||||
|
const bookingStatus = bookingRes.status();
|
||||||
|
const guest = bookingRes.url().includes("/bookings/guest");
|
||||||
|
const reviewedTotalMinor = bookingRes.request().postDataJSON()?.reviewedTotalMinor;
|
||||||
|
|
||||||
|
// Expected-rejection path: the server refused the booking (e.g. a forged total). Return early
|
||||||
|
// with the status so the caller can assert the refusal; there is no booking to drive to payment.
|
||||||
|
if (opts.tolerateBookingError && !bookingRes.ok()) {
|
||||||
|
return {
|
||||||
|
cardDisplayMinor,
|
||||||
|
cardBaseFareMinor,
|
||||||
|
displayCurrency,
|
||||||
|
reviewedTotalMinor,
|
||||||
|
bookingStatus,
|
||||||
|
bookingId: "",
|
||||||
|
guest,
|
||||||
|
initiateStatus: 0,
|
||||||
|
confirmed: false,
|
||||||
|
fareBreakdown,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const bookingData = (await bookingRes.json())?.data ?? {};
|
||||||
|
const bookingId = bookingData.id ?? bookingData.bookingId;
|
||||||
|
expect(bookingId).toBeTruthy();
|
||||||
|
await page.waitForURL(/\/booking\/(payment|confirmation)/, { timeout: 30_000 });
|
||||||
|
|
||||||
|
const result: BookingResult = {
|
||||||
|
cardDisplayMinor,
|
||||||
|
cardBaseFareMinor,
|
||||||
|
displayCurrency,
|
||||||
|
reviewedTotalMinor,
|
||||||
|
bookingStatus,
|
||||||
|
bookingId,
|
||||||
|
guest,
|
||||||
|
initiateStatus: 0,
|
||||||
|
confirmed: false,
|
||||||
|
fareBreakdown,
|
||||||
|
};
|
||||||
|
|
||||||
|
// A zero-total booking skips payment and lands straight on confirmation.
|
||||||
|
if (/\/booking\/confirmation/.test(page.url())) {
|
||||||
|
result.confirmed = true;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Payment ─────────────────────────────────────────────────────────────────
|
||||||
|
const method = opts.paymentMethod ?? "WALLET";
|
||||||
|
|
||||||
|
if (method === "WALLET") {
|
||||||
|
// WALLET settles fully server-side, synchronously → straight to /booking/confirmation.
|
||||||
|
const initiateDone = page.waitForResponse(
|
||||||
|
(r) => r.url().includes("/payments/initiate") && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
await page.getByTestId("pay-method-WALLET").first().click();
|
||||||
|
await page.getByRole("button", { name: /^pay\b/i }).first().click();
|
||||||
|
result.initiateStatus = (await initiateDone).status();
|
||||||
|
result.confirmed = await page
|
||||||
|
.waitForURL(/\/booking\/confirmation/, { timeout: 25_000 })
|
||||||
|
.then(() => true)
|
||||||
|
.catch(() => false);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gateway (TELEBIRR): the real provider is unreachable in the test env (initiate 502s), so we do
|
||||||
|
// what the matrix prescribes — inject settlement. The booking is already created through the real
|
||||||
|
// browser flow and sits in PENDING_PAYMENT; we forge the payment.succeeded event to the internal
|
||||||
|
// mark-paid endpoint (ungated when SERVICE_AUTH_TOKEN is unset), then let the confirmation page's
|
||||||
|
// poll flip to CONFIRMED. `forgeSettlement.amountMinor` lets a test short-pay (settle wrong amount).
|
||||||
|
const amountMinor = opts.forgeSettlement?.amountMinor ?? reviewedTotalMinor;
|
||||||
|
// mark-paid sits behind the global JwtGuard (any valid token passes; ServiceAuthGuard is a no-op
|
||||||
|
// when SERVICE_AUTH_TOKEN is unset). Reuse the logged-in passenger's token from localStorage.
|
||||||
|
const authToken = await page.evaluate(() => localStorage.getItem("auth_token"));
|
||||||
|
const markPaid = await page.request.post(`${API_URL}/internal/payments/mark-paid`, {
|
||||||
|
headers: authToken ? { Authorization: `Bearer ${authToken}` } : {},
|
||||||
|
data: {
|
||||||
|
version: 1,
|
||||||
|
eventId: crypto.randomUUID(), // @IsUUID
|
||||||
|
eventType: "payment.succeeded",
|
||||||
|
occurredAt: new Date().toISOString(),
|
||||||
|
service: "PASSENGER",
|
||||||
|
intentId: crypto.randomUUID(), // @IsUUID
|
||||||
|
referenceType: "BOOKING",
|
||||||
|
referenceId: bookingId,
|
||||||
|
merchantOrderId: `e2e-${bookingId}`,
|
||||||
|
provider: "TELEBIRR",
|
||||||
|
amountMinor,
|
||||||
|
currency: "ETB",
|
||||||
|
providerTxnId: `e2e-txn-${bookingId}`,
|
||||||
|
paidAt: new Date().toISOString(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
result.initiateStatus = markPaid.status();
|
||||||
|
// mark-paid finalizes synchronously; confirm authoritatively via the booking status API (the
|
||||||
|
// confirmation page's DOM depends on the client store, which a direct navigation may not carry).
|
||||||
|
await page.goto("/booking/confirmation");
|
||||||
|
for (let attempt = 0; attempt < 10 && !result.confirmed; attempt++) {
|
||||||
|
const res = await page.request.get(`${API_URL}/bookings/${bookingId}`, {
|
||||||
|
headers: authToken ? { Authorization: `Bearer ${authToken}` } : {},
|
||||||
|
});
|
||||||
|
const status = ((await res.json().catch(() => ({})))?.data ?? {})?.status;
|
||||||
|
if (status === "CONFIRMED") result.confirmed = true;
|
||||||
|
else await page.waitForTimeout(500);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Back-compat wrapper: one-way single adult (used by the original UA-1/8/13 specs). */
|
||||||
|
export interface BookingOptions {
|
||||||
|
nationality?: Nationality;
|
||||||
|
promoCode?: string;
|
||||||
|
mutateBookingBody?: (body: any) => any;
|
||||||
|
tolerateBookingError?: boolean;
|
||||||
|
paymentMethod?: "WALLET" | "TELEBIRR";
|
||||||
|
}
|
||||||
|
export async function bookOneAdult(page: Page, opts: BookingOptions = {}) {
|
||||||
|
const r = await bookTrip(page, { ...opts, adults: 1, children: 0, tripType: "ONE_WAY" });
|
||||||
|
// Preserve the original field name used by the existing specs.
|
||||||
|
return { ...r, cardFareMinor: r.cardBaseFareMinor };
|
||||||
|
}
|
||||||
92
e2e-ui/fixtures/data.ts
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
/** Shared constants mirroring apps/edr-passenger-api/test/fixtures/{seed-core,seed-ui}.ts. */
|
||||||
|
export const STATIONS = {
|
||||||
|
A: "00000000-0000-4000-8000-000000000020", // Alpha / AAA
|
||||||
|
B: "00000000-0000-4000-8000-000000000021", // Bravo / BBB
|
||||||
|
C: "00000000-0000-4000-8000-000000000022", // Charlie / CCC
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
export const SCHEDULE_ID = "00000000-0000-4000-8000-000000000101";
|
||||||
|
export const RETURN_SCHEDULE_ID = "00000000-0000-4000-8000-000000000201";
|
||||||
|
export const SEAT_CLASS_LOCAL = "00000000-0000-4000-8000-000000000010";
|
||||||
|
export const SEAT_CLASS_INTL = "00000000-0000-4000-8000-000000000011";
|
||||||
|
export const COACH_TYPE_ID = "00000000-0000-4000-8000-000000000001";
|
||||||
|
export const ROUTE_ID = "00000000-0000-4000-8000-000000000030";
|
||||||
|
export const PROMO_VALID = "PROMO10";
|
||||||
|
export const PROMO_EXPIRED = "EXPIRED50";
|
||||||
|
|
||||||
|
export const API_URL = process.env.API_URL ?? "http://localhost:4000";
|
||||||
|
|
||||||
|
/** Friendly nationality name → the enum the portal/search expects. */
|
||||||
|
export const NATIONALITY_ENUM = {
|
||||||
|
Ethiopian: "ETHIOPIAN",
|
||||||
|
Djiboutian: "DJIBOUTIAN",
|
||||||
|
Other: "OTHER",
|
||||||
|
} as const;
|
||||||
|
export type Nationality = keyof typeof NATIONALITY_ENUM;
|
||||||
|
|
||||||
|
/** Display currency the search returns per nationality (asserted by the currency specs). */
|
||||||
|
export const CURRENCY_BY_NATIONALITY = {
|
||||||
|
Ethiopian: "ETB",
|
||||||
|
Djiboutian: "DJF",
|
||||||
|
Other: "USD",
|
||||||
|
} as const;
|
||||||
|
|
||||||
|
function tokenFrom(file: string): string {
|
||||||
|
const fs = require("node:fs") as typeof import("node:fs");
|
||||||
|
const path = require("node:path") as typeof import("node:path");
|
||||||
|
const raw = JSON.parse(fs.readFileSync(path.join(__dirname, "storage", file), "utf8"));
|
||||||
|
for (const origin of raw.origins ?? []) {
|
||||||
|
for (const item of origin.localStorage ?? []) {
|
||||||
|
if (item.name === "auth_token") return item.value as string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error(`auth_token not found in ${file} — did global-setup run?`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Staff/admin auth token minted by global-setup (backoffice storageState). */
|
||||||
|
export function staffToken(): string {
|
||||||
|
return tokenFrom("staff.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Regular passenger (non-admin) auth token minted by global-setup (portal storageState). */
|
||||||
|
export function passengerToken(): string {
|
||||||
|
return tokenFrom("passenger.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Must match seed-ui.sampleDepartAt(): now + 2 days at 06:00Z. */
|
||||||
|
export function sampleDepartDate(): string {
|
||||||
|
const d = new Date();
|
||||||
|
d.setUTCDate(d.getUTCDate() + 2);
|
||||||
|
d.setUTCHours(6, 0, 0, 0);
|
||||||
|
return d.toISOString().slice(0, 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deep-link to the results page (bypasses the search form, which cannot emit tripType/returnDate).
|
||||||
|
* `nationality` accepts the friendly name ("Ethiopian"|"Djiboutian"|"Other") and is emitted as the
|
||||||
|
* enum the results page expects. For a round trip, pass tripType "ROUND_TRIP" — returnDate defaults
|
||||||
|
* to the same calendar day (the seeded return leg departs 8h after the outbound).
|
||||||
|
*/
|
||||||
|
export function resultsUrl(opts?: {
|
||||||
|
adults?: number;
|
||||||
|
children?: number;
|
||||||
|
nationality?: string;
|
||||||
|
tripType?: "ONE_WAY" | "ROUND_TRIP";
|
||||||
|
returnDate?: string;
|
||||||
|
}) {
|
||||||
|
const nat = opts?.nationality ?? "Ethiopian";
|
||||||
|
const enumNat = (NATIONALITY_ENUM as Record<string, string>)[nat] ?? nat.toUpperCase();
|
||||||
|
const p = new URLSearchParams({
|
||||||
|
origin: STATIONS.A,
|
||||||
|
destination: STATIONS.C,
|
||||||
|
date: sampleDepartDate(),
|
||||||
|
tripType: opts?.tripType ?? "ONE_WAY",
|
||||||
|
adults: String(opts?.adults ?? 1),
|
||||||
|
children: String(opts?.children ?? 0),
|
||||||
|
nationality: enumNat,
|
||||||
|
});
|
||||||
|
if ((opts?.tripType ?? "ONE_WAY") === "ROUND_TRIP") {
|
||||||
|
p.set("returnDate", opts?.returnDate ?? sampleDepartDate());
|
||||||
|
}
|
||||||
|
return `/booking/results?${p.toString()}`;
|
||||||
|
}
|
||||||
74
e2e-ui/global-setup.ts
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
import { chromium, type FullConfig } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import * as fs from "node:fs";
|
||||||
|
import * as path from "node:path";
|
||||||
|
import { seedUi } from "../apps/edr-passenger-api/test/fixtures/seed-ui";
|
||||||
|
import { seedPassengerSession } from "../apps/edr-passenger-api/test/fixtures/seed-passenger-session";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Playwright global-setup for the UI E2E suite.
|
||||||
|
* 1. Seeds the 5544 test DB with the bookable trip + payment methods + promos (seed-ui.ts).
|
||||||
|
* 2. Mints a passenger IAM session + token → passenger.json storageState (localStorage).
|
||||||
|
* 3. Logs in as the seeded backoffice admin via the REAL /login UI → staff.json storageState.
|
||||||
|
*
|
||||||
|
* Assumes the stack is already running (api :4000, portal :5174, backoffice :5184).
|
||||||
|
*/
|
||||||
|
const STORAGE_DIR = path.join(__dirname, "fixtures", "storage");
|
||||||
|
const API = process.env.API_URL ?? "http://localhost:4000";
|
||||||
|
const PORTAL = process.env.PORTAL_URL ?? "http://localhost:5174";
|
||||||
|
const BACKOFFICE = process.env.BACKOFFICE_URL ?? "http://localhost:5184";
|
||||||
|
const DB_URL =
|
||||||
|
process.env.DATABASE_URL ??
|
||||||
|
"postgresql://edr:edr_secret@localhost:5544/edr_database?schema=passenger";
|
||||||
|
const STAFF = { email: "passenger.admin@edr.local", password: process.env.DEFAULT_PASSWORD ?? "Test@1234" };
|
||||||
|
|
||||||
|
export default async function globalSetup(_config: FullConfig) {
|
||||||
|
fs.mkdirSync(STORAGE_DIR, { recursive: true });
|
||||||
|
process.env.DATABASE_URL = DB_URL;
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
try {
|
||||||
|
console.log("[global-setup] seeding test DB…");
|
||||||
|
await seedUi(prisma);
|
||||||
|
|
||||||
|
console.log("[global-setup] minting passenger session…");
|
||||||
|
const { token } = await seedPassengerSession(prisma);
|
||||||
|
const profileRes = await fetch(`${API}/auth/profile`, {
|
||||||
|
headers: { Authorization: `Bearer ${token}` },
|
||||||
|
});
|
||||||
|
if (!profileRes.ok) throw new Error(`/auth/profile failed: HTTP ${profileRes.status}`);
|
||||||
|
const profile = (await profileRes.json())?.data ?? {};
|
||||||
|
|
||||||
|
const passengerState = {
|
||||||
|
cookies: [],
|
||||||
|
origins: [
|
||||||
|
{
|
||||||
|
origin: PORTAL,
|
||||||
|
localStorage: [
|
||||||
|
{ name: "auth_token", value: token },
|
||||||
|
{ name: "auth_user", value: JSON.stringify(profile) },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
fs.writeFileSync(path.join(STORAGE_DIR, "passenger.json"), JSON.stringify(passengerState));
|
||||||
|
console.log("[global-setup] passenger.json written");
|
||||||
|
} finally {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log("[global-setup] minting staff storageState via real login…");
|
||||||
|
const browser = await chromium.launch();
|
||||||
|
const ctx = await browser.newContext();
|
||||||
|
const page = await ctx.newPage();
|
||||||
|
await page.goto(`${BACKOFFICE}/login`, { waitUntil: "domcontentloaded" });
|
||||||
|
await page.locator('input[type="email"]').fill(STAFF.email);
|
||||||
|
await page.locator('input[type="password"]').fill(STAFF.password);
|
||||||
|
await Promise.all([
|
||||||
|
page.waitForURL((url) => !url.pathname.startsWith("/login"), { timeout: 30_000 }),
|
||||||
|
page.locator('button[type="submit"]').click(),
|
||||||
|
]);
|
||||||
|
await ctx.storageState({ path: path.join(STORAGE_DIR, "staff.json") });
|
||||||
|
console.log("[global-setup] staff.json written");
|
||||||
|
await browser.close();
|
||||||
|
}
|
||||||
94
e2e-ui/playwright.config.ts
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
import { defineConfig, devices } from "@playwright/test";
|
||||||
|
import * as path from "node:path";
|
||||||
|
|
||||||
|
// Defaults so `pnpm test:e2e:ui` runs standalone. Must match apps/edr-passenger-api/.env.
|
||||||
|
process.env.DATABASE_URL ??=
|
||||||
|
"postgresql://edr:edr_secret@localhost:5544/edr_database?schema=passenger";
|
||||||
|
process.env.JWT_ACCESS_TOKEN_SECRET ??= "test-access-secret-0000000000000000000000";
|
||||||
|
process.env.DEFAULT_PASSWORD ??= "Test@1234";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Playwright UI E2E for the EDR passenger platform.
|
||||||
|
* Track A (portal booking combinations) + Track B (backoffice config → portal propagation).
|
||||||
|
* See docs/ui-e2e-test-matrix.md. global-setup boots/awaits the stack, seeds the 5544 test DB,
|
||||||
|
* and mints the passenger + staff storageStates.
|
||||||
|
*/
|
||||||
|
const PORTAL = process.env.PORTAL_URL ?? "http://localhost:5174";
|
||||||
|
const BACKOFFICE = process.env.BACKOFFICE_URL ?? "http://localhost:5184";
|
||||||
|
const STORAGE = path.join(__dirname, "fixtures", "storage");
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
testDir: path.join(__dirname, "specs"),
|
||||||
|
fullyParallel: false, // shared seeded DB — serialize to keep assertions deterministic
|
||||||
|
workers: 1,
|
||||||
|
retries: 0,
|
||||||
|
timeout: 60_000,
|
||||||
|
expect: { timeout: 10_000 },
|
||||||
|
globalSetup: path.join(__dirname, "global-setup.ts"),
|
||||||
|
reporter: [
|
||||||
|
["list"],
|
||||||
|
["html", { outputFolder: path.join(__dirname, "..", "e2e-ui-report"), open: "never" }],
|
||||||
|
],
|
||||||
|
// Boot the app tier automatically; reuse it if it's already running (dev). Infra (Postgres 5544,
|
||||||
|
// RabbitMQ, migrations, @edr/types build) is handled by e2e-ui/run.sh BEFORE Playwright starts.
|
||||||
|
webServer: [
|
||||||
|
{
|
||||||
|
command: "pnpm --filter @edr/passenger-api dev",
|
||||||
|
url: "http://localhost:4000/stations",
|
||||||
|
timeout: 180_000,
|
||||||
|
reuseExistingServer: true,
|
||||||
|
env: { GITHUB_PACKAGE_TOKEN: process.env.GITHUB_PACKAGE_TOKEN ?? "dummy" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
command: "pnpm --filter @edr/passenger-portal dev",
|
||||||
|
url: PORTAL,
|
||||||
|
timeout: 120_000,
|
||||||
|
reuseExistingServer: true,
|
||||||
|
env: { GITHUB_PACKAGE_TOKEN: process.env.GITHUB_PACKAGE_TOKEN ?? "dummy" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
command: "pnpm --filter @edr/passenger-backoffice dev",
|
||||||
|
url: `${BACKOFFICE}/login`,
|
||||||
|
timeout: 120_000,
|
||||||
|
reuseExistingServer: true,
|
||||||
|
env: { GITHUB_PACKAGE_TOKEN: process.env.GITHUB_PACKAGE_TOKEN ?? "dummy" },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
use: {
|
||||||
|
trace: "retain-on-failure",
|
||||||
|
screenshot: "only-on-failure",
|
||||||
|
actionTimeout: 15_000,
|
||||||
|
// SLOWMO=500 bash e2e-ui/run.sh --headed → pause 500ms between each browser action
|
||||||
|
launchOptions: { slowMo: Number(process.env.SLOWMO ?? 0) },
|
||||||
|
},
|
||||||
|
projects: [
|
||||||
|
{
|
||||||
|
name: "portal", // Track A — logged-in passenger
|
||||||
|
testMatch: /specs\/portal\/.*\.spec\.ts/,
|
||||||
|
use: {
|
||||||
|
...devices["Desktop Chrome"],
|
||||||
|
baseURL: PORTAL,
|
||||||
|
storageState: path.join(STORAGE, "passenger.json"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "guest", // Track A — guest bookings (no auth)
|
||||||
|
testMatch: /specs\/guest\/.*\.spec\.ts/,
|
||||||
|
use: { ...devices["Desktop Chrome"], baseURL: PORTAL },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "backoffice", // Track B — staff/admin
|
||||||
|
testMatch: /specs\/backoffice\/.*\.spec\.ts/,
|
||||||
|
use: {
|
||||||
|
...devices["Desktop Chrome"],
|
||||||
|
baseURL: BACKOFFICE,
|
||||||
|
storageState: path.join(STORAGE, "staff.json"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "propagation", // cross-app: staff writes config via API → passenger portal reads
|
||||||
|
testMatch: /specs\/propagation\/.*\.spec\.ts/,
|
||||||
|
use: { ...devices["Desktop Chrome"], baseURL: PORTAL },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
40
e2e-ui/run.sh
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# One-command UI E2E: infra → build → boot app tier (via Playwright webServer) → seed+auth → run →
|
||||||
|
# open the HTML report. Idempotent; reuses an already-running stack. Any args pass through to
|
||||||
|
# playwright (e.g. `bash e2e-ui/run.sh --project=portal ua1`).
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
ROOT="$HERE/.."
|
||||||
|
API="$ROOT/apps/edr-passenger-api"
|
||||||
|
export GITHUB_PACKAGE_TOKEN="${GITHUB_PACKAGE_TOKEN:-dummy}"
|
||||||
|
|
||||||
|
echo "==> 1/4 Infra: Postgres (5544) + RabbitMQ (5672) + migrations"
|
||||||
|
bash "$ROOT/e2e/prepare.sh"
|
||||||
|
echo " waiting for RabbitMQ healthy"
|
||||||
|
for _ in $(seq 1 30); do
|
||||||
|
s="$(docker inspect --format '{{.State.Health.Status}}' edr-passenger-e2e-rmq 2>/dev/null || echo none)"
|
||||||
|
[ "$s" = "healthy" ] && break; sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "==> 2/4 Build shared types (@edr/types dist — nest build needs it)"
|
||||||
|
pnpm --filter @edr/types build >/dev/null
|
||||||
|
|
||||||
|
echo "==> 3/4 Ensure passenger-api dev env (test DB 5544, port 4000, brokers/Fayda off, seeding on)"
|
||||||
|
if [ ! -f "$API/.env" ]; then
|
||||||
|
sed -e 's/^PORT=.*/PORT=4000/' \
|
||||||
|
-e 's/^SEED_EDR_PASSENGER_ORG=.*/SEED_EDR_PASSENGER_ORG=true/' \
|
||||||
|
-e 's/^SEED_PASSENGER_STAFF=.*/SEED_PASSENGER_STAFF=true/' \
|
||||||
|
"$API/.env.test" > "$API/.env"
|
||||||
|
echo " created $API/.env"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "==> 4/4 Playwright (boots api/portal/backoffice if not already up, seeds + mints auth, runs)"
|
||||||
|
npx playwright test -c "$HERE/playwright.config.ts" "$@" || TEST_EXIT=$?
|
||||||
|
|
||||||
|
REPORT="$ROOT/e2e-ui-report/index.html"
|
||||||
|
if [ -f "$REPORT" ]; then
|
||||||
|
echo "==> Report: $REPORT"
|
||||||
|
open "$REPORT" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
exit "${TEST_EXIT:-0}"
|
||||||
79
e2e-ui/specs/backoffice/config-validation.spec.ts
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { API_URL, ROUTE_ID, staffToken } from "../../fixtures/data";
|
||||||
|
import { UI_IDS } from "../../../apps/edr-passenger-api/test/fixtures/seed-ui";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Track B — server-side validation gaps and the promo field-name mismatch. Each test calls the same
|
||||||
|
* passenger-api endpoints the backoffice forms hit, proving the client-side guards are the ONLY guard
|
||||||
|
* (the API accepts values the forms block) or that a UI/DTO field-name split silently breaks a config.
|
||||||
|
*/
|
||||||
|
function auth() {
|
||||||
|
return { Authorization: `Bearer ${staffToken()}` };
|
||||||
|
}
|
||||||
|
|
||||||
|
test("BC-8 ✅ a promo over 100% is rejected by the API (max validation, M-2)", async ({ request }) => {
|
||||||
|
// percentOff must be bounded 0..100 at the DTO layer (the backoffice form has no such check).
|
||||||
|
const res = await request.post(`${API_URL}/promos`, {
|
||||||
|
headers: auth(),
|
||||||
|
data: { code: `E2E_OVER100_${Date.now()}`, title: "over", percentOff: 200, validUntil: "2030-01-01T00:00:00Z", active: true },
|
||||||
|
});
|
||||||
|
expect(res.status()).toBe(400); // ✅ 200% discount rejected
|
||||||
|
|
||||||
|
// A valid promo (≤100%) still succeeds.
|
||||||
|
const okRes = await request.post(`${API_URL}/promos`, {
|
||||||
|
headers: auth(),
|
||||||
|
data: { code: `E2E_OK_${Date.now()}`, title: "ok", percentOff: 50, validUntil: "2030-01-01T00:00:00Z", active: true },
|
||||||
|
});
|
||||||
|
expect(okRes.ok()).toBeTruthy();
|
||||||
|
const promo = (await okRes.json())?.data ?? {};
|
||||||
|
await request.delete(`${API_URL}/promos/${promo.id}`, { headers: auth() }).catch(() => {});
|
||||||
|
});
|
||||||
|
|
||||||
|
test("PB-7 🔴 a promo created with the backoffice UI field names is inert (field-name mismatch)", async ({ request }) => {
|
||||||
|
// The backoffice /promos form sends discountType/discountValue/isActive, but the DTO reads
|
||||||
|
// percentOff/amountOffMinor/active — so the sent discount is dropped and the promo saves at 0.
|
||||||
|
const res = await request.post(`${API_URL}/promos`, {
|
||||||
|
headers: auth(),
|
||||||
|
data: { code: `E2E_UIFIELDS_${Date.now()}`, title: "uifields", discountType: "PERCENTAGE", discountValue: 25, isActive: true, validUntil: "2030-01-01T00:00:00Z" },
|
||||||
|
});
|
||||||
|
expect(res.ok()).toBeTruthy();
|
||||||
|
const promo = (await res.json())?.data ?? {};
|
||||||
|
expect(promo.discountValue).toBe(0); // 🔴 the 25% the UI "set" was silently dropped
|
||||||
|
await request.delete(`${API_URL}/promos/${promo.id}`, { headers: auth() }).catch(() => {});
|
||||||
|
});
|
||||||
|
|
||||||
|
test("BC-9 ✅ a negative seat-hold duration is rejected by /config (DTO validation, M-3)", async ({ request }) => {
|
||||||
|
// The settings form has min=1 max=60; the API must now enforce the same at the DTO layer.
|
||||||
|
const res = await request.patch(`${API_URL}/config`, {
|
||||||
|
headers: auth(),
|
||||||
|
data: { seat_hold_duration_minutes: "-1" },
|
||||||
|
});
|
||||||
|
expect(res.status()).toBe(400); // ✅ negative duration rejected
|
||||||
|
|
||||||
|
// A sane value in range still succeeds and is stored.
|
||||||
|
const ok = await request.patch(`${API_URL}/config`, { headers: auth(), data: { seat_hold_duration_minutes: "15" } });
|
||||||
|
expect(ok.ok()).toBeTruthy();
|
||||||
|
expect(((await ok.json())?.data ?? {}).seat_hold_duration_minutes).toBe("15");
|
||||||
|
});
|
||||||
|
|
||||||
|
test("BC-10 ✅ a schedule with a past departure is rejected by the API (past-date block, M-4)", async ({ request }) => {
|
||||||
|
// The schedules form only checks arrival > departure — the API must ALSO reject a past departure.
|
||||||
|
const past = new Date("2020-01-02T06:00:00.000Z");
|
||||||
|
const arrive = new Date("2020-01-02T10:00:00.000Z");
|
||||||
|
const res = await request.post(`${API_URL}/schedules`, {
|
||||||
|
headers: auth(),
|
||||||
|
data: { trainId: UI_IDS.train, routeId: ROUTE_ID, departureAt: past.toISOString(), arrivalAt: arrive.toISOString() },
|
||||||
|
});
|
||||||
|
expect(res.status()).toBe(400); // ✅ past-dated schedule rejected
|
||||||
|
|
||||||
|
// A future schedule (a different day than the seeded one) is still accepted.
|
||||||
|
const dep = new Date(Date.now() + 30 * 864e5); dep.setUTCHours(6, 0, 0, 0);
|
||||||
|
const arr = new Date(dep.getTime() + 4 * 3600e3);
|
||||||
|
const okRes = await request.post(`${API_URL}/schedules`, {
|
||||||
|
headers: auth(),
|
||||||
|
data: { trainId: UI_IDS.train, routeId: ROUTE_ID, departureAt: dep.toISOString(), arrivalAt: arr.toISOString() },
|
||||||
|
});
|
||||||
|
expect(okRes.ok()).toBeTruthy();
|
||||||
|
const sched = (await okRes.json())?.data ?? {};
|
||||||
|
await request.delete(`${API_URL}/schedules/${sched.id}`, { headers: auth() }).catch(() => {});
|
||||||
|
});
|
||||||
19
e2e-ui/specs/backoffice/currencies.smoke.spec.ts
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Backoffice smoke (Track B foundation): the staff storageState authenticates past the middleware
|
||||||
|
* cookie gate, /currencies loads its list from the API, and the add-rate control is reachable.
|
||||||
|
* Proves staff auth (cookie + localStorage + API token) is fully wired.
|
||||||
|
*/
|
||||||
|
test("backoffice: staff can load /currencies and reach the add-rate control", async ({ page }) => {
|
||||||
|
await page.goto("/currencies", { waitUntil: "domcontentloaded" });
|
||||||
|
|
||||||
|
// Not bounced to /login (middleware cookie gate passed).
|
||||||
|
await expect(page).not.toHaveURL(/\/login/);
|
||||||
|
|
||||||
|
// The page rendered a currencies view with a seeded currency and an add control.
|
||||||
|
await expect(page.getByText(/ETB|USD|DJF/).first()).toBeVisible({ timeout: 20_000 });
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: /add/i }).first(),
|
||||||
|
).toBeVisible();
|
||||||
|
});
|
||||||
24
e2e-ui/specs/guest/search.smoke.spec.ts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { resultsUrl, SCHEDULE_ID } from "../../fixtures/data";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Portal smoke (Track A foundation): deep-link to results → POST /search fires → a priced result
|
||||||
|
* card for the seeded trip renders. Proves stack + seed + search + currency formatting are wired.
|
||||||
|
*/
|
||||||
|
test("portal: seeded trip appears in search results with a price", async ({ page }) => {
|
||||||
|
const searchResponse = page.waitForResponse(
|
||||||
|
(r) => r.url().includes("/search") && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
|
||||||
|
await page.goto(resultsUrl());
|
||||||
|
|
||||||
|
const res = await searchResponse;
|
||||||
|
expect([200, 201]).toContain(res.status());
|
||||||
|
const body = await res.json();
|
||||||
|
const outbound = body?.data?.outbound ?? [];
|
||||||
|
expect(outbound.some((t: any) => t.scheduleId === SCHEDULE_ID)).toBe(true);
|
||||||
|
|
||||||
|
// The seeded train + a formatted ETB price render in the DOM.
|
||||||
|
await expect(page.getByText("UI Test Express").first()).toBeVisible({ timeout: 20_000 });
|
||||||
|
await expect(page.getByText(/ETB\s*[\d,]+/).first()).toBeVisible();
|
||||||
|
});
|
||||||
37
e2e-ui/specs/guest/ua14-forged-seat-fare.spec.ts
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-14 ✅ — a GUEST (unauthenticated) booking with forged per-passenger seat fares (ISSUES C-1),
|
||||||
|
* guarded. We intercept POST /bookings/guest and rewrite every seatFareMinor (and reviewedTotalMinor)
|
||||||
|
* to 0. The server must recompute the authoritative fare and REJECT the underpayment with a 4xx —
|
||||||
|
* no free ride, nothing persisted.
|
||||||
|
*/
|
||||||
|
test("UA-14: server rejects a guest booking with forged seatFareMinor=0 (C-1)", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, {
|
||||||
|
paymentMethod: "WALLET",
|
||||||
|
tolerateBookingError: true,
|
||||||
|
mutateBookingBody: (body) => ({
|
||||||
|
...body,
|
||||||
|
reviewedTotalMinor: 0,
|
||||||
|
passengers: (body.passengers ?? []).map((p: any) => ({ ...p, seatFareMinor: 0 })),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(r.guest).toBe(true); // proves the /bookings/guest path was used
|
||||||
|
expect(r.cardBaseFareMinor).toBeGreaterThan(1000);
|
||||||
|
|
||||||
|
// The server must REFUSE the forged 0-fare booking with a 4xx…
|
||||||
|
expect(r.bookingStatus).toBeGreaterThanOrEqual(400);
|
||||||
|
expect(r.bookingStatus).toBeLessThan(500);
|
||||||
|
// …return no booking id and persist no free (0-minor) booking.
|
||||||
|
expect(r.bookingId).toBeFalsy();
|
||||||
|
const forged = await prisma.booking.findFirst({ where: { totalMinor: 0 } });
|
||||||
|
expect(forged).toBeNull();
|
||||||
|
});
|
||||||
31
e2e-ui/specs/portal/ua1.spec.ts
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookOneAdult } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-1 — one-way, 1 adult, ETB, WALLET. The full real-browser booking flow, asserting the money
|
||||||
|
* chain: card fare > 0, and reviewedTotalMinor == Booking.totalMinor == displayTotalMinor ==
|
||||||
|
* PaymentIntent.amountMinor == wallet DEBIT, booking CONFIRMED.
|
||||||
|
*/
|
||||||
|
test("UA-1: one-way WALLET booking, price cross-check holds end to end", async ({ page }) => {
|
||||||
|
const r = await bookOneAdult(page, { nationality: "Ethiopian", paymentMethod: "WALLET" });
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
expect([200, 201]).toContain(r.initiateStatus);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
const intent = await prisma.paymentIntent.findUniqueOrThrow({ where: { bookingId: r.bookingId } });
|
||||||
|
const debit = await prisma.walletLedgerEntry.findFirst({
|
||||||
|
where: { relatedBookingId: r.bookingId, type: "DEBIT" },
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(booking.totalMinor).toBe(r.reviewedTotalMinor);
|
||||||
|
expect(booking.displayTotalMinor).toBe(r.reviewedTotalMinor);
|
||||||
|
expect(intent.amountMinor).toBe(r.reviewedTotalMinor);
|
||||||
|
expect(debit?.amountMinor).toBe(r.reviewedTotalMinor);
|
||||||
|
expect(booking.status).toBe("CONFIRMED");
|
||||||
|
});
|
||||||
25
e2e-ui/specs/portal/ua11-expired-promo.spec.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
import { PROMO_EXPIRED } from "../../fixtures/data";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-11 — one-way, ETB, an EXPIRED promo injected via ?promoCode=. The expired code must not discount
|
||||||
|
* anything: the fare breakdown reports no discount and the booked total is the full fare (consistent
|
||||||
|
* with the UA-8 promo-drop behaviour, but here the promo is correctly rejected as expired).
|
||||||
|
*/
|
||||||
|
test("UA-11: an expired promo code is ignored — full fare is booked", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, { paymentMethod: "WALLET", promoCode: PROMO_EXPIRED });
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
|
||||||
|
// No discount from the expired code.
|
||||||
|
if (r.fareBreakdown) expect(r.fareBreakdown.discountMinor ?? 0).toBe(0);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.totalMinor).toBe(r.cardBaseFareMinor); // full fare, no discount applied
|
||||||
|
});
|
||||||
40
e2e-ui/specs/portal/ua13-forged-total.spec.ts
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookOneAdult } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-13 ✅ — client-forged booking total (matrix A1 / ISSUES C-1), guarded through the REAL browser.
|
||||||
|
* We intercept the outgoing POST /bookings and rewrite reviewedTotalMinor (and every per-seat
|
||||||
|
* seatFareMinor) to 1. The server has two trust branches — sum-of-seatFareMinor when all are present,
|
||||||
|
* else reviewedTotalMinor — so the forge targets both. The server must recompute the authoritative
|
||||||
|
* fare and REJECT the mismatched client amount with a 4xx, persisting nothing.
|
||||||
|
*/
|
||||||
|
test("UA-13: server rejects a client-forged reviewedTotalMinor=1 (C-1)", async ({ page }) => {
|
||||||
|
const r = await bookOneAdult(page, {
|
||||||
|
nationality: "Ethiopian",
|
||||||
|
paymentMethod: "WALLET",
|
||||||
|
tolerateBookingError: true,
|
||||||
|
// Forge both the per-seat fares and the reviewed total → 1.
|
||||||
|
mutateBookingBody: (body) => ({
|
||||||
|
...body,
|
||||||
|
reviewedTotalMinor: 1,
|
||||||
|
passengers: (body.passengers ?? []).map((p: any) => ({ ...p, seatFareMinor: 1 })),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
// The real fare the engine computed is far above 1…
|
||||||
|
expect(r.cardFareMinor).toBeGreaterThan(1000);
|
||||||
|
// …the browser forced reviewedTotalMinor=1, and the server must REFUSE it with a 4xx.
|
||||||
|
expect(r.reviewedTotalMinor).toBe(1);
|
||||||
|
expect(r.bookingStatus).toBeGreaterThanOrEqual(400);
|
||||||
|
expect(r.bookingStatus).toBeLessThan(500);
|
||||||
|
// No booking id was returned, and no 1-minor booking was persisted.
|
||||||
|
expect(r.bookingId).toBeFalsy();
|
||||||
|
const forged = await prisma.booking.findFirst({ where: { totalMinor: 1 } });
|
||||||
|
expect(forged).toBeNull();
|
||||||
|
});
|
||||||
27
e2e-ui/specs/portal/ua15-telebirr-shortpay.spec.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-15 ✅ — forged gateway SHORT-PAY (ISSUES C-4), guarded. A booking with a real fare in the
|
||||||
|
* thousands is settled by a forged payment.succeeded event carrying amountMinor = 1. The server must
|
||||||
|
* compare the settled amount against what the passenger was quoted (the booking's display total) and
|
||||||
|
* REFUSE to confirm a short payment — the booking stays unconfirmed and no ticket is issued.
|
||||||
|
*/
|
||||||
|
test("UA-15: a short-paid gateway settlement does NOT confirm the booking (C-4)", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, {
|
||||||
|
paymentMethod: "TELEBIRR",
|
||||||
|
forgeSettlement: { amountMinor: 1 }, // settle for 1 minor against a multi-thousand fare
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(r.cardBaseFareMinor).toBeGreaterThan(1000);
|
||||||
|
expect(r.confirmed).toBe(false); // short-pay must NOT confirm the booking
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.status).not.toBe("CONFIRMED");
|
||||||
|
});
|
||||||
27
e2e-ui/specs/portal/ua16-family-mix.spec.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-16 — one-way, 2 adults + 3 children under 5, ETB, WALLET (max passenger spread). One free child
|
||||||
|
* per adult → 2 free children, 1 paid. Total = 3 fares (2 adults + 1 paid child); 3 seats booked.
|
||||||
|
* Stresses the free-child reduce + multi-passenger seat assignment through the real browser.
|
||||||
|
*/
|
||||||
|
test("UA-16: 2 adults + 3 children — two children free, one paid", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, { adults: 2, children: 3, paymentMethod: "WALLET" });
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
|
||||||
|
const fare = r.cardBaseFareMinor;
|
||||||
|
expect(r.reviewedTotalMinor).toBe(fare * 3);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.totalMinor).toBe(fare * 3);
|
||||||
|
|
||||||
|
const seats = await prisma.bookingSeat.findMany({ where: { bookingId: r.bookingId } });
|
||||||
|
expect(seats.length).toBe(3);
|
||||||
|
});
|
||||||
28
e2e-ui/specs/portal/ua1b-usd-divergence.spec.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { resultsUrl } from "../../fixtures/data";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-1b — the first money-chain break. For a non-Ethiopian (USD) search the results card shows the
|
||||||
|
* USD-converted `displayAmountMinor`, but the internal `baseFareMinor` stays in raw ETB minor. The
|
||||||
|
* two diverge exactly 100× (the USD→ETB rate). The portal stores `Math.min(baseFareMinor)` on select,
|
||||||
|
* so the ETB value — not the USD one the passenger saw — is what flows downstream.
|
||||||
|
*/
|
||||||
|
test("UA-1b: USD card display fare diverges 100x from the internal baseFareMinor", async ({ page }) => {
|
||||||
|
const searchDone = page.waitForResponse(
|
||||||
|
(r) => r.url().includes("/search") && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
await page.goto(resultsUrl({ nationality: "Other" }));
|
||||||
|
const out = (await (await searchDone).json())?.data?.outbound?.[0];
|
||||||
|
const cls = out?.faresByClass?.[0];
|
||||||
|
|
||||||
|
expect(out.displayCurrency).toBe("USD");
|
||||||
|
// The display fare is the converted USD amount; baseFareMinor is the untouched ETB minor.
|
||||||
|
expect(cls.displayAmountMinor).toBeLessThan(cls.baseFareMinor);
|
||||||
|
expect(cls.baseFareMinor).toBe(cls.displayAmountMinor * 100);
|
||||||
|
|
||||||
|
// The DOM shows the USD value (formatFare divides by 100, 2dp) — e.g. "USD 12.50".
|
||||||
|
const usdMajor = (cls.displayAmountMinor / 100).toFixed(2);
|
||||||
|
await expect(page.getByText(new RegExp(`USD\\s*${usdMajor.replace(".", "\\.")}`)).first()).toBeVisible({
|
||||||
|
timeout: 20_000,
|
||||||
|
});
|
||||||
|
});
|
||||||
33
e2e-ui/specs/portal/ua2-usd-booking.spec.ts
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-2 🔴 — full one-way USD booking (Other nationality, INTERNATIONAL class, WALLET). This surfaces
|
||||||
|
* the money-chain incoherence for non-ETB currencies: the browser sends reviewedTotalMinor = the raw
|
||||||
|
* ETB baseFareMinor (125000), but the server stores Booking.totalMinor = the USD display value (1250).
|
||||||
|
* The two differ 100× — the client-computed "reviewed total" the C-1 path trusts is in the wrong
|
||||||
|
* currency, yet the stored/charged total is the display one. We pin both so a regression is caught.
|
||||||
|
*/
|
||||||
|
test("UA-2: USD booking — reviewed total (ETB) and stored total (USD) diverge 100x", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, { nationality: "Other", paymentMethod: "WALLET" });
|
||||||
|
expect(r.displayCurrency).toBe("USD");
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
const intent = await prisma.paymentIntent.findUniqueOrThrow({ where: { bookingId: r.bookingId } });
|
||||||
|
|
||||||
|
// The browser sent the USD display value the passenger saw as the reviewed total…
|
||||||
|
expect(r.reviewedTotalMinor).toBe(r.cardDisplayMinor);
|
||||||
|
// …but the booking stored the raw ETB base fare (100× larger, un-converted).
|
||||||
|
expect(booking.totalMinor).toBe(r.cardBaseFareMinor);
|
||||||
|
expect(booking.totalMinor).toBe(r.reviewedTotalMinor * 100); // 🔴 the divergence
|
||||||
|
expect(intent.amountMinor).toBe(booking.totalMinor);
|
||||||
|
expect(booking.displayCurrency).toBe("USD");
|
||||||
|
expect(booking.status).toBe("CONFIRMED");
|
||||||
|
});
|
||||||
43
e2e-ui/specs/portal/ua3-djf.spec.ts
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-3w — Djiboutian/DJF, WALLET. DJF is a zero-decimal currency, but the portal renders every fare
|
||||||
|
* through formatFare (always /100, 2dp) → "DJF x.yy". WALLET short-circuits past the charge-currency
|
||||||
|
* conversion, so here we can only assert the display currency is stamped DJF and the chain is intact.
|
||||||
|
*/
|
||||||
|
test("UA-3w: DJF WALLET booking is stamped DJF; reviewed (DJF) vs stored (ETB) diverge", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, { nationality: "Djiboutian", paymentMethod: "WALLET" });
|
||||||
|
expect(r.displayCurrency).toBe("DJF");
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.displayCurrency).toBe("DJF");
|
||||||
|
// Mirror image of UA-2: here the browser sent the DJF display value as the reviewed total…
|
||||||
|
expect(r.reviewedTotalMinor).toBe(r.cardDisplayMinor);
|
||||||
|
// …while the booking stored the raw ETB base. The chain uses different currencies at each hop.
|
||||||
|
expect(booking.totalMinor).toBe(r.cardBaseFareMinor);
|
||||||
|
expect(booking.status).toBe("CONFIRMED");
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-3 — Djiboutian/DJF paid via a forged gateway settlement. The real telebirr gateway is
|
||||||
|
* unreachable in the test env, so (per the matrix's settlement-injection plan) the booking is created
|
||||||
|
* through the real browser flow and settled by forging the payment.succeeded event. Proves the DJF
|
||||||
|
* booking reaches a CONFIRMED, ticketed state through the gateway (non-WALLET) path.
|
||||||
|
*/
|
||||||
|
test("UA-3: DJF booking settles through a forged gateway payment", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, { nationality: "Djiboutian", paymentMethod: "TELEBIRR" });
|
||||||
|
expect(r.displayCurrency).toBe("DJF");
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.displayCurrency).toBe("DJF");
|
||||||
|
expect(booking.status).toBe("CONFIRMED");
|
||||||
|
});
|
||||||
27
e2e-ui/specs/portal/ua4-child-free.spec.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-4 — one-way, 1 adult + 1 child under 5, ETB, WALLET. The "first child per adult" policy makes
|
||||||
|
* the child free: the booked total is exactly one adult fare and the free child is not seated.
|
||||||
|
*/
|
||||||
|
test("UA-4: first child under 5 travels free, total = one adult fare", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, { adults: 1, children: 1, paymentMethod: "WALLET" });
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
|
||||||
|
// The child is free → the browser sent one adult fare as the reviewed total.
|
||||||
|
expect(r.reviewedTotalMinor).toBe(r.cardBaseFareMinor);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.totalMinor).toBe(r.cardBaseFareMinor);
|
||||||
|
|
||||||
|
// The free first-child is filtered out of the booked passengers → only the adult is seated.
|
||||||
|
const seats = await prisma.bookingSeat.findMany({ where: { bookingId: r.bookingId } });
|
||||||
|
expect(seats.length).toBe(1);
|
||||||
|
});
|
||||||
28
e2e-ui/specs/portal/ua5-second-child-paid.spec.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookTrip } from "../../fixtures/booking-flow";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-5 — one-way, 1 adult + 2 children under 5, ETB, WALLET. One free child per adult: the first
|
||||||
|
* child is free, the second is charged a full adult fare. Total = 2 fares; 2 passengers are seated.
|
||||||
|
*/
|
||||||
|
test("UA-5: with 1 adult + 2 children, the second child pays full fare", async ({ page }) => {
|
||||||
|
const r = await bookTrip(page, { adults: 1, children: 2, paymentMethod: "WALLET" });
|
||||||
|
expect(r.confirmed).toBe(true);
|
||||||
|
|
||||||
|
const fare = r.cardBaseFareMinor;
|
||||||
|
// adult (paid) + first child (free) + second child (paid) = 2 fares.
|
||||||
|
expect(r.reviewedTotalMinor).toBe(fare * 2);
|
||||||
|
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.totalMinor).toBe(fare * 2);
|
||||||
|
|
||||||
|
// Only the free first-child is dropped → adult + paid second child are seated.
|
||||||
|
const seats = await prisma.bookingSeat.findMany({ where: { bookingId: r.bookingId } });
|
||||||
|
expect(seats.length).toBe(2);
|
||||||
|
});
|
||||||
35
e2e-ui/specs/portal/ua6-round-trip.spec.ts
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { resultsUrl } from "../../fixtures/data";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-6 🔴 — round-trip return leg is UNBOOKABLE. A ROUND_TRIP search returns an inbound (C→A) leg
|
||||||
|
* that reports seat availability, but its `coachTypes`/`faresByClass` come back EMPTY: the fare engine
|
||||||
|
* cannot price the reverse direction on this route (the segment runs high→low stop sequence, so the
|
||||||
|
* distance resolves non-positive and every class is dropped). With no priced coach the portal renders
|
||||||
|
* no coach option, so the round-trip wizard cannot advance past inbound selection — the full-UI
|
||||||
|
* round-trip booking flow is blocked. This test pins the gap through the portal's own search call.
|
||||||
|
*
|
||||||
|
* When reverse-leg pricing is fixed (priced inbound coachTypes), replace this with the full
|
||||||
|
* two-leg booking flow: `bookTrip(page, { tripType: "ROUND_TRIP" })` asserting total = 2× base fare
|
||||||
|
* and one seat per leg.
|
||||||
|
*/
|
||||||
|
test("UA-6: round-trip inbound leg has availability but no priced coach (booking blocked)", async ({
|
||||||
|
page,
|
||||||
|
}) => {
|
||||||
|
const searchDone = page.waitForResponse(
|
||||||
|
(r) => r.url().includes("/search") && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
await page.goto(resultsUrl({ tripType: "ROUND_TRIP" }));
|
||||||
|
const data = (await (await searchDone).json())?.data;
|
||||||
|
|
||||||
|
expect(data.journeyType).toBe("ROUND_TRIP");
|
||||||
|
const inbound = data.inbound?.[0];
|
||||||
|
expect(inbound).toBeTruthy();
|
||||||
|
|
||||||
|
// The return leg exists and shows availability…
|
||||||
|
expect(inbound.hasAvailability).toBe(true);
|
||||||
|
expect(Object.values(inbound.availabilityByClass ?? {}).some((n) => Number(n) > 0)).toBe(true);
|
||||||
|
// …but no coach type is priced, so nothing is selectable in the UI. 🔴
|
||||||
|
expect(inbound.coachTypes ?? []).toHaveLength(0);
|
||||||
|
expect(inbound.faresByClass ?? []).toHaveLength(0);
|
||||||
|
});
|
||||||
17
e2e-ui/specs/portal/ua7-berth.spec.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
import { test } from "@playwright/test";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-7 — round trip, berth/bed class, INTERNATIONAL/USD. DEFERRED (documented, not silently omitted).
|
||||||
|
*
|
||||||
|
* A berth booking needs a bed coach type whose seat classes carry a bedPosition the fare engine can
|
||||||
|
* price. The current seed has only regular (bedPosition=null) classes, and UA-6 already shows the
|
||||||
|
* reverse-leg (round-trip) pricing returns empty coach types on this route. Enabling UA-7 requires
|
||||||
|
* two backend/seed prerequisites that are out of scope here:
|
||||||
|
* 1. A bed CoachType + LOCAL/INTL SeatClasses with bedPosition IN (UPPER,MIDDLE,LOWER) + a bed
|
||||||
|
* Coach with lowercase-bedPosition Seats (matrix §5.4), priced by the fare engine.
|
||||||
|
* 2. Reverse-direction (return-leg) fare resolution, currently unsupported (see UA-6).
|
||||||
|
*
|
||||||
|
* Once both exist, drive: bookTrip with a bed seat class + tripType ROUND_TRIP, asserting the berth
|
||||||
|
* surcharge is applied consistently on both legs.
|
||||||
|
*/
|
||||||
|
test.skip("UA-7: round-trip berth booking (needs bed coach-type seed + reverse-leg pricing)", () => {});
|
||||||
37
e2e-ui/specs/portal/ua8-promo-drop.spec.ts
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import { test, expect } from "@playwright/test";
|
||||||
|
import { PrismaClient } from "@prisma/client";
|
||||||
|
import { bookOneAdult } from "../../fixtures/booking-flow";
|
||||||
|
import { PROMO_VALID } from "../../fixtures/data";
|
||||||
|
|
||||||
|
const prisma = new PrismaClient();
|
||||||
|
test.afterAll(async () => {
|
||||||
|
await prisma.$disconnect();
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UA-8 ✅ — a VALID promo is applied server-side even though the browser drops it (H-13). The portal
|
||||||
|
* still sums UNDISCOUNTED per-passenger fares into reviewedTotalMinor, but the server recomputes the
|
||||||
|
* authoritative fare (promo included, via the promoCode it forwards) and books the DISCOUNTED total —
|
||||||
|
* so the customer is charged the promo price, not full price.
|
||||||
|
*/
|
||||||
|
test("UA-8: valid promo is applied server-side to the booked total (H-13)", async ({ page }) => {
|
||||||
|
const r = await bookOneAdult(page, {
|
||||||
|
nationality: "Ethiopian",
|
||||||
|
paymentMethod: "WALLET",
|
||||||
|
promoCode: PROMO_VALID,
|
||||||
|
});
|
||||||
|
|
||||||
|
const fb = r.fareBreakdown;
|
||||||
|
expect(fb).toBeTruthy();
|
||||||
|
|
||||||
|
// The breakdown recognized the promo and computed a discount…
|
||||||
|
expect(fb.discountMinor).toBeGreaterThan(0);
|
||||||
|
expect(fb.totalMinor).toBeLessThan(fb.subtotalMinor);
|
||||||
|
|
||||||
|
// The browser still sends the UNDISCOUNTED subtotal (the frontend drops the promo)…
|
||||||
|
expect(r.reviewedTotalMinor).toBe(fb.subtotalMinor);
|
||||||
|
// …but the SERVER now applies the promo: the booking is stored at the discounted total.
|
||||||
|
const booking = await prisma.booking.findUniqueOrThrow({ where: { id: r.bookingId } });
|
||||||
|
expect(booking.totalMinor).toBeLessThan(fb.subtotalMinor); // ✅ discount honored
|
||||||
|
expect(booking.totalMinor).toBe(fb.subtotalMinor - fb.discountMinor);
|
||||||
|
});
|
||||||
200
e2e-ui/specs/propagation/pb-config-propagation.spec.ts
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
import { test, expect, type APIRequestContext, type Page } from "@playwright/test";
|
||||||
|
import { API_URL, SEAT_CLASS_LOCAL, STATIONS, resultsUrl, sampleDepartDate, staffToken, passengerToken } from "../../fixtures/data";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Track B — backoffice config → portal propagation. A staff user changes config via the same API the
|
||||||
|
* backoffice calls; the passenger portal is then observed. Each test restores what it changed so the
|
||||||
|
* shared seeded DB stays consistent for other specs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** The "starting from" fare the portal shows for the seeded ETB trip (captured from POST /search). */
|
||||||
|
async function portalCardFareMinor(page: Page): Promise<number> {
|
||||||
|
const done = page.waitForResponse(
|
||||||
|
(r) => r.url().includes("/search") && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
await page.goto(resultsUrl(), { waitUntil: "domcontentloaded" });
|
||||||
|
const body = await (await done).json();
|
||||||
|
return body?.data?.outbound?.[0]?.faresByClass?.[0]?.baseFareMinor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** The USD display fare the portal shows for a non-Ethiopian (Other) search. */
|
||||||
|
async function portalUsdFare(page: Page): Promise<number> {
|
||||||
|
const done = page.waitForResponse(
|
||||||
|
(r) => r.url().includes("/search") && r.request().method() === "POST",
|
||||||
|
);
|
||||||
|
await page.goto(resultsUrl({ nationality: "Other" }), { waitUntil: "domcontentloaded" });
|
||||||
|
const body = await (await done).json();
|
||||||
|
return body?.data?.outbound?.[0]?.faresByClass?.[0]?.displayAmountMinor;
|
||||||
|
}
|
||||||
|
|
||||||
|
function authHeader() {
|
||||||
|
return { Authorization: `Bearer ${staffToken()}` };
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Find a CurrencyExchangeRate row id by its currency pair. */
|
||||||
|
async function rateId(request: APIRequestContext, from: string, to: string): Promise<string> {
|
||||||
|
const rows = (await (await request.get(`${API_URL}/currencies`, { headers: authHeader() })).json())?.data ?? [];
|
||||||
|
const row = rows.find((r: any) => r.fromCurrency === from && r.toCurrency === to);
|
||||||
|
if (!row) throw new Error(`no ${from}->${to} currency rate`);
|
||||||
|
return row.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
test("PB-2: a backoffice seat-class base-price change propagates LIVE to portal search", async ({
|
||||||
|
page,
|
||||||
|
request,
|
||||||
|
}) => {
|
||||||
|
const before = await portalCardFareMinor(page);
|
||||||
|
expect(before).toBeGreaterThan(0);
|
||||||
|
|
||||||
|
// Staff doubles the base price via the API the backoffice tariff-rates form uses.
|
||||||
|
const patched = await request.patch(`${API_URL}/seat-classes/${SEAT_CLASS_LOCAL}`, {
|
||||||
|
headers: authHeader(),
|
||||||
|
data: { basePrice: 600 }, // seed-core seeds 300
|
||||||
|
});
|
||||||
|
expect(patched.ok()).toBeTruthy();
|
||||||
|
|
||||||
|
try {
|
||||||
|
const after = await portalCardFareMinor(page);
|
||||||
|
// No server-side config cache → the new price shows on the very next search.
|
||||||
|
expect(after).toBe(before * 2);
|
||||||
|
} finally {
|
||||||
|
await request.patch(`${API_URL}/seat-classes/${SEAT_CLASS_LOCAL}`, {
|
||||||
|
headers: authHeader(),
|
||||||
|
data: { basePrice: 300 },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test("BC-11 ✅ a non-admin PASSENGER is forbidden from rewriting exchange rates (C-8)", async ({
|
||||||
|
request,
|
||||||
|
}) => {
|
||||||
|
// A global JwtGuard (SharedAuthModule) means anonymous requests get 401 — so this is NOT an
|
||||||
|
// unauthenticated hole. The PUT/PATCH handlers must ALSO carry @PassengerAdmin (as DELETE does) so
|
||||||
|
// a regular authenticated passenger cannot rewrite FX rates.
|
||||||
|
const anon = await request.put(`${API_URL}/fare-engine/exchange-rates`, {
|
||||||
|
data: { fromCurrency: "USD", toCurrency: "ETB", rate: 999 },
|
||||||
|
});
|
||||||
|
expect(anon.status()).toBe(401); // authentication IS required
|
||||||
|
|
||||||
|
const asPassenger = await request.put(`${API_URL}/fare-engine/exchange-rates`, {
|
||||||
|
headers: { Authorization: `Bearer ${passengerToken()}` },
|
||||||
|
data: { fromCurrency: "USD", toCurrency: "ETB", rate: 999, source: "E2E" },
|
||||||
|
});
|
||||||
|
expect(asPassenger.status()).toBe(403); // ✅ a regular passenger is forbidden (admin-only)
|
||||||
|
|
||||||
|
// The PATCH-by-id handler must be equally protected.
|
||||||
|
const patchAsPassenger = await request.patch(`${API_URL}/fare-engine/exchange-rates/${crypto.randomUUID()}`, {
|
||||||
|
headers: { Authorization: `Bearer ${passengerToken()}` },
|
||||||
|
data: { rate: 999 },
|
||||||
|
});
|
||||||
|
expect(patchAsPassenger.status()).toBe(403);
|
||||||
|
|
||||||
|
// A staff admin can still write (proves the endpoint isn't simply broken).
|
||||||
|
const asStaff = await request.put(`${API_URL}/fare-engine/exchange-rates`, {
|
||||||
|
headers: { Authorization: `Bearer ${staffToken()}` },
|
||||||
|
data: { fromCurrency: "USD", toCurrency: "ETB", rate: 100, source: "E2E" },
|
||||||
|
});
|
||||||
|
expect(asStaff.ok()).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
test("BC-7 ✅ negative seat-class base price is rejected by the live API (M-1)", async ({
|
||||||
|
request,
|
||||||
|
}) => {
|
||||||
|
const res = await request.patch(`${API_URL}/seat-classes/${SEAT_CLASS_LOCAL}`, {
|
||||||
|
headers: authHeader(),
|
||||||
|
data: { basePrice: -500 }, // the API must now reject this (DTO @Min(0)), like the backoffice form
|
||||||
|
});
|
||||||
|
expect(res.status()).toBe(400); // ✅ negative fare rejected at the DTO layer
|
||||||
|
|
||||||
|
// The stored fare is unchanged — a valid write still succeeds and returns the seeded 300.
|
||||||
|
const restore = await request.patch(`${API_URL}/seat-classes/${SEAT_CLASS_LOCAL}`, {
|
||||||
|
headers: authHeader(),
|
||||||
|
data: { basePrice: 300 },
|
||||||
|
});
|
||||||
|
expect(restore.ok()).toBeTruthy();
|
||||||
|
expect(((await restore.json())?.data ?? {}).baseFareMinor).toBe(300);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("PB-2b: base-price field-name — /seat-classes accepts `basePrice` and it drives the fare", async ({
|
||||||
|
request,
|
||||||
|
}) => {
|
||||||
|
// Documents which field the live seat-class endpoint reads (basePrice → baseFareMinor). If a future
|
||||||
|
// change renames it, this fails loudly (the tariff-rates vs /fleet/classes split, matrix §7 Q9).
|
||||||
|
const res = await request.patch(`${API_URL}/seat-classes/${SEAT_CLASS_LOCAL}`, {
|
||||||
|
headers: authHeader(),
|
||||||
|
data: { basePrice: 300 }, // no-op value, just asserts the field is accepted
|
||||||
|
});
|
||||||
|
expect(res.ok()).toBeTruthy();
|
||||||
|
const json = await res.json();
|
||||||
|
const updated = json?.data ?? json;
|
||||||
|
expect(updated.baseFareMinor ?? updated.basePrice).toBe(300);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("PB-1: a backoffice FX-rate change propagates LIVE to portal USD pricing", async ({ page, request }) => {
|
||||||
|
const id = await rateId(request, "USD", "ETB");
|
||||||
|
const before = await portalUsdFare(page);
|
||||||
|
expect(before).toBeGreaterThan(0);
|
||||||
|
try {
|
||||||
|
// Doubling the USD→ETB rate doubles the fare-engine's ETB fare and therefore the USD display fare.
|
||||||
|
const patched = await request.patch(`${API_URL}/currencies/${id}`, { headers: authHeader(), data: { rate: 200 } });
|
||||||
|
expect(patched.ok()).toBeTruthy();
|
||||||
|
const after = await portalUsdFare(page);
|
||||||
|
expect(after).toBe(before * 2); // search has no cache → the new rate shows immediately
|
||||||
|
} finally {
|
||||||
|
await request.patch(`${API_URL}/currencies/${id}`, { headers: authHeader(), data: { rate: 100 } });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test("PB-4: a station added in the backoffice appears in the portal station list", async ({ request }) => {
|
||||||
|
const code = `E2E${Date.now() % 100000}`;
|
||||||
|
const created = await request.post(`${API_URL}/stations`, {
|
||||||
|
headers: authHeader(),
|
||||||
|
data: { code, name: `E2E Station ${code}`, city: "Testville", countryCode: "ET", sequence: 99, isOperational: true },
|
||||||
|
});
|
||||||
|
expect(created.ok()).toBeTruthy();
|
||||||
|
const id = ((await created.json())?.data ?? {}).id;
|
||||||
|
try {
|
||||||
|
const rows = (await (await request.get(`${API_URL}/stations`)).json())?.data ?? [];
|
||||||
|
expect(rows.some((s: any) => s.code === code)).toBe(true); // portal SearchWidget reads this list
|
||||||
|
} finally {
|
||||||
|
await request.delete(`${API_URL}/stations/${id}?cascade=true`, { headers: authHeader() }).catch(() => {});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test("PB-10 ✅ deleting an FX rate makes pricing FAIL CLOSED, not a silent 1.0 fallback (M-5/H-2)", async ({ request }) => {
|
||||||
|
const searchBody = {
|
||||||
|
originStationId: STATIONS.A,
|
||||||
|
destinationStationId: STATIONS.C,
|
||||||
|
date: sampleDepartDate(),
|
||||||
|
adultCount: 1,
|
||||||
|
nationality: "OTHER", // USD — the fare engine needs the USD↔ETB rate to price
|
||||||
|
};
|
||||||
|
const usdFaresByClass = async (): Promise<any[]> => {
|
||||||
|
const res = await request.post(`${API_URL}/search`, { headers: authHeader(), data: searchBody });
|
||||||
|
expect(res.ok()).toBeTruthy();
|
||||||
|
return (await res.json())?.data?.outbound?.[0]?.faresByClass ?? [];
|
||||||
|
};
|
||||||
|
// Control: with the USD→ETB rate present, the USD search returns a real priced fare.
|
||||||
|
const before = await usdFaresByClass();
|
||||||
|
expect(before.length).toBeGreaterThan(0);
|
||||||
|
expect(before[0].displayAmountMinor).toBeGreaterThan(0);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Remove EVERY USD→ETB rate row (an earlier spec may have left a duplicate) so the pair is truly gone.
|
||||||
|
const rows = (await (await request.get(`${API_URL}/currencies`, { headers: authHeader() })).json())?.data ?? [];
|
||||||
|
for (const r of rows.filter((x: any) => x.fromCurrency === "USD" && x.toCurrency === "ETB")) {
|
||||||
|
await request.delete(`${API_URL}/currencies/${r.id}`, { headers: authHeader() });
|
||||||
|
}
|
||||||
|
// With the USD→ETB pair gone, the fare engine must NOT silently substitute rate 1.0 (~100×
|
||||||
|
// underpricing). It fails closed — no priced class is returned for the USD trip, instead of a
|
||||||
|
// bogus parity-priced fare. (A booking attempt would likewise be rejected, not swallowed.)
|
||||||
|
const after = await usdFaresByClass();
|
||||||
|
expect(after.length).toBe(0); // ✅ no silent underpricing — no bogus fare offered
|
||||||
|
} finally {
|
||||||
|
// Restore the pair so later specs price correctly.
|
||||||
|
await request.post(`${API_URL}/currencies`, {
|
||||||
|
headers: authHeader(),
|
||||||
|
data: { fromCurrency: "USD", toCurrency: "ETB", rate: 100 },
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -21,3 +21,21 @@ services:
|
|||||||
tmpfs:
|
tmpfs:
|
||||||
# Ephemeral storage — every `docker compose down` wipes the DB. Nothing to clean up.
|
# Ephemeral storage — every `docker compose down` wipes the DB. Nothing to clean up.
|
||||||
- /var/lib/postgresql/data
|
- /var/lib/postgresql/data
|
||||||
|
|
||||||
|
# Broker for the passenger-api payment-events consumer (golevelup RabbitMQ). The API blocks boot
|
||||||
|
# until this connects. Pre-creates the `payment` vhost that PAYMENT_RABBITMQ_URL points at.
|
||||||
|
rabbitmq-e2e:
|
||||||
|
image: rabbitmq:3-management
|
||||||
|
container_name: edr-passenger-e2e-rmq
|
||||||
|
environment:
|
||||||
|
RABBITMQ_DEFAULT_USER: edr
|
||||||
|
RABBITMQ_DEFAULT_PASS: edr_secret
|
||||||
|
RABBITMQ_DEFAULT_VHOST: payment
|
||||||
|
ports:
|
||||||
|
- "5672:5672"
|
||||||
|
- "15672:15672"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
|
||||||
|
interval: 5s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 20
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ export DATABASE_URL="postgresql://edr:edr_secret@localhost:5544/edr_database?sch
|
|||||||
export DATABASE_HOST=localhost DATABASE_PORT=5544 DATABASE_NAME=edr_database
|
export DATABASE_HOST=localhost DATABASE_PORT=5544 DATABASE_NAME=edr_database
|
||||||
export DATABASE_USER=edr DATABASE_PASSWORD=edr_secret DATABASE_SCHEMA=iam
|
export DATABASE_USER=edr DATABASE_PASSWORD=edr_secret DATABASE_SCHEMA=iam
|
||||||
|
|
||||||
echo "==> Starting test Postgres (port 5544)"
|
echo "==> Starting test Postgres (5544) + RabbitMQ (5672)"
|
||||||
docker compose -f "$HERE/docker-compose.yml" up -d
|
docker compose -f "$HERE/docker-compose.yml" up -d
|
||||||
|
|
||||||
echo "==> Waiting for healthy"
|
echo "==> Waiting for Postgres healthy"
|
||||||
for i in $(seq 1 30); do
|
for i in $(seq 1 30); do
|
||||||
status="$(docker inspect --format '{{.State.Health.Status}}' edr-passenger-e2e-db 2>/dev/null || echo none)"
|
status="$(docker inspect --format '{{.State.Health.Status}}' edr-passenger-e2e-db 2>/dev/null || echo none)"
|
||||||
[ "$status" = "healthy" ] && break
|
[ "$status" = "healthy" ] && break
|
||||||
|
|||||||
@@ -19,6 +19,8 @@
|
|||||||
"clean": "find . -type d -name dist -prune -exec rm -rf '{}' + && find . -type f -name '*.tsbuildinfo' -delete",
|
"clean": "find . -type d -name dist -prune -exec rm -rf '{}' + && find . -type f -name '*.tsbuildinfo' -delete",
|
||||||
"test": "turbo run test",
|
"test": "turbo run test",
|
||||||
"test:e2e:passenger": "bash e2e/run.sh",
|
"test:e2e:passenger": "bash e2e/run.sh",
|
||||||
|
"test:e2e:ui": "bash e2e-ui/run.sh",
|
||||||
|
"test:e2e:ui:only": "playwright test -c e2e-ui/playwright.config.ts",
|
||||||
"lint": "turbo run lint",
|
"lint": "turbo run lint",
|
||||||
"type-check": "turbo run type-check",
|
"type-check": "turbo run type-check",
|
||||||
"format": "prettier --write \"**/*.{ts,tsx,json,md}\"",
|
"format": "prettier --write \"**/*.{ts,tsx,json,md}\"",
|
||||||
@@ -29,6 +31,7 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^19.5.0",
|
"@commitlint/cli": "^19.5.0",
|
||||||
"@commitlint/config-conventional": "^19.5.0",
|
"@commitlint/config-conventional": "^19.5.0",
|
||||||
|
"@playwright/test": "^1.61.1",
|
||||||
"husky": "^9.1.6",
|
"husky": "^9.1.6",
|
||||||
"lint-staged": "^15.2.10",
|
"lint-staged": "^15.2.10",
|
||||||
"prettier": "^3.3.3",
|
"prettier": "^3.3.3",
|
||||||
|
|||||||
45
pnpm-lock.yaml
generated
@@ -18,6 +18,9 @@ importers:
|
|||||||
'@commitlint/config-conventional':
|
'@commitlint/config-conventional':
|
||||||
specifier: ^19.5.0
|
specifier: ^19.5.0
|
||||||
version: 19.8.1
|
version: 19.8.1
|
||||||
|
'@playwright/test':
|
||||||
|
specifier: ^1.61.1
|
||||||
|
version: 1.61.1
|
||||||
husky:
|
husky:
|
||||||
specifier: ^9.1.6
|
specifier: ^9.1.6
|
||||||
version: 9.1.7
|
version: 9.1.7
|
||||||
@@ -958,7 +961,7 @@ importers:
|
|||||||
version: 0.446.0(react@18.3.1)
|
version: 0.446.0(react@18.3.1)
|
||||||
next:
|
next:
|
||||||
specifier: ^14.2.0
|
specifier: ^14.2.0
|
||||||
version: 14.2.35(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 14.2.35(@playwright/test@1.61.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
react:
|
react:
|
||||||
specifier: ^18.3.1
|
specifier: ^18.3.1
|
||||||
version: 18.3.1
|
version: 18.3.1
|
||||||
@@ -1043,7 +1046,7 @@ importers:
|
|||||||
version: 0.446.0(react@18.3.1)
|
version: 0.446.0(react@18.3.1)
|
||||||
next:
|
next:
|
||||||
specifier: ^14.2.0
|
specifier: ^14.2.0
|
||||||
version: 14.2.35(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
version: 14.2.35(@playwright/test@1.61.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
qrcode:
|
qrcode:
|
||||||
specifier: ^1.5.4
|
specifier: ^1.5.4
|
||||||
version: 1.5.4
|
version: 1.5.4
|
||||||
@@ -3146,6 +3149,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
|
'@playwright/test@1.61.1':
|
||||||
|
resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
'@popperjs/core@2.11.8':
|
'@popperjs/core@2.11.8':
|
||||||
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
|
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
|
||||||
|
|
||||||
@@ -7275,6 +7283,11 @@ packages:
|
|||||||
fs.realpath@1.0.0:
|
fs.realpath@1.0.0:
|
||||||
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||||
|
|
||||||
|
fsevents@2.3.2:
|
||||||
|
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
|
||||||
|
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
||||||
|
os: [darwin]
|
||||||
|
|
||||||
fsevents@2.3.3:
|
fsevents@2.3.3:
|
||||||
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
||||||
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
||||||
@@ -9471,6 +9484,16 @@ packages:
|
|||||||
resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==}
|
resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==}
|
||||||
engines: {node: '>= 0.4.0'}
|
engines: {node: '>= 0.4.0'}
|
||||||
|
|
||||||
|
playwright-core@1.61.1:
|
||||||
|
resolution: {integrity: sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
playwright@1.61.1:
|
||||||
|
resolution: {integrity: sha512-DWnY5o3YbLWK4GovuAVwpqL+1VwGNdUGrRr++8j8PtQQzvAVZUIMjKQ90fY689sEJZJBbZVw1rXaOKSTitkzPQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
pluralize@8.0.0:
|
pluralize@8.0.0:
|
||||||
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
|
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@@ -13774,6 +13797,10 @@ snapshots:
|
|||||||
'@pkgjs/parseargs@0.11.0':
|
'@pkgjs/parseargs@0.11.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@playwright/test@1.61.1':
|
||||||
|
dependencies:
|
||||||
|
playwright: 1.61.1
|
||||||
|
|
||||||
'@popperjs/core@2.11.8': {}
|
'@popperjs/core@2.11.8': {}
|
||||||
|
|
||||||
'@posthog/core@1.41.1':
|
'@posthog/core@1.41.1':
|
||||||
@@ -19370,6 +19397,9 @@ snapshots:
|
|||||||
|
|
||||||
fs.realpath@1.0.0: {}
|
fs.realpath@1.0.0: {}
|
||||||
|
|
||||||
|
fsevents@2.3.2:
|
||||||
|
optional: true
|
||||||
|
|
||||||
fsevents@2.3.3:
|
fsevents@2.3.3:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
@@ -21300,7 +21330,7 @@ snapshots:
|
|||||||
react: 19.2.6
|
react: 19.2.6
|
||||||
react-dom: 19.2.6(react@19.2.6)
|
react-dom: 19.2.6(react@19.2.6)
|
||||||
|
|
||||||
next@14.2.35(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
next@14.2.35(@playwright/test@1.61.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@next/env': 14.2.35
|
'@next/env': 14.2.35
|
||||||
'@swc/helpers': 0.5.5
|
'@swc/helpers': 0.5.5
|
||||||
@@ -21321,6 +21351,7 @@ snapshots:
|
|||||||
'@next/swc-win32-arm64-msvc': 14.2.33
|
'@next/swc-win32-arm64-msvc': 14.2.33
|
||||||
'@next/swc-win32-ia32-msvc': 14.2.33
|
'@next/swc-win32-ia32-msvc': 14.2.33
|
||||||
'@next/swc-win32-x64-msvc': 14.2.33
|
'@next/swc-win32-x64-msvc': 14.2.33
|
||||||
|
'@playwright/test': 1.61.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@babel/core'
|
- '@babel/core'
|
||||||
- babel-plugin-macros
|
- babel-plugin-macros
|
||||||
@@ -21764,6 +21795,14 @@ snapshots:
|
|||||||
|
|
||||||
pkginfo@0.4.1: {}
|
pkginfo@0.4.1: {}
|
||||||
|
|
||||||
|
playwright-core@1.61.1: {}
|
||||||
|
|
||||||
|
playwright@1.61.1:
|
||||||
|
dependencies:
|
||||||
|
playwright-core: 1.61.1
|
||||||
|
optionalDependencies:
|
||||||
|
fsevents: 2.3.2
|
||||||
|
|
||||||
pluralize@8.0.0: {}
|
pluralize@8.0.0: {}
|
||||||
|
|
||||||
png-js@2.0.0:
|
png-js@2.0.0:
|
||||||
|
|||||||
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 552 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 111 KiB |
@@ -0,0 +1,19 @@
|
|||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.778Z","time":1.6829999999999998,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":768,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Disposition","value":"inline; filename=\"edr-logo.webp\""},{"name":"Content-Length","value":"5926"},{"name":"Content-Security-Policy","value":"script-src 'none'; frame-src 'none'; sandbox;"},{"name":"Content-Type","value":"image/webp"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"},{"name":"X-Nextjs-Cache","value":"HIT"}],"content":{"size":5926,"mimeType":"image/webp","compression":0,"_sha1":"d61faf8539b0b0fa4fb2a3d41877705244026fbd.webp"},"headersSize":416,"bodySize":5926,"redirectURL":"","_transferSize":6342},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.255,"receive":0.428},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.664,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.760Z","time":19.033,"request":{"method":"GET","url":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"none"},{"name":"Sec-Fetch-User","value":"?1"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"origin","value":"00000000-0000-4000-8000-000000000020"},{"name":"destination","value":"00000000-0000-4000-8000-000000000022"},{"name":"date","value":"2026-07-23"},{"name":"tripType","value":"ONE_WAY"},{"name":"adults","value":"1"},{"name":"children","value":"0"},{"name":"nationality","value":"DJIBOUTIAN"}],"headersSize":673,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":51424,"mimeType":"text/html; charset=utf-8","compression":41211,"_sha1":"0571c6a0639d67d8dd050bd23b22c6bfd5486b04.html"},"headersSize":765,"bodySize":10213,"redirectURL":"","_transferSize":10978},"cache":{},"timings":{"dns":0.008,"connect":0.303,"ssl":1.396,"send":0,"wait":15.717,"receive":1.609},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51333.983,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.778Z","time":4.997999999999999,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630711767","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630711767"}],"headersSize":742,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":0.005,"connect":0.278,"ssl":1.318,"send":0,"wait":2.385,"receive":1.012},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.713,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.779Z","time":4.251,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630711767","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630711767"}],"headersSize":727,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.756,"receive":2.495},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.732,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.779Z","time":8.39,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":739,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":0.001,"connect":0.285,"ssl":1.305,"send":0,"wait":1.671,"receive":5.128},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.762,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.779Z","time":9.046,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":738,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":0.001,"connect":0.137,"ssl":1.16,"send":0,"wait":2.119,"receive":5.629},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.788,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.779Z","time":36.768,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":730,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.475,"receive":34.293},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.801,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.779Z","time":41.08,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/results/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":744,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"20cb55-19f8376f071\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":479485,"redirectURL":"","_transferSize":479856},"cache":{},"timings":{"dns":0.001,"connect":0.186,"ssl":1.208,"send":0,"wait":2.212,"receive":37.473},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.775,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:11.779Z","time":107.403,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630711767","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630711767"}],"headersSize":728,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":0.002,"connect":0.415,"ssl":1.443,"send":0,"wait":2.102,"receive":103.441},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51353.748,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.216Z","time":30.933999999999997,"request":{"method":"POST","url":"http://localhost:4000/search","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"221"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":883,"bodySize":221,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"71180a63754e255f2f4b080ed31783b15222667d.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1601"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"ETag","value":"W/\"641-EBJR6r6Bbw+iLF3HjDnagtOvjHo\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":1601,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"101251eabe816f0fa22c5dc78c39da82d3af8c7a.json"},"headersSize":989,"bodySize":1601,"redirectURL":"","_transferSize":2590},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":29.011,"receive":1.923},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51856.284,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.216Z","time":15.856,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"551"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"ETag","value":"W/\"227-1w3eUFRrr7gceACc3eOsJ3E2miU\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":551,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"d70dde50546bafb81c78009cdde3ac2771369a25.json"},"headersSize":983,"bodySize":551,"redirectURL":"","_transferSize":1534},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.775,"receive":2.081},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51856.196,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.216Z","time":9.17,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"227-1w3eUFRrr7gceACc3eOsJ3E2miU\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"551"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"ETag","value":"W/\"227-moW8Y4Rh/C3vS3S7J8/VrlVY/F8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":551,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"9a85bc638461fc2def4b74bb27cfd5ae5558fc5f.json"},"headersSize":983,"bodySize":551,"redirectURL":"","_transferSize":1534},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.264,"receive":1.906},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51856.221,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.213Z","time":19.5,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":777,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.758,"receive":17.742},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51856.064,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.290Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"Q+IaTz5eoLfhhuDpFmeU9w=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51864.008,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.290Z","time":5.274,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=b9fe2a21-2e9f-4031-a37f-1530ac439e68","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"b9fe2a21-2e9f-4031-a37f-1530ac439e68"}],"headersSize":850,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"ETag","value":"W/\"50-EW9k0QMFztx4tbBEv3ukohc91m4\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"116f64d10305cedc78b5b044bf7ba4a2173dd66e.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.465,"receive":2.809},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":51864.58,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.769Z","time":8.931000000000001,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=br3vi","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22results%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/results"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"br3vi"}],"headersSize":1018,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"a5a2bb1a5b49246f969011b22df0d171d298ab95.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.096,"receive":0.835},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":52345.912,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.786Z","time":7.177,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=n2i48","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"n2i48"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.177,"receive":-1},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":52360.478,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.795Z","time":43.948,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/auth-check/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=DJIBOUTIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":747,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"ETag","value":"W/\"ed732-19f8376f656\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":254272,"redirectURL":"","_transferSize":254642},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.74,"receive":42.208},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":52369.116,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@5087d7ebeed30296a308e8b80fe89c6f","startedDateTime":"2026-07-21T10:45:12.870Z","time":8.548,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=3ko94","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/auth-check"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ko94"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:12 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.548,"receive":-1},"_frameref":"frame@f51847095d3ba047ce33f294c5bfa966","_monotonicTime":52450.995,"_resourceType":"fetch"}}
|
||||||
@@ -0,0 +1,167 @@
|
|||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":1.71,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":767,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Disposition","value":"inline; filename=\"edr-logo.webp\""},{"name":"Content-Length","value":"5926"},{"name":"Content-Security-Policy","value":"script-src 'none'; frame-src 'none'; sandbox;"},{"name":"Content-Type","value":"image/webp"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"},{"name":"X-Nextjs-Cache","value":"HIT"}],"content":{"size":5926,"mimeType":"image/webp","compression":0,"_sha1":"d61faf8539b0b0fa4fb2a3d41877705244026fbd.webp"},"headersSize":416,"bodySize":5926,"redirectURL":"","_transferSize":6342},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.291,"receive":0.419},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.525,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.904Z","time":20.173000000000002,"request":{"method":"GET","url":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"none"},{"name":"Sec-Fetch-User","value":"?1"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"origin","value":"00000000-0000-4000-8000-000000000020"},{"name":"destination","value":"00000000-0000-4000-8000-000000000022"},{"name":"date","value":"2026-07-23"},{"name":"tripType","value":"ONE_WAY"},{"name":"adults","value":"1"},{"name":"children","value":"0"},{"name":"nationality","value":"ETHIOPIAN"}],"headersSize":673,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":51421,"mimeType":"text/html; charset=utf-8","compression":41209,"_sha1":"bf8103cbde07afcc93181c858345d17a365a2ca8.html"},"headersSize":765,"bodySize":10212,"redirectURL":"","_transferSize":10977},"cache":{},"timings":{"dns":0.008,"connect":0.282,"ssl":1.37,"send":0,"wait":17.247,"receive":1.266},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22478.253,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":4.853,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630682911","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630682911"}],"headersSize":741,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":0.005,"connect":0.251,"ssl":1.283,"send":0,"wait":2.177,"receive":1.137},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.591,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":4.275,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630682911","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630682911"}],"headersSize":726,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.681,"receive":2.594},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.611,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":8.448,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":738,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":0.001,"connect":0.3,"ssl":1.326,"send":0,"wait":1.51,"receive":5.311},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.642,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":9.543,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":737,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":0,"connect":0.08,"ssl":1.103,"send":0,"wait":1.907,"receive":6.453},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.669,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":39.785,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":729,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.796,"receive":36.989},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.683,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":42.37,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/results/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":743,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"20cb55-19f8376f071\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":479485,"redirectURL":"","_transferSize":479856},"cache":{},"timings":{"dns":0.002,"connect":0.244,"ssl":1.268,"send":0,"wait":2.038,"receive":38.818},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.656,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:42.924Z","time":110.907,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630682911","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630682911"}],"headersSize":727,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":0.002,"connect":0.356,"ssl":1.384,"send":0,"wait":1.874,"receive":107.291},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22499.628,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.358Z","time":32.664,"request":{"method":"POST","url":"http://localhost:4000/search","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"220"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":883,"bodySize":220,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"9b24d025b50a9c3ff3db8b177a92ea96d434dcc8.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1599"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"ETag","value":"W/\"63f-p+FgCcIJwjP8b7eWAZ80p8G82fM\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":1599,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"a7e16009c209c233fc6fb796019f34a7c1bcd9f3.json"},"headersSize":989,"bodySize":1599,"redirectURL":"","_transferSize":2588},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":30.693,"receive":1.971},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22996.035,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.358Z","time":12.708,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"ETag","value":"W/\"229-FdG6ujh7RChPIFBSLl90kChhUGk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"15d1baba387b44284f2050522e5f749028615069.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.586,"receive":2.122},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22995.952,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.358Z","time":7.916,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-FdG6ujh7RChPIFBSLl90kChhUGk\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"ETag","value":"W/\"229-47IZqaK2R/j4F2Jxyv/MKZsVQXk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"e3b219a9a2b647f8f8176271caffcc299b154179.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.823,"receive":2.093},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22995.977,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.355Z","time":15.621,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":776,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.823,"receive":13.798},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22995.893,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.466Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":-1,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23039.635,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.452Z","time":6.048,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=09aab790-cd4c-4d72-8055-32efc70297e2","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"09aab790-cd4c-4d72-8055-32efc70297e2"}],"headersSize":850,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"ETag","value":"W/\"50-/2q+Ze4TMQk2xGsG5uYxme9Ie8Y\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ff6abe65ee13310936c46b06e6e63199ef487bc6.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.657,"receive":1.391},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23039.785,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.927Z","time":8.529,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=br3vi","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22results%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/results"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"br3vi"}],"headersSize":1017,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"a5a2bb1a5b49246f969011b22df0d171d298ab95.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.651,"receive":0.878},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23503.111,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.946Z","time":20.724,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=n2i48","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"n2i48"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":20.724,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23527.599,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.975Z","time":17.895,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/auth-check/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":746,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:43 GMT"},{"name":"ETag","value":"W/\"ed732-19f8376f656\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":254272,"redirectURL":"","_transferSize":254642},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.278,"receive":15.617},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23549.598,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:44.024Z","time":9.986,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=3ko94","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/auth-check"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ko94"}],"headersSize":858,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:44 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"113ef7bc1ddbb9932f87ab52b1c6c6d273a48c10.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.233,"receive":0.753},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23605.095,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:44.026Z","time":10.584,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-47IZqaK2R/j4F2Jxyv/MKZsVQXk\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:44 GMT"},{"name":"ETag","value":"W/\"229-lEGccIuY+cIpx1rUTtpBHgSOxRg\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"94419c708b98f9c229c75ad44eda411e048ec518.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.161,"receive":0.423},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23605.125,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:44.026Z","time":8.276,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-lEGccIuY+cIpx1rUTtpBHgSOxRg\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:44 GMT"},{"name":"ETag","value":"W/\"229-9QRNUYoNjouuClLjZPkY3CvDQJo\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"f5044d518a0d8e8bae0a52e364f918dc2bc3409a.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.897,"receive":0.379},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23606.228,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:44.038Z","time":12.725,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=xc7gl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"xc7gl"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:44 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.725,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23612.223,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:44.052Z","time":33.041,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/passengers/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":581,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:44 GMT"},{"name":"ETag","value":"W/\"216ea9-19f8376f7db\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":478257,"redirectURL":"","_transferSize":478628},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.756,"receive":31.285},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23626.216,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:44.145Z","time":8.033,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":842,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:44 GMT"},{"name":"ETag","value":"W/\"90-uY1nao0aETKRF6pU80Ye00SidPY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"b98d676a8d1a11329117aa54f3461ed344a274f6.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.702,"receive":1.331},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23748.903,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:44.145Z","time":6.162,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"90-uY1nao0aETKRF6pU80Ye00SidPY\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":893,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:44 GMT"},{"name":"ETag","value":"W/\"90-B7Y1Fjl3wrTAACCopAzYRQcsCg8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"07b635163977c2b4c00020a8a40cd845072c0a0f.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.803,"receive":1.359},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23748.928,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:45.442Z","time":6.542999999999999,"request":{"method":"POST","url":"http://localhost:4000/passengers/save-details","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"349"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":900,"bodySize":349,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"2a6a91497b3279de916b94656cd8aa795910cfc9.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"368"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:45 GMT"},{"name":"ETag","value":"W/\"170-0w++WpmzuR2yaMf52zPmGTQ6eU8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":368,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"d30fbe5a99b3b91db268c7f9db33e619343a794f.json"},"headersSize":988,"bodySize":368,"redirectURL":"","_transferSize":1356},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.188,"receive":1.355},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":25017.195,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:45.450Z","time":9.635,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=3ufbl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/passengers"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ufbl"}],"headersSize":853,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:45 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":111,"mimeType":"text/x-component","compression":0,"_sha1":"3ba650e38c01b7f4dba7c59a8ac235a4f5802b22.htc"},"headersSize":734,"bodySize":119,"redirectURL":"","_transferSize":853},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.919,"receive":0.716},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":25025.335,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:45.461Z","time":9.154,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=1ivgy","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1ivgy"}],"headersSize":794,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:45 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":4108,"mimeType":"text/x-component","compression":2836,"_sha1":"1f7797283232c4e95279bd55421c27d82e746edc.htc"},"headersSize":734,"bodySize":1272,"redirectURL":"","_transferSize":2006},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.384,"receive":0.77},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":25035.568,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:45.471Z","time":30.887999999999998,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/seats/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":576,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:45 GMT"},{"name":"ETag","value":"W/\"1f96a9-19f8376ffca\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:21 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":484983,"redirectURL":"","_transferSize":485354},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.58,"receive":29.308},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":25044.998,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:45.557Z","time":13.063,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101?coachTypeId=00000000-0000-4000-8000-000000000001&journeyDirection=ONE_WAY&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"coachTypeId","value":"00000000-0000-4000-8000-000000000001"},{"name":"journeyDirection","value":"ONE_WAY"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"}],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9436"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:45 GMT"},{"name":"ETag","value":"W/\"24dc-n9cI+xd0F8wCo1y1QSQolCXAinU\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9436,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"9fd708fb177417cc02a35cb54124289425c08a75.json"},"headersSize":985,"bodySize":9436,"redirectURL":"","_transferSize":10421},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.832,"receive":1.231},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":25158.053,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.421Z","time":22.533,"request":{"method":"POST","url":"http://localhost:4000/seats/hold","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"304"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":304,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"d0c065539ba437482410513259e75bb28435950d.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"941"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"ETag","value":"W/\"3ad-MZOWVvqtu07efIvJlLttYyJhiHQ\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":941,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"31939656faadbb4ede7c8bc994bb6d6322618874.json"},"headersSize":988,"bodySize":941,"redirectURL":"","_transferSize":1929},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":21.21,"receive":1.323},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":25996.63,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.447Z","time":9.698,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=11o05","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/seats"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"11o05"}],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":113,"mimeType":"text/x-component","compression":0,"_sha1":"efc18e093e9560b1f05c3bd786098516c99407f5.htc"},"headersSize":734,"bodySize":120,"redirectURL":"","_transferSize":854},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.855,"receive":0.843},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26024.927,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.458Z","time":7.961,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=dcucj","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"dcucj"}],"headersSize":791,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":4115,"mimeType":"text/x-component","compression":2840,"_sha1":"a4041655d9c311f5be784a496b2be08d838e2d5c.htc"},"headersSize":734,"bodySize":1275,"redirectURL":"","_transferSize":2009},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.197,"receive":0.764},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26032.62,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.467Z","time":26.616,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/review/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":572,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"ETag","value":"W/\"1b5bdb-19f8377031c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:22 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":413299,"redirectURL":"","_transferSize":413670},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.614,"receive":25.002},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26040.806,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.542Z","time":7.024,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"ETag","value":"W/\"2f7-jfz9mYDgV1P/iTKM15pM2Xu2MJM\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"8dfcfd9980e05753ff89328cd79a4cd97bb63093.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.215,"receive":1.809},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26137.618,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.542Z","time":20.312,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9431"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"ETag","value":"W/\"24d7-ZTuDka8mAdgOJa+gmfHfPpDtgvA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9431,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"653b8391af2601d80e25afa099f1df3e90ed82f0.json"},"headersSize":985,"bodySize":9431,"redirectURL":"","_transferSize":10416},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":18.562,"receive":1.75},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26137.587,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.542Z","time":20.744,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"24d7-ZTuDka8mAdgOJa+gmfHfPpDtgvA\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":926,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9431"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"ETag","value":"W/\"24d7-2WJ6HbXDFfMezyA1E4n0035kzEM\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9431,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"d9627a1db5c315f31ecf20351389f4d37e64cc43.json"},"headersSize":985,"bodySize":9431,"redirectURL":"","_transferSize":10416},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":19.065,"receive":1.679},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26137.638,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:46.558Z","time":36.665,"request":{"method":"GET","url":"http://localhost:4000/search/fare-breakdown?scheduleId=00000000-0000-4000-8000-000000000101&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022&passengers=%5B%7B%22passengerName%22%3A%22Adult+1%22%2C%22dateOfBirth%22%3A%221990-06-15%22%2C%22seatClassId%22%3A%2200000000-0000-4000-8000-000000000010%22%2C%22nationality%22%3A%22ETHIOPIAN%22%7D%5D&displayCurrency=ETB","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"scheduleId","value":"00000000-0000-4000-8000-000000000101"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"},{"name":"passengers","value":"[{\"passengerName\":\"Adult 1\",\"dateOfBirth\":\"1990-06-15\",\"seatClassId\":\"00000000-0000-4000-8000-000000000010\",\"nationality\":\"ETHIOPIAN\"}]"},{"name":"displayCurrency","value":"ETB"}],"headersSize":844,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"720"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:46 GMT"},{"name":"ETag","value":"W/\"2d0-ykwR7Rfcmjs+9UdTsd635GKG0t8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":720,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ca4c11ed17dc9a3b3ef54753b1deb7e46286d2df.json"},"headersSize":983,"bodySize":720,"redirectURL":"","_transferSize":1703},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":35.358,"receive":1.307},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26138.002,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.420Z","time":4.684,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"2f7-jfz9mYDgV1P/iTKM15pM2Xu2MJM\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"2f7-MAxK5y7i761V6RgjV6wY/3gV9GY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"300c4ae72ee2efad55e9182357ac18ff7815f466.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.242,"receive":0.442},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":26994.51,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.428Z","time":48.618,"request":{"method":"POST","url":"http://localhost:4000/bookings","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"661"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":885,"bodySize":661,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"0d4d9365e6fc1f0f79f00644305854cec0791060.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"3536"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"dd0-vofgAHyqZ9pfdlLCnX0yFCMNPqg\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":3536,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"be87e0007caa67da5f7652c29d7d3214230d3ea8.json"},"headersSize":989,"bodySize":3536,"redirectURL":"","_transferSize":4525},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":47.325,"receive":1.293},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27002.5,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.579Z","time":6.666,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=1uobt","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/review"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1uobt"}],"headersSize":843,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":115,"mimeType":"text/x-component","compression":0,"_sha1":"de07c86cc64bda73e654d27a199f6610c0e4ebad.htc"},"headersSize":734,"bodySize":116,"redirectURL":"","_transferSize":850},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.955,"receive":0.711},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27153.443,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.587Z","time":6.854,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=rvb09","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22payment%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"rvb09"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.854,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27161.688,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.595Z","time":27.727,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/payment/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":574,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"1c5af1-19f83770767\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:23 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":435498,"redirectURL":"","_transferSize":435869},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.68,"receive":26.047},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27169.693,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.673Z","time":7.475,"request":{"method":"GET","url":"http://localhost:4000/payments/methods","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"593"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"251-VD9DM3cgRxUEZFwlc9SVa49EpkA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":593,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"543f43337720471504645c2573d4956b8f44a640.json"},"headersSize":983,"bodySize":593,"redirectURL":"","_transferSize":1576},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.132,"receive":1.343},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27269.328,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:47.705Z","time":26.74199999999837,"request":{"method":"POST","url":"http://localhost:4000/internal/payments/mark-paid","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"content-type","value":"application/json"},{"name":"content-length","value":"500"}],"queryString":[],"headersSize":-1,"bodySize":500,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"09dfc1a17ebbc0cdea60b7acd5c4d4e29afa6d9b.json"}},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"109"},{"name":"ETag","value":"W/\"6d-0umrO7dNdPgdcy7+SHfU132lhCI\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":109,"mimeType":"application/json; charset=utf-8","_sha1":"d2e9ab3bb74d74f81d732efe4877d4d77da58422.json"},"headersSize":-1,"bodySize":109,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":10.45600000000195,"wait":9.537999999996828,"receive":0.8930000000000291,"dns":6.650000000001455,"connect":9.661000000000058,"ssl":-1,"blocked":-1},"_monotonicTime":27278.848,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.413Z","time":0.2021484375,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"/kHVHuOzLoddw/ViLWXkZQ=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"kBFTdblVeGrUwMQ738B4DAHOtU4="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"9b4e558ddb9eb2ac20b433985e603f35.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":22997.272,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:43.476Z","time":0.73193359375,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"hvI8lXGK8H1a0c/Gj8nlMA=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Sec-WebSocket-Accept","value":"7MxSCwUXKlIuwISVEKBezk/t0R8="},{"name":"Connection","value":"Upgrade"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Vary","value":"Origin"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"497125fd4dbe44d69772d5b9d26e1e54.jsonl"},"headersSize":235,"bodySize":-1,"redirectURL":"","_transferSize":410},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":23049.929,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":1.391,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"If-None-Match","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":-1,"bodySize":0},"response":{"status":304,"statusText":"Not Modified","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"}],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.117,"receive":0.274},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27323.745,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.729Z","time":18.34,"request":{"method":"GET","url":"http://localhost:5174/booking/confirmation","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"none"},{"name":"Sec-Fetch-User","value":"?1"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":678,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":29574,"mimeType":"text/html; charset=utf-8","compression":21523,"_sha1":"3d4f6df6f6a33998487940390a9be224597cadc4.html"},"headersSize":765,"bodySize":8051,"redirectURL":"","_transferSize":8816},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":16.743,"receive":1.597},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27302.891,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":3.0829999999999997,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630687736","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630687736"}],"headersSize":578,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.082,"receive":1.001},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27323.778,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":4.239,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630687736","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630687736"}],"headersSize":563,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.138,"receive":2.101},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27323.801,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":6.97,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":575,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.795,"receive":5.175},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27323.972,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":8.848,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":574,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.725,"receive":6.123},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27324.098,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":34.550999999999995,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/confirmation/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":585,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"1b9b35-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":425290,"redirectURL":"","_transferSize":425661},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.053,"receive":32.498},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27324.034,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":36.648,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":566,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.198,"receive":33.45},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27324.157,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:47.749Z","time":105.899,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630687736","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630687736"}],"headersSize":564,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:47 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.694,"receive":103.205},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27323.933,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.188Z","time":-1,"request":{"method":"GET","url":"http://localhost:5174/","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27788.834,"_resourceType":"document"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.219Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":-1,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27792.817,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.200Z","time":-1,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=09aab790-cd4c-4d72-8055-32efc70297e2","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"sec-ch-ua-platform","value":"\"Windows\""},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Accept-Language","value":"en-US"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"}],"queryString":[{"name":"deviceId","value":"09aab790-cd4c-4d72-8055-32efc70297e2"}],"headersSize":-1,"bodySize":0},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27793,"_resourceType":"xhr"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.195Z","time":-1,"request":{"method":"GET","url":"http://localhost:4000/payments/intents/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"sec-ch-ua-platform","value":"\"Windows\""},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Accept-Language","value":"en-US"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27792.503,"_resourceType":"xhr"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.194Z","time":0.239990234375,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"dzYDynYWdEWstdGaR9cMHg=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"5dPnLwvBP8ArHxrYIDGPG+bt+mg="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"bc3355add9b60b188f5130f55571e8f5.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27791.004,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.222Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":-1,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27795.932,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.142Z","time":11.385,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-9QRNUYoNjouuClLjZPkY3CvDQJo\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"229-7Iwe+euZujJs5aPf+jZbpWXFS7c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":-1,"mimeType":"application/json; charset=utf-8","compression":0},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.591,"receive":0.794},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27789.121,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.142Z","time":4.987,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-7Iwe+euZujJs5aPf+jZbpWXFS7c\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"229-FLn5Z85hCQM16KM4mV008J3zMQo\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":-1,"mimeType":"application/json; charset=utf-8","compression":0},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.548,"receive":0.439},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27790.117,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.142Z","time":14.913,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":868,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1234"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"4d2-A4TRAXfFPaoKAVxwR/PbPqZI8XE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":-1,"mimeType":"application/json; charset=utf-8","compression":0},"headersSize":984,"bodySize":1234,"redirectURL":"","_transferSize":2218},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.186,"receive":1.727},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27790.141,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.138Z","time":15.114999999999998,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":613,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.351,"receive":13.764},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27789.086,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.132Z","time":57.079,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_lib_generate-voucher_ts.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":602,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"23425a-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":653430,"redirectURL":"","_transferSize":653801},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.929,"receive":55.15},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27788.104,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.222Z","time":4.402,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"If-None-Match","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":-1,"bodySize":0},"response":{"status":304,"statusText":"Not Modified","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"}],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.013,"receive":0.389},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27801.221,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.189Z","time":25.42,"request":{"method":"GET","url":"http://localhost:5174/","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":698,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"}],"content":{"size":42523,"mimeType":"text/html; charset=utf-8","compression":31541,"_sha1":"7206a2fb47066445f636bec970a08e917002cbf5.html"},"headersSize":732,"bodySize":10982,"redirectURL":"","_transferSize":11714},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":23.215,"receive":2.205},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27789.048,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.222Z","time":7.084,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630688201","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630688201"}],"headersSize":543,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.03,"receive":4.054},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27801.275,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.222Z","time":8.111,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630688201","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630688201"}],"headersSize":558,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.884,"receive":3.227},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27801.255,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.223Z","time":9.228,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":555,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.122,"receive":6.106},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27801.308,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:48.220Z","time":22.242999999998574,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-nTNMMuEsTCQaaPZo9Wl62ivUK2A\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"9d334c32e12c4c241a68f668f5697ada2bd42b60.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":1.2730000000010477,"wait":22.094999999997526,"receive":0.14800000000104774,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.772000000000844},"_monotonicTime":27793.985,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.234Z","time":8.828999999999999,"request":{"method":"GET","url":"http://localhost:5174/edr-banner.jpg","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":587,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"public, max-age=0"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"185977"},{"name":"Content-Type","value":"image/jpeg"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"2d679-19eef8d4370\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Mon, 22 Jun 2026 13:37:53 GMT"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"}],"content":{"size":185977,"mimeType":"image/jpeg","compression":0,"_sha1":"88d4f22882ab8e3c7ff02ba3c0ddc9ba5d5f1e63.jpeg"},"headersSize":682,"bodySize":185977,"redirectURL":"","_transferSize":186659},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.278,"receive":1.551},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27809.255,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.223Z","time":45.543,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":546,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.329,"receive":40.214},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27801.339,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.223Z","time":72.615,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":544,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"3af266-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":811410,"redirectURL":"","_transferSize":811781},"cache":{},"timings":{"dns":0.007,"connect":0.181,"ssl":1.252,"send":0,"wait":2.968,"receive":68.207},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27801.325,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.222Z","time":114.032,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630688201","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630688201"}],"headersSize":544,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.785,"receive":111.247},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":27801.292,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.697Z","time":11.644,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-FLn5Z85hCQM16KM4mV008J3zMQo\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"229-UfWmDk7FbWCpfQTgtgrUTNJR8bI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"51f5a60e4ec56d60a97d04e0b60ad44cd251f1b2.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.128,"receive":1.516},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28331.061,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.698Z","time":8.575000000000001,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-UfWmDk7FbWCpfQTgtgrUTNJR8bI\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"229-OSfq9o7xz3ie5Msa0gvaUuFM0Vk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"3927eaf68ef1cf789ee4cb1ad20bda52e14cd159.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.376,"receive":1.199},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28331.08,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.698Z","time":8.085,"request":{"method":"GET","url":"http://localhost:4000/packages","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":831,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"65"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"41-70SYjJbWXh1TwZ4UTWfHGt+bNxs\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":65,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ef44988c96d65e1d53c19e144d67c71adf9b371b.json"},"headersSize":981,"bodySize":65,"redirectURL":"","_transferSize":1046},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.849,"receive":1.236},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28331.098,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.691Z","time":2.734,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=throwOnHydrationMismatch&arguments=&lineNumber=6981&column=9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"throwOnHydrationMismatch"},{"name":"arguments","value":""},{"name":"lineNumber","value":"6981"},{"name":"column","value":"9"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"9eec75fe5676dad186535c1643ec3d66e30b5ce8.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.148,"receive":0.586},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28327.449,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.692Z","time":4.354,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=tryToClaimNextHydratableInstance&arguments=&lineNumber=7040&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"tryToClaimNextHydratableInstance"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7040"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":356,"mimeType":"application/json","compression":0,"_sha1":"cfd978cfd55f2216715fe252a8a0e5fe8a4cfaef.json"},"headersSize":186,"bodySize":368,"redirectURL":"","_transferSize":554},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.752,"receive":0.602},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28327.519,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.692Z","time":5.569,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=updateHostComponent%241&arguments=&lineNumber=16621&column=5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"updateHostComponent$1"},{"name":"arguments","value":""},{"name":"lineNumber","value":"16621"},{"name":"column","value":"5"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"782efd8169339aec761e00b0b7f8af4668bbee9f.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.225,"receive":0.344},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28327.583,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.692Z","time":6.956,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork%241&arguments=&lineNumber=18503&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork$1"},{"name":"arguments","value":""},{"name":"lineNumber","value":"18503"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":336,"mimeType":"application/json","compression":0,"_sha1":"0ad0a35fd6e6f931ee1cc3c7d2b6e0c33549a465.json"},"headersSize":186,"bodySize":348,"redirectURL":"","_transferSize":534},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.663,"receive":0.293},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28328.001,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.692Z","time":8.308,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=HTMLUnknownElement.callCallback&arguments=&lineNumber=20565&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"HTMLUnknownElement.callCallback"},{"name":"arguments","value":""},{"name":"lineNumber","value":"20565"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":356,"mimeType":"application/json","compression":0,"_sha1":"a04963cb88a925c66a2a466bf7ca0552e81f7c0d.json"},"headersSize":186,"bodySize":368,"redirectURL":"","_transferSize":554},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.965,"receive":0.343},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28328.505,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.692Z","time":14.540000000000001,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=Object.invokeGuardedCallbackImpl&arguments=&lineNumber=20614&column=16","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"Object.invokeGuardedCallbackImpl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"20614"},{"name":"column","value":"16"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":357,"mimeType":"application/json","compression":0,"_sha1":"1f414bc61b9ba60898dc36ca81d059801dedf11f.json"},"headersSize":186,"bodySize":369,"redirectURL":"","_transferSize":555},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.878,"receive":0.662},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28328.681,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.692Z","time":7.061,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=invokeGuardedCallback&arguments=&lineNumber=20689&column=29","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"invokeGuardedCallback"},{"name":"arguments","value":""},{"name":"lineNumber","value":"20689"},{"name":"column","value":"29"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"994e35cd03c4b3ce7cb7b994ba9f3543dd64e900.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.488,"receive":0.573},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28328.763,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.693Z","time":7.277,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork&arguments=&lineNumber=26949&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26949"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":334,"mimeType":"application/json","compression":0,"_sha1":"4e1672a96f75cb07adec98fae8bc280ec0d49ff2.json"},"headersSize":186,"bodySize":346,"redirectURL":"","_transferSize":532},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.969,"receive":0.308},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28328.827,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.693Z","time":7.674,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performUnitOfWork&arguments=&lineNumber=25748&column=12","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performUnitOfWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25748"},{"name":"column","value":"12"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":342,"mimeType":"application/json","compression":0,"_sha1":"f7382aab14f8501df740bfebfde9f46f917132f9.json"},"headersSize":186,"bodySize":354,"redirectURL":"","_transferSize":540},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.351,"receive":0.323},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28328.889,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.693Z","time":14.244,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=workLoopSync&arguments=&lineNumber=25464&column=5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"workLoopSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25464"},{"name":"column","value":"5"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":337,"mimeType":"application/json","compression":0,"_sha1":"bcf0740ca067b04d6e4c1de1dbd03d7792023e40.json"},"headersSize":186,"bodySize":349,"redirectURL":"","_transferSize":535},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.822,"receive":0.422},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28328.946,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.693Z","time":7.092,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=renderRootSync&arguments=&lineNumber=25419&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"renderRootSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25419"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":339,"mimeType":"application/json","compression":0,"_sha1":"9d88218838d17f32ded8e054b97afa10ffbc5dcf.json"},"headersSize":186,"bodySize":351,"redirectURL":"","_transferSize":537},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.757,"receive":0.335},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.007,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.693Z","time":6.819999999999999,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performSyncWorkOnRoot&arguments=&lineNumber=24887&column=20","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performSyncWorkOnRoot"},{"name":"arguments","value":""},{"name":"lineNumber","value":"24887"},{"name":"column","value":"20"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"22e42e74ce029bfb314a4487f6c3102d2f7f6079.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.494,"receive":0.326},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.069,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.693Z","time":6.734,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkAcrossRoots_impl&arguments=&lineNumber=7758&column=13","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkAcrossRoots_impl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7758"},{"name":"column","value":"13"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":353,"mimeType":"application/json","compression":0,"_sha1":"794346a4af602db7ccacf57a88ab4194c0cf5b7d.json"},"headersSize":186,"bodySize":365,"redirectURL":"","_transferSize":551},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.353,"receive":0.381},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.356,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.694Z","time":12.316999999999998,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkOnAllRoots&arguments=&lineNumber=7718&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkOnAllRoots"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7718"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":347,"mimeType":"application/json","compression":0,"_sha1":"0bb88ae2bd6698f692a00823d0a939b1be71f3ee.json"},"headersSize":186,"bodySize":359,"redirectURL":"","_transferSize":545},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.979,"receive":0.338},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.415,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.694Z","time":6.135999999999999,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffectsImpl&arguments=&lineNumber=26518&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffectsImpl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26518"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"a04820dc22a0795826e1b0e5b5638813c1f7cceb.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.693,"receive":0.443},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.474,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.694Z","time":5.984,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffects&arguments=&lineNumber=26438&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffects"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26438"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":344,"mimeType":"application/json","compression":0,"_sha1":"8e676c0de18d14ee9fe60609c9d47229e353d6ce.json"},"headersSize":186,"bodySize":356,"redirectURL":"","_transferSize":542},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.669,"receive":0.315},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.532,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.694Z","time":6.11,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=eval&arguments=&lineNumber=26172&column=9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"eval"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26172"},{"name":"column","value":"9"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":329,"mimeType":"application/json","compression":0,"_sha1":"1829053a22e33f2a12819b088d3f1e14c0e487d4.json"},"headersSize":186,"bodySize":341,"redirectURL":"","_transferSize":527},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.738,"receive":0.372},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.592,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.694Z","time":8.554,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=workLoop&arguments=&lineNumber=256&column=34","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"workLoop"},{"name":"arguments","value":""},{"name":"lineNumber","value":"256"},{"name":"column","value":"34"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":331,"mimeType":"application/json","compression":0,"_sha1":"3b0fcfbc2ab1e8019d3bb4cb89f07ea49871704a.json"},"headersSize":186,"bodySize":343,"redirectURL":"","_transferSize":529},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.058,"receive":0.496},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.65,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.694Z","time":5.005,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=flushWork&arguments=&lineNumber=225&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"flushWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"225"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":332,"mimeType":"application/json","compression":0,"_sha1":"43defe855a222e09a5dda774d593c5d8ae1371b8.json"},"headersSize":186,"bodySize":344,"redirectURL":"","_transferSize":530},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.704,"receive":0.301},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.706,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":3.852,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=MessagePort.performWorkUntilDeadline&arguments=&lineNumber=534&column=21","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"MessagePort.performWorkUntilDeadline"},{"name":"arguments","value":""},{"name":"lineNumber","value":"534"},{"name":"column","value":"21"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":359,"mimeType":"application/json","compression":0,"_sha1":"6d9db5c37a092b526bd2033869de9f30d53c2c2e.json"},"headersSize":186,"bodySize":371,"redirectURL":"","_transferSize":557},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.562,"receive":0.29},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.767,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":3.879,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=throwOnHydrationMismatch&arguments=&lineNumber=6981&column=9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"throwOnHydrationMismatch"},{"name":"arguments","value":""},{"name":"lineNumber","value":"6981"},{"name":"column","value":"9"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"9eec75fe5676dad186535c1643ec3d66e30b5ce8.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.425,"receive":0.454},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.874,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":7.09,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=tryToClaimNextHydratableInstance&arguments=&lineNumber=7040&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"tryToClaimNextHydratableInstance"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7040"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":356,"mimeType":"application/json","compression":0,"_sha1":"cfd978cfd55f2216715fe252a8a0e5fe8a4cfaef.json"},"headersSize":186,"bodySize":368,"redirectURL":"","_transferSize":554},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.828,"receive":0.262},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.915,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":3.734,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=updateHostComponent%241&arguments=&lineNumber=16621&column=5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"updateHostComponent$1"},{"name":"arguments","value":""},{"name":"lineNumber","value":"16621"},{"name":"column","value":"5"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"782efd8169339aec761e00b0b7f8af4668bbee9f.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.443,"receive":0.291},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28329.958,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":5.218,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork%241&arguments=&lineNumber=18503&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork$1"},{"name":"arguments","value":""},{"name":"lineNumber","value":"18503"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":336,"mimeType":"application/json","compression":0,"_sha1":"0ad0a35fd6e6f931ee1cc3c7d2b6e0c33549a465.json"},"headersSize":186,"bodySize":348,"redirectURL":"","_transferSize":534},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.94,"receive":0.278},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.017,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":10.098,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=HTMLUnknownElement.callCallback&arguments=&lineNumber=20565&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"HTMLUnknownElement.callCallback"},{"name":"arguments","value":""},{"name":"lineNumber","value":"20565"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":356,"mimeType":"application/json","compression":0,"_sha1":"a04963cb88a925c66a2a466bf7ca0552e81f7c0d.json"},"headersSize":186,"bodySize":368,"redirectURL":"","_transferSize":554},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.766,"receive":0.332},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.059,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":5.139,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork&arguments=&lineNumber=26949&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26949"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":334,"mimeType":"application/json","compression":0,"_sha1":"4e1672a96f75cb07adec98fae8bc280ec0d49ff2.json"},"headersSize":186,"bodySize":346,"redirectURL":"","_transferSize":532},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.868,"receive":0.271},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.185,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":5.045,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performUnitOfWork&arguments=&lineNumber=25748&column=12","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performUnitOfWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25748"},{"name":"column","value":"12"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":342,"mimeType":"application/json","compression":0,"_sha1":"f7382aab14f8501df740bfebfde9f46f917132f9.json"},"headersSize":186,"bodySize":354,"redirectURL":"","_transferSize":540},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.699,"receive":0.346},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.535,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":12.078999999999999,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=invokeGuardedCallback&arguments=&lineNumber=20689&column=29","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"invokeGuardedCallback"},{"name":"arguments","value":""},{"name":"lineNumber","value":"20689"},{"name":"column","value":"29"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"994e35cd03c4b3ce7cb7b994ba9f3543dd64e900.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.802,"receive":0.277},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.145,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":6.941999999999999,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=renderRootSync&arguments=&lineNumber=25419&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"renderRootSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25419"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":339,"mimeType":"application/json","compression":0,"_sha1":"9d88218838d17f32ded8e054b97afa10ffbc5dcf.json"},"headersSize":186,"bodySize":351,"redirectURL":"","_transferSize":537},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.709,"receive":0.233},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.624,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":7.076,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performSyncWorkOnRoot&arguments=&lineNumber=24887&column=20","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performSyncWorkOnRoot"},{"name":"arguments","value":""},{"name":"lineNumber","value":"24887"},{"name":"column","value":"20"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"22e42e74ce029bfb314a4487f6c3102d2f7f6079.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.68,"receive":0.396},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.67,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":7.249,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkAcrossRoots_impl&arguments=&lineNumber=7758&column=13","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkAcrossRoots_impl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7758"},{"name":"column","value":"13"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":353,"mimeType":"application/json","compression":0,"_sha1":"794346a4af602db7ccacf57a88ab4194c0cf5b7d.json"},"headersSize":186,"bodySize":365,"redirectURL":"","_transferSize":551},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.853,"receive":0.396},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.712,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":14.362,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=Object.invokeGuardedCallbackImpl&arguments=&lineNumber=20614&column=16","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"Object.invokeGuardedCallbackImpl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"20614"},{"name":"column","value":"16"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":357,"mimeType":"application/json","compression":0,"_sha1":"1f414bc61b9ba60898dc36ca81d059801dedf11f.json"},"headersSize":186,"bodySize":369,"redirectURL":"","_transferSize":555},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.939,"receive":0.423},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.105,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":7.417,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffectsImpl&arguments=&lineNumber=26518&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffectsImpl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26518"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"a04820dc22a0795826e1b0e5b5638813c1f7cceb.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.018,"receive":0.399},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.797,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":7.4559999999999995,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffects&arguments=&lineNumber=26438&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffects"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26438"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":344,"mimeType":"application/json","compression":0,"_sha1":"8e676c0de18d14ee9fe60609c9d47229e353d6ce.json"},"headersSize":186,"bodySize":356,"redirectURL":"","_transferSize":542},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.068,"receive":0.388},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.839,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":7.135000000000001,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=eval&arguments=&lineNumber=26172&column=9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"eval"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26172"},{"name":"column","value":"9"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":329,"mimeType":"application/json","compression":0,"_sha1":"1829053a22e33f2a12819b088d3f1e14c0e487d4.json"},"headersSize":186,"bodySize":341,"redirectURL":"","_transferSize":527},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.783,"receive":0.352},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.881,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.695Z","time":13.51,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=workLoopSync&arguments=&lineNumber=25464&column=5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"workLoopSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25464"},{"name":"column","value":"5"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":337,"mimeType":"application/json","compression":0,"_sha1":"bcf0740ca067b04d6e4c1de1dbd03d7792023e40.json"},"headersSize":186,"bodySize":349,"redirectURL":"","_transferSize":535},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.29,"receive":0.22},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.576,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":5.134,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=flushWork&arguments=&lineNumber=225&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"flushWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"225"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":332,"mimeType":"application/json","compression":0,"_sha1":"43defe855a222e09a5dda774d593c5d8ae1371b8.json"},"headersSize":186,"bodySize":344,"redirectURL":"","_transferSize":530},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.764,"receive":0.37},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.976,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":3.5090000000000003,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=MessagePort.performWorkUntilDeadline&arguments=&lineNumber=534&column=21","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"MessagePort.performWorkUntilDeadline"},{"name":"arguments","value":""},{"name":"lineNumber","value":"534"},{"name":"column","value":"21"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":359,"mimeType":"application/json","compression":0,"_sha1":"6d9db5c37a092b526bd2033869de9f30d53c2c2e.json"},"headersSize":186,"bodySize":371,"redirectURL":"","_transferSize":557},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.119,"receive":0.39},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28331.021,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":2.097,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=workLoop&arguments=&lineNumber=256&column=34","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"workLoop"},{"name":"arguments","value":""},{"name":"lineNumber","value":"256"},{"name":"column","value":"34"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":331,"mimeType":"application/json","compression":0,"_sha1":"3b0fcfbc2ab1e8019d3bb4cb89f07ea49871704a.json"},"headersSize":186,"bodySize":343,"redirectURL":"","_transferSize":529},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.722,"receive":0.375},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.934,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.696Z","time":8.645,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkOnAllRoots&arguments=&lineNumber=7718&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkOnAllRoots"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7718"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":347,"mimeType":"application/json","compression":0,"_sha1":"0bb88ae2bd6698f692a00823d0a939b1be71f3ee.json"},"headersSize":186,"bodySize":359,"redirectURL":"","_transferSize":545},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.036,"receive":0.609},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28330.753,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.752Z","time":4.41,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=throwOnHydrationMismatch&arguments=&lineNumber=6981&column=9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"throwOnHydrationMismatch"},{"name":"arguments","value":""},{"name":"lineNumber","value":"6981"},{"name":"column","value":"9"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"9eec75fe5676dad186535c1643ec3d66e30b5ce8.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.833,"receive":1.577},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.057,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.752Z","time":4.46,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=tryToClaimNextHydratableInstance&arguments=&lineNumber=7040&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"tryToClaimNextHydratableInstance"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7040"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":356,"mimeType":"application/json","compression":0,"_sha1":"cfd978cfd55f2216715fe252a8a0e5fe8a4cfaef.json"},"headersSize":186,"bodySize":368,"redirectURL":"","_transferSize":554},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.16,"receive":0.3},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.122,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.753Z","time":6.219,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=updateHostComponent%241&arguments=&lineNumber=16621&column=5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"updateHostComponent$1"},{"name":"arguments","value":""},{"name":"lineNumber","value":"16621"},{"name":"column","value":"5"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"782efd8169339aec761e00b0b7f8af4668bbee9f.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.75,"receive":0.469},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.186,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.753Z","time":4.778,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performUnitOfWork&arguments=&lineNumber=25748&column=12","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performUnitOfWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25748"},{"name":"column","value":"12"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":342,"mimeType":"application/json","compression":0,"_sha1":"f7382aab14f8501df740bfebfde9f46f917132f9.json"},"headersSize":186,"bodySize":354,"redirectURL":"","_transferSize":540},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.327,"receive":0.451},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.399,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.753Z","time":6.886,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=workLoopSync&arguments=&lineNumber=25464&column=5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"workLoopSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25464"},{"name":"column","value":"5"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":337,"mimeType":"application/json","compression":0,"_sha1":"bcf0740ca067b04d6e4c1de1dbd03d7792023e40.json"},"headersSize":186,"bodySize":349,"redirectURL":"","_transferSize":535},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.505,"receive":0.381},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.457,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.753Z","time":12.637,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork&arguments=&lineNumber=26927&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26927"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":334,"mimeType":"application/json","compression":0,"_sha1":"b41b79323eca6e7f111d8bb093f70c4515758ab8.json"},"headersSize":186,"bodySize":346,"redirectURL":"","_transferSize":532},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.208,"receive":0.429},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.326,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.753Z","time":14.79,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork%241&arguments=&lineNumber=18503&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork$1"},{"name":"arguments","value":""},{"name":"lineNumber","value":"18503"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":336,"mimeType":"application/json","compression":0,"_sha1":"0ad0a35fd6e6f931ee1cc3c7d2b6e0c33549a465.json"},"headersSize":186,"bodySize":348,"redirectURL":"","_transferSize":534},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":14.171,"receive":0.619},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.264,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.753Z","time":8.019,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performSyncWorkOnRoot&arguments=&lineNumber=24887&column=20","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performSyncWorkOnRoot"},{"name":"arguments","value":""},{"name":"lineNumber","value":"24887"},{"name":"column","value":"20"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"22e42e74ce029bfb314a4487f6c3102d2f7f6079.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.757,"receive":0.262},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.589,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.754Z","time":6.981,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkAcrossRoots_impl&arguments=&lineNumber=7758&column=13","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkAcrossRoots_impl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7758"},{"name":"column","value":"13"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":353,"mimeType":"application/json","compression":0,"_sha1":"794346a4af602db7ccacf57a88ab4194c0cf5b7d.json"},"headersSize":186,"bodySize":365,"redirectURL":"","_transferSize":551},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.687,"receive":0.294},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.649,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.754Z","time":7.064,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkOnAllRoots&arguments=&lineNumber=7718&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkOnAllRoots"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7718"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":347,"mimeType":"application/json","compression":0,"_sha1":"0bb88ae2bd6698f692a00823d0a939b1be71f3ee.json"},"headersSize":186,"bodySize":359,"redirectURL":"","_transferSize":545},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.741,"receive":0.323},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.7,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.753Z","time":15.483,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=renderRootSync&arguments=&lineNumber=25419&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"renderRootSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25419"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":339,"mimeType":"application/json","compression":0,"_sha1":"9d88218838d17f32ded8e054b97afa10ffbc5dcf.json"},"headersSize":186,"bodySize":351,"redirectURL":"","_transferSize":537},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":15.169,"receive":0.314},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.535,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.754Z","time":6.819,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffects&arguments=&lineNumber=26438&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffects"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26438"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":344,"mimeType":"application/json","compression":0,"_sha1":"8e676c0de18d14ee9fe60609c9d47229e353d6ce.json"},"headersSize":186,"bodySize":356,"redirectURL":"","_transferSize":542},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.483,"receive":0.336},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.836,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.754Z","time":7.046,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=eval&arguments=&lineNumber=26172&column=9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"eval"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26172"},{"name":"column","value":"9"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":329,"mimeType":"application/json","compression":0,"_sha1":"1829053a22e33f2a12819b088d3f1e14c0e487d4.json"},"headersSize":186,"bodySize":341,"redirectURL":"","_transferSize":527},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.747,"receive":0.299},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.899,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.754Z","time":5.768,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=workLoop&arguments=&lineNumber=256&column=34","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"workLoop"},{"name":"arguments","value":""},{"name":"lineNumber","value":"256"},{"name":"column","value":"34"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":331,"mimeType":"application/json","compression":0,"_sha1":"3b0fcfbc2ab1e8019d3bb4cb89f07ea49871704a.json"},"headersSize":186,"bodySize":343,"redirectURL":"","_transferSize":529},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.3,"receive":0.468},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.952,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.754Z","time":12.572999999999999,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffectsImpl&arguments=&lineNumber=26518&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffectsImpl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26518"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"a04820dc22a0795826e1b0e5b5638813c1f7cceb.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.187,"receive":0.386},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28340.772,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.755Z","time":4.3839999999999995,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=MessagePort.performWorkUntilDeadline&arguments=&lineNumber=534&column=21","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"MessagePort.performWorkUntilDeadline"},{"name":"arguments","value":""},{"name":"lineNumber","value":"534"},{"name":"column","value":"21"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":359,"mimeType":"application/json","compression":0,"_sha1":"6d9db5c37a092b526bd2033869de9f30d53c2c2e.json"},"headersSize":186,"bodySize":371,"redirectURL":"","_transferSize":557},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.09,"receive":0.294},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28341.137,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.754Z","time":6.667,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+Hydration+failed+because+the+initial+UI+does+not+match+what+was+rendered+on+the+server.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=flushWork&arguments=&lineNumber=225&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: Hydration failed because the initial UI does not match what was rendered on the server.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"flushWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"225"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":332,"mimeType":"application/json","compression":0,"_sha1":"43defe855a222e09a5dda774d593c5d8ae1371b8.json"},"headersSize":186,"bodySize":344,"redirectURL":"","_transferSize":530},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.181,"receive":0.486},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28341.03,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.782Z","time":2.428,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=updateDehydratedSuspenseComponent&arguments=&lineNumber=17594&column=57","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"updateDehydratedSuspenseComponent"},{"name":"arguments","value":""},{"name":"lineNumber","value":"17594"},{"name":"column","value":"57"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":358,"mimeType":"application/json","compression":0,"_sha1":"efaabda3d61e31f422e37f941a3fc7288ff77735.json"},"headersSize":186,"bodySize":370,"redirectURL":"","_transferSize":556},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.055,"receive":0.373},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28358.411,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.782Z","time":3.7889999999999997,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=updateSuspenseComponent&arguments=&lineNumber=17193&column=16","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"updateSuspenseComponent"},{"name":"arguments","value":""},{"name":"lineNumber","value":"17193"},{"name":"column","value":"16"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"bf49c87008b9e30ed36063cbb448f9a1f06ae0d9.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.424,"receive":0.365},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28358.472,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.782Z","time":5.351,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork%241&arguments=&lineNumber=18509&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork$1"},{"name":"arguments","value":""},{"name":"lineNumber","value":"18509"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":336,"mimeType":"application/json","compression":0,"_sha1":"77b09b4b857b54729b6f8dd90b4281156569bd2d.json"},"headersSize":186,"bodySize":348,"redirectURL":"","_transferSize":534},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.085,"receive":0.266},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28358.521,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.782Z","time":7.102,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=beginWork&arguments=&lineNumber=26927&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"beginWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26927"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":334,"mimeType":"application/json","compression":0,"_sha1":"b41b79323eca6e7f111d8bb093f70c4515758ab8.json"},"headersSize":186,"bodySize":346,"redirectURL":"","_transferSize":532},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.689,"receive":0.413},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28358.646,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:48.778Z","time":12.5099999999984,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-E2Y3dKj0wkMfopzM5ZTiONEi+yI\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"13663774a8f4c2431fa29ccce594e238d122fb22.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.41200000000026193,"wait":12.350999999998749,"receive":0.15899999999965075,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.23799999999755528},"_monotonicTime":28351.461,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.782Z","time":8.451,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performUnitOfWork&arguments=&lineNumber=25748&column=12","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performUnitOfWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25748"},{"name":"column","value":"12"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":342,"mimeType":"application/json","compression":0,"_sha1":"f7382aab14f8501df740bfebfde9f46f917132f9.json"},"headersSize":186,"bodySize":354,"redirectURL":"","_transferSize":540},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.087,"receive":0.364},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28358.687,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":6.796,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=renderRootSync&arguments=&lineNumber=25419&column=7","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"renderRootSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25419"},{"name":"column","value":"7"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":339,"mimeType":"application/json","compression":0,"_sha1":"9d88218838d17f32ded8e054b97afa10ffbc5dcf.json"},"headersSize":186,"bodySize":351,"redirectURL":"","_transferSize":537},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.37,"receive":0.426},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28358.912,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":6.654000000000001,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=performSyncWorkOnRoot&arguments=&lineNumber=24887&column=20","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"performSyncWorkOnRoot"},{"name":"arguments","value":""},{"name":"lineNumber","value":"24887"},{"name":"column","value":"20"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":346,"mimeType":"application/json","compression":0,"_sha1":"22e42e74ce029bfb314a4487f6c3102d2f7f6079.json"},"headersSize":186,"bodySize":358,"redirectURL":"","_transferSize":544},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.424,"receive":0.23},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.044,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":6.63,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkAcrossRoots_impl&arguments=&lineNumber=7758&column=13","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkAcrossRoots_impl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7758"},{"name":"column","value":"13"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":353,"mimeType":"application/json","compression":0,"_sha1":"794346a4af602db7ccacf57a88ab4194c0cf5b7d.json"},"headersSize":186,"bodySize":365,"redirectURL":"","_transferSize":551},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.278,"receive":0.352},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.086,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.782Z","time":13.463,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=workLoopSync&arguments=&lineNumber=25464&column=5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"workLoopSync"},{"name":"arguments","value":""},{"name":"lineNumber","value":"25464"},{"name":"column","value":"5"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":337,"mimeType":"application/json","compression":0,"_sha1":"bcf0740ca067b04d6e4c1de1dbd03d7792023e40.json"},"headersSize":186,"bodySize":349,"redirectURL":"","_transferSize":535},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.133,"receive":0.33},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28358.849,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":6.722,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffectsImpl&arguments=&lineNumber=26518&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffectsImpl"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26518"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":348,"mimeType":"application/json","compression":0,"_sha1":"a04820dc22a0795826e1b0e5b5638813c1f7cceb.json"},"headersSize":186,"bodySize":360,"redirectURL":"","_transferSize":546},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.407,"receive":0.315},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.232,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":6.8020000000000005,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushPassiveEffects&arguments=&lineNumber=26438&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushPassiveEffects"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26438"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":344,"mimeType":"application/json","compression":0,"_sha1":"8e676c0de18d14ee9fe60609c9d47229e353d6ce.json"},"headersSize":186,"bodySize":356,"redirectURL":"","_transferSize":542},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.554,"receive":0.248},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.273,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":6.542,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=eval&arguments=&lineNumber=26172&column=9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"eval"},{"name":"arguments","value":""},{"name":"lineNumber","value":"26172"},{"name":"column","value":"9"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":329,"mimeType":"application/json","compression":0,"_sha1":"1829053a22e33f2a12819b088d3f1e14c0e487d4.json"},"headersSize":186,"bodySize":341,"redirectURL":"","_transferSize":527},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.288,"receive":0.254},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.312,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":13.711,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Freact-dom%2Fcjs%2Freact-dom.development.js&methodName=flushSyncWorkOnAllRoots&arguments=&lineNumber=7718&column=3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js"},{"name":"methodName","value":"flushSyncWorkOnAllRoots"},{"name":"arguments","value":""},{"name":"lineNumber","value":"7718"},{"name":"column","value":"3"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":347,"mimeType":"application/json","compression":0,"_sha1":"0bb88ae2bd6698f692a00823d0a939b1be71f3ee.json"},"headersSize":186,"bodySize":359,"redirectURL":"","_transferSize":545},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.074,"receive":0.637},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.136,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":5.397,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=flushWork&arguments=&lineNumber=225&column=14","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"flushWork"},{"name":"arguments","value":""},{"name":"lineNumber","value":"225"},{"name":"column","value":"14"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":332,"mimeType":"application/json","compression":0,"_sha1":"43defe855a222e09a5dda774d593c5d8ae1371b8.json"},"headersSize":186,"bodySize":344,"redirectURL":"","_transferSize":530},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.739,"receive":0.658},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.425,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.784Z","time":3.784,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=MessagePort.performWorkUntilDeadline&arguments=&lineNumber=534&column=21","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"MessagePort.performWorkUntilDeadline"},{"name":"arguments","value":""},{"name":"lineNumber","value":"534"},{"name":"column","value":"21"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":359,"mimeType":"application/json","compression":0,"_sha1":"6d9db5c37a092b526bd2033869de9f30d53c2c2e.json"},"headersSize":186,"bodySize":371,"redirectURL":"","_transferSize":557},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.137,"receive":0.647},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.486,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.783Z","time":7.381,"request":{"method":"GET","url":"http://localhost:5174/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+There+was+an+error+while+hydrating+this+Suspense+boundary.+Switched+to+client+rendering.%0ASee+more+info+here%3A+https%3A%2F%2Fnextjs.org%2Fdocs%2Fmessages%2Freact-hydration-error&file=webpack-internal%3A%2F%2F%2F%28app-pages-browser%29%2F..%2F..%2F..%2Fnode_modules%2F.pnpm%2Fnext%4014.2.35_babel-plugin-macros%403.1.0_react-dom%4018.3.1_react%4018.3.1__react%4018.3.1%2Fnode_modules%2Fnext%2Fdist%2Fcompiled%2Fscheduler%2Fcjs%2Fscheduler.development.js&methodName=workLoop&arguments=&lineNumber=256&column=34","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"isServer","value":"false"},{"name":"isEdgeServer","value":"false"},{"name":"isAppDirectory","value":"true"},{"name":"errorMessage","value":"Error: There was an error while hydrating this Suspense boundary. Switched to client rendering.\nSee more info here: https://nextjs.org/docs/messages/react-hydration-error"},{"name":"file","value":"webpack-internal:///(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js"},{"name":"methodName","value":"workLoop"},{"name":"arguments","value":""},{"name":"lineNumber","value":"256"},{"name":"column","value":"34"}],"headersSize":538,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Connection","value":"keep-alive"},{"name":"Content-Type","value":"application/json"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":331,"mimeType":"application/json","compression":0,"_sha1":"3b0fcfbc2ab1e8019d3bb4cb89f07ea49871704a.json"},"headersSize":186,"bodySize":343,"redirectURL":"","_transferSize":529},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.816,"receive":0.565},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28359.385,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.688Z","time":119.73899999999999,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":593,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.874,"receive":117.865},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28327.35,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.849Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":-1,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28423.304,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.833Z","time":4.119,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=09aab790-cd4c-4d72-8055-32efc70297e2","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"50-74cL26VYSSaNqeey0i8Z3kIMuHc\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"09aab790-cd4c-4d72-8055-32efc70297e2"}],"headersSize":901,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:48 GMT"},{"name":"ETag","value":"W/\"50-O6zw2kGaJmJ8meXgJlBjFGtRTsI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"3bacf0da419a26627c99e5e0265063146b514ec2.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.942,"receive":1.177},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28423.416,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:49.295Z","time":11.875,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-CuBaKLDQVGYFR+dNwVVtxhKJQH0\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:49 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"0ae05a28b0d054660547e74dc1556dc61289407d.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.27299999999740976,"wait":11.689000000002125,"receive":0.18599999999787542,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.2109999999993306},"_monotonicTime":28869.19,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:49.813Z","time":11.358000000000175,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-DGeoscL+zMgHR62Gd0FqjW9QjxU\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:49 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"0c67a8b1c2feccc80747ad8677416a8d6f508f15.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.21299999999973807,"wait":11.236000000000786,"receive":0.12199999999938882,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.15499999999883585},"_monotonicTime":29387.259,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:50.328Z","time":10.75,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-Vi6wt/h00gKLotL7c3QvfjCRoFw\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:50 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"562eb0b7f874d2028ba2d2fb73742f7e3091a05c.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.24200000000200816,"wait":10.63799999999901,"receive":0.11200000000098953,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.17400000000270666},"_monotonicTime":29902.147,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:50.844Z","time":7.459999999999127,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-qB+nhNQwtIpRyDlA2D3s6obZ840\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:50 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"a81fa784d430b48a51c83940d83decea86d9f38d.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.25,"wait":7.235999999997148,"receive":0.22400000000197906,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.19099999999889405},"_monotonicTime":30418.088,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:51.357Z","time":13.128000000000611,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-mReV/0aOIDh1TOEiSZyuU2+ZQjs\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:51 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"991795ff468e2038754ce122499cae536f99423b.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.23699999999735155,"wait":12.962000000003172,"receive":0.16599999999743886,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.18599999999787542},"_monotonicTime":30930.784,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:51.876Z","time":13.350999999998749,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-pFahNy4jkl736S6JoZZaehCoZH4\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:51 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"a456a1372e23925ef7e92e89a1965a7a10a8647e.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.31600000000253203,"wait":13.149999999997817,"receive":0.20100000000093132,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.25},"_monotonicTime":31450.036,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:52.395Z","time":7.382000000001426,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-YRUhhJiEvPOTGvc3DyA58qgIgmw\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:52 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"611521849884bcf3931af7370f2039f2a808826c.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.24899999999979627,"wait":7.226999999998952,"receive":0.15500000000247383,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.19199999999909778},"_monotonicTime":31968.398,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"startedDateTime":"2026-07-21T10:44:52.906Z","time":11.614000000001397,"request":{"method":"GET","url":"http://localhost:4000/bookings/a9be972d-c95f-4ef3-b91b-4084df183dc3","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"user-agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"accept","value":"*/*"},{"name":"accept-encoding","value":"gzip,deflate,br"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"1.1","cookies":[],"headers":[{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"},{"name":"Vary","value":"Origin"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Content-Length","value":"1234"},{"name":"ETag","value":"W/\"4d2-N0uBWF6v58dfRJ+OPXCibrnDOV0\""},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:52 GMT"},{"name":"Connection","value":"keep-alive"},{"name":"Keep-Alive","value":"timeout=5"}],"content":{"size":1234,"mimeType":"application/json; charset=utf-8","_sha1":"374b81585eafe7c75f449f8e3d70a26eb9c3395d.json"},"headersSize":-1,"bodySize":1234,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":0.20899999999892316,"wait":11.472000000001572,"receive":0.14199999999982538,"dns":-1,"connect":-1,"ssl":-1,"blocked":0.1610000000000582},"_monotonicTime":32480.28,"_apiRequest":true,"serverIPAddress":"::1","_serverPort":4000}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.742Z","time":2416.906005859375,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"Wz16VeaEYMYVJI0cDWRHZg=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"VEVa5hs/cPQMjHuJcHkYrmwDUek="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"05fb1a94b8159a5c4555db59ff5818ac.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28338.143,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@e600c850f86c7fc16a2602b9a1330d97","startedDateTime":"2026-07-21T10:44:48.858Z","time":0.4619140625,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"zKut4ehwlLxrllNDJBnMDQ=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Sec-WebSocket-Accept","value":"CQJzWyx00z6VAisvkTPaGamLyM4="},{"name":"Connection","value":"Upgrade"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Vary","value":"Origin"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"065ef44152c1c4345f00d3042543541a.jsonl"},"headersSize":235,"bodySize":-1,"redirectURL":"","_transferSize":410},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@93158020af7521c6efd9454e39f2c4aa","_monotonicTime":28432.597,"_resourceType":"websocket"}}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":1.74,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":767,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Disposition","value":"inline; filename=\"edr-logo.webp\""},{"name":"Content-Length","value":"5926"},{"name":"Content-Security-Policy","value":"script-src 'none'; frame-src 'none'; sandbox;"},{"name":"Content-Type","value":"image/webp"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"},{"name":"X-Nextjs-Cache","value":"STALE"}],"content":{"size":5926,"mimeType":"image/webp","compression":0,"_sha1":"d61faf8539b0b0fa4fb2a3d41877705244026fbd.webp"},"headersSize":418,"bodySize":5926,"redirectURL":"","_transferSize":6344},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.286,"receive":0.454},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2204.421,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.608Z","time":21.230999999999998,"request":{"method":"GET","url":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"none"},{"name":"Sec-Fetch-User","value":"?1"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"origin","value":"00000000-0000-4000-8000-000000000020"},{"name":"destination","value":"00000000-0000-4000-8000-000000000022"},{"name":"date","value":"2026-07-23"},{"name":"tripType","value":"ONE_WAY"},{"name":"adults","value":"1"},{"name":"children","value":"0"},{"name":"nationality","value":"ETHIOPIAN"}],"headersSize":673,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":51421,"mimeType":"text/html; charset=utf-8","compression":41206,"_sha1":"5cdc05fc5e34450188e21ac8f114b681ec8f53d2.html"},"headersSize":765,"bodySize":10215,"redirectURL":"","_transferSize":10980},"cache":{},"timings":{"dns":0.145,"connect":0.255,"ssl":1.599,"send":0,"wait":17.3,"receive":1.932},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2182.56,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":4.758,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630662616","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630662616"}],"headersSize":741,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":0.005,"connect":0.227,"ssl":1.261,"send":0,"wait":2.285,"receive":0.98},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2204.487,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":5.6240000000000006,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630662616","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630662616"}],"headersSize":726,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.674,"receive":2.95},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2204.556,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":9.793,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":738,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":0.001,"connect":0.372,"ssl":1.396,"send":0,"wait":2.373,"receive":5.651},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2204.707,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":12.084,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":737,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":0.001,"connect":0.082,"ssl":1.104,"send":0,"wait":2.862,"receive":8.035},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2204.91,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":49.691,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":729,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.106,"receive":46.585},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2205.05,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":56.791000000000004,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/results/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":743,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"W/\"20cb55-19f8376f071\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":479485,"redirectURL":"","_transferSize":479856},"cache":{},"timings":{"dns":0.001,"connect":0.247,"ssl":1.341,"send":0,"wait":3.804,"receive":51.398},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2204.833,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:22.629Z","time":129.61700000000002,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630662616","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630662616"}],"headersSize":727,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:22 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":0.005,"connect":0.522,"ssl":1.553,"send":0,"wait":2.479,"receive":125.058},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2204.596,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.144Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"1lALSR6g7Agta5HbCNe3Sg=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2717.461,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.079Z","time":12.428,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"229-rFk4D7sR2l8A/8OxeWPnyvZJBFo\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ac59380fbb11da5f00ffc3b17963e7caf649045a.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.974,"receive":2.454},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2715.549,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.079Z","time":7.6,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-rFk4D7sR2l8A/8OxeWPnyvZJBFo\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"229-dyXSUEjUU+f7EblxeBJLWvNDuSE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7725d25048d453e7fb11b97178124b5af343b921.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.569,"receive":2.031},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2715.57,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.075Z","time":16.078,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":776,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.986,"receive":14.092},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2715.505,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.079Z","time":44.63,"request":{"method":"POST","url":"http://localhost:4000/search","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"220"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":883,"bodySize":220,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"9b24d025b50a9c3ff3db8b177a92ea96d434dcc8.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1599"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"63f-IKX3I4W3T4rB9bQa3gT9zX+DTWY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":1599,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"20a5f72385b74f8ac1f5b41ade04fdcd7f834d66.json"},"headersSize":989,"bodySize":1599,"redirectURL":"","_transferSize":2588},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":42.514,"receive":2.116},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2715.625,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.133Z","time":6.618,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=89c0caac-e491-4559-9c6a-6cb202de8499","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"89c0caac-e491-4559-9c6a-6cb202de8499"}],"headersSize":850,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"50-M2pCZ+QUeeE2pzNq+dpkAviKw8s\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"336a4267e41479e136a7336af9da6402f88ac3cb.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.431,"receive":2.187},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2717.625,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.772Z","time":9.599,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=br3vi","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22results%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/results"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"br3vi"}],"headersSize":1017,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"a5a2bb1a5b49246f969011b22df0d171d298ab95.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.768,"receive":0.831},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3348.486,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.789Z","time":7.633,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=n2i48","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"n2i48"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.633,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3363.784,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.798Z","time":16.811,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/auth-check/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":746,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"ed732-19f8376f656\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":254272,"redirectURL":"","_transferSize":254642},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.821,"receive":14.99},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3372.712,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.846Z","time":13.857,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=3ko94","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/auth-check"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ko94"}],"headersSize":858,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"113ef7bc1ddbb9932f87ab52b1c6c6d273a48c10.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.959,"receive":0.898},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3431.652,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.848Z","time":15.466,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-dyXSUEjUU+f7EblxeBJLWvNDuSE\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"229-aXO18rQKw/xyvjp4QyGFuAbzJ2M\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"6973b5f2b40ac3fc72be3a78432185b806f32763.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":15.011,"receive":0.455},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3431.707,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.848Z","time":7.207,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-aXO18rQKw/xyvjp4QyGFuAbzJ2M\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"229-8soLS8Cn3R9MANGBZeUtEFPXY8k\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"f2ca0b4bc0a7dd1f4c00d18165e52d1053d763c9.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.835,"receive":0.372},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3432.122,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.862Z","time":10.11,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=xc7gl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"xc7gl"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.11,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3435.876,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.873Z","time":33.143,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/passengers/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":581,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"216ea9-19f8376f7db\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":478257,"redirectURL":"","_transferSize":478628},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.792,"receive":31.351},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3447.102,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.966Z","time":9.07,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":842,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"90-7U1C/QWaLTKR3CuKtd6Z1UsbqCU\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ed4d42fd059a2d3291dc2b8ab5de99d54b1ba825.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.473,"receive":1.597},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3571.368,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.966Z","time":5.05,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"90-7U1C/QWaLTKR3CuKtd6Z1UsbqCU\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":893,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:23 GMT"},{"name":"ETag","value":"W/\"90-hnEYuXOotQCJ/vEurqxOIWSoisg\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"867118b973a8b50089fef12eaeac4e2164a88ac8.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.582,"receive":1.468},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":3571.396,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:25.285Z","time":6.75,"request":{"method":"POST","url":"http://localhost:4000/passengers/save-details","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"349"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":900,"bodySize":349,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"46ae445702343bdfd9e1086dfe03abe2ec9d6774.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"368"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:25 GMT"},{"name":"ETag","value":"W/\"170-Yh05tUgOaSnsMk+e7KTu03rbtVc\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":368,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"621d39b5480e6929ec324f9eeca4eed37adbb557.json"},"headersSize":988,"bodySize":368,"redirectURL":"","_transferSize":1356},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.22,"receive":1.53},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":4860.025,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:25.293Z","time":10.564,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=3ufbl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/passengers"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ufbl"}],"headersSize":853,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:25 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":111,"mimeType":"text/x-component","compression":0,"_sha1":"3ba650e38c01b7f4dba7c59a8ac235a4f5802b22.htc"},"headersSize":734,"bodySize":119,"redirectURL":"","_transferSize":853},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.812,"receive":0.752},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":4868.34,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:25.305Z","time":8.881,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=1ivgy","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1ivgy"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:25 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.881,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":4879.516,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:25.315Z","time":33.134,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/seats/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":576,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:25 GMT"},{"name":"ETag","value":"W/\"1f96a9-19f8376ffca\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:21 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":484983,"redirectURL":"","_transferSize":485354},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.713,"receive":31.421},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":4889.363,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:25.404Z","time":36.480000000000004,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101?coachTypeId=00000000-0000-4000-8000-000000000001&journeyDirection=ONE_WAY&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"coachTypeId","value":"00000000-0000-4000-8000-000000000001"},{"name":"journeyDirection","value":"ONE_WAY"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"}],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9447"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:25 GMT"},{"name":"ETag","value":"W/\"24e7-7Puo6hUxdgTKArtIHLcYjCUxFO0\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9447,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ecfba8ea15317604ca02bb481cb7188c253114ed.json"},"headersSize":985,"bodySize":9447,"redirectURL":"","_transferSize":10432},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":23.523,"receive":12.957},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5011.753,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.275Z","time":24.335,"request":{"method":"POST","url":"http://localhost:4000/seats/hold","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"304"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":304,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"99a8925f2abe911568d11ee45da71129849cc5ba.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"941"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"ETag","value":"W/\"3ad-ps8pg7Zp2DDEiXVuCCBykBOsXCA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":941,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"a6cf2983b669d830c489756e0820729013ac5c20.json"},"headersSize":988,"bodySize":941,"redirectURL":"","_transferSize":1929},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":22.849,"receive":1.486},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5850.689,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.303Z","time":9.732,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=11o05","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/seats"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"11o05"}],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":113,"mimeType":"text/x-component","compression":0,"_sha1":"efc18e093e9560b1f05c3bd786098516c99407f5.htc"},"headersSize":734,"bodySize":120,"redirectURL":"","_transferSize":854},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.011,"receive":0.721},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5880.757,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.315Z","time":6.471,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=dcucj","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"dcucj"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.471,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5888.958,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.322Z","time":28.31,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/review/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":572,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"ETag","value":"W/\"1b5bdb-19f8377031c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:22 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":413299,"redirectURL":"","_transferSize":413670},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.74,"receive":26.57},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5896.548,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.398Z","time":11.704999999999998,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9442"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"ETag","value":"W/\"24e2-dWL6zT4aiZfGa1h18s4QS5fy1I0\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9442,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7562facd3e1a8997c66b5875f2ce104b97f2d48d.json"},"headersSize":985,"bodySize":9442,"redirectURL":"","_transferSize":10427},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.043,"receive":1.662},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5994.425,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.398Z","time":6.196,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"ETag","value":"W/\"2f7-1CEA4wrlNcVobuGs8J0ZX38XLMs\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"d42100e30ae535c5686ee1acf09d195f7f172ccb.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.049,"receive":2.147},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5994.452,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.398Z","time":10.846,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"24e2-dWL6zT4aiZfGa1h18s4QS5fy1I0\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":926,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9442"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"ETag","value":"W/\"24e2-nbbHyeZEPQ7aCLW0A2jU2NVW43g\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9442,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"9db6c7c9e6443d0eda08b5b40368d4d8d556e378.json"},"headersSize":985,"bodySize":9442,"redirectURL":"","_transferSize":10427},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.327,"receive":2.519},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5994.473,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:26.416Z","time":25.771,"request":{"method":"GET","url":"http://localhost:4000/search/fare-breakdown?scheduleId=00000000-0000-4000-8000-000000000101&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022&passengers=%5B%7B%22passengerName%22%3A%22Adult+1%22%2C%22dateOfBirth%22%3A%221990-06-15%22%2C%22seatClassId%22%3A%2200000000-0000-4000-8000-000000000010%22%2C%22nationality%22%3A%22ETHIOPIAN%22%7D%5D&displayCurrency=ETB","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"scheduleId","value":"00000000-0000-4000-8000-000000000101"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"},{"name":"passengers","value":"[{\"passengerName\":\"Adult 1\",\"dateOfBirth\":\"1990-06-15\",\"seatClassId\":\"00000000-0000-4000-8000-000000000010\",\"nationality\":\"ETHIOPIAN\"}]"},{"name":"displayCurrency","value":"ETB"}],"headersSize":844,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"720"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:26 GMT"},{"name":"ETag","value":"W/\"2d0-sX/Z7WsYPMFXY4353UB929STZj8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":720,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"b17fd9ed6b183cc157638df9dd407ddbd493663f.json"},"headersSize":983,"bodySize":720,"redirectURL":"","_transferSize":1703},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":24.105,"receive":1.666},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":5996.605,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:27.267Z","time":4.891,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"2f7-1CEA4wrlNcVobuGs8J0ZX38XLMs\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:27 GMT"},{"name":"ETag","value":"W/\"2f7-h9Hzft5SzTcEoORuv6JnqfSlkaI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"87d1f37ede52cd3704a0e46ebfa267a9f4a591a2.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.345,"receive":0.546},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":6841.724,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:27.274Z","time":49.003,"request":{"method":"POST","url":"http://localhost:4000/bookings","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"661"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":885,"bodySize":661,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"4b1c11572f061a01568c1e7d8619a21adcead5da.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"3536"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:27 GMT"},{"name":"ETag","value":"W/\"dd0-9jxcvzu68c6fYblX/E27AlBLjFE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":3536,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"f63c5cbf3bbaf1ce9f61b957fc4dbb02504b8c51.json"},"headersSize":989,"bodySize":3536,"redirectURL":"","_transferSize":4525},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":45.317,"receive":3.686},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":6848.629,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:27.425Z","time":8.669,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=1uobt","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/review"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1uobt"}],"headersSize":843,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:27 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":115,"mimeType":"text/x-component","compression":0,"_sha1":"de07c86cc64bda73e654d27a199f6610c0e4ebad.htc"},"headersSize":734,"bodySize":116,"redirectURL":"","_transferSize":850},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.932,"receive":0.737},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":6999.258,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:27.435Z","time":7.253,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=rvb09","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22payment%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"rvb09"}],"headersSize":794,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:27 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":4122,"mimeType":"text/x-component","compression":2847,"_sha1":"52013f23d15462d527c039601b2d97d3b0078e23.htc"},"headersSize":734,"bodySize":1275,"redirectURL":"","_transferSize":2009},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.462,"receive":0.791},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":7009.283,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:27.443Z","time":26.686,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/payment/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":574,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:27 GMT"},{"name":"ETag","value":"W/\"1c5af1-19f83770767\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:23 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":435498,"redirectURL":"","_transferSize":435869},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.375,"receive":25.311},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":7016.689,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:27.519Z","time":6.985,"request":{"method":"GET","url":"http://localhost:4000/payments/methods","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"593"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:27 GMT"},{"name":"ETag","value":"W/\"251-6FcggPU+MStn1g1g+SFDy4+fEeg\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":593,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"e8572080f53e312b67d60d60f92143cb8f9f11e8.json"},"headersSize":983,"bodySize":593,"redirectURL":"","_transferSize":1576},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.682,"receive":1.303},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":7114.378,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:28.370Z","time":7.493,"request":{"method":"GET","url":"http://localhost:4000/payments/booking-amount?bookingId=07f85ff8-6213-4111-8e3b-0236282bef61¤cy=ETB","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"bookingId","value":"07f85ff8-6213-4111-8e3b-0236282bef61"},{"name":"currency","value":"ETB"}],"headersSize":846,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"146"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:28 GMT"},{"name":"ETag","value":"W/\"92-hFqsI45oiabElJiGpuPQ8KUXVhM\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":146,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"845aac238e6889a6c4949886a6e3d0f0a5175613.json"},"headersSize":982,"bodySize":146,"redirectURL":"","_transferSize":1128},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.048,"receive":1.445},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":7945.24,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:28.421Z","time":72.129,"request":{"method":"POST","url":"http://localhost:4000/payments/initiate","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":894,"bodySize":144,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"7d8f7d9da5bb882d91d5f869d4bd5f32e3de6669.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"135"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:28 GMT"},{"name":"ETag","value":"W/\"87-6Ty4PPg4vGnLx5RmkwA/rT6GAiY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":135,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"e93cb83cf838bc69cbc7946693003fad3e860226.json"},"headersSize":987,"bodySize":135,"redirectURL":"","_transferSize":1122},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":70.798,"receive":1.331},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":7995.878,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:30.494Z","time":10.042,"request":{"method":"GET","url":"http://localhost:5174/booking/confirmation?_rsc=gwlg9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22payment%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/payment"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"gwlg9"}],"headersSize":851,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":125,"mimeType":"text/x-component","compression":0,"_sha1":"a072c05619b7cf3cbedc053f6c992794b91fee45.htc"},"headersSize":734,"bodySize":126,"redirectURL":"","_transferSize":860},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.331,"receive":0.711},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":10070.993,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:30.507Z","time":7.223,"request":{"method":"GET","url":"http://localhost:5174/booking/confirmation?_rsc=180sd","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22confirmation%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"180sd"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.223,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":10081.249,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:30.515Z","time":27.639999999999997,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/confirmation/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":580,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"1b9b35-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":425290,"redirectURL":"","_transferSize":425661},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.615,"receive":26.025},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":10089.523,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:30.584Z","time":12.384,"request":{"method":"GET","url":"http://localhost:4000/bookings/07f85ff8-6213-4111-8e3b-0236282bef61","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":868,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"6344"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"18c8-FSSPfY/0OzQyqrJCmE9QFaTaq50\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":6344,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"15248f7d8ff43b3432aab242984f5015a4daab9d.json"},"headersSize":985,"bodySize":6344,"redirectURL":"","_transferSize":7329},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.143,"receive":1.241},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":10187.396,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.119Z","time":6889.537109375,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"44Qt8evdLn47/N2j5wyyHQ=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"OEdzwLN7WaQ13NmxlU4qGPtoJs8="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"c8c379301af388ba8fd91d5a4c7bba3e.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2716.751,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:23.175Z","time":1.9169921875,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"iM+6iBYwfI41duHbxkmAhQ=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Sec-WebSocket-Accept","value":"M2fHYZDmxKZlpyO6OCMJdlyfa5w="},{"name":"Connection","value":"Upgrade"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Vary","value":"Origin"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"99f7f677caaf2988451bce5db3716b1f.jsonl"},"headersSize":235,"bodySize":-1,"redirectURL":"","_transferSize":410},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":2767.611,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:30.583Z","time":50.402,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_lib_generate-voucher_ts.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":602,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"23425a-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8"},"headersSize":371,"bodySize":653430,"redirectURL":"","_transferSize":653801},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.819,"receive":48.583},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":10187.357,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@b5951353a103748dafd971e9e44eaaca","startedDateTime":"2026-07-21T10:44:30.583Z","time":50.402,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_lib_generate-voucher_ts.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":602,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"23425a-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":653430,"redirectURL":"","_transferSize":653801},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.819,"receive":48.583},"_frameref":"frame@d3cfeff6332b9b2e44f5b3e2d818836f","_monotonicTime":10187.357,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.429Z","time":18.915000000000003,"request":{"method":"GET","url":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"none"},{"name":"Sec-Fetch-User","value":"?1"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"origin","value":"00000000-0000-4000-8000-000000000020"},{"name":"destination","value":"00000000-0000-4000-8000-000000000022"},{"name":"date","value":"2026-07-23"},{"name":"tripType","value":"ONE_WAY"},{"name":"adults","value":"1"},{"name":"children","value":"0"},{"name":"nationality","value":"OTHER"}],"headersSize":673,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":51409,"mimeType":"text/html; charset=utf-8","compression":41197,"_sha1":"b457b71bb3a5e3c8e0ee6908d9539326b7cdf2a2.html"},"headersSize":765,"bodySize":10212,"redirectURL":"","_transferSize":10977},"cache":{},"timings":{"dns":0.01,"connect":0.295,"ssl":1.391,"send":0,"wait":15.814,"receive":1.405},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43002.566,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":2.6149999999999998,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":763,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Disposition","value":"inline; filename=\"edr-logo.webp\""},{"name":"Content-Length","value":"5926"},{"name":"Content-Security-Policy","value":"script-src 'none'; frame-src 'none'; sandbox;"},{"name":"Content-Type","value":"image/webp"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"},{"name":"X-Nextjs-Cache","value":"HIT"}],"content":{"size":5926,"mimeType":"image/webp","compression":0,"_sha1":"d61faf8539b0b0fa4fb2a3d41877705244026fbd.webp"},"headersSize":416,"bodySize":5926,"redirectURL":"","_transferSize":6342},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.041,"receive":0.574},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.46,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":5.927999999999999,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630703434","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630703434"}],"headersSize":737,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":0.012,"connect":0.317,"ssl":1.363,"send":0,"wait":2.639,"receive":1.597},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.51,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":5.867,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630703434","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630703434"}],"headersSize":722,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":0.008,"connect":0.323,"ssl":1.385,"send":0,"wait":1.551,"receive":2.6},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.53,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":7.7940000000000005,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":734,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":0.001,"connect":0.313,"ssl":1.336,"send":0,"wait":1.524,"receive":4.62},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.565,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":9.245,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":733,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.312,"receive":6.933},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.594,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":36.664,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":725,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.292,"receive":34.372},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.608,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":40.748,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/results/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":739,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"20cb55-19f8376f071\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":479485,"redirectURL":"","_transferSize":479856},"cache":{},"timings":{"dns":0.001,"connect":0.255,"ssl":1.277,"send":0,"wait":2.095,"receive":37.12},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.579,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.447Z","time":106.297,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630703434","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630703434"}],"headersSize":723,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":0.002,"connect":0.246,"ssl":1.275,"send":0,"wait":1.92,"receive":102.854},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43022.547,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.875Z","time":25.939,"request":{"method":"POST","url":"http://localhost:4000/search","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"216"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":883,"bodySize":216,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"597def754466a83ff4a0afb2047b7e83f4d13f30.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1614"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"64e-6/e08722IYl7oiegpkqeJeoIWr4\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":1614,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ebf7b4f3bdb621897ba227a0a64a9e25ea085abe.json"},"headersSize":989,"bodySize":1614,"redirectURL":"","_transferSize":2603},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":24.121,"receive":1.818},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43508.271,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.874Z","time":14.306999999999999,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"229-ujMX2/6etPsn8xk+wFl2M6VwT6A\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ba3317dbfe9eb4fb27f3193ec0597633a5704fa0.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.315,"receive":1.992},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43508.214,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.874Z","time":8.248,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-ujMX2/6etPsn8xk+wFl2M6VwT6A\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"229-6SwjSQ8nUpWXqtY4abf7dPM1Crg\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"e92c23490f27529597aad63869b7fb74f3350ab8.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.398,"receive":1.85},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43508.234,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.871Z","time":15.711,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":772,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.645,"receive":14.066},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43508.171,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.980Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":-1,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43553.544,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.966Z","time":4.654,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=1a14961a-0804-4835-8101-9067cf49fcad","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"1a14961a-0804-4835-8101-9067cf49fcad"}],"headersSize":850,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:03 GMT"},{"name":"ETag","value":"W/\"50-SQ2WYRgdeVfNs/hEPTi3dS/Bfhk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"490d9661181d7957cdb3f8443d38b7752fc17e19.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.181,"receive":1.473},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43553.752,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.926Z","time":0.226806640625,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"68azkby8CeezuplgVnPDNw=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"MYqM+1KWBeOhJ1sguQY+m4dcRfw="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"c70ccf8fa13e29ee97aa204b2b37aa80.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43509.614,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@0450c339a9a703d9459d17d60a8902f9","startedDateTime":"2026-07-21T10:45:03.989Z","time":0.98486328125,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"vJ1LsD7IYc75yN75agFqkA=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Sec-WebSocket-Accept","value":"IwY/I4JcRlMupLQ4nv1Pd+gK8hw="},{"name":"Connection","value":"Upgrade"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Vary","value":"Origin"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"f5e16a9946e7cbdce9793f63525a9c03.jsonl"},"headersSize":235,"bodySize":-1,"redirectURL":"","_transferSize":410},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@c395b7cddfec1aae5674c1f12cc643e1","_monotonicTime":43562.798,"_resourceType":"websocket"}}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.110Z","time":20.007,"request":{"method":"GET","url":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"none"},{"name":"Sec-Fetch-User","value":"?1"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"origin","value":"00000000-0000-4000-8000-000000000020"},{"name":"destination","value":"00000000-0000-4000-8000-000000000022"},{"name":"date","value":"2026-07-23"},{"name":"tripType","value":"ONE_WAY"},{"name":"adults","value":"1"},{"name":"children","value":"0"},{"name":"nationality","value":"OTHER"}],"headersSize":673,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":51409,"mimeType":"text/html; charset=utf-8","compression":41197,"_sha1":"697c4b5c08ebdfc374ecc527ee7e84a14e5ff808.html"},"headersSize":765,"bodySize":10212,"redirectURL":"","_transferSize":10977},"cache":{},"timings":{"dns":0.12,"connect":0.241,"ssl":1.448,"send":0,"wait":15.407,"receive":2.791},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43684.3,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.128Z","time":4.319,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":763,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Disposition","value":"inline; filename=\"edr-logo.webp\""},{"name":"Content-Length","value":"5926"},{"name":"Content-Security-Policy","value":"script-src 'none'; frame-src 'none'; sandbox;"},{"name":"Content-Type","value":"image/webp"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"},{"name":"X-Nextjs-Cache","value":"HIT"}],"content":{"size":5926,"mimeType":"image/webp","compression":0,"_sha1":"d61faf8539b0b0fa4fb2a3d41877705244026fbd.webp"},"headersSize":416,"bodySize":5926,"redirectURL":"","_transferSize":6342},"cache":{},"timings":{"dns":0.005,"connect":0.328,"ssl":1.392,"send":0,"wait":1.297,"receive":1.297},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43703.864,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.129Z","time":3.727,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630704116","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630704116"}],"headersSize":737,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.276,"receive":1.451},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43703.897,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.129Z","time":5.292,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630704116","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630704116"}],"headersSize":722,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.802,"receive":3.49},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43703.916,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.129Z","time":10.707,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":734,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":0.003,"connect":0.466,"ssl":1.5,"send":0,"wait":2.54,"receive":6.198},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43703.978,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.129Z","time":11.898,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":733,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.357,"receive":8.541},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43704.007,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.129Z","time":67.37,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":725,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.631,"receive":62.739},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43704.021,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.129Z","time":69.843,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/results/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":739,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"20cb55-19f8376f071\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":479485,"redirectURL":"","_transferSize":479856},"cache":{},"timings":{"dns":0.004,"connect":0.221,"ssl":1.274,"send":0,"wait":3.046,"receive":65.298},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43703.993,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.129Z","time":140.323,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630704116","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630704116"}],"headersSize":723,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":0.003,"connect":0.541,"ssl":1.567,"send":0,"wait":2.71,"receive":135.502},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":43703.935,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.594Z","time":24.798,"request":{"method":"POST","url":"http://localhost:4000/search","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"216"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":883,"bodySize":216,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"597def754466a83ff4a0afb2047b7e83f4d13f30.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1614"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"64e-fTUXpgBvnuyWJgqxmjKJA9VWGDw\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":1614,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7d3517a6006f9eec96260ab19a328903d556183c.json"},"headersSize":989,"bodySize":1614,"redirectURL":"","_transferSize":2603},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":22.874,"receive":1.924},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44228.392,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.594Z","time":11.57,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"229-dmRXXX3bgk4e5ERUwfMHHLQjceo\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7664575d7ddb824e1ee44454c1f3071cb42371ea.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.371,"receive":2.199},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44228.337,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.594Z","time":7.448,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-dmRXXX3bgk4e5ERUwfMHHLQjceo\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"229-TLLJvKCCTm2p/mgufAbDPVW8W2s\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"4cb2c9bca0824e6da9fe682e7c06c33d55bc5b6b.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.439,"receive":2.009},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44228.354,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.591Z","time":16.053,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":772,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.934,"receive":14.119},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44228.31,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.699Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":-1,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44272.488,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.685Z","time":4.7669999999999995,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=120d525b-c9d3-45da-851f-017769b227a2","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"120d525b-c9d3-45da-851f-017769b227a2"}],"headersSize":850,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:04 GMT"},{"name":"ETag","value":"W/\"50-MxE98xcen2c5UvQ2iHerifEggJk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"33113df3171e9f673952f4368877ab89f1208099.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.464,"receive":1.303},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44272.629,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.204Z","time":9.414,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=br3vi","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22results%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/results"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"br3vi"}],"headersSize":1013,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"a5a2bb1a5b49246f969011b22df0d171d298ab95.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.591,"receive":0.823},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44780.448,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.222Z","time":7.798,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=n2i48","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"n2i48"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.798,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44795.708,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.231Z","time":16.666999999999998,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/auth-check/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=OTHER"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":742,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"ETag","value":"W/\"ed732-19f8376f656\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":254272,"redirectURL":"","_transferSize":254642},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.89,"receive":14.777},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44804.912,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.278Z","time":9.696,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=3ko94","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/auth-check"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ko94"}],"headersSize":858,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"113ef7bc1ddbb9932f87ab52b1c6c6d273a48c10.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.95,"receive":0.746},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44859.159,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.279Z","time":8.728,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-TLLJvKCCTm2p/mgufAbDPVW8W2s\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"ETag","value":"W/\"229-OTOKUL6mRVxffnAX5+sW06bl1Cg\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"39338a50bea6455c5f7e7017e7eb16d3a6e5d428.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.309,"receive":0.419},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44859.19,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.279Z","time":12.029,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-OTOKUL6mRVxffnAX5+sW06bl1Cg\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"ETag","value":"W/\"229-wGQu7uxTu0aWSIPlMZNfymSjmQY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"c0642eeeec53bb46964883e531935fca64a39906.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.645,"receive":0.384},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44860.346,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.290Z","time":15.016,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=xc7gl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"xc7gl"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":15.016,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44863.926,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.306Z","time":32.192,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/passengers/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":581,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"ETag","value":"W/\"216ea9-19f8376f7db\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":478257,"redirectURL":"","_transferSize":478628},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.71,"receive":30.482},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44880.044,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.402Z","time":5.849,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":842,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"ETag","value":"W/\"90-2X6/QPGVZWQcqBgCTBfNLAJ8OjE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"d97ebf40f19565641ca818024c17cd2c027c3a31.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.468,"receive":1.381},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":45002.6,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:05.402Z","time":6.885,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"90-2X6/QPGVZWQcqBgCTBfNLAJ8OjE\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":893,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:05 GMT"},{"name":"ETag","value":"W/\"90-c2G2u5iQoxZZRLwAqwAeErafDM0\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7361b6bb9890a3165944bc00ab001e12b69f0ccd.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.535,"receive":1.35},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":45002.629,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:06.211Z","time":4.5089999999999995,"request":{"method":"POST","url":"http://localhost:4000/passengers/save-details","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"378"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":900,"bodySize":378,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"d900fec9b1aba6cbe47020c214405316f7fa6fcd.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"363"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:06 GMT"},{"name":"ETag","value":"W/\"16b-6+3vR5NC1fNK16SDZEXzRMeDqwk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":363,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ebedef479342d5f34ad7a4836445f344c783ab09.json"},"headersSize":988,"bodySize":363,"redirectURL":"","_transferSize":1351},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.131,"receive":1.378},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":45785.768,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:06.217Z","time":9.034,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=3ufbl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/passengers"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ufbl"}],"headersSize":853,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:06 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":111,"mimeType":"text/x-component","compression":0,"_sha1":"3ba650e38c01b7f4dba7c59a8ac235a4f5802b22.htc"},"headersSize":734,"bodySize":119,"redirectURL":"","_transferSize":853},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.272,"receive":0.762},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":45792.876,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:06.228Z","time":9.275,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=1ivgy","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1ivgy"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:06 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.275,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":45802.051,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:06.238Z","time":31.634999999999998,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/seats/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":576,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:06 GMT"},{"name":"ETag","value":"W/\"1f96a9-19f8376ffca\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:21 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":484983,"redirectURL":"","_transferSize":485354},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.734,"receive":29.901},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":45812.563,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:06.326Z","time":10.868,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101?coachTypeId=00000000-0000-4000-8000-000000000001&journeyDirection=ONE_WAY&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"coachTypeId","value":"00000000-0000-4000-8000-000000000001"},{"name":"journeyDirection","value":"ONE_WAY"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"}],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9422"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:06 GMT"},{"name":"ETag","value":"W/\"24ce-+l7VraSdXo7WNdb14LAwajCl0uk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9422,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"fa5ed5ada49d5e8ed635d6f5e0b0306a30a5d2e9.json"},"headersSize":985,"bodySize":9422,"redirectURL":"","_transferSize":10407},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.615,"receive":1.253},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":45926.509,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.192Z","time":25.201999999999998,"request":{"method":"POST","url":"http://localhost:4000/seats/hold","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"304"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":304,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"225e3a7d848baed8b1d780122053a599ece14f75.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"941"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"ETag","value":"W/\"3ad-uEsoppvWY3uBQvohM1nEMHgJwJw\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":941,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"b84b28a69bd6637b8142fa213359c4307809c09c.json"},"headersSize":988,"bodySize":941,"redirectURL":"","_transferSize":1929},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":23.689,"receive":1.513},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46767.085,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.220Z","time":8.617,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=11o05","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/seats"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"11o05"}],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":113,"mimeType":"text/x-component","compression":0,"_sha1":"efc18e093e9560b1f05c3bd786098516c99407f5.htc"},"headersSize":734,"bodySize":120,"redirectURL":"","_transferSize":854},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.806,"receive":0.811},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46797.797,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.231Z","time":8.632,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=dcucj","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"dcucj"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.632,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46804.922,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.241Z","time":28.46,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/review/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":572,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"ETag","value":"W/\"1b5bdb-19f8377031c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:22 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":413299,"redirectURL":"","_transferSize":413670},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.702,"receive":26.758},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46814.706,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.318Z","time":12.224,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9417"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"ETag","value":"W/\"24c9-5zY6rQLpak3K4WCdoaBqn/xXILA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9417,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"e7363aad02e96a4dcae1609da1a06a9ffc5720b0.json"},"headersSize":985,"bodySize":9417,"redirectURL":"","_transferSize":10402},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.455,"receive":1.769},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46913.415,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.318Z","time":4.881,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"ETag","value":"W/\"2f7-Uo1WGKN/HnNidx68u8DQruDqc2Y\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"528d5618a37f1e7362771ebcbbc0d0aee0ea7366.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.935,"receive":1.946},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46913.441,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.318Z","time":11.416,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"24c9-5zY6rQLpak3K4WCdoaBqn/xXILA\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":926,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9417"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"ETag","value":"W/\"24c9-BTt44sH7Mh7N3xoGxmAGkITrT0g\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9417,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"053b78e2c1fb321ecddf1a06c660069084eb4f48.json"},"headersSize":985,"bodySize":9417,"redirectURL":"","_transferSize":10402},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.41,"receive":2.006},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46913.461,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:07.336Z","time":31.501,"request":{"method":"GET","url":"http://localhost:4000/search/fare-breakdown?scheduleId=00000000-0000-4000-8000-000000000101&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022&passengers=%5B%7B%22passengerName%22%3A%22Adult+1%22%2C%22dateOfBirth%22%3A%221990-06-15%22%2C%22seatClassId%22%3A%2200000000-0000-4000-8000-000000000011%22%2C%22nationality%22%3A%22OTHER%22%7D%5D&displayCurrency=USD","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"scheduleId","value":"00000000-0000-4000-8000-000000000101"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"},{"name":"passengers","value":"[{\"passengerName\":\"Adult 1\",\"dateOfBirth\":\"1990-06-15\",\"seatClassId\":\"00000000-0000-4000-8000-000000000011\",\"nationality\":\"OTHER\"}]"},{"name":"displayCurrency","value":"USD"}],"headersSize":844,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"721"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:07 GMT"},{"name":"ETag","value":"W/\"2d1-cCYW9FpF7dU2O9iWCEAoaH924ig\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":721,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"702616f45a45edd5363bd896084028687f76e228.json"},"headersSize":983,"bodySize":721,"redirectURL":"","_transferSize":1704},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":30.372,"receive":1.129},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":46914.376,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:08.192Z","time":5.614,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"2f7-Uo1WGKN/HnNidx68u8DQruDqc2Y\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:08 GMT"},{"name":"ETag","value":"W/\"2f7-mHhMne8rtcqsonOsZ2g+TTs91Qc\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"98784c9def2bb5caaca273ac67683e4d3b3dd507.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.999,"receive":0.615},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":47767.043,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:08.201Z","time":31.079,"request":{"method":"POST","url":"http://localhost:4000/bookings","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"666"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":885,"bodySize":666,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"dee9c1beb9b6a9e20e35210bdf00af37aa8beea0.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"3550"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:08 GMT"},{"name":"ETag","value":"W/\"dde-ZUD6cQ/dYRLRREnKIA0t0dMRCjE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":3550,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"6540fa710fdd6112d14449ca200d2dd1d3110a31.json"},"headersSize":989,"bodySize":3550,"redirectURL":"","_transferSize":4539},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":28.536,"receive":2.543},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":47775.405,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:08.335Z","time":8.359,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=1uobt","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/review"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1uobt"}],"headersSize":843,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:08 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":115,"mimeType":"text/x-component","compression":0,"_sha1":"de07c86cc64bda73e654d27a199f6610c0e4ebad.htc"},"headersSize":734,"bodySize":116,"redirectURL":"","_transferSize":850},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.72,"receive":0.639},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":47909.11,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:08.345Z","time":7.471,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=rvb09","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22payment%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"rvb09"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:08 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.471,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":47918.985,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:08.353Z","time":28.863,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/payment/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":574,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:08 GMT"},{"name":"ETag","value":"W/\"1c5af1-19f83770767\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:23 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":435498,"redirectURL":"","_transferSize":435869},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.889,"receive":26.974},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":47927.534,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:08.432Z","time":3.6239999999999997,"request":{"method":"GET","url":"http://localhost:4000/payments/methods","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"593"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:08 GMT"},{"name":"ETag","value":"W/\"251-yfGZNw/3ox9UuWpgfM0sLKzodxE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":593,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"c9f199370ff7a31f54b96a607ccd2c2cace87711.json"},"headersSize":983,"bodySize":593,"redirectURL":"","_transferSize":1576},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.433,"receive":1.191},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":48027.91,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:09.277Z","time":5.098,"request":{"method":"GET","url":"http://localhost:4000/payments/booking-amount?bookingId=0ed21f92-0885-4933-963e-9a64f2efbfc5¤cy=ETB","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"bookingId","value":"0ed21f92-0885-4933-963e-9a64f2efbfc5"},{"name":"currency","value":"ETB"}],"headersSize":846,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"147"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:09 GMT"},{"name":"ETag","value":"W/\"93-uIygxykmCAqBbaSqB63eOnjSG5M\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":147,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"b88ca0c72926080a816da4aa07adde3a78d21b93.json"},"headersSize":982,"bodySize":147,"redirectURL":"","_transferSize":1129},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.84,"receive":1.258},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":48852.23,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:09.329Z","time":46.510999999999996,"request":{"method":"POST","url":"http://localhost:4000/payments/initiate","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":894,"bodySize":144,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"734a2a6513ae195c0ad2785171f03f98910db9a3.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"135"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:09 GMT"},{"name":"ETag","value":"W/\"87-zgAGJuJ/Jo5fvRB3tflx3h1FKIY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":135,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ce000626e27f268e5fbd1077b5f971de1d452886.json"},"headersSize":987,"bodySize":135,"redirectURL":"","_transferSize":1122},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":45.303,"receive":1.208},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":48903.537,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:11.377Z","time":8.238,"request":{"method":"GET","url":"http://localhost:5174/booking/confirmation?_rsc=gwlg9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22payment%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/payment"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"gwlg9"}],"headersSize":851,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":125,"mimeType":"text/x-component","compression":0,"_sha1":"a072c05619b7cf3cbedc053f6c992794b91fee45.htc"},"headersSize":734,"bodySize":126,"redirectURL":"","_transferSize":860},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.39,"receive":0.848},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":50953.123,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:11.387Z","time":8.867,"request":{"method":"GET","url":"http://localhost:5174/booking/confirmation?_rsc=180sd","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22confirmation%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"180sd"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.867,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":50960.796,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:11.397Z","time":26.612,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/confirmation/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":580,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"1b9b35-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":425290,"redirectURL":"","_transferSize":425661},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.718,"receive":24.894},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":50970.7,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:11.464Z","time":13.298,"request":{"method":"GET","url":"http://localhost:4000/bookings/0ed21f92-0885-4933-963e-9a64f2efbfc5","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":868,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"6350"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"18ce-nyroThkKCC5uLbnhcWPtcYIKAWc\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":6350,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"9f2ae84e190a082e6e2db9e17163ed71820a0167.json"},"headersSize":985,"bodySize":6350,"redirectURL":"","_transferSize":7335},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.318,"receive":0.98},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":51066.138,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.645Z","time":6272.35498046875,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"3uEasG9+2MFRqD7f3Kng0w=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"wvR3HUgW8wQhyoNPMjLOPaBP9fQ="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"46c3ec03f8bdd79ff078056619ab7fd2.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44229.416,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:04.709Z","time":0.760986328125,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"F5i5wuyY9gcmPCokMvJFwA=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Sec-WebSocket-Accept","value":"pjWIXPWCCVjztI80JpVjqBXTZwY="},{"name":"Connection","value":"Upgrade"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Vary","value":"Origin"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"0cc241583d136fefac81958581bed6db.jsonl"},"headersSize":235,"bodySize":-1,"redirectURL":"","_transferSize":410},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":44282.761,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:11.463Z","time":47.141000000000005,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_lib_generate-voucher_ts.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":602,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"23425a-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8"},"headersSize":371,"bodySize":653430,"redirectURL":"","_transferSize":653801},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.682,"receive":45.459},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":51066.103,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@442ebe9c25a81aa564f023f3b02d20f5","startedDateTime":"2026-07-21T10:45:11.463Z","time":47.141000000000005,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_lib_generate-voucher_ts.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":602,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:45:11 GMT"},{"name":"ETag","value":"W/\"23425a-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":653430,"redirectURL":"","_transferSize":653801},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.682,"receive":45.459},"_frameref":"frame@d0f0d4aedbb0a150abeedacb2d5f0f0c","_monotonicTime":51066.103,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.021Z","time":21.304000000000002,"request":{"method":"GET","url":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Language","value":"en-US"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"origin","value":"00000000-0000-4000-8000-000000000020"},{"name":"destination","value":"00000000-0000-4000-8000-000000000022"},{"name":"date","value":"2026-07-23"},{"name":"tripType","value":"ONE_WAY"},{"name":"adults","value":"1"},{"name":"children","value":"0"},{"name":"nationality","value":"ETHIOPIAN"}],"headersSize":491,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":51421,"mimeType":"text/html; charset=utf-8","compression":41208,"_sha1":"9e26bfabb0f67ea425ca915ce7e32103011aa751.html"},"headersSize":765,"bodySize":10213,"redirectURL":"","_transferSize":10978},"cache":{},"timings":{"dns":0.009,"connect":0.235,"ssl":1.387,"send":0,"wait":17.198,"receive":2.475},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18594.968,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.041Z","time":4.173,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":602,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Disposition","value":"inline; filename=\"edr-logo.webp\""},{"name":"Content-Length","value":"5926"},{"name":"Content-Security-Policy","value":"script-src 'none'; frame-src 'none'; sandbox;"},{"name":"Content-Type","value":"image/webp"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"},{"name":"X-Nextjs-Cache","value":"HIT"}],"content":{"size":5926,"mimeType":"image/webp","compression":0,"_sha1":"d61faf8539b0b0fa4fb2a3d41877705244026fbd.webp"},"headersSize":416,"bodySize":5926,"redirectURL":"","_transferSize":6342},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.413,"receive":2.76},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18616.821,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.042Z","time":6.792999999999999,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630679028","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630679028"}],"headersSize":560,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":0.006,"connect":0.26,"ssl":1.388,"send":0,"wait":1.938,"receive":3.201},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18617.914,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.042Z","time":7.409000000000001,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630679028","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630679028"}],"headersSize":576,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":0.006,"connect":0.259,"ssl":1.383,"send":0,"wait":2.552,"receive":3.209},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18617.029,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.042Z","time":7.755,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":572,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":0.002,"connect":0.17,"ssl":1.373,"send":0,"wait":1.444,"receive":4.766},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18618.056,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.042Z","time":10.312000000000001,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":571,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.34,"receive":7.972},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18618.144,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.042Z","time":41.104000000000006,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":563,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.587,"receive":38.517},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18618.275,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.042Z","time":44.387,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/results/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":577,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"20cb55-19f8376f071\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":479485,"redirectURL":"","_transferSize":479856},"cache":{},"timings":{"dns":0.003,"connect":0.121,"ssl":1.474,"send":0,"wait":2.38,"receive":40.409},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18618.097,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.042Z","time":112.16799999999999,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630679028","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630679028"}],"headersSize":561,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":0.002,"connect":0.26,"ssl":1.546,"send":0,"wait":2.37,"receive":107.99},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":18617.993,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.481Z","time":75.848,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":675,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"229-V1E+aRKUTpqoyNRfQolr95mcSdA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"57513e6912944e9aa8c8d45f42896bf7999c49d0.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":0.009,"connect":0.275,"ssl":1.495,"send":0,"wait":11.559,"receive":62.51},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19116.32,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.478Z","time":81.086,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":610,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.678,"receive":79.408},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19115.028,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.481Z","time":80.074,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":675,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"229-icJgN1Za5n30MwhN0C9iTNKeuNw\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"89c26037565ae67df433084dd02f624cd29eb8dc.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":0.002,"connect":0.149,"ssl":1.431,"send":0,"wait":16.427,"receive":62.065},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19116.391,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.606Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":-1,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19180.222,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.481Z","time":85.772,"request":{"method":"POST","url":"http://localhost:4000/search","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Content-Type","value":"application/json"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":702,"bodySize":220,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"9b24d025b50a9c3ff3db8b177a92ea96d434dcc8.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1599"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"63f-90hNO1iRB+pOfG1HI9PO5JpFcxw\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":1599,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"f7484d3b589107ea4e7c6d4723d3cee49a45731c.json"},"headersSize":989,"bodySize":1599,"redirectURL":"","_transferSize":2588},"cache":{},"timings":{"dns":0.002,"connect":0.152,"ssl":1.441,"send":0,"wait":22.157,"receive":62.02},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19116.457,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.593Z","time":18.532,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=da8049a0-a8ee-4db0-8a6f-caf4cd4f27aa","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"da8049a0-a8ee-4db0-8a6f-caf4cd4f27aa"}],"headersSize":690,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:39 GMT"},{"name":"ETag","value":"W/\"50-78/GGuCbnDMGtYFIz62TCZuVRkE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"efcfc61ae09b9c3306b58148cfad93099b954641.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.303,"receive":15.229},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19181.852,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.157Z","time":10.975999999999999,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=br3vi","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22results%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/results"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"br3vi"}],"headersSize":855,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"a5a2bb1a5b49246f969011b22df0d171d298ab95.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.606,"receive":3.37},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19732.939,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.175Z","time":7.987,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=n2i48","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"n2i48"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.987,"receive":-1},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19749.866,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.186Z","time":16.76,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/auth-check/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":580,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"ETag","value":"W/\"ed732-19f8376f656\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":254272,"redirectURL":"","_transferSize":254642},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.335,"receive":15.425},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19759.859,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.234Z","time":20.636,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=3ko94","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/auth-check"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ko94"}],"headersSize":696,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"113ef7bc1ddbb9932f87ab52b1c6c6d273a48c10.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.673,"receive":8.963},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19815.713,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.235Z","time":19.215,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":675,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"ETag","value":"W/\"229-7TjuRTbztci0FTDERHttjmAW6U4\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"ed38ee4536f3b5c8b41530c4447b6d8e6016e94e.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.657,"receive":7.558},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19816.328,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.235Z","time":19.793,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":675,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"ETag","value":"W/\"229-+V4TWMFnYxUJaHZlzOBoJ9ln4sk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"f95e1358c167631509687665cce06827d967e2c9.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.23,"receive":7.563},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19816.496,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.258Z","time":7.86,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=xc7gl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"xc7gl"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.86,"receive":-1},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19832.257,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.268Z","time":33.734,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/passengers/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":415,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"ETag","value":"W/\"216ea9-19f8376f7db\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":478257,"redirectURL":"","_transferSize":478628},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.478,"receive":32.256},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19842.094,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.361Z","time":48.443999999999996,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":682,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"ETag","value":"W/\"90-frxXZ6ZmAZx7onvJn+iGdJo09oI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7ebc5767a666019c7ba27bc99fe886749a34f682.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.644,"receive":34.8},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19968.69,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:40.361Z","time":48.599,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":682,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:40 GMT"},{"name":"ETag","value":"W/\"90-frxXZ6ZmAZx7onvJn+iGdJo09oI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7ebc5767a666019c7ba27bc99fe886749a34f682.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.827,"receive":34.772},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19968.756,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.186Z","time":8.955,"request":{"method":"POST","url":"http://localhost:4000/passengers/save-details","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Content-Type","value":"application/json"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":719,"bodySize":349,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"85e2757da59fde264bd7cece33e5487a2b17353d.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"368"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"170-FDiwzfRBHJuyH27nfmVDWR7c+n4\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":368,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"1438b0cdf4411c9bb21f6ee77e6543591edcfa7e.json"},"headersSize":988,"bodySize":368,"redirectURL":"","_transferSize":1356},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.838,"receive":2.117},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":20760.902,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.196Z","time":11.799,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=3ufbl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/passengers"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ufbl"}],"headersSize":691,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":111,"mimeType":"text/x-component","compression":0,"_sha1":"3ba650e38c01b7f4dba7c59a8ac235a4f5802b22.htc"},"headersSize":734,"bodySize":119,"redirectURL":"","_transferSize":853},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.555,"receive":2.244},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":20771.012,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.210Z","time":8.971,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=1ivgy","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1ivgy"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.971,"receive":-1},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":20784.075,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.221Z","time":35.221999999999994,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/seats/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":410,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"1f96a9-19f8376ffca\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:21 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":484983,"redirectURL":"","_transferSize":485354},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.666,"receive":33.556},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":20794.774,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.311Z","time":42.603,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101?coachTypeId=00000000-0000-4000-8000-000000000001&journeyDirection=ONE_WAY&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"coachTypeId","value":"00000000-0000-4000-8000-000000000001"},{"name":"journeyDirection","value":"ONE_WAY"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"}],"headersSize":713,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9441"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"24e1-M+0tFO/uwjIYAJ0JNOi478RXkxA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9441,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"33ed2d14efeec23218009d0934e8b8efc4579310.json"},"headersSize":985,"bodySize":9441,"redirectURL":"","_transferSize":10426},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.859,"receive":32.744},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":20917.075,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.700Z","time":16.317,"request":{"method":"POST","url":"http://localhost:4000/seats/hold","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Content-Type","value":"application/json"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":706,"bodySize":304,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"43f49247c95bccf4b06d211184225e3b695a875a.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"941"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"3ad-1gtF7hyf+Sldyu7eC/Frra6VL9Q\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":941,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"d60b45ee1c9ff9295dcaeede0bf16badae952fd4.json"},"headersSize":988,"bodySize":941,"redirectURL":"","_transferSize":1929},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":14.745,"receive":1.572},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21274.871,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.720Z","time":12.112,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=11o05","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/seats"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"11o05"}],"headersSize":677,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":113,"mimeType":"text/x-component","compression":0,"_sha1":"efc18e093e9560b1f05c3bd786098516c99407f5.htc"},"headersSize":734,"bodySize":120,"redirectURL":"","_transferSize":854},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.042,"receive":4.07},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21297.35,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.734Z","time":7.02,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=dcucj","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"dcucj"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.02,"receive":-1},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21308.594,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.743Z","time":27.944,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/review/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Language","value":"en-US"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":406,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"1b5bdb-19f8377031c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:22 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":413299,"redirectURL":"","_transferSize":413670},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.486,"receive":26.458},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21317.768,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.819Z","time":24.197,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":675,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"2f7-I7t/pmUrIELS0HAMKU2J7FlC120\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"23bb7fa6652b2042d2d0700c294d89ec5942d76d.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.3,"receive":21.897},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21413.988,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.819Z","time":31.666,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":713,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9436"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"24dc-Oia8gm9OSvkHg4DlyYrhfisbdXM\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9436,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"3a26bc826f4e4af9078380e5c98ae17e2b1b7573.json"},"headersSize":985,"bodySize":9436,"redirectURL":"","_transferSize":10421},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":9.675,"receive":21.991},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21413.924,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.819Z","time":41.988,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":713,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9436"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"24dc-H3mu3rV7ALeFzOgQjZME++8RFTA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9436,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"1f79aedeb57b00b785cce8108d9304fbef111530.json"},"headersSize":985,"bodySize":9436,"redirectURL":"","_transferSize":10421},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":20.128,"receive":21.86},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21414.029,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:41.844Z","time":20.712,"request":{"method":"GET","url":"http://localhost:4000/search/fare-breakdown?scheduleId=00000000-0000-4000-8000-000000000101&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022&passengers=%5B%7B%22passengerName%22%3A%22Adult+1%22%2C%22dateOfBirth%22%3A%221990-06-15%22%2C%22seatClassId%22%3A%2200000000-0000-4000-8000-000000000010%22%2C%22nationality%22%3A%22ETHIOPIAN%22%7D%5D&displayCurrency=ETB","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"scheduleId","value":"00000000-0000-4000-8000-000000000101"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"},{"name":"passengers","value":"[{\"passengerName\":\"Adult 1\",\"dateOfBirth\":\"1990-06-15\",\"seatClassId\":\"00000000-0000-4000-8000-000000000010\",\"nationality\":\"ETHIOPIAN\"}]"},{"name":"displayCurrency","value":"ETB"}],"headersSize":684,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"720"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:41 GMT"},{"name":"ETag","value":"W/\"2d0-fcNspKXxK3aq6WjwRIz3/epeTqQ\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":720,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7dc36ca4a5f12b76aae968f0448cf7fdea5e4ea4.json"},"headersSize":983,"bodySize":720,"redirectURL":"","_transferSize":1703},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":19.243,"receive":1.469},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":21419.051,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:42.692Z","time":5.828,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":675,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"2f7-ns7c1NmO+OfhFPhuIDksYqlRFDw\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"9ecedcd4d98ef8e7e114f86e20392c62a951143c.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.141,"receive":1.687},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":22266.533,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:42.700Z","time":31.442999999999998,"request":{"method":"POST","url":"http://localhost:4000/bookings","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Content-Type","value":"application/json"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":704,"bodySize":661,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"86f749b9b01db33963fbe8ef2213e9a3d2ab90ac.json"}},"response":{"status":400,"statusText":"Bad Request","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"178"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:42 GMT"},{"name":"ETag","value":"W/\"b2-szLT9yVriMw4aYAZgrgw2828OMo\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":178,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"b332d3f7256b88cc3869801982b830dbcdbc38ca.json"},"headersSize":991,"bodySize":178,"redirectURL":"","_transferSize":1169},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":28.369,"receive":3.074},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":22274.753,"_resourceType":"xhr","_wasContinued":true,"serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.521Z","time":0.39990234375,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"8IQaY8xs5Rm+64ZyfKku2g=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"KthWp6zgrmyZoNpENOIYGRaNMlA="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"2841b6ceea0072484b07e7c1900cb877.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19115.76,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@8a3b1cb79de5013a10bb39b09c716710","startedDateTime":"2026-07-21T10:44:39.617Z","time":0.951904296875,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"RoxF8tjAa6Ht37hB+znlJQ=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Sec-WebSocket-Accept","value":"knkJstYWIm9A+fP4zIWu0ntwWK0="},{"name":"Connection","value":"Upgrade"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Vary","value":"Origin"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"04026b7c24c09d00aaa30f5a9650f3b5.jsonl"},"headersSize":235,"bodySize":-1,"redirectURL":"","_transferSize":410},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@5eccf5319b41294f8f98b60b632f06b7","_monotonicTime":19192.122,"_resourceType":"websocket"}}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.883Z","time":21.199,"request":{"method":"GET","url":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-Fetch-Dest","value":"document"},{"name":"Sec-Fetch-Mode","value":"navigate"},{"name":"Sec-Fetch-Site","value":"none"},{"name":"Sec-Fetch-User","value":"?1"},{"name":"Upgrade-Insecure-Requests","value":"1"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"origin","value":"00000000-0000-4000-8000-000000000020"},{"name":"destination","value":"00000000-0000-4000-8000-000000000022"},{"name":"date","value":"2026-07-23"},{"name":"tripType","value":"ONE_WAY"},{"name":"adults","value":"1"},{"name":"children","value":"0"},{"name":"nationality","value":"ETHIOPIAN"},{"name":"promoCode","value":"EXPIRED50"}],"headersSize":673,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/html; charset=utf-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"X-Powered-By","value":"Next.js"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":51510,"mimeType":"text/html; charset=utf-8","compression":41238,"_sha1":"f38f23f9f28452720b1f6180255573c833d1c4df.html"},"headersSize":765,"bodySize":10272,"redirectURL":"","_transferSize":11037},"cache":{},"timings":{"dns":0.008,"connect":0.332,"ssl":1.428,"send":0,"wait":17.713,"receive":1.718},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10456.916,"_resourceType":"document","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.903Z","time":2.3369999999999997,"request":{"method":"GET","url":"http://localhost:5174/_next/image?url=%2Fedr-logo.png&w=256&q=75","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"image"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"url","value":"/edr-logo.png"},{"name":"w","value":"256"},{"name":"q","value":"75"}],"headersSize":787,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"public, max-age=0, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Disposition","value":"inline; filename=\"edr-logo.webp\""},{"name":"Content-Length","value":"5926"},{"name":"Content-Security-Policy","value":"script-src 'none'; frame-src 'none'; sandbox;"},{"name":"Content-Type","value":"image/webp"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"eNfibJrIXqmN3qLNRx8kLaWQlGA3pvcLKa58Ff3I2KU="},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Vary","value":"Accept"},{"name":"X-Nextjs-Cache","value":"HIT"}],"content":{"size":5926,"mimeType":"image/webp","compression":0,"_sha1":"d61faf8539b0b0fa4fb2a3d41877705244026fbd.webp"},"headersSize":416,"bodySize":5926,"redirectURL":"","_transferSize":6342},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.287,"receive":1.05},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.777,"_resourceType":"image","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.903Z","time":5.768,"request":{"method":"GET","url":"http://localhost:5174/_next/static/css/app/layout.css?v=1784630670890","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"text/css,*/*;q=0.1"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"style"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630670890"}],"headersSize":761,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/css; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"184e1-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":99553,"mimeType":"text/css; charset=UTF-8","compression":84302,"_sha1":"37e7d4287aa1f2d57c140ce1ee7927af607dbbff.css"},"headersSize":356,"bodySize":15251,"redirectURL":"","_transferSize":15607},"cache":{},"timings":{"dns":0.011,"connect":0.282,"ssl":1.331,"send":0,"wait":2.28,"receive":1.864},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.809,"_resourceType":"stylesheet","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.904Z","time":6.548,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/webpack.js?v=1784630670890","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630670890"}],"headersSize":746,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"dc1e-19f8377166c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":369,"bodySize":10547,"redirectURL":"","_transferSize":10916},"cache":{},"timings":{"dns":0.003,"connect":0.391,"ssl":1.441,"send":0,"wait":2.451,"receive":2.262},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.831,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.904Z","time":9.532,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app-pages-internals.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":758,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"256bc-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":33746,"redirectURL":"","_transferSize":34116},"cache":{},"timings":{"dns":0,"connect":0.182,"ssl":1.204,"send":0,"wait":2.178,"receive":5.968},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.884,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.904Z","time":9.048,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":757,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"2c9d3-19f8376f06f\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":51283,"redirectURL":"","_transferSize":51653},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.91,"receive":6.138},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.912,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.904Z","time":37.976,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/layout.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":749,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"1c4c9e-19f8376cf38\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":434806,"redirectURL":"","_transferSize":435177},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.944,"receive":35.032},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.926,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.904Z","time":40.47,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/results/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":763,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"20cb55-19f8376f071\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:17 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":479485,"redirectURL":"","_transferSize":479856},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.545,"receive":37.925},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.898,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:30.904Z","time":109.31400000000001,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/main-app.js?v=1784630670890","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"v","value":"1784630670890"}],"headersSize":747,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:30 GMT"},{"name":"ETag","value":"W/\"5ec9be-19f8376cded\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":1354462,"redirectURL":"","_transferSize":1354833},"cache":{},"timings":{"dns":0.001,"connect":0.247,"ssl":1.269,"send":0,"wait":2.739,"receive":105.058},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10478.868,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.335Z","time":7.052,"request":{"method":"POST","url":"http://localhost:4000/promos/validate","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"20"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":891,"bodySize":20,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"51972257d77ca200ec2e5ee6e2c5c76d24493c88.json"}},"response":{"status":404,"statusText":"Not Found","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"160"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"a0-HASGT0s9WVpJaEjeOywM4XQ+hlI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":160,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"1c04864f4b3d595a496848de3b2c0ce1743e8652.json"},"headersSize":989,"bodySize":160,"redirectURL":"","_transferSize":1149},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.132,"receive":1.92},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10973.174,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.335Z","time":15.953000000000001,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"229-NAMt82Ett2Pv7hs38BFXGfZ6HXw\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"34032df3612db763efee1b37f0115719f67a1d7c.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":13.976,"receive":1.977},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10973.1,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.335Z","time":7.683,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-NAMt82Ett2Pv7hs38BFXGfZ6HXw\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"229-bk5HK1rvW6tA5DjNmSjV9DmcJaY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"6e4e472b5aef5bab40e438cd9928d5f4399c25a6.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":5.857,"receive":1.826},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10973.123,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.336Z","time":31.794999999999998,"request":{"method":"POST","url":"http://localhost:4000/search","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"220"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":883,"bodySize":220,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"9b24d025b50a9c3ff3db8b177a92ea96d434dcc8.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"1599"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"63f-03gJ5tvXkqFU2QTgh+VolENLSS8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":1599,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"d37809e6dbd792a154d904e087e56894434b492f.json"},"headersSize":989,"bodySize":1599,"redirectURL":"","_transferSize":2588},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":29.889,"receive":1.906},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10973.295,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.332Z","time":16.082,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_features_support_SupportWidget_tsx.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":796,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"f9fd6-19f8376cdec\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:09 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":233760,"redirectURL":"","_transferSize":234130},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.872,"receive":14.21},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10973.006,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.336Z","time":4.618,"request":{"method":"POST","url":"http://localhost:4000/promos/validate","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"20"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":891,"bodySize":20,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"51972257d77ca200ec2e5ee6e2c5c76d24493c88.json"}},"response":{"status":404,"statusText":"Not Found","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"160"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"a0-KDkM/XaZXx5z2GdatSIa3Yz8ISE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":160,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"28390cfd76995f1e73d8675ab5221add8cfc2121.json"},"headersSize":989,"bodySize":160,"redirectURL":"","_transferSize":1149},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.737,"receive":1.881},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10973.327,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.408Z","time":-1,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"BRoENz0byhS9ISmG6mdEeQ=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"WebSocket is closed before the connection is established."},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10981.956,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.408Z","time":9.506,"request":{"method":"GET","url":"http://localhost:4000/support/device/unread-count?deviceId=a1995b6f-be85-48a6-bfe1-72208b8aeaaa","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"deviceId","value":"a1995b6f-be85-48a6-bfe1-72208b8aeaaa"}],"headersSize":850,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"80"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"50-HsfkNNv749lLDDTRmXk+yDGHWXU\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":80,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"1ec7e434dbfbe3d94b0c34d199793ec831875975.json"},"headersSize":981,"bodySize":80,"redirectURL":"","_transferSize":1061},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.013,"receive":1.493},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10982.528,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.940Z","time":8.655999999999999,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=br3vi","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22results%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/results"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"br3vi"}],"headersSize":1037,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"a5a2bb1a5b49246f969011b22df0d171d298ab95.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.789,"receive":0.867},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11515.973,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.978Z","time":7.027,"request":{"method":"GET","url":"http://localhost:5174/booking/auth-check?_rsc=n2i48","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"n2i48"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.027,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11552.17,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.986Z","time":16.656,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/auth-check/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/results?origin=00000000-0000-4000-8000-000000000020&destination=00000000-0000-4000-8000-000000000022&date=2026-07-23&tripType=ONE_WAY&adults=1&children=0&nationality=ETHIOPIAN&promoCode=EXPIRED50"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":766,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:31 GMT"},{"name":"ETag","value":"W/\"ed732-19f8376f656\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":370,"bodySize":254272,"redirectURL":"","_transferSize":254642},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.685,"receive":14.971},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11560.433,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:32.035Z","time":7.147,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-bk5HK1rvW6tA5DjNmSjV9DmcJaY\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:32 GMT"},{"name":"ETag","value":"W/\"229-K/ClPsoSP+RelRQzYVaYcYInE5s\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"2bf0a53eca123fe45e951433615698718227139b.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.595,"receive":0.552},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11614.888,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:32.033Z","time":11.202,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=3ko94","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22auth-check%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/auth-check"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ko94"}],"headersSize":858,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:32 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":121,"mimeType":"text/x-component","compression":0,"_sha1":"113ef7bc1ddbb9932f87ab52b1c6c6d273a48c10.htc"},"headersSize":734,"bodySize":124,"redirectURL":"","_transferSize":858},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":10.055,"receive":1.147},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11614.857,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:32.035Z","time":13.065999999999999,"request":{"method":"GET","url":"http://localhost:4000/auth/profile","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"229-K/ClPsoSP+RelRQzYVaYcYInE5s\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"553"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:32 GMT"},{"name":"ETag","value":"W/\"229-82BxmcXoCHywMgI8EkwrfBUE9ik\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":553,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"f3607199c5e8087cb032023c124c2b7c1504f629.json"},"headersSize":983,"bodySize":553,"redirectURL":"","_transferSize":1536},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.687,"receive":0.379},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11619.128,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:32.046Z","time":12.168,"request":{"method":"GET","url":"http://localhost:5174/booking/passengers?_rsc=xc7gl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"xc7gl"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:32 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.168,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11620.262,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:32.060Z","time":34.7,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/passengers/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/auth-check"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":581,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:32 GMT"},{"name":"ETag","value":"W/\"216ea9-19f8376f7db\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:19 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":478257,"redirectURL":"","_transferSize":478628},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.198,"receive":32.502},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11634.279,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:32.163Z","time":7.971,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":842,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:32 GMT"},{"name":"ETag","value":"W/\"90-vRlo7RGg/whgwOQhNyeIwjdxpfY\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"bd1968ed11a0ff0860c0e421372788c23771a5f6.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.374,"receive":1.597},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11768.732,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:32.163Z","time":4.945,"request":{"method":"GET","url":"http://localhost:4000/config/fayda-status","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"90-vRlo7RGg/whgwOQhNyeIwjdxpfY\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":893,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:32 GMT"},{"name":"ETag","value":"W/\"90-3KQ/buwPIofqvOC08NyrnuvUhcI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":144,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"dca43f6eec0f2287eabce0b4f0dcab9eebd485c2.json"},"headersSize":982,"bodySize":144,"redirectURL":"","_transferSize":1126},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.492,"receive":1.453},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11768.759,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:33.464Z","time":5.899,"request":{"method":"POST","url":"http://localhost:4000/passengers/save-details","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"349"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":900,"bodySize":349,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"e782d727cbe084d57f8a97158b86005a27c61a2e.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"368"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:33 GMT"},{"name":"ETag","value":"W/\"170-IGnTs1ArAUSBsfaz9Iafr8PnzB8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":368,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"2069d3b3502b014481b1f6b3f4869fafc3e7cc1f.json"},"headersSize":988,"bodySize":368,"redirectURL":"","_transferSize":1356},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":4.532,"receive":1.367},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":13038.839,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:33.471Z","time":9.431000000000001,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=3ufbl","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22passengers%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/passengers"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"3ufbl"}],"headersSize":853,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:33 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":111,"mimeType":"text/x-component","compression":0,"_sha1":"3ba650e38c01b7f4dba7c59a8ac235a4f5802b22.htc"},"headersSize":734,"bodySize":119,"redirectURL":"","_transferSize":853},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.787,"receive":0.644},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":13046.356,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:33.482Z","time":8.591,"request":{"method":"GET","url":"http://localhost:5174/booking/seats?_rsc=1ivgy","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1ivgy"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:33 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.591,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":13056.483,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:33.492Z","time":31.79,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/seats/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/passengers"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":576,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:33 GMT"},{"name":"ETag","value":"W/\"1f96a9-19f8376ffca\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:21 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":484983,"redirectURL":"","_transferSize":485354},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.622,"receive":30.168},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":13066.672,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:33.579Z","time":43.298,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101?coachTypeId=00000000-0000-4000-8000-000000000001&journeyDirection=ONE_WAY&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"coachTypeId","value":"00000000-0000-4000-8000-000000000001"},{"name":"journeyDirection","value":"ONE_WAY"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"}],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9444"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:33 GMT"},{"name":"ETag","value":"W/\"24e4-ftzWu7t8TSBMAjtSeTQgzayIgF0\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9444,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7edcd6bbbb7c4d204c023b52793420cdac88805d.json"},"headersSize":985,"bodySize":9444,"redirectURL":"","_transferSize":10429},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":15.265,"receive":28.033},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":13191.821,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.460Z","time":24.727,"request":{"method":"POST","url":"http://localhost:4000/seats/hold","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"304"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":304,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"1bfc29f43ed7ce2a7e5b5bcd69699d79e347e384.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"941"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"ETag","value":"W/\"3ad-fJMUBbUOczr7ZqrQALD1qHwCQWA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":941,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"7c931405b50e733afb66aad000b0f5a87c024160.json"},"headersSize":988,"bodySize":941,"redirectURL":"","_transferSize":1929},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":23.276,"receive":1.451},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14035.158,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.488Z","time":8.748,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=11o05","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22seats%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/seats"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"11o05"}],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":113,"mimeType":"text/x-component","compression":0,"_sha1":"efc18e093e9560b1f05c3bd786098516c99407f5.htc"},"headersSize":734,"bodySize":120,"redirectURL":"","_transferSize":854},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.016,"receive":0.732},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14065.143,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.499Z","time":7.908,"request":{"method":"GET","url":"http://localhost:5174/booking/review?_rsc=dcucj","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"dcucj"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.908,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14073.287,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.508Z","time":26.384,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/review/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/seats"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":572,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"ETag","value":"W/\"1b5bdb-19f8377031c\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:22 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":413299,"redirectURL":"","_transferSize":413670},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.66,"receive":24.724},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14082.529,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.582Z","time":14.304,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":873,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9439"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"ETag","value":"W/\"24df-BqJD+bQKHih6QgQmuGVUso33ZJE\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9439,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"06a243f9b40a1e287a420426b86554b28df76491.json"},"headersSize":985,"bodySize":9439,"redirectURL":"","_transferSize":10424},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":12.554,"receive":1.75},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14179.837,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.583Z","time":7.811,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":835,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"ETag","value":"W/\"2f7-H9h6gc9dtgCUlvQQTwKEEz/aLYA\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"1fd87a81cf5db6009496f4104f0284133fda2d80.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":6.036,"receive":1.775},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14179.866,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.583Z","time":12.672,"request":{"method":"GET","url":"http://localhost:4000/seats/seatmap/00000000-0000-4000-8000-000000000101","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"24df-BqJD+bQKHih6QgQmuGVUso33ZJE\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":926,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"9439"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"ETag","value":"W/\"24df-5yHglnxFxIP8TMUK4h2e0osak9s\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":9439,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"e721e0967c45c483fc4cc50ae21d9ed28b1a93db.json"},"headersSize":985,"bodySize":9439,"redirectURL":"","_transferSize":10424},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":11.058,"receive":1.614},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14179.886,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:34.602Z","time":27.854,"request":{"method":"GET","url":"http://localhost:4000/search/fare-breakdown?scheduleId=00000000-0000-4000-8000-000000000101&originStationId=00000000-0000-4000-8000-000000000020&destinationStationId=00000000-0000-4000-8000-000000000022&passengers=%5B%7B%22passengerName%22%3A%22Adult+1%22%2C%22dateOfBirth%22%3A%221990-06-15%22%2C%22seatClassId%22%3A%2200000000-0000-4000-8000-000000000010%22%2C%22nationality%22%3A%22ETHIOPIAN%22%7D%5D&displayCurrency=ETB&promoCode=EXPIRED50","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"scheduleId","value":"00000000-0000-4000-8000-000000000101"},{"name":"originStationId","value":"00000000-0000-4000-8000-000000000020"},{"name":"destinationStationId","value":"00000000-0000-4000-8000-000000000022"},{"name":"passengers","value":"[{\"passengerName\":\"Adult 1\",\"dateOfBirth\":\"1990-06-15\",\"seatClassId\":\"00000000-0000-4000-8000-000000000010\",\"nationality\":\"ETHIOPIAN\"}]"},{"name":"displayCurrency","value":"ETB"},{"name":"promoCode","value":"EXPIRED50"}],"headersSize":844,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"720"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:34 GMT"},{"name":"ETag","value":"W/\"2d0-ZPytMHMVeILgreccjURSdS2t+B8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":720,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"64fcad3073157882e0ade71c8d4452752dadf81f.json"},"headersSize":983,"bodySize":720,"redirectURL":"","_transferSize":1703},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":26.65,"receive":1.204},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":14181.112,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:35.451Z","time":4.274,"request":{"method":"GET","url":"http://localhost:4000/seat-classes","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"If-None-Match","value":"W/\"2f7-H9h6gc9dtgCUlvQQTwKEEz/aLYA\""},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":887,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"759"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:35 GMT"},{"name":"ETag","value":"W/\"2f7-IOr2xN1yQ3hwTVWrhzFqR+6Djh8\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":759,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"20eaf6c4dd724378704d55ab87316a47ee838e1f.json"},"headersSize":983,"bodySize":759,"redirectURL":"","_transferSize":1742},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.683,"receive":0.591},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":15025.238,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:35.457Z","time":44.066,"request":{"method":"POST","url":"http://localhost:4000/bookings","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"685"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":885,"bodySize":685,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"73de4d730799e08413be700689d43429c3617ccd.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"3536"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:35 GMT"},{"name":"ETag","value":"W/\"dd0-Zfg4UW1chB/TZDE6g7C67eFeIsk\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":3536,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"65f838516d5c841fd364313a83b0baede15e22c9.json"},"headersSize":989,"bodySize":3536,"redirectURL":"","_transferSize":4525},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":42.734,"receive":1.332},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":15032.582,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:35.603Z","time":8.694999999999999,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=1uobt","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22review%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/review"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"1uobt"}],"headersSize":843,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:35 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":115,"mimeType":"text/x-component","compression":0,"_sha1":"de07c86cc64bda73e654d27a199f6610c0e4ebad.htc"},"headersSize":734,"bodySize":116,"redirectURL":"","_transferSize":850},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.027,"receive":0.668},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":15177.735,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:35.614Z","time":7.603,"request":{"method":"GET","url":"http://localhost:5174/booking/payment?_rsc=rvb09","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22payment%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"rvb09"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:35 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.603,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":15187.943,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:35.623Z","time":27.296,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/payment/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/review"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":574,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:35 GMT"},{"name":"ETag","value":"W/\"1c5af1-19f83770767\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:23 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":435498,"redirectURL":"","_transferSize":435869},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.762,"receive":25.534},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":15196.803,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:35.698Z","time":4.825,"request":{"method":"GET","url":"http://localhost:4000/payments/methods","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":839,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"593"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:35 GMT"},{"name":"ETag","value":"W/\"251-3VCsoZvPhbU4RuXVmXJs5DTsliI\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":593,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"dd50aca19bcf85b53846e5d599726ce434ec9622.json"},"headersSize":983,"bodySize":593,"redirectURL":"","_transferSize":1576},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.456,"receive":1.369},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":15294.242,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:36.545Z","time":5.26,"request":{"method":"GET","url":"http://localhost:4000/payments/booking-amount?bookingId=2133d122-fa06-4e53-a213-7afb4a986a8b¤cy=ETB","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"bookingId","value":"2133d122-fa06-4e53-a213-7afb4a986a8b"},{"name":"currency","value":"ETB"}],"headersSize":846,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"146"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:36 GMT"},{"name":"ETag","value":"W/\"92-rM8/rnyPI/To+LAMA3M0Y88aIl4\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":146,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"accf3fae7c8f23f4e8f8b00c03733463cf1a225e.json"},"headersSize":982,"bodySize":146,"redirectURL":"","_transferSize":1128},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":3.784,"receive":1.476},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":16120.609,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:36.578Z","time":53.821,"request":{"method":"POST","url":"http://localhost:4000/payments/initiate","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"144"},{"name":"Content-Type","value":"application/json"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":894,"bodySize":144,"postData":{"mimeType":"application/json","text":"","params":[],"_sha1":"eb0ba22546b8b07928b5d4c10730c645df6be8b4.json"}},"response":{"status":201,"statusText":"Created","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"135"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:36 GMT"},{"name":"ETag","value":"W/\"87-K5R4u+oqQ0jcm02VOm+gD1dsFJ4\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":135,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"2b9478bbea2a4348dc9b4d953a6fa00f576c149e.json"},"headersSize":987,"bodySize":135,"redirectURL":"","_transferSize":1122},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":52.516,"receive":1.305},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":16153.528,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:38.634Z","time":9.194,"request":{"method":"GET","url":"http://localhost:5174/booking/confirmation?_rsc=gwlg9","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-Prefetch","value":"1"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22payment%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%2Ctrue%5D"},{"name":"Next-Url","value":"/booking/payment"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"gwlg9"}],"headersSize":851,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:38 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":125,"mimeType":"text/x-component","compression":0,"_sha1":"a072c05619b7cf3cbedc053f6c992794b91fee45.htc"},"headersSize":734,"bodySize":126,"redirectURL":"","_transferSize":860},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":8.432,"receive":0.762},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":18211.047,"_resourceType":"fetch","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:38.645Z","time":7.709,"request":{"method":"GET","url":"http://localhost:5174/booking/confirmation?_rsc=180sd","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Next-Router-State-Tree","value":"%5B%22%22%2C%7B%22children%22%3A%5B%22booking%22%2C%7B%22children%22%3A%5B%22confirmation%22%2C%7B%22children%22%3A%5B%22__PAGE__%22%2C%7B%7D%2Cnull%2Cnull%5D%7D%2Cnull%2C%22refetch%22%5D%7D%2Cnull%2Cnull%5D%7D%2Cnull%2Cnull%5D"},{"name":"RSC","value":"1"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[{"name":"_rsc","value":"180sd"}],"headersSize":-1,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"text/x-component"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:38 GMT"},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding"},{"name":"content-security-policy","value":"default-src 'self'; base-uri 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http://localhost:4000; font-src 'self' data:; connect-src 'self' http://localhost:4000 ws: wss:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; form-action 'self'; frame-ancestors 'none'"},{"name":"x-frame-options","value":"DENY"},{"name":"x-robots-tag","value":"noindex, nofollow"}],"content":{"size":-1,"mimeType":"text/x-component"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1,"_failureText":"net::ERR_ABORTED"},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":7.709,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":18219.138,"_resourceType":"fetch"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:38.654Z","time":27.437,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/app/booking/confirmation/page.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/payment"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":580,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:38 GMT"},{"name":"ETag","value":"W/\"1b9b35-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":425290,"redirectURL":"","_transferSize":425661},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":1.704,"receive":25.733},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":18227.86,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:38.728Z","time":19.673,"request":{"method":"GET","url":"http://localhost:4000/bookings/2133d122-fa06-4e53-a213-7afb4a986a8b","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"application/json, text/plain, */*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Authorization","value":"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMTExMTExLTAwMDAtNDAwMC04MDAwLTAwMDAwMDAwMDAwMiIsImlhdCI6MTc4NDYzMDY2MCwiZXhwIjoxNzg1MjM1NDYwfQ.1ksaEdrxg9U-xIfTflTYECWEmV18CrT5NJcIBWrAdd8"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:4000"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Referer","value":"http://localhost:5174/"},{"name":"Sec-Fetch-Dest","value":"empty"},{"name":"Sec-Fetch-Mode","value":"cors"},{"name":"Sec-Fetch-Site","value":"same-site"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"X-Frontend-Base-URL","value":"http://localhost:5174"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":868,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Length","value":"6312"},{"name":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"name":"Content-Type","value":"application/json; charset=utf-8"},{"name":"Cross-Origin-Opener-Policy","value":"same-origin"},{"name":"Cross-Origin-Resource-Policy","value":"same-origin"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:38 GMT"},{"name":"ETag","value":"W/\"18a8-q7zFKFV/0An9gOTUCaSqzkhb93I\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Origin-Agent-Cluster","value":"?1"},{"name":"Referrer-Policy","value":"no-referrer"},{"name":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"name":"Vary","value":"Origin"},{"name":"X-Content-Type-Options","value":"nosniff"},{"name":"X-DNS-Prefetch-Control","value":"off"},{"name":"X-Download-Options","value":"noopen"},{"name":"X-Frame-Options","value":"SAMEORIGIN"},{"name":"X-Permitted-Cross-Domain-Policies","value":"none"},{"name":"X-XSS-Protection","value":"0"}],"content":{"size":6312,"mimeType":"application/json; charset=utf-8","compression":0,"_sha1":"abbcc528557fd009fd80e4d409a4aace485bf772.json"},"headersSize":985,"bodySize":6312,"redirectURL":"","_transferSize":7297},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":18.526,"receive":1.147},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":18332.981,"_resourceType":"xhr","serverIPAddress":"[::1]","_serverPort":4000,"_securityDetails":{}}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.378Z","time":6788.417236328125,"request":{"method":"GET","url":"ws://localhost:5174/_next/webpack-hmr","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"jOKfAM/tnlUpvTF2LFMlBw=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:5174"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[],"headersSize":483,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Sec-WebSocket-Accept","value":"rLwbK5px1Ln8vFYq9+Kx35HjL3I="},{"name":"Connection","value":"Upgrade"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"99694df4d8192d4cf2b606377fb350eb.jsonl"},"headersSize":129,"bodySize":-1,"redirectURL":"","_transferSize":291},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":10975.049,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:31.435Z","time":1.0048828125,"request":{"method":"GET","url":"ws://localhost:4000/socket.io/?EIO=4&transport=websocket","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Origin","value":"http://localhost:5174"},{"name":"Cache-Control","value":"no-cache"},{"name":"Pragma","value":"no-cache"},{"name":"Connection","value":"Upgrade"},{"name":"Sec-WebSocket-Key","value":"Dnn0SfA9A3FHWkEARwdubQ=="},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"Sec-WebSocket-Version","value":"13"},{"name":"Host","value":"localhost:4000"},{"name":"Sec-WebSocket-Extensions","value":"permessage-deflate; client_max_window_bits"}],"queryString":[{"name":"EIO","value":"4"},{"name":"transport","value":"websocket"}],"headersSize":476,"bodySize":-1},"response":{"status":101,"statusText":"Switching Protocols","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Upgrade","value":"websocket"},{"name":"Access-Control-Allow-Origin","value":"http://localhost:5174"},{"name":"Sec-WebSocket-Accept","value":"X1t70D7+GYBV9K+a7VKtK43akgY="},{"name":"Connection","value":"Upgrade"},{"name":"Access-Control-Allow-Credentials","value":"true"},{"name":"Vary","value":"Origin"}],"content":{"size":-1,"mimeType":"x-unknown","_sha1":"d8ec3ffa63ee04acad19ca0b861c8e47.jsonl"},"headersSize":235,"bodySize":-1,"redirectURL":"","_transferSize":410},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":11026.701,"_resourceType":"websocket"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:38.727Z","time":-1,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_lib_generate-voucher_ts.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"sec-ch-ua-platform","value":"\"Windows\""},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"Accept-Language","value":"en-US"},{"name":"sec-ch-ua-mobile","value":"?0"}],"queryString":[],"headersSize":-1,"bodySize":0},"response":{"status":-1,"statusText":"","httpVersion":"HTTP/1.1","cookies":[],"headers":[],"content":{"size":-1,"mimeType":"x-unknown"},"headersSize":-1,"bodySize":-1,"redirectURL":"","_transferSize":-1},"cache":{},"timings":{"send":-1,"wait":-1,"receive":-1},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":18332.939,"_resourceType":"script"}}
|
||||||
|
{"type":"resource-snapshot","snapshot":{"pageref":"page@59b29c2ad5e16b6ffd540b8a9792c8bc","startedDateTime":"2026-07-21T10:44:38.727Z","time":76.594,"request":{"method":"GET","url":"http://localhost:5174/_next/static/chunks/_app-pages-browser_src_lib_generate-voucher_ts.js","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept","value":"*/*"},{"name":"Accept-Encoding","value":"gzip, deflate, br, zstd"},{"name":"Accept-Language","value":"en-US"},{"name":"Connection","value":"keep-alive"},{"name":"Host","value":"localhost:5174"},{"name":"Referer","value":"http://localhost:5174/booking/confirmation"},{"name":"Sec-Fetch-Dest","value":"script"},{"name":"Sec-Fetch-Mode","value":"no-cors"},{"name":"Sec-Fetch-Site","value":"same-origin"},{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.7827.55 Safari/537.36"},{"name":"sec-ch-ua","value":"\"HeadlessChrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\""},{"name":"sec-ch-ua-mobile","value":"?0"},{"name":"sec-ch-ua-platform","value":"\"Windows\""}],"queryString":[],"headersSize":602,"bodySize":0},"response":{"status":200,"statusText":"OK","httpVersion":"HTTP/1.1","cookies":[],"headers":[{"name":"Accept-Ranges","value":"bytes"},{"name":"Cache-Control","value":"no-store, must-revalidate"},{"name":"Connection","value":"keep-alive"},{"name":"Content-Encoding","value":"gzip"},{"name":"Content-Type","value":"application/javascript; charset=UTF-8"},{"name":"Date","value":"Tue, 21 Jul 2026 10:44:38 GMT"},{"name":"ETag","value":"W/\"23425a-19f8377166e\""},{"name":"Keep-Alive","value":"timeout=5"},{"name":"Last-Modified","value":"Tue, 21 Jul 2026 06:57:27 GMT"},{"name":"Transfer-Encoding","value":"chunked"},{"name":"Vary","value":"Accept-Encoding"}],"content":{"size":-1,"mimeType":"application/javascript; charset=UTF-8","compression":0},"headersSize":371,"bodySize":653430,"redirectURL":"","_transferSize":653801},"cache":{},"timings":{"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":2.732,"receive":73.862},"_frameref":"frame@e02b0fad0a9337bfc0785a8ae3b0ef49","_monotonicTime":18332.939,"_resourceType":"script","serverIPAddress":"[::1]","_serverPort":5174,"_securityDetails":{}}}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
2:I["(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/client-page.js",["app-pages-internals","static/chunks/app-pages-internals.js"],"ClientPageRoot"]
|
||||||
|
3:I["(app-pages-browser)/./src/app/booking/passengers/page.tsx",["app/booking/passengers/page","static/chunks/app/booking/passengers/page.js"],"default",1]
|
||||||
|
4:I["(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/layout-router.js",["app-pages-internals","static/chunks/app-pages-internals.js"],""]
|
||||||
|
5:I["(app-pages-browser)/../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/client/components/render-from-template-context.js",["app-pages-internals","static/chunks/app-pages-internals.js"],""]
|
||||||
|
1:D{"name":"","env":"Server"}
|
||||||
|
6:D{"name":"","env":"Server"}
|
||||||
|
7:D{"name":"r6","env":"Server"}
|
||||||
|
7:null
|
||||||
|
0:["development",[["children","booking","children","passengers",["passengers",{"children":["__PAGE__",{}]}],["passengers",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","booking","children","passengers","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null],["$L6","$7"]]]]
|
||||||
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"EDR Passenger Portal – Book Train Tickets Online"}],["$","meta","3",{"name":"description","content":"Book train tickets on the Ethio-Djibouti Railway. Travel between Ethiopia and Djibouti with easy online booking, seat selection, and multiple payment options."}],["$","meta","4",{"name":"author","content":"EDR – Ethio-Djibouti Railway"}],["$","meta","5",{"name":"creator","content":"EDR – Ethio-Djibouti Railway"}],["$","meta","6",{"name":"publisher","content":"EDR – Ethio-Djibouti Railway"}],["$","meta","7",{"name":"robots","content":"index, follow"}],["$","meta","8",{"name":"googlebot","content":"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"}],["$","meta","9",{"property":"og:title","content":"EDR Passenger Portal – Book Train Tickets Online"}],["$","meta","10",{"property":"og:description","content":"Book train tickets on the Ethio-Djibouti Railway. Comfortable seats, flexible payment options, and easy online booking."}],["$","meta","11",{"property":"og:url","content":"https://passenger.edrsc.com"}],["$","meta","12",{"property":"og:site_name","content":"EDR Passenger Portal"}],["$","meta","13",{"property":"og:locale","content":"en_US"}],["$","meta","14",{"property":"og:image","content":"http://localhost:5174/edr-banner.jpg"}],["$","meta","15",{"property":"og:image:width","content":"1200"}],["$","meta","16",{"property":"og:image:height","content":"630"}],["$","meta","17",{"property":"og:image:alt","content":"EDR Ethio-Djibouti Railway – Book your train journey"}],["$","meta","18",{"property":"og:type","content":"website"}],["$","meta","19",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","20",{"name":"twitter:title","content":"EDR Passenger Portal – Book Train Tickets Online"}],["$","meta","21",{"name":"twitter:description","content":"Book train tickets on the Ethio-Djibouti Railway. Comfortable seats, flexible payment options, and easy online booking."}],["$","meta","22",{"name":"twitter:image","content":"http://localhost:5174/edr-banner.jpg"}],["$","link","23",{"rel":"shortcut icon","href":"/edr-logo.png"}],["$","link","24",{"rel":"icon","href":"/edr-logo.png"}],["$","link","25",{"rel":"apple-touch-icon","href":"/edr-logo.png"}]]
|
||||||
|
1:null
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{"type":"receive","time":1784630679617.921,"opcode":1,"data":"0{\"sid\":\"974Eg1twXN0HdLsaAAAH\",\"upgrades\":[],\"pingInterval\":25000,\"pingTimeout\":20000,\"maxPayload\":1000000}"}
|
||||||
|
{"type":"send","time":1784630679618.4338,"opcode":1,"data":"40/passenger-support-chat,{\"guestId\":\"da8049a0-a8ee-4db0-8a6f-caf4cd4f27aa\"}"}
|
||||||
|
{"type":"receive","time":1784630679618.8728,"opcode":1,"data":"40/passenger-support-chat,{\"sid\":\"QlfWAW0sdL1HwA_OAAAI\"}"}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{"type":"receive","time":1784630688751.4602,"opcode":1,"data":"{\"action\":\"sync\",\"hash\":\"27234cfe8de65dd5\",\"errors\":[],\"warnings\":[],\"versionInfo\":{\"staleness\":\"stale-major\",\"expected\":\"16.2.10\",\"installed\":\"14.2.35\"}}"}
|
||||||
|
{"type":"send","time":1784630688751.663,"opcode":1,"data":"{\"event\":\"client-success\",\"clientId\":1784630688739}"}
|
||||||
|
{"type":"send","time":1784630691168.3662,"opcode":1,"data":"{\"event\":\"ping\",\"tree\":[\"\",{\"children\":[\"__PAGE__\",{},\"/\",\"refresh\"]},null,null,true],\"appDirRoute\":true}"}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{"type":"receive","time":1784630688859.723,"opcode":1,"data":"0{\"sid\":\"90VHvo23xjypMKuUAAAN\",\"upgrades\":[],\"pingInterval\":25000,\"pingTimeout\":20000,\"maxPayload\":1000000}"}
|
||||||
|
{"type":"send","time":1784630688859.838,"opcode":1,"data":"40/passenger-support-chat,{\"guestId\":\"09aab790-cd4c-4d72-8055-32efc70297e2\"}"}
|
||||||
|
{"type":"receive","time":1784630688860.1848,"opcode":1,"data":"40/passenger-support-chat,{\"sid\":\"3kxUs9ITmGOhJdE9AAAO\"}"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"enabled":false,"mode":"development","apiUrl":"https://api.verifayda.gov.et/v2"},"timestamp":"2026-07-21T10:44:44.158Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"version":1,"eventId":"3a4f3abb-a054-4081-b2dc-00db6086a607","eventType":"payment.succeeded","occurredAt":"2026-07-21T10:44:47.702Z","service":"PASSENGER","intentId":"81d60f30-86b0-41bc-895a-600f29b058aa","referenceType":"BOOKING","referenceId":"a9be972d-c95f-4ef3-b91b-4084df183dc3","merchantOrderId":"e2e-a9be972d-c95f-4ef3-b91b-4084df183dc3","provider":"TELEBIRR","amountMinor":1,"currency":"ETB","providerTxnId":"e2e-txn-a9be972d-c95f-4ef3-b91b-4084df183dc3","paidAt":"2026-07-21T10:44:47.702Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"originalStackFrame":{"file":"../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js","lineNumber":18503,"column":1,"methodName":"beginWork$1","arguments":[]},"originalCodeFrame":null,"sourcePackage":"react"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"id":"a9be972d-c95f-4ef3-b91b-4084df183dc3","bookingRef":"GLLGTK","status":"PENDING_PAYMENT","totalMinor":75000,"currency":"ETB","adultCount":1,"childCount":0,"displayCurrency":"ETB","displayTotalMinor":75000,"bookingType":"ONE_WAY","packageId":null,"isPackageBooking":false,"returnLegStatus":"NOT_APPLICABLE","outboundBoardedAt":null,"returnBoardedAt":null,"contactEmail":"test.passenger@edr.local","contactPhone":null,"createdAt":"2026-07-21T10:44:47.464Z","schedule":{"id":"00000000-0000-4000-8000-000000000101","trainNumber":"UI-100","trainName":"UI Test Express","origin":{"id":"00000000-0000-4000-8000-000000000020","name":"Alpha","code":"AAA","city":"Alpha City"},"destination":{"id":"00000000-0000-4000-8000-000000000022","name":"Charlie","code":"CCC","city":"Charlie City"},"departureAt":"2026-07-23T06:00:00.000Z","arrivalAt":"2026-07-23T10:00:00.000Z"},"returnSchedule":null,"passengers":[{"fullName":"Adult 1","category":"ADULT","leg":1,"fareMinor":75000,"verifaydaVerified":false,"seat":{"id":"6f8c0175-ba7d-4077-b59f-b501182b4c98","number":"1D","coach":"UI-C1","coachId":"00000000-0000-4000-8000-000000000102","seatClass":"Economy Regular"}}],"tickets":[]},"timestamp":"2026-07-21T10:44:49.307Z"}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{"type":"receive","time":1784630694200.534,"opcode":1,"data":"0{\"sid\":\"jTouOKCJKCPkHH4JAAAP\",\"upgrades\":[],\"pingInterval\":25000,\"pingTimeout\":20000,\"maxPayload\":1000000}"}
|
||||||
|
{"type":"send","time":1784630694200.924,"opcode":1,"data":"40/passenger-support-chat,{\"guestId\":\"ab005297-5933-4402-9d94-cc4f13fab1af\"}"}
|
||||||
|
{"type":"receive","time":1784630694201.652,"opcode":1,"data":"40/passenger-support-chat,{\"sid\":\"V4R4fsQ9I1yups6tAAAQ\"}"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"originalStackFrame":{"file":"../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js","lineNumber":7718,"column":1,"methodName":"flushSyncWorkOnAllRoots","arguments":[]},"originalCodeFrame":null,"sourcePackage":"react"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"id":"a9be972d-c95f-4ef3-b91b-4084df183dc3","bookingRef":"GLLGTK","status":"PENDING_PAYMENT","totalMinor":75000,"currency":"ETB","adultCount":1,"childCount":0,"displayCurrency":"ETB","displayTotalMinor":75000,"bookingType":"ONE_WAY","packageId":null,"isPackageBooking":false,"returnLegStatus":"NOT_APPLICABLE","outboundBoardedAt":null,"returnBoardedAt":null,"contactEmail":"test.passenger@edr.local","contactPhone":null,"createdAt":"2026-07-21T10:44:47.464Z","schedule":{"id":"00000000-0000-4000-8000-000000000101","trainNumber":"UI-100","trainName":"UI Test Express","origin":{"id":"00000000-0000-4000-8000-000000000020","name":"Alpha","code":"AAA","city":"Alpha City"},"destination":{"id":"00000000-0000-4000-8000-000000000022","name":"Charlie","code":"CCC","city":"Charlie City"},"departureAt":"2026-07-23T06:00:00.000Z","arrivalAt":"2026-07-23T10:00:00.000Z"},"returnSchedule":null,"passengers":[{"fullName":"Adult 1","category":"ADULT","leg":1,"fareMinor":75000,"verifaydaVerified":false,"seat":{"id":"6f8c0175-ba7d-4077-b59f-b501182b4c98","number":"1D","coach":"UI-C1","coachId":"00000000-0000-4000-8000-000000000102","seatClass":"Economy Regular"}}],"tickets":[]},"timestamp":"2026-07-21T10:44:49.825Z"}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{"type":"receive","time":1784630704709.566,"opcode":1,"data":"0{\"sid\":\"5GXZFz5aZLwjciArAAAT\",\"upgrades\":[],\"pingInterval\":25000,\"pingTimeout\":20000,\"maxPayload\":1000000}"}
|
||||||
|
{"type":"send","time":1784630704710.001,"opcode":1,"data":"40/passenger-support-chat,{\"guestId\":\"120d525b-c9d3-45da-851f-017769b227a2\"}"}
|
||||||
|
{"type":"receive","time":1784630704710.327,"opcode":1,"data":"40/passenger-support-chat,{\"sid\":\"UFoDH0V-lWoUVJguAAAU\"}"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"passengerId":"11111111-0000-4000-8000-000000000001","scheduleId":"00000000-0000-4000-8000-000000000101","holdId":"071683c6-d6be-467c-83b8-88c50c19da93","originStationId":"00000000-0000-4000-8000-000000000020","destinationStationId":"00000000-0000-4000-8000-000000000022","seatClassId":"00000000-0000-4000-8000-000000000010","bookingType":"ONE_WAY","displayCurrency":"ETB","passengers":[{"seatId":"6f8c0175-ba7d-4077-b59f-b501182b4c98","passengerName":"Adult 1","dateOfBirth":"1990-06-15","idDocumentType":"NATIONAL_ID","idDocumentNumber":"","passportNumber":"","passportCountry":"","nationality":"ETHIOPIAN","seatFareMinor":75000}],"reviewedTotalMinor":75000}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"journeyType":"ONE_WAY","outbound":[{"type":"DIRECT","scheduleId":"00000000-0000-4000-8000-000000000101","trainNumber":"UI-100","trainName":"UI Test Express","origin":{"id":"00000000-0000-4000-8000-000000000020","code":"AAA","name":"Alpha","city":"Alpha City","sequence":1},"destination":{"id":"00000000-0000-4000-8000-000000000022","code":"CCC","name":"Charlie","city":"Charlie City","sequence":3},"departureAt":"2026-07-23T06:00:00.000Z","arrivalAt":"2026-07-23T10:00:00.000Z","durationMinutes":240,"status":"SCHEDULED","stops":[{"stationId":"00000000-0000-4000-8000-000000000020","stationName":"Alpha","sequence":1,"plannedArrivalAt":null,"plannedDepartureAt":"2026-07-23T06:00:00.000Z"},{"stationId":"00000000-0000-4000-8000-000000000021","stationName":"Bravo","sequence":2,"plannedArrivalAt":null,"plannedDepartureAt":"2026-07-23T08:00:00.000Z"},{"stationId":"00000000-0000-4000-8000-000000000022","stationName":"Charlie","sequence":3,"plannedArrivalAt":"2026-07-23T10:00:00.000Z","plannedDepartureAt":null}],"availabilityByClass":{"Economy Regular":40},"hasAvailability":true,"displayCurrency":"DJF","faresByClass":[{"seatClassName":"Economy Regular","baseFareMinor":75000,"displayCurrency":"DJF","displayAmountMinor":135000}],"coachTypes":[{"coachTypeId":"00000000-0000-4000-8000-000000000001","coachTypeName":"Standard Coach","coachTypeCode":"STD","coachId":"00000000-0000-4000-8000-000000000102","classes":[{"name":"Economy Regular","baseFareMinor":75000,"displayCurrency":"DJF","displayAmountMinor":135000,"available":40}]}]}]},"timestamp":"2026-07-21T10:45:12.247Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
0:["development",[["children","booking","children","passengers",["passengers",{"children":["__PAGE__",{}]}],null,null]]]
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"unreadCount":0},"timestamp":"2026-07-21T10:45:12.295Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"id":"a9be972d-c95f-4ef3-b91b-4084df183dc3","bookingRef":"GLLGTK","status":"PENDING_PAYMENT","totalMinor":75000,"currency":"ETB","adultCount":1,"childCount":0,"displayCurrency":"ETB","displayTotalMinor":75000,"bookingType":"ONE_WAY","packageId":null,"isPackageBooking":false,"returnLegStatus":"NOT_APPLICABLE","outboundBoardedAt":null,"returnBoardedAt":null,"contactEmail":"test.passenger@edr.local","contactPhone":null,"createdAt":"2026-07-21T10:44:47.464Z","schedule":{"id":"00000000-0000-4000-8000-000000000101","trainNumber":"UI-100","trainName":"UI Test Express","origin":{"id":"00000000-0000-4000-8000-000000000020","name":"Alpha","code":"AAA","city":"Alpha City"},"destination":{"id":"00000000-0000-4000-8000-000000000022","name":"Charlie","code":"CCC","city":"Charlie City"},"departureAt":"2026-07-23T06:00:00.000Z","arrivalAt":"2026-07-23T10:00:00.000Z"},"returnSchedule":null,"passengers":[{"fullName":"Adult 1","category":"ADULT","leg":1,"fareMinor":75000,"verifaydaVerified":false,"seat":{"id":"6f8c0175-ba7d-4077-b59f-b501182b4c98","number":"1D","coach":"UI-C1","coachId":"00000000-0000-4000-8000-000000000102","seatClass":"Economy Regular"}}],"tickets":[]},"timestamp":"2026-07-21T10:44:48.790Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"count":1,"passengerIds":["9bdebd16-38cd-416d-880b-8a06a1d5c975"],"passengers":[{"id":"9bdebd16-38cd-416d-880b-8a06a1d5c975","passengerName":"Adult 1","dateOfBirth":"1990-06-15T00:00:00.000Z","nationality":"ETHIOPIAN","phone":"+251912345678","email":""}],"message":"Passenger details saved successfully"},"timestamp":"2026-07-21T10:44:41.194Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"iamUserId":"11111111-0000-4000-8000-000000000001","passengerId":"11111111-0000-4000-8000-000000000001","email":"test.passenger@edr.local","phone":null,"fullName":"Test Passenger","nationality":null,"faydaVerified":false,"preferredCurrency":"USD","createdAt":"2026-07-21T10:44:20.904Z","passenger":{"id":"11111111-0000-4000-8000-000000000001","preferredLanguage":null,"loyalty":{"tier":"SILVER","pointsBalance":2000,"lifetimePoints":0},"wallet":{"balanceMinor":99850000,"currency":"ETB"}}},"timestamp":"2026-07-21T10:44:43.371Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":true,"data":{"enabled":false,"mode":"development","apiUrl":"https://api.verifayda.gov.et/v2"},"timestamp":"2026-07-21T10:44:54.855Z"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"originalStackFrame":{"file":"../../../node_modules/.pnpm/next@14.2.35_babel-plugin-macros@3.1.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js","lineNumber":26172,"column":1,"methodName":"eval","arguments":[]},"originalCodeFrame":null,"sourcePackage":"react"}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"scheduleId":"00000000-0000-4000-8000-000000000101","originStationId":"00000000-0000-4000-8000-000000000020","destinationStationId":"00000000-0000-4000-8000-000000000022","journeyDirection":"OUTBOUND","passengers":[{"passengerId":"temp-1784630674460-0","seatId":"cb09fd79-b0a7-4abb-bcde-209f1781e89f"}]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"success":false,"statusCode":404,"message":"Cannot POST /promos/validate","error":"Not Found","timestamp":"2026-07-21T10:44:31.342Z","path":"/promos/validate"}
|
||||||