@myrjfa/state 3.0.8 → 3.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/actions/application.d.ts +5 -3
- package/dist/lib/actions/application.d.ts.map +1 -1
- package/dist/lib/actions/application.js +45 -2
- package/dist/lib/actions/auth.d.ts +18 -3
- package/dist/lib/actions/auth.d.ts.map +1 -1
- package/dist/lib/actions/auth.js +22 -0
- package/dist/lib/actions/blog.d.ts.map +1 -1
- package/dist/lib/actions/blog.js +3 -2
- package/dist/lib/actions/booking.d.ts +29 -1
- package/dist/lib/actions/booking.d.ts.map +1 -1
- package/dist/lib/actions/booking.js +186 -0
- package/dist/lib/actions/brand.d.ts +7 -0
- package/dist/lib/actions/brand.d.ts.map +1 -1
- package/dist/lib/actions/brand.js +4 -0
- package/dist/lib/actions/chat.d.ts +3 -0
- package/dist/lib/actions/chat.d.ts.map +1 -1
- package/dist/lib/actions/chat.js +40 -1
- package/dist/lib/actions/community.d.ts +2 -1
- package/dist/lib/actions/community.d.ts.map +1 -1
- package/dist/lib/actions/community.js +10 -4
- package/dist/lib/actions/companion.d.ts +13 -7
- package/dist/lib/actions/companion.d.ts.map +1 -1
- package/dist/lib/actions/companion.js +6 -4
- package/dist/lib/actions/companionUpload.d.ts +2 -1
- package/dist/lib/actions/companionUpload.d.ts.map +1 -1
- package/dist/lib/actions/companionUpload.js +2 -1
- package/dist/lib/actions/event.d.ts +1 -1
- package/dist/lib/actions/event.d.ts.map +1 -1
- package/dist/lib/actions/event.js +5 -2
- package/dist/lib/actions/fetcher.d.ts +7 -1
- package/dist/lib/actions/fetcher.d.ts.map +1 -1
- package/dist/lib/actions/fetcher.js +56 -11
- package/dist/lib/actions/guide.js +1 -0
- package/dist/lib/actions/homeBanner.d.ts +8 -0
- package/dist/lib/actions/homeBanner.d.ts.map +1 -0
- package/dist/lib/actions/homeBanner.js +33 -0
- package/dist/lib/actions/hostDashboard.d.ts +1 -11
- package/dist/lib/actions/hostDashboard.d.ts.map +1 -1
- package/dist/lib/actions/hostDashboard.js +1 -146
- package/dist/lib/actions/itinerary.d.ts +1 -1
- package/dist/lib/actions/itinerary.d.ts.map +1 -1
- package/dist/lib/actions/itinerary.js +2 -2
- package/dist/lib/actions/listingInterest.d.ts +2 -5
- package/dist/lib/actions/listingInterest.d.ts.map +1 -1
- package/dist/lib/actions/listingInterest.js +18 -3
- package/dist/lib/actions/location.d.ts +4 -0
- package/dist/lib/actions/location.d.ts.map +1 -1
- package/dist/lib/actions/location.js +10 -6
- package/dist/lib/actions/marketplaceContract.d.ts.map +1 -1
- package/dist/lib/actions/marketplaceContract.js +3 -2
- package/dist/lib/actions/nativeTransport.d.ts +25 -0
- package/dist/lib/actions/nativeTransport.d.ts.map +1 -0
- package/dist/lib/actions/nativeTransport.js +50 -0
- package/dist/lib/actions/notification.d.ts +3 -3
- package/dist/lib/actions/package.d.ts +5 -3
- package/dist/lib/actions/package.d.ts.map +1 -1
- package/dist/lib/actions/package.js +11 -6
- package/dist/lib/actions/profile.d.ts +5 -0
- package/dist/lib/actions/profile.d.ts.map +1 -1
- package/dist/lib/actions/profile.js +12 -0
- package/dist/lib/actions/review.d.ts +7 -0
- package/dist/lib/actions/review.d.ts.map +1 -1
- package/dist/lib/actions/review.js +64 -31
- package/dist/lib/actions/serverActions.native.d.ts +4 -0
- package/dist/lib/actions/serverActions.native.d.ts.map +1 -0
- package/dist/lib/actions/serverActions.native.js +5 -0
- package/dist/lib/actions/socket.d.ts.map +1 -1
- package/dist/lib/actions/socket.js +6 -5
- package/dist/lib/actions/stay.d.ts +14 -1
- package/dist/lib/actions/stay.d.ts.map +1 -1
- package/dist/lib/actions/stay.js +29 -2
- package/dist/lib/actions/store.d.ts +1 -0
- package/dist/lib/actions/store.d.ts.map +1 -1
- package/dist/lib/actions/store.js +9 -0
- package/dist/lib/actions/user.d.ts +2 -0
- package/dist/lib/actions/user.d.ts.map +1 -1
- package/dist/lib/actions/user.js +5 -0
- package/dist/lib/data/catalogueLocations.d.ts +3 -0
- package/dist/lib/data/catalogueLocations.d.ts.map +1 -0
- package/dist/lib/data/catalogueLocations.js +21 -0
- package/dist/lib/data/skills.d.ts +5 -0
- package/dist/lib/data/skills.d.ts.map +1 -0
- package/dist/lib/data/skills.js +97 -0
- package/dist/lib/forms/application.d.ts +4 -0
- package/dist/lib/forms/application.d.ts.map +1 -0
- package/dist/lib/forms/application.js +17 -0
- package/dist/lib/forms/packageEnquiry.d.ts +4 -0
- package/dist/lib/forms/packageEnquiry.d.ts.map +1 -0
- package/dist/lib/forms/packageEnquiry.js +12 -0
- package/dist/lib/forms/review.d.ts +6 -0
- package/dist/lib/forms/review.d.ts.map +1 -0
- package/dist/lib/forms/review.js +20 -0
- package/dist/lib/models/application.d.ts +21 -0
- package/dist/lib/models/application.d.ts.map +1 -1
- package/dist/lib/models/authorization.d.ts +1 -1
- package/dist/lib/models/authorization.d.ts.map +1 -1
- package/dist/lib/models/authorization.js +2 -0
- package/dist/lib/models/booking.d.ts +3 -0
- package/dist/lib/models/booking.d.ts.map +1 -1
- package/dist/lib/models/chat.d.ts +8 -0
- package/dist/lib/models/chat.d.ts.map +1 -1
- package/dist/lib/models/chat.js +10 -0
- package/dist/lib/models/community.d.ts +2 -0
- package/dist/lib/models/community.d.ts.map +1 -1
- package/dist/lib/models/community.js +2 -1
- package/dist/lib/models/companion.d.ts +42 -0
- package/dist/lib/models/companion.d.ts.map +1 -1
- package/dist/lib/models/discount.d.ts +8 -8
- package/dist/lib/models/enquiry.d.ts +13 -0
- package/dist/lib/models/enquiry.d.ts.map +1 -1
- package/dist/lib/models/homeBanner.d.ts +17 -0
- package/dist/lib/models/homeBanner.d.ts.map +1 -0
- package/dist/lib/models/homeBanner.js +1 -0
- package/dist/lib/models/interest.d.ts +42 -0
- package/dist/lib/models/interest.d.ts.map +1 -0
- package/dist/lib/models/interest.js +1 -0
- package/dist/lib/models/location.d.ts +1 -0
- package/dist/lib/models/location.d.ts.map +1 -1
- package/dist/lib/models/notifications.d.ts +2 -2
- package/dist/lib/models/opportunities/freelance.d.ts +37 -4
- package/dist/lib/models/opportunities/freelance.d.ts.map +1 -1
- package/dist/lib/models/opportunities/internship.d.ts +37 -4
- package/dist/lib/models/opportunities/internship.d.ts.map +1 -1
- package/dist/lib/models/opportunities/job.d.ts +37 -4
- package/dist/lib/models/opportunities/job.d.ts.map +1 -1
- package/dist/lib/models/opportunities/opportunity.d.ts +38 -5
- package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -1
- package/dist/lib/models/opportunities/opportunity.js +1 -1
- package/dist/lib/models/opportunities/volunteerJob.d.ts +37 -4
- package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -1
- package/dist/lib/models/pricing.d.ts +2 -0
- package/dist/lib/models/pricing.d.ts.map +1 -1
- package/dist/lib/models/pricing.js +4 -0
- package/dist/lib/models/props.d.ts +4 -43
- package/dist/lib/models/props.d.ts.map +1 -1
- package/dist/lib/models/props.js +3 -121
- package/dist/lib/models/question.d.ts +14 -0
- package/dist/lib/models/question.d.ts.map +1 -0
- package/dist/lib/models/question.js +6 -0
- package/dist/lib/models/review.d.ts +13 -1
- package/dist/lib/models/review.d.ts.map +1 -1
- package/dist/lib/models/review.js +4 -0
- package/dist/lib/models/tile.d.ts +7 -1
- package/dist/lib/models/tile.d.ts.map +1 -1
- package/dist/lib/models/travelPackage.d.ts +37 -4
- package/dist/lib/models/travelPackage.d.ts.map +1 -1
- package/dist/lib/models/travelPackage.js +1 -1
- package/dist/lib/models/user.d.ts +25 -2
- package/dist/lib/models/user.d.ts.map +1 -1
- package/dist/lib/models/user.js +1 -0
- package/dist/lib/userAtom.d.ts +30 -5
- package/dist/lib/userAtom.d.ts.map +1 -1
- package/dist/lib/utils/entityTiles.d.ts.map +1 -1
- package/dist/lib/utils/entityTiles.js +3 -2
- package/dist/lib/utils/htmlDescription.d.ts +3 -0
- package/dist/lib/utils/htmlDescription.d.ts.map +1 -0
- package/dist/lib/utils/htmlDescription.js +7 -0
- package/dist/lib/utils/htmlDescription.native.d.ts +3 -0
- package/dist/lib/utils/htmlDescription.native.d.ts.map +1 -0
- package/dist/lib/utils/htmlDescription.native.js +7 -0
- package/dist/lib/utils/text.d.ts +3 -1
- package/dist/lib/utils/text.d.ts.map +1 -1
- package/dist/lib/utils/text.js +5 -6
- package/dist/lib/utils/uploadFile.d.ts +9 -0
- package/dist/lib/utils/uploadFile.d.ts.map +1 -0
- package/dist/lib/utils/uploadFile.js +9 -0
- package/dist/lib/utils/uploadTasks.d.ts.map +1 -1
- package/dist/lib/utils/uploadTasks.js +9 -1
- package/package.json +1 -1
|
@@ -173,17 +173,7 @@ export declare function getHostBookingDetail(id: string, type: string): Promise<
|
|
|
173
173
|
error: any;
|
|
174
174
|
type?: undefined;
|
|
175
175
|
}>;
|
|
176
|
-
export
|
|
177
|
-
success: boolean;
|
|
178
|
-
bookings: any[];
|
|
179
|
-
packageEnquiries: any[];
|
|
180
|
-
error?: undefined;
|
|
181
|
-
} | {
|
|
182
|
-
success: boolean;
|
|
183
|
-
bookings: never[];
|
|
184
|
-
packageEnquiries: never[];
|
|
185
|
-
error: any;
|
|
186
|
-
}>;
|
|
176
|
+
export { getMyBookings } from "./booking";
|
|
187
177
|
export declare function verifyBookingCodeHost(code: string): Promise<any>;
|
|
188
178
|
export declare function manageAdventureSlots(id: string, slots: any[]): Promise<{
|
|
189
179
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostDashboard.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/hostDashboard.ts"],"names":[],"mappings":"AAEA,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,oBAG9E;
|
|
1
|
+
{"version":3,"file":"hostDashboard.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/hostDashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,112 +3,6 @@ export async function updateHostBankDetails(bankDetails) {
|
|
|
3
3
|
const response = await patch("/hosts/update", { bankDetails });
|
|
4
4
|
return response.data;
|
|
5
5
|
}
|
|
6
|
-
function resolvePaymentStatus(record) {
|
|
7
|
-
if (record.paymentStatus === "paid" || record.paymentStatus === "refunded" || record.paymentStatus === "failed") {
|
|
8
|
-
return record.paymentStatus;
|
|
9
|
-
}
|
|
10
|
-
if (record.paymentId && record.paymentStatus !== "failed") {
|
|
11
|
-
return "paid";
|
|
12
|
-
}
|
|
13
|
-
if (["confirmed", "completed", "attended"].includes(record.status)) {
|
|
14
|
-
return "paid";
|
|
15
|
-
}
|
|
16
|
-
return "pending";
|
|
17
|
-
}
|
|
18
|
-
function normalizeGenericBooking(booking) {
|
|
19
|
-
const rawHostId = booking.hostId || booking.operatorId || booking.entityId?.host || booking.entityId?.hostId || booking.host;
|
|
20
|
-
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
21
|
-
return {
|
|
22
|
-
...booking,
|
|
23
|
-
hostId: hostId || booking.hostId,
|
|
24
|
-
paymentStatus: resolvePaymentStatus(booking),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function normalizeStayBooking(booking) {
|
|
28
|
-
const rawHostId = booking.hostId || booking.stayId?.host || booking.stayId?.hostId || booking.entityId?.host || booking.host;
|
|
29
|
-
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
30
|
-
return {
|
|
31
|
-
...booking,
|
|
32
|
-
hostId: hostId || booking.hostId,
|
|
33
|
-
entityId: booking.entityId || booking.stayId,
|
|
34
|
-
entityType: "Stay",
|
|
35
|
-
startDate: booking.startDate || booking.checkIn,
|
|
36
|
-
endDate: booking.endDate || booking.checkOut,
|
|
37
|
-
numberOfPeople: booking.numberOfPeople || booking.guests || 1,
|
|
38
|
-
totalPrice: booking.totalPrice || 0,
|
|
39
|
-
currency: booking.currency || "INR",
|
|
40
|
-
paymentStatus: resolvePaymentStatus(booking),
|
|
41
|
-
bookingCode: booking.bookingCode,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
function normalizeEventBooking(booking) {
|
|
45
|
-
const rawHostId = booking.hostId || booking.eventId?.host || booking.eventId?.hostId || booking.entityId?.host || booking.host;
|
|
46
|
-
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
47
|
-
return {
|
|
48
|
-
...booking,
|
|
49
|
-
hostId: hostId || booking.hostId,
|
|
50
|
-
entityId: booking.entityId || booking.eventId,
|
|
51
|
-
entityType: "Event",
|
|
52
|
-
startDate: booking.startDate || booking.eventDate,
|
|
53
|
-
numberOfPeople: booking.numberOfPeople || booking.numberOfSeats || 1,
|
|
54
|
-
totalPrice: booking.totalPrice || 0,
|
|
55
|
-
currency: booking.currency || "INR",
|
|
56
|
-
paymentStatus: resolvePaymentStatus(booking),
|
|
57
|
-
bookingCode: booking.bookingCode,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function normalizePackageEnquiry(enquiry) {
|
|
61
|
-
const rawHostId = enquiry.operatorId || enquiry.hostId || enquiry.packageId?.host || enquiry.packageId?.hostId;
|
|
62
|
-
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
63
|
-
return {
|
|
64
|
-
...enquiry,
|
|
65
|
-
hostId: hostId || enquiry.operatorId,
|
|
66
|
-
operatorId: hostId || enquiry.operatorId,
|
|
67
|
-
entityId: {
|
|
68
|
-
_id: enquiry.packageId?._id || enquiry.packageId,
|
|
69
|
-
title: enquiry.packageTitle,
|
|
70
|
-
slug: enquiry.packageSlug,
|
|
71
|
-
host: hostId || enquiry.operatorId,
|
|
72
|
-
},
|
|
73
|
-
entityType: "TravelPackage",
|
|
74
|
-
bookingKind: "package_enquiry",
|
|
75
|
-
entityLabel: "Package Enquiry",
|
|
76
|
-
startDate: enquiry.createdAt,
|
|
77
|
-
endDate: undefined,
|
|
78
|
-
numberOfPeople: (Number(enquiry.males) || 0) + (Number(enquiry.females) || 0) || 1,
|
|
79
|
-
totalPrice: enquiry.totalPrice || 0,
|
|
80
|
-
currency: enquiry.currency || "INR",
|
|
81
|
-
paymentStatus: "not_applicable",
|
|
82
|
-
bookingCode: enquiry.bookingCode,
|
|
83
|
-
status: enquiry.status === "denied" ? "cancelled" : enquiry.status,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
function dedupeBookings(bookings) {
|
|
87
|
-
const seen = new Set();
|
|
88
|
-
return bookings.filter((booking) => {
|
|
89
|
-
const key = String(booking._id || "") || `${booking.entityType}:${booking.bookingCode || booking.startDate}`;
|
|
90
|
-
if (seen.has(key))
|
|
91
|
-
return false;
|
|
92
|
-
seen.add(key);
|
|
93
|
-
return true;
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
function hideSupersededPackageEnquiries(bookings) {
|
|
97
|
-
const bookedPackageIds = new Set(bookings
|
|
98
|
-
.filter((booking) => booking.entityType === "TravelPackage" &&
|
|
99
|
-
booking.bookingKind !== "package_enquiry")
|
|
100
|
-
.map((booking) => {
|
|
101
|
-
const packageId = booking.entityId?._id || booking.entityId;
|
|
102
|
-
return String(packageId || "");
|
|
103
|
-
})
|
|
104
|
-
.filter(Boolean));
|
|
105
|
-
return bookings.filter((booking) => {
|
|
106
|
-
if (booking.bookingKind !== "package_enquiry")
|
|
107
|
-
return true;
|
|
108
|
-
const packageId = booking.entityId?._id || booking.packageId || booking.entityId;
|
|
109
|
-
return !bookedPackageIds.has(String(packageId || ""));
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
6
|
// ── Overview ──────────────────────────────────────────────────────────────────
|
|
113
7
|
export async function getHostDashboardOverview() {
|
|
114
8
|
try {
|
|
@@ -363,46 +257,7 @@ export async function getHostBookingDetail(id, type) {
|
|
|
363
257
|
return { success: false, booking: null, error: error.message };
|
|
364
258
|
}
|
|
365
259
|
}
|
|
366
|
-
export
|
|
367
|
-
try {
|
|
368
|
-
const [genericResult, stayResult, eventResult, packageResult] = await Promise.allSettled([
|
|
369
|
-
get("/bookings/my"),
|
|
370
|
-
get("/stays/bookings/me"),
|
|
371
|
-
get("/events/bookings/me"),
|
|
372
|
-
get("/enquiries/my"),
|
|
373
|
-
]);
|
|
374
|
-
const genericBookings = genericResult.status === "fulfilled"
|
|
375
|
-
? (genericResult.value?.data || []).map((booking) => ({
|
|
376
|
-
...normalizeGenericBooking(booking),
|
|
377
|
-
entityLabel: booking.entityType === "TravelPackage"
|
|
378
|
-
? "Package Booking"
|
|
379
|
-
: booking.entityType,
|
|
380
|
-
}))
|
|
381
|
-
: [];
|
|
382
|
-
const stayBookings = stayResult.status === "fulfilled"
|
|
383
|
-
? (stayResult.value?.data || []).map(normalizeStayBooking)
|
|
384
|
-
: [];
|
|
385
|
-
const eventBookings = eventResult.status === "fulfilled"
|
|
386
|
-
? (eventResult.value?.data || []).map(normalizeEventBooking)
|
|
387
|
-
: [];
|
|
388
|
-
const packageBookings = packageResult.status === "fulfilled"
|
|
389
|
-
? (packageResult.value?.data || []).map(normalizePackageEnquiry)
|
|
390
|
-
: [];
|
|
391
|
-
const combined = hideSupersededPackageEnquiries(dedupeBookings([
|
|
392
|
-
...genericBookings,
|
|
393
|
-
...stayBookings,
|
|
394
|
-
...eventBookings,
|
|
395
|
-
...packageBookings,
|
|
396
|
-
])).sort((a, b) => new Date(b.createdAt || b.startDate || 0).getTime() -
|
|
397
|
-
new Date(a.createdAt || a.startDate || 0).getTime());
|
|
398
|
-
const packageEnquiries = combined.filter((booking) => booking.bookingKind === "package_enquiry");
|
|
399
|
-
const bookings = combined.filter((booking) => booking.bookingKind !== "package_enquiry");
|
|
400
|
-
return { success: true, bookings, packageEnquiries };
|
|
401
|
-
}
|
|
402
|
-
catch (error) {
|
|
403
|
-
return { success: false, bookings: [], packageEnquiries: [], error: error.message };
|
|
404
|
-
}
|
|
405
|
-
}
|
|
260
|
+
export { getMyBookings } from "./booking";
|
|
406
261
|
export async function verifyBookingCodeHost(code) {
|
|
407
262
|
try {
|
|
408
263
|
const data = (await get(`/bookings/verify/${code}`));
|
|
@@ -17,7 +17,7 @@ export declare function getContextualDestinationSuggestions(route: ItineraryRout
|
|
|
17
17
|
suggestions: ContextualDestinationSuggestion[];
|
|
18
18
|
error?: string;
|
|
19
19
|
}>;
|
|
20
|
-
export declare function getItineraryById<T = any>(id: string): Promise<T>;
|
|
20
|
+
export declare function getItineraryById<T = any>(id: string, signal?: AbortSignal): Promise<T>;
|
|
21
21
|
export declare function getMyItineraries(): Promise<{
|
|
22
22
|
success: boolean;
|
|
23
23
|
itineraries: ItinerarySummary[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"itinerary.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/itinerary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAK7B,wBAAsB,sBAAsB,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAeD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CACpF;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,CAAC,CAAA;CAAE,GAC/B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACpC,CAcA;AAED,wBAAsB,mCAAmC,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,+BAA+B,EAAE,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAWD;AAED,wBAAsB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"itinerary.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/itinerary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAK7B,wBAAsB,sBAAsB,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAeD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CACpF;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,CAAC,CAAA;CAAE,GAC/B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACpC,CAcA;AAED,wBAAsB,mCAAmC,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,+BAA+B,EAAE,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAWD;AAED,wBAAsB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAG5F;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAOD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAOzE;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxF;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAM1E"}
|
|
@@ -47,8 +47,8 @@ export async function getContextualDestinationSuggestions(route) {
|
|
|
47
47
|
return { success: false, suggestions: [] };
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
export async function getItineraryById(id) {
|
|
51
|
-
const payload = await get(`/itineraries/${encodeURIComponent(id)}`, true);
|
|
50
|
+
export async function getItineraryById(id, signal) {
|
|
51
|
+
const payload = await get(`/itineraries/${encodeURIComponent(id)}`, true, { signal });
|
|
52
52
|
return payload.data;
|
|
53
53
|
}
|
|
54
54
|
export async function getMyItineraries() {
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import type { Interest } from "../models/
|
|
2
|
-
export declare function submitInterestRequest(data: Interest): Promise<
|
|
3
|
-
success: boolean;
|
|
4
|
-
error?: string;
|
|
5
|
-
}>;
|
|
1
|
+
import type { Interest, InterestResult } from "../models/interest";
|
|
2
|
+
export declare function submitInterestRequest(data: Interest): Promise<InterestResult>;
|
|
6
3
|
//# sourceMappingURL=listingInterest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listingInterest.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/listingInterest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"listingInterest.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/listingInterest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYnE,wBAAsB,qBAAqB,CACvC,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,cAAc,CAAC,CAwBzB"}
|
|
@@ -9,10 +9,25 @@ const INTEREST_ENDPOINTS = {
|
|
|
9
9
|
};
|
|
10
10
|
export async function submitInterestRequest(data) {
|
|
11
11
|
try {
|
|
12
|
-
await post(INTEREST_ENDPOINTS[data.type] ?? "/interest", data);
|
|
13
|
-
|
|
12
|
+
const result = await post(INTEREST_ENDPOINTS[data.type] ?? "/interest", data);
|
|
13
|
+
const saved = result?.data;
|
|
14
|
+
if (!saved || typeof saved._id !== "string" ||
|
|
15
|
+
!/^[a-zA-Z0-9_-]{1,100}$/.test(saved._id) || saved.type !== data.type) {
|
|
16
|
+
return {
|
|
17
|
+
success: false,
|
|
18
|
+
outcome: "uncertain",
|
|
19
|
+
error: "The request outcome could not be confirmed. It may already have been received.",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return { success: true, receipt: { id: saved._id, type: data.type } };
|
|
14
23
|
}
|
|
15
24
|
catch (error) {
|
|
16
|
-
|
|
25
|
+
// The controller saves before sending its notification email. A 5xx or
|
|
26
|
+
// lost response cannot establish absence and must never invite replay.
|
|
27
|
+
return {
|
|
28
|
+
success: false,
|
|
29
|
+
error: error?.message || "Could not submit your request",
|
|
30
|
+
outcome: "uncertain",
|
|
31
|
+
};
|
|
17
32
|
}
|
|
18
33
|
}
|
|
@@ -31,6 +31,8 @@ export declare function fetchThreads(locationId: string, opts?: {
|
|
|
31
31
|
}): Promise<{
|
|
32
32
|
threads: ForumThread[];
|
|
33
33
|
total: number;
|
|
34
|
+
success: boolean;
|
|
35
|
+
error?: string;
|
|
34
36
|
}>;
|
|
35
37
|
export declare function createThread(payload: {
|
|
36
38
|
locationId: string;
|
|
@@ -48,6 +50,8 @@ export declare function createThread(payload: {
|
|
|
48
50
|
export declare function fetchComments(threadId: string, page?: number): Promise<{
|
|
49
51
|
comments: ForumComment[];
|
|
50
52
|
total: number;
|
|
53
|
+
success: boolean;
|
|
54
|
+
error?: string;
|
|
51
55
|
}>;
|
|
52
56
|
export declare function fetchThread(threadId: string): Promise<{
|
|
53
57
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/location.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAM7E;AAID,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACvD,CAAC,CAOD;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzD,CAAC,CAOD;AAED,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAOrF;AAED,wBAAsB,eAAe,CACnC,CAAC,EAAE,MAAM,EACT,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C,OAAO,CAAC;IAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CASjD;AAID,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,MAAM,EACV,IAAI,SAAI,GACP,OAAO,CAAC;IAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAO7D;AAID,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC;IAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/location.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,10 +64,12 @@ export async function fetchThreads(locationId, opts = {}) {
|
|
|
64
64
|
if (opts.category)
|
|
65
65
|
params.set("category", opts.category);
|
|
66
66
|
const data = await get(`/locations/${locationId}/threads?${params}`);
|
|
67
|
-
|
|
67
|
+
if (!data.data || !Array.isArray(data.data.threads) || !Number.isFinite(data.data.total) || data.data.total < 0)
|
|
68
|
+
throw new Error("Discussions response was incomplete. Please retry.");
|
|
69
|
+
return { ...data.data, success: true };
|
|
68
70
|
}
|
|
69
|
-
catch {
|
|
70
|
-
return { threads: [], total: 0 };
|
|
71
|
+
catch (error) {
|
|
72
|
+
return { threads: [], total: 0, success: false, error: error instanceof Error ? error.message : "Discussions could not load." };
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
export async function createThread(payload) {
|
|
@@ -82,10 +84,12 @@ export async function createThread(payload) {
|
|
|
82
84
|
export async function fetchComments(threadId, page = 1) {
|
|
83
85
|
try {
|
|
84
86
|
const data = await get(`/locations/threads/${threadId}/comments?page=${page}&limit=50`);
|
|
85
|
-
|
|
87
|
+
if (!data.data || !Array.isArray(data.data.comments) || !Number.isFinite(data.data.total) || data.data.total < 0)
|
|
88
|
+
throw new Error("Replies response was incomplete. Please retry.");
|
|
89
|
+
return { ...data.data, success: true };
|
|
86
90
|
}
|
|
87
|
-
catch {
|
|
88
|
-
return { comments: [], total: 0 };
|
|
91
|
+
catch (error) {
|
|
92
|
+
return { comments: [], total: 0, success: false, error: error instanceof Error ? error.message : "Replies could not load." };
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
95
|
export async function fetchThread(threadId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplaceContract.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/marketplaceContract.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"marketplaceContract.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/marketplaceContract.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGrF,eAAO,MAAM,uBAAuB,sCAA0F,CAAC;AAC/H,eAAO,MAAM,sBAAsB,GAAU,cAAc,MAAM,iCAAkH,CAAC;AACpL,eAAO,MAAM,yBAAyB,GAAU,OAAO,OAAO,iCAAuF,CAAC;AACtJ,eAAO,MAAM,wBAAwB,GAAU,YAAY,MAAM,EAAE,QAAQ,SAAS,GAAG,QAAQ,GAAG,QAAQ,EAAE,QAAO,OAAY,iCAAuH,CAAC;AACvP,eAAO,MAAM,yBAAyB,GAAU,YAAY,MAAM,EAAE,aAAa,MAAM,EAAE,QAAQ,QAAQ,GAAG,kBAAkB,GAAG,SAAS,EAAE,QAAO,OAAY,iCAAiJ,CAAC;AACjT,eAAO,MAAM,sBAAsB,GAAU,YAAY,MAAM,EAAE,OAAO;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,qBAAkG,CAAC;AACnN,eAAO,MAAM,uBAAuB,GAAU,YAAY,MAAM,EAAE,OAAO;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,iCAA8G,CAAC;AAClP,eAAO,MAAM,qBAAqB,GAAU,YAAY,MAAM,EAAE,aAAa,MAAM,uCAAoI,CAAC;AACxN,eAAO,MAAM,6BAA6B,GAAU,YAAY,MAAM,EAAE,aAAa,MAAM,gCAAyI,CAAC;AACrO,eAAO,MAAM,wBAAwB,GAAU,YAAY,MAAM,EAAE,aAAa,MAAM,EAAE,OAAO;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,gCAA6I,CAAC;AACnU,eAAO,MAAM,yBAAyB,GAAU,YAAY,MAAM,EAAE,aAAa,MAAM,gCAA2I,CAAC;AACnO,eAAO,MAAM,gCAAgC,GAAI,YAAY,MAAM,EAAE,WAAW,MAAM,WAGrF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { get, post } from "./fetcher";
|
|
2
|
-
|
|
2
|
+
import { getNativeTransport } from './nativeTransport';
|
|
3
|
+
const withIdempotency = async (path, body) => post(path, body, true, { headers: { "Idempotency-Key": getNativeTransport()?.randomUUID?.() ?? crypto.randomUUID() } });
|
|
3
4
|
export const getMarketplaceContracts = async () => (await get("/marketplace-contracts")).data;
|
|
4
5
|
export const getMarketplaceContract = async (contractSlug) => (await get(`/marketplace-contracts/${encodeURIComponent(contractSlug)}`)).data;
|
|
5
6
|
export const createMarketplaceContract = async (input) => (await withIdempotency("/marketplace-contracts", input)).data;
|
|
@@ -12,6 +13,6 @@ export const createMarketplacePaymentOrder = async (contractId, milestoneId) =>
|
|
|
12
13
|
export const verifyMarketplacePayment = async (contractId, milestoneId, input) => (await withIdempotency(`/marketplace-contracts/${contractId}/milestones/${milestoneId}/payment/verify`, input)).data;
|
|
13
14
|
export const releaseMarketplacePayment = async (contractId, milestoneId) => (await withIdempotency(`/marketplace-contracts/${contractId}/milestones/${milestoneId}/payment/release`, {})).data;
|
|
14
15
|
export const getMarketplaceInvoiceDownloadUrl = (contractId, invoiceId) => {
|
|
15
|
-
const baseUrl = String(process.env.NEXT_PUBLIC_API_URL || "").replace(/\/$/, "");
|
|
16
|
+
const baseUrl = String(getNativeTransport()?.apiUrl || process.env.NEXT_PUBLIC_API_URL || "").replace(/\/$/, "");
|
|
16
17
|
return `${baseUrl}/marketplace-contracts/${encodeURIComponent(contractId)}/invoices/${encodeURIComponent(invoiceId)}/download`;
|
|
17
18
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Native credentials are supplied by the app's secure-storage adapter, never persisted here. */
|
|
2
|
+
export type NativeSessionTokens = {
|
|
3
|
+
accessToken: string;
|
|
4
|
+
refreshToken: string;
|
|
5
|
+
deviceId: string;
|
|
6
|
+
accountType: "user";
|
|
7
|
+
};
|
|
8
|
+
export interface NativeTransportAdapter {
|
|
9
|
+
apiUrl: string;
|
|
10
|
+
deviceId: string;
|
|
11
|
+
randomUUID?(): string;
|
|
12
|
+
accessToken(): string | null;
|
|
13
|
+
refreshToken(): Promise<string | null>;
|
|
14
|
+
setTokens(tokens: NativeSessionTokens, isCurrent: () => boolean): Promise<void>;
|
|
15
|
+
clearSession(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export declare const subscribeNativeSession: (listener: () => void) => () => void;
|
|
18
|
+
export declare function configureNativeTransport(next: NativeTransportAdapter | null): void;
|
|
19
|
+
export declare const getNativeTransport: () => NativeTransportAdapter | null;
|
|
20
|
+
export declare const nativeSessionGeneration: () => number;
|
|
21
|
+
export declare function invalidateNativeSession(): void;
|
|
22
|
+
/** Capture at the start of a user interaction, before any await. */
|
|
23
|
+
export declare function nativeInteractionGuard(): () => void;
|
|
24
|
+
export declare function acceptNativeSession(value: unknown, expectedGeneration?: number, newIdentity?: boolean): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=nativeTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nativeTransport.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/nativeTransport.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,MAAM,mBAAmB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AACvH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,IAAI,MAAM,CAAC;IACtB,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAID,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,IAAI,eAA+E,CAAC;AAE3I,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,QAK3E;AACD,eAAO,MAAM,kBAAkB,qCAAgB,CAAC;AAChD,eAAO,MAAM,uBAAuB,cAAmB,CAAC;AACxD,wBAAgB,uBAAuB,SAAkC;AACzE,oEAAoE;AACpE,wBAAgB,sBAAsB,eAKrC;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,SAAa,EAAE,WAAW,UAAQ,iBAoB7G"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
let adapter = null;
|
|
2
|
+
let generation = 0;
|
|
3
|
+
const listeners = new Set();
|
|
4
|
+
export const subscribeNativeSession = (listener) => { listeners.add(listener); return () => { listeners.delete(listener); }; };
|
|
5
|
+
const changed = () => listeners.forEach(listener => listener());
|
|
6
|
+
export function configureNativeTransport(next) {
|
|
7
|
+
if (next && (!/^https?:\/\//.test(next.apiUrl) || !next.deviceId))
|
|
8
|
+
throw new Error("An explicit API URL and device ID are required");
|
|
9
|
+
adapter = next;
|
|
10
|
+
generation += 1;
|
|
11
|
+
changed();
|
|
12
|
+
}
|
|
13
|
+
export const getNativeTransport = () => adapter;
|
|
14
|
+
export const nativeSessionGeneration = () => generation;
|
|
15
|
+
export function invalidateNativeSession() { generation += 1; changed(); }
|
|
16
|
+
/** Capture at the start of a user interaction, before any await. */
|
|
17
|
+
export function nativeInteractionGuard() {
|
|
18
|
+
const owner = adapter, epoch = generation;
|
|
19
|
+
return () => {
|
|
20
|
+
if (owner && (adapter !== owner || generation !== epoch))
|
|
21
|
+
throw new Error("The account changed. Return to your draft before continuing.");
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
let credentialWrite = Promise.resolve();
|
|
25
|
+
export async function acceptNativeSession(value, expectedGeneration = generation, newIdentity = false) {
|
|
26
|
+
if (!adapter) {
|
|
27
|
+
if (expectedGeneration !== generation)
|
|
28
|
+
throw new Error("Session changed");
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const tokens = value;
|
|
32
|
+
if (!tokens || !tokens.accessToken || !tokens.refreshToken || tokens.accountType !== "user" || tokens.deviceId !== adapter.deviceId)
|
|
33
|
+
throw new Error("Invalid native session response");
|
|
34
|
+
const owner = adapter;
|
|
35
|
+
const isCurrent = () => adapter === owner && generation === expectedGeneration;
|
|
36
|
+
const write = credentialWrite.catch(() => { }).then(async () => {
|
|
37
|
+
if (!isCurrent())
|
|
38
|
+
throw new Error("Session changed");
|
|
39
|
+
await owner.setTokens(tokens, isCurrent);
|
|
40
|
+
if (!isCurrent())
|
|
41
|
+
throw new Error("Session changed");
|
|
42
|
+
// Login/verification may replace actor A with B. Requests started while the
|
|
43
|
+
// new identity was pending still used A's credential and must be invalidated.
|
|
44
|
+
// Refresh rotation is the same actor and intentionally retains its epoch.
|
|
45
|
+
if (newIdentity)
|
|
46
|
+
invalidateNativeSession();
|
|
47
|
+
});
|
|
48
|
+
credentialWrite = write;
|
|
49
|
+
await write;
|
|
50
|
+
}
|
|
@@ -10,7 +10,7 @@ export declare function getAllNotifications(): Promise<{
|
|
|
10
10
|
timestamp?: any;
|
|
11
11
|
visitedAt?: string | null | undefined;
|
|
12
12
|
link?: string | undefined;
|
|
13
|
-
category?: "
|
|
13
|
+
category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
|
|
14
14
|
metadata?: {
|
|
15
15
|
status?: string | undefined;
|
|
16
16
|
rating?: number | undefined;
|
|
@@ -52,7 +52,7 @@ export declare function getNotifications(limit: number): Promise<{
|
|
|
52
52
|
timestamp?: any;
|
|
53
53
|
visitedAt?: string | null | undefined;
|
|
54
54
|
link?: string | undefined;
|
|
55
|
-
category?: "
|
|
55
|
+
category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
|
|
56
56
|
metadata?: {
|
|
57
57
|
status?: string | undefined;
|
|
58
58
|
rating?: number | undefined;
|
|
@@ -118,7 +118,7 @@ export declare function saveUploadNotification(input: {
|
|
|
118
118
|
timestamp?: any;
|
|
119
119
|
visitedAt?: string | null | undefined;
|
|
120
120
|
link?: string | undefined;
|
|
121
|
-
category?: "
|
|
121
|
+
category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
|
|
122
122
|
metadata?: {
|
|
123
123
|
status?: string | undefined;
|
|
124
124
|
rating?: number | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TravelPackage } from "../models/package";
|
|
2
2
|
import { TileProps } from "../models/tile";
|
|
3
3
|
import { DifficultyEnum, TravelPackage as DetailedTravelPackage, TravelPackageMetaData, TravelPackagePdfExtractionResult } from "../models/travelPackage";
|
|
4
|
-
import { EnquiryStatus, PackageEnquiry } from "../models/enquiry";
|
|
4
|
+
import { EnquiryStatus, PackageEnquiry, PackageEnquiryInput } from "../models/enquiry";
|
|
5
5
|
export type { PackageMetaData } from "../models/package";
|
|
6
6
|
export declare function getPackageTiles(status?: readonly string[], limit?: number, filters?: {
|
|
7
7
|
categoryId?: string;
|
|
@@ -101,20 +101,22 @@ export declare function getEnquiriesForPackage(slug: string): Promise<{
|
|
|
101
101
|
error?: string;
|
|
102
102
|
enquiries: PackageEnquiry[];
|
|
103
103
|
}>;
|
|
104
|
-
export declare function savePackageEnquiry(
|
|
104
|
+
export declare function savePackageEnquiry(input: FormData | PackageEnquiryInput): Promise<{
|
|
105
105
|
success: boolean;
|
|
106
106
|
message?: string;
|
|
107
107
|
error?: string;
|
|
108
|
+
enquiry?: PackageEnquiry;
|
|
108
109
|
}>;
|
|
109
110
|
export declare function updateEnquiryStatus(status: EnquiryStatus, id: string): Promise<{
|
|
110
111
|
success: boolean;
|
|
111
112
|
message?: string;
|
|
112
113
|
error?: string;
|
|
113
114
|
}>;
|
|
114
|
-
export declare function editPackageEnquiry(
|
|
115
|
+
export declare function editPackageEnquiry(input: FormData | PackageEnquiryInput, id: string): Promise<{
|
|
115
116
|
success: boolean;
|
|
116
117
|
message?: string;
|
|
117
118
|
error?: string;
|
|
119
|
+
enquiry?: PackageEnquiry;
|
|
118
120
|
}>;
|
|
119
121
|
export declare function getPendingPackages(): Promise<{
|
|
120
122
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/package.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/package.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { getNativeTransport } from './nativeTransport';
|
|
1
2
|
import { runUploadTask } from "../utils/uploadTasks";
|
|
2
3
|
import { get, patch, post, del } from "./fetcher";
|
|
3
4
|
import { calculatePricingStrategyDisplayUnitPrice, getPricingCurrency, getPricingStrategies } from "../models/pricing";
|
|
5
|
+
import { packageEnquiryFormData } from "../forms/packageEnquiry";
|
|
4
6
|
import { convertTravelPackageToTileProps } from "../utils/entityTiles";
|
|
5
7
|
// ─── Public ───────────────────────────────────────────────────────────────────
|
|
6
8
|
export async function getPackageTiles(status = ["open"], limit, filters) {
|
|
@@ -222,6 +224,8 @@ export async function deletePackage(slug) {
|
|
|
222
224
|
export async function getPackageEnquiry(slug) {
|
|
223
225
|
try {
|
|
224
226
|
const data = await get(`/enquiries/getEnquiryByUserAndSlug/${slug}`);
|
|
227
|
+
if (data.data === undefined || (data.data !== null && (!data.data || typeof data.data !== "object" || !data.data._id)))
|
|
228
|
+
throw new Error("Enquiry status response was incomplete. Please retry.");
|
|
225
229
|
return {
|
|
226
230
|
success: true,
|
|
227
231
|
message: data.message,
|
|
@@ -245,10 +249,11 @@ export async function getEnquiriesForPackage(slug) {
|
|
|
245
249
|
return { success: false, error: error.message, enquiries: [] };
|
|
246
250
|
}
|
|
247
251
|
}
|
|
248
|
-
export async function savePackageEnquiry(
|
|
252
|
+
export async function savePackageEnquiry(input) {
|
|
249
253
|
try {
|
|
250
|
-
const
|
|
251
|
-
|
|
254
|
+
const formData = input instanceof FormData ? input : packageEnquiryFormData(input);
|
|
255
|
+
const data = await runUploadTask({ title: 'Package', retrySafe: false, href: getNativeTransport() ? "/my-trips" : "/dashboard/host/packages", body: formData, operation: ({ progress }) => post("/enquiries/enquireForPackage", formData, true, { onUploadProgress: progress }) });
|
|
256
|
+
return { success: true, message: data.message, enquiry: data.data };
|
|
252
257
|
}
|
|
253
258
|
catch (error) {
|
|
254
259
|
return { success: false, error: error.message };
|
|
@@ -263,10 +268,10 @@ export async function updateEnquiryStatus(status, id) {
|
|
|
263
268
|
return { success: false, error: error.message };
|
|
264
269
|
}
|
|
265
270
|
}
|
|
266
|
-
export async function editPackageEnquiry(
|
|
271
|
+
export async function editPackageEnquiry(input, id) {
|
|
267
272
|
try {
|
|
268
|
-
const data = await runUploadTask({ title: 'Package', retrySafe: false, href: "/dashboard/host/packages", body:
|
|
269
|
-
return { success: true, message: data.message };
|
|
273
|
+
const data = await runUploadTask({ title: 'Package', retrySafe: false, href: getNativeTransport() ? "/my-trips" : "/dashboard/host/packages", body: input instanceof FormData ? input : undefined, operation: ({ progress }) => patch(`/enquiries/updateEnquiry/${id}`, input, { onUploadProgress: progress }) });
|
|
274
|
+
return { success: true, message: data.message, enquiry: data.data };
|
|
270
275
|
}
|
|
271
276
|
catch (error) {
|
|
272
277
|
return { success: false, error: error.message };
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { UserRole } from "../models/props";
|
|
2
2
|
import type { User } from "../models/user";
|
|
3
3
|
import type { SocialPlatformType } from "../utils/socialMediaUrl";
|
|
4
|
+
import { type UploadFile } from "../utils/uploadFile";
|
|
5
|
+
export declare function updateTravellerResume(file: UploadFile): Promise<{
|
|
6
|
+
success: boolean;
|
|
7
|
+
error?: string;
|
|
8
|
+
}>;
|
|
4
9
|
export declare function updateUserSkillExpertise(username: string, skill: string, expertise: number): Promise<{
|
|
5
10
|
success: boolean;
|
|
6
11
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAExE,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3G;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;GAYhG;AACD,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,QAAQ,EAAE,QAAQ,EAClB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAChC,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC,CASD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAY3J;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7E,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAChE,CAAC,CAkBD;AAGD,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC,CAgBD"}
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { runUploadTask } from "../utils/uploadTasks";
|
|
2
2
|
import { get, patch } from "./fetcher";
|
|
3
|
+
import { appendUploadFile } from "../utils/uploadFile";
|
|
4
|
+
export async function updateTravellerResume(file) {
|
|
5
|
+
try {
|
|
6
|
+
const body = new FormData();
|
|
7
|
+
appendUploadFile(body, "resume", file);
|
|
8
|
+
await patch("/users/resume-update", body);
|
|
9
|
+
return { success: true };
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
return { success: false, error: error.message };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
3
15
|
export async function updateUserSkillExpertise(username, skill, expertise) {
|
|
4
16
|
try {
|
|
5
17
|
const endpoint = `/users/updateSkillExpertise/${username}`;
|