@myrjfa/state 3.0.7 → 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/adminDashboard.d.ts.map +1 -1
- package/dist/lib/actions/adminDashboard.js +2 -1
- package/dist/lib/actions/adventure.d.ts.map +1 -1
- package/dist/lib/actions/adventure.js +3 -2
- 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 +46 -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 +4 -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 +5 -2
- package/dist/lib/actions/community.d.ts.map +1 -1
- package/dist/lib/actions/community.js +16 -4
- package/dist/lib/actions/companion.d.ts +27 -15
- package/dist/lib/actions/companion.d.ts.map +1 -1
- package/dist/lib/actions/companion.js +22 -15
- package/dist/lib/actions/companionUpload.d.ts +11 -0
- package/dist/lib/actions/companionUpload.d.ts.map +1 -0
- package/dist/lib/actions/companionUpload.js +14 -0
- 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 +8 -4
- package/dist/lib/actions/fetcher.d.ts +9 -3
- package/dist/lib/actions/fetcher.d.ts.map +1 -1
- package/dist/lib/actions/fetcher.js +60 -15
- package/dist/lib/actions/guide.d.ts.map +1 -1
- package/dist/lib/actions/guide.js +4 -2
- 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 +54 -2
- package/dist/lib/actions/notification.d.ts.map +1 -1
- package/dist/lib/actions/notification.js +13 -1
- package/dist/lib/actions/opportunity.d.ts.map +1 -1
- package/dist/lib/actions/opportunity.js +3 -2
- 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 +15 -9
- package/dist/lib/actions/portfolio.d.ts.map +1 -1
- package/dist/lib/actions/portfolio.js +2 -1
- 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 +15 -2
- package/dist/lib/actions/rental.d.ts.map +1 -1
- package/dist/lib/actions/rental.js +3 -2
- 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 +65 -31
- package/dist/lib/actions/room.d.ts +0 -4
- package/dist/lib/actions/room.d.ts.map +1 -1
- package/dist/lib/actions/room.js +3 -2
- 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/socialAutomation.d.ts.map +1 -1
- package/dist/lib/actions/socialAutomation.js +3 -2
- 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 +32 -4
- 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/companion/discoveryPrefill.d.ts +17 -0
- package/dist/lib/companion/discoveryPrefill.d.ts.map +1 -1
- package/dist/lib/companion/discoveryPrefill.js +20 -0
- package/dist/lib/context/ChatContext.d.ts.map +1 -1
- package/dist/lib/context/ChatContext.js +59 -51
- 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/hooks/useSubmissionGuard.d.ts +2 -0
- package/dist/lib/hooks/useSubmissionGuard.d.ts.map +1 -0
- package/dist/lib/hooks/useSubmissionGuard.js +12 -0
- package/dist/lib/hooks/useUploadTasks.d.ts +7 -0
- package/dist/lib/hooks/useUploadTasks.d.ts.map +1 -0
- package/dist/lib/hooks/useUploadTasks.js +11 -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/blog.d.ts +2 -2
- 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 +15 -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 +46 -0
- package/dist/lib/models/companion.d.ts.map +1 -1
- package/dist/lib/models/discount.d.ts +20 -20
- 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 +30 -2
- package/dist/lib/models/notifications.d.ts.map +1 -1
- package/dist/lib/models/notifications.js +6 -0
- 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 +5 -1
- package/dist/lib/utils/text.d.ts.map +1 -1
- package/dist/lib/utils/text.js +18 -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 +76 -0
- package/dist/lib/utils/uploadTasks.d.ts.map +1 -0
- package/dist/lib/utils/uploadTasks.js +102 -0
- package/package.json +1 -1
|
@@ -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
|
+
}
|
|
@@ -8,12 +8,18 @@ export declare function getAllNotifications(): Promise<{
|
|
|
8
8
|
type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
|
|
9
9
|
userId?: string | undefined;
|
|
10
10
|
timestamp?: any;
|
|
11
|
+
visitedAt?: string | null | undefined;
|
|
11
12
|
link?: string | undefined;
|
|
12
|
-
category?: "
|
|
13
|
+
category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
|
|
13
14
|
metadata?: {
|
|
14
15
|
status?: string | undefined;
|
|
15
16
|
rating?: number | undefined;
|
|
16
17
|
title?: string | undefined;
|
|
18
|
+
uploadTaskId?: string | undefined;
|
|
19
|
+
uploadOutcome?: "failed" | "complete" | undefined;
|
|
20
|
+
uploadEventId?: string | undefined;
|
|
21
|
+
contentId?: string | undefined;
|
|
22
|
+
outcome?: string | undefined;
|
|
17
23
|
conversationId?: string | undefined;
|
|
18
24
|
messageId?: string | undefined;
|
|
19
25
|
senderId?: string | undefined;
|
|
@@ -44,12 +50,18 @@ export declare function getNotifications(limit: number): Promise<{
|
|
|
44
50
|
type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
|
|
45
51
|
userId?: string | undefined;
|
|
46
52
|
timestamp?: any;
|
|
53
|
+
visitedAt?: string | null | undefined;
|
|
47
54
|
link?: string | undefined;
|
|
48
|
-
category?: "
|
|
55
|
+
category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
|
|
49
56
|
metadata?: {
|
|
50
57
|
status?: string | undefined;
|
|
51
58
|
rating?: number | undefined;
|
|
52
59
|
title?: string | undefined;
|
|
60
|
+
uploadTaskId?: string | undefined;
|
|
61
|
+
uploadOutcome?: "failed" | "complete" | undefined;
|
|
62
|
+
uploadEventId?: string | undefined;
|
|
63
|
+
contentId?: string | undefined;
|
|
64
|
+
outcome?: string | undefined;
|
|
53
65
|
conversationId?: string | undefined;
|
|
54
66
|
messageId?: string | undefined;
|
|
55
67
|
senderId?: string | undefined;
|
|
@@ -88,4 +100,44 @@ export declare function toggleAllNotification(read: boolean): Promise<{
|
|
|
88
100
|
error: any;
|
|
89
101
|
message?: undefined;
|
|
90
102
|
}>;
|
|
103
|
+
export declare const subscribeNotificationChanges: (listener: () => void) => () => void;
|
|
104
|
+
export declare const notificationsChanged: () => void;
|
|
105
|
+
export declare function saveUploadNotification(input: {
|
|
106
|
+
eventId: string;
|
|
107
|
+
taskId: string;
|
|
108
|
+
outcome: 'complete' | 'failed';
|
|
109
|
+
title: string;
|
|
110
|
+
link?: string;
|
|
111
|
+
resolveOnly?: boolean;
|
|
112
|
+
}): Promise<{
|
|
113
|
+
_id: string;
|
|
114
|
+
message: string;
|
|
115
|
+
read: boolean;
|
|
116
|
+
type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
|
|
117
|
+
userId?: string | undefined;
|
|
118
|
+
timestamp?: any;
|
|
119
|
+
visitedAt?: string | null | undefined;
|
|
120
|
+
link?: string | undefined;
|
|
121
|
+
category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
|
|
122
|
+
metadata?: {
|
|
123
|
+
status?: string | undefined;
|
|
124
|
+
rating?: number | undefined;
|
|
125
|
+
title?: string | undefined;
|
|
126
|
+
uploadTaskId?: string | undefined;
|
|
127
|
+
uploadOutcome?: "failed" | "complete" | undefined;
|
|
128
|
+
uploadEventId?: string | undefined;
|
|
129
|
+
contentId?: string | undefined;
|
|
130
|
+
outcome?: string | undefined;
|
|
131
|
+
conversationId?: string | undefined;
|
|
132
|
+
messageId?: string | undefined;
|
|
133
|
+
senderId?: string | undefined;
|
|
134
|
+
senderName?: string | undefined;
|
|
135
|
+
conversationName?: string | undefined;
|
|
136
|
+
milestoneId?: string | undefined;
|
|
137
|
+
expenseId?: string | undefined;
|
|
138
|
+
referenceId?: string | undefined;
|
|
139
|
+
referenceType?: string | undefined;
|
|
140
|
+
} | undefined;
|
|
141
|
+
}>;
|
|
142
|
+
export declare function visitNotificationTargets(destination: string): Promise<string[]>;
|
|
91
143
|
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/notification.ts"],"names":[],"mappings":"AAuBA,wBAAgB,mBAAmB
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/notification.ts"],"names":[],"mappings":"AAuBA,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAElC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE7C;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;;;;;;;;GAWjE;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;GAQxD;AAID,eAAO,MAAM,4BAA4B,GAAI,UAAU,MAAM,IAAI,eAAuG,CAAC;AACzK,eAAO,MAAM,oBAAoB,YAA8D,CAAC;AAChG,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAI3K;AACD,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,qBAGjE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { get, patch } from "./fetcher";
|
|
1
|
+
import { get, patch, post } from "./fetcher";
|
|
2
2
|
async function getNotificationList(endpoint) {
|
|
3
3
|
try {
|
|
4
4
|
const data = await get(endpoint);
|
|
@@ -40,3 +40,15 @@ export async function toggleAllNotification(read) {
|
|
|
40
40
|
return { success: false, error: error.message };
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
+
const notificationListeners = new Set();
|
|
44
|
+
export const subscribeNotificationChanges = (listener) => { notificationListeners.add(listener); return () => { notificationListeners.delete(listener); }; };
|
|
45
|
+
export const notificationsChanged = () => notificationListeners.forEach(listener => listener());
|
|
46
|
+
export async function saveUploadNotification(input) {
|
|
47
|
+
const response = await post('/notification', { uploadOutcome: input });
|
|
48
|
+
notificationsChanged();
|
|
49
|
+
return response.data;
|
|
50
|
+
}
|
|
51
|
+
export async function visitNotificationTargets(destination) {
|
|
52
|
+
const response = await patch('/notification/visit', { destination });
|
|
53
|
+
return response.data.ids;
|
|
54
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opportunity.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/opportunity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opportunity.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/opportunity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
2
|
import { del, get, patch, post } from "./fetcher";
|
|
2
3
|
import { convertOpportunityToTileProps } from "../utils/entityTiles";
|
|
3
4
|
export async function getOpportunityTilesByStatus(status, limit) {
|
|
@@ -147,7 +148,7 @@ export async function opportunityMetaData(slug) {
|
|
|
147
148
|
export async function createOpportunity(formData) {
|
|
148
149
|
try {
|
|
149
150
|
const endpoint = `/newHostPost/create`;
|
|
150
|
-
const data = await post(endpoint, formData);
|
|
151
|
+
const data = await runUploadTask({ title: 'Opportunity listing', retrySafe: false, href: "/dashboard/host/opportunities", body: formData, operation: ({ progress }) => post(endpoint, formData, true, { onUploadProgress: progress }) });
|
|
151
152
|
return {
|
|
152
153
|
success: true,
|
|
153
154
|
slug: data.data,
|
|
@@ -165,7 +166,7 @@ export async function createOpportunity(formData) {
|
|
|
165
166
|
export async function editOpportunity(formData, slug) {
|
|
166
167
|
try {
|
|
167
168
|
const endpoint = `/newHostPost/update/${slug}`;
|
|
168
|
-
const data = await patch(endpoint, formData);
|
|
169
|
+
const data = await runUploadTask({ title: 'Opportunity listing', retrySafe: false, href: "/dashboard/host/opportunities", body: formData, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
|
|
169
170
|
return {
|
|
170
171
|
success: true,
|
|
171
172
|
slug: data.data,
|
|
@@ -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,5 +1,8 @@
|
|
|
1
|
+
import { getNativeTransport } from './nativeTransport';
|
|
2
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
3
|
import { get, patch, post, del } from "./fetcher";
|
|
2
4
|
import { calculatePricingStrategyDisplayUnitPrice, getPricingCurrency, getPricingStrategies } from "../models/pricing";
|
|
5
|
+
import { packageEnquiryFormData } from "../forms/packageEnquiry";
|
|
3
6
|
import { convertTravelPackageToTileProps } from "../utils/entityTiles";
|
|
4
7
|
// ─── Public ───────────────────────────────────────────────────────────────────
|
|
5
8
|
export async function getPackageTiles(status = ["open"], limit, filters) {
|
|
@@ -159,7 +162,7 @@ export async function packagesByHost() {
|
|
|
159
162
|
}
|
|
160
163
|
export async function createPackage(formData) {
|
|
161
164
|
try {
|
|
162
|
-
const data = await post("/packages/create", formData);
|
|
165
|
+
const data = await runUploadTask({ title: 'Package', retrySafe: false, href: "/dashboard/host/packages", body: formData, operation: ({ progress }) => post("/packages/create", formData, true, { onUploadProgress: progress }) });
|
|
163
166
|
return {
|
|
164
167
|
success: true,
|
|
165
168
|
slug: extractPackageSlug(data.data),
|
|
@@ -179,7 +182,7 @@ export async function extractPackageFromPdf(file) {
|
|
|
179
182
|
try {
|
|
180
183
|
const formData = new FormData();
|
|
181
184
|
formData.append("packagePdf", file);
|
|
182
|
-
const response = await post("/packages/source-pdfs/extract", formData);
|
|
185
|
+
const response = await runUploadTask({ title: 'Package PDF import', recoveryKey: 'package-pdf', retrySafe: true, href: typeof window === 'undefined' ? undefined : window.location.pathname, body: formData, operation: ({ progress }) => post("/packages/source-pdfs/extract", formData, true, { onUploadProgress: progress }) });
|
|
183
186
|
return {
|
|
184
187
|
success: true,
|
|
185
188
|
data: response.data,
|
|
@@ -196,7 +199,7 @@ export async function extractPackageFromPdf(file) {
|
|
|
196
199
|
}
|
|
197
200
|
export async function editPackage(formData, slug) {
|
|
198
201
|
try {
|
|
199
|
-
const data = await patch(`/packages/update/${slug}`, formData);
|
|
202
|
+
const data = await runUploadTask({ title: 'Package', retrySafe: false, href: "/dashboard/host/packages", body: formData, operation: ({ progress }) => patch(`/packages/update/${slug}`, formData, { onUploadProgress: progress }) });
|
|
200
203
|
return {
|
|
201
204
|
success: true,
|
|
202
205
|
slug: extractPackageSlug(data.data) || slug,
|
|
@@ -221,6 +224,8 @@ export async function deletePackage(slug) {
|
|
|
221
224
|
export async function getPackageEnquiry(slug) {
|
|
222
225
|
try {
|
|
223
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.");
|
|
224
229
|
return {
|
|
225
230
|
success: true,
|
|
226
231
|
message: data.message,
|
|
@@ -244,10 +249,11 @@ export async function getEnquiriesForPackage(slug) {
|
|
|
244
249
|
return { success: false, error: error.message, enquiries: [] };
|
|
245
250
|
}
|
|
246
251
|
}
|
|
247
|
-
export async function savePackageEnquiry(
|
|
252
|
+
export async function savePackageEnquiry(input) {
|
|
248
253
|
try {
|
|
249
|
-
const
|
|
250
|
-
|
|
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 };
|
|
251
257
|
}
|
|
252
258
|
catch (error) {
|
|
253
259
|
return { success: false, error: error.message };
|
|
@@ -262,10 +268,10 @@ export async function updateEnquiryStatus(status, id) {
|
|
|
262
268
|
return { success: false, error: error.message };
|
|
263
269
|
}
|
|
264
270
|
}
|
|
265
|
-
export async function editPackageEnquiry(
|
|
271
|
+
export async function editPackageEnquiry(input, id) {
|
|
266
272
|
try {
|
|
267
|
-
const data = await patch(`/enquiries/updateEnquiry/${id}`,
|
|
268
|
-
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 };
|
|
269
275
|
}
|
|
270
276
|
catch (error) {
|
|
271
277
|
return { success: false, error: error.message };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/portfolio.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/portfolio.ts"],"names":[],"mappings":"AAOA,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;GAYhD;AACD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;GAYxD;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM;;;;;;;;GAenD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
2
|
import { del, get, post } from "./fetcher";
|
|
2
3
|
// volunteer specific
|
|
3
4
|
// portfolio
|
|
@@ -18,7 +19,7 @@ export async function getUserPortfolio(id) {
|
|
|
18
19
|
export async function addPortfolioItem(formData) {
|
|
19
20
|
try {
|
|
20
21
|
const endpoint = "/portfolio/add";
|
|
21
|
-
const data = await post(endpoint, formData);
|
|
22
|
+
const data = await runUploadTask({ title: 'Portfolio', retrySafe: false, href: typeof window === "undefined" ? undefined : window.location.pathname, operation: ({ progress }) => post(endpoint, formData, true, { onUploadProgress: progress }) });
|
|
22
23
|
return { success: true, message: data.message, portfolio: data.data };
|
|
23
24
|
}
|
|
24
25
|
catch (error) {
|
|
@@ -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":"
|
|
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,4 +1,17 @@
|
|
|
1
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
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
|
+
}
|
|
2
15
|
export async function updateUserSkillExpertise(username, skill, expertise) {
|
|
3
16
|
try {
|
|
4
17
|
const endpoint = `/users/updateSkillExpertise/${username}`;
|
|
@@ -17,7 +30,7 @@ export async function updateUserData(role, formData, baseAccountType) {
|
|
|
17
30
|
try {
|
|
18
31
|
const accountType = baseAccountType || (role === "host" ? "host" : "user");
|
|
19
32
|
const endpoint = accountType === "host" ? "/hosts/update" : "/users/update";
|
|
20
|
-
const data = await patch(endpoint, formData);
|
|
33
|
+
const data = await runUploadTask({ title: "Profile upload", retrySafe: false, href: typeof window === "undefined" ? undefined : window.location.pathname, body: formData, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
|
|
21
34
|
return { success: true, user: data.data, message: data.message };
|
|
22
35
|
}
|
|
23
36
|
catch (error) {
|
|
@@ -63,7 +76,7 @@ export async function saveUserResume(file) {
|
|
|
63
76
|
const endpoint = `/users/resume-update`;
|
|
64
77
|
const formData = new FormData();
|
|
65
78
|
formData.append("resume", file);
|
|
66
|
-
const data = await patch(endpoint, formData);
|
|
79
|
+
const data = await runUploadTask({ title: 'Profile', retrySafe: true, href: typeof window === "undefined" ? undefined : window.location.pathname, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
|
|
67
80
|
return {
|
|
68
81
|
success: true,
|
|
69
82
|
message: data.message,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rental.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/rental.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rental.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/rental.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
2
|
import { get, patch, post, del } from "./fetcher";
|
|
2
3
|
import { calculatePricingStrategyDisplayUnitPrice, getPricingStrategies, getPricingCurrency } from "../models/pricing";
|
|
3
4
|
// ─── Public ───────────────────────────────────────────────────────────────────
|
|
@@ -91,7 +92,7 @@ export async function rentalsByHost() {
|
|
|
91
92
|
}
|
|
92
93
|
export async function createRental(formData) {
|
|
93
94
|
try {
|
|
94
|
-
const data = await post(`/rentals/create`, formData);
|
|
95
|
+
const data = await runUploadTask({ title: 'Rental listing', retrySafe: false, href: "/dashboard/host/rentals", body: formData, operation: ({ progress }) => post(`/rentals/create`, formData, true, { onUploadProgress: progress }) });
|
|
95
96
|
return { success: true, slug: data.data.slug, message: data.message };
|
|
96
97
|
}
|
|
97
98
|
catch (error) {
|
|
@@ -101,7 +102,7 @@ export async function createRental(formData) {
|
|
|
101
102
|
}
|
|
102
103
|
export async function editRental(formData, slug) {
|
|
103
104
|
try {
|
|
104
|
-
const data = await patch(`/rentals/update/${slug}`, formData);
|
|
105
|
+
const data = await runUploadTask({ title: 'Rental listing', retrySafe: false, href: "/dashboard/host/rentals", body: formData, operation: ({ progress }) => patch(`/rentals/update/${slug}`, formData, { onUploadProgress: progress }) });
|
|
105
106
|
return { success: true, slug: data.data.slug, message: data.message };
|
|
106
107
|
}
|
|
107
108
|
catch (error) {
|
|
@@ -41,4 +41,11 @@ export declare function deleteReview(id: string): Promise<{
|
|
|
41
41
|
message?: string;
|
|
42
42
|
error?: string;
|
|
43
43
|
}>;
|
|
44
|
+
/** Exhaustive target-scoped owner read; malformed/changing pages are not absence. */
|
|
45
|
+
export declare function getReviewOwnerForTarget(slug: string, type: reviewTargetType, actorId: string): Promise<{
|
|
46
|
+
success: boolean;
|
|
47
|
+
review: Review | null;
|
|
48
|
+
entityId: string | null;
|
|
49
|
+
error?: string;
|
|
50
|
+
}>;
|
|
44
51
|
//# sourceMappingURL=review.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EACnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EACnB,MAAM,kBAAkB,CAAC;AAM1B,wBAAsB,cAAc,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE;IACL,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACd,GACP,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CA4BD;AAED,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,EAAE,gBAAgB,GACvB,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzF,CAAC,CAcD;AAED,wBAAsB,SAAS,CAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,cAAc,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CASxF;AAED,wBAAsB,UAAU,CAC5B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,cAAc,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAUxF;AAED,wBAAsB,YAAY,CAC9B,EAAE,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQjE;AAED,qFAAqF;AACrF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,OAAO,EAAC,OAAO,CAAC;IAAA,MAAM,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,QAAQ,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,KAAK,CAAC,EAAC,MAAM,CAAA;CAAC,CAAC,CAgErL"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { del, get, patch, post } from "./fetcher";
|
|
2
|
+
import { reviewRequestBody } from "../forms/review";
|
|
3
|
+
import { getNativeTransport } from "./nativeTransport";
|
|
4
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
2
5
|
export async function getReviewsById(id, type, options = {}) {
|
|
3
6
|
try {
|
|
4
7
|
const { page = 1, limit = 5, sortBy = "createdAt", sortOrder = "desc", rating } = options;
|
|
@@ -42,25 +45,8 @@ export async function getRatingById(ids, type) {
|
|
|
42
45
|
}
|
|
43
46
|
export async function addReview(id, type, formData) {
|
|
44
47
|
try {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const formBody = new FormData();
|
|
48
|
-
formBody.append("reviewee", id);
|
|
49
|
-
formBody.append("revieweeType", type);
|
|
50
|
-
formBody.append("rating", formData.rating.toString());
|
|
51
|
-
formBody.append("comment", formData.comment || "");
|
|
52
|
-
formData.images.forEach((image) => formBody.append("images", image));
|
|
53
|
-
body = formBody;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
body = {
|
|
57
|
-
reviewee: id,
|
|
58
|
-
revieweeType: type,
|
|
59
|
-
rating: formData.rating,
|
|
60
|
-
comment: formData.comment,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
const data = await post("/reviews/", body);
|
|
48
|
+
const body = reviewRequestBody(formData, { id, type });
|
|
49
|
+
const data = await runUploadTask({ title: "Review", retrySafe: getNativeTransport() ? false : undefined, href: typeof window === "undefined" || !window.location ? undefined : window.location.pathname, operation: ({ progress }) => post("/reviews/", body, true, { onUploadProgress: progress }) });
|
|
64
50
|
return { success: true, review: data.data, message: data.message };
|
|
65
51
|
}
|
|
66
52
|
catch (error) {
|
|
@@ -70,18 +56,10 @@ export async function addReview(id, type, formData) {
|
|
|
70
56
|
}
|
|
71
57
|
export async function editReview(id, formData) {
|
|
72
58
|
try {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
formBody.append("comment", formData.comment || "");
|
|
78
|
-
formData.images.forEach((image) => formBody.append("images", image));
|
|
79
|
-
body = formBody;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
body = { rating: formData.rating, comment: formData.comment };
|
|
83
|
-
}
|
|
84
|
-
const data = await patch(`/reviews/${encodeURIComponent(id)}`, body);
|
|
59
|
+
if (getNativeTransport() && formData.images?.length)
|
|
60
|
+
throw new Error("Review photos cannot be changed by the current service. Update the rating and comment only.");
|
|
61
|
+
const body = reviewRequestBody(formData);
|
|
62
|
+
const data = await runUploadTask({ title: "Review update", retrySafe: getNativeTransport() ? false : undefined, href: typeof window === "undefined" || !window.location ? undefined : window.location.pathname, operation: ({ progress }) => patch(`/reviews/${encodeURIComponent(id)}`, body, { onUploadProgress: progress }) });
|
|
85
63
|
return { success: true, review: data.data, message: data.message };
|
|
86
64
|
}
|
|
87
65
|
catch (error) {
|
|
@@ -99,3 +77,59 @@ export async function deleteReview(id) {
|
|
|
99
77
|
return { success: false, error: error.message };
|
|
100
78
|
}
|
|
101
79
|
}
|
|
80
|
+
/** Exhaustive target-scoped owner read; malformed/changing pages are not absence. */
|
|
81
|
+
export async function getReviewOwnerForTarget(slug, type, actorId) {
|
|
82
|
+
try {
|
|
83
|
+
let page = 1, entityId = null, own = null;
|
|
84
|
+
let expectedTotal = null;
|
|
85
|
+
const seen = new Set();
|
|
86
|
+
while (true) {
|
|
87
|
+
const result = await getReviewsById(slug, type, {
|
|
88
|
+
page,
|
|
89
|
+
limit: 20,
|
|
90
|
+
});
|
|
91
|
+
if (!result.success)
|
|
92
|
+
throw new Error(result.error);
|
|
93
|
+
if (!Array.isArray(result.reviews) ||
|
|
94
|
+
typeof result.hasMore !== "boolean" ||
|
|
95
|
+
!Number.isSafeInteger(result.totalCount) ||
|
|
96
|
+
result.totalCount < 0)
|
|
97
|
+
throw new Error("Reviews could not be read.");
|
|
98
|
+
if (expectedTotal !== null && expectedTotal !== result.totalCount)
|
|
99
|
+
throw new Error("Reviews changed while reading. Refresh before submitting.");
|
|
100
|
+
expectedTotal = result.totalCount;
|
|
101
|
+
let added = 0;
|
|
102
|
+
for (const row of result.reviews) {
|
|
103
|
+
if (!row?._id ||
|
|
104
|
+
!row.reviewee ||
|
|
105
|
+
row.revieweeType !== type ||
|
|
106
|
+
!row.reviewer ||
|
|
107
|
+
!row.reviewerType)
|
|
108
|
+
throw new Error("Review identity could not be confirmed.");
|
|
109
|
+
if (entityId && row.reviewee !== entityId)
|
|
110
|
+
throw new Error("Conflicting review targets were returned.");
|
|
111
|
+
entityId = row.reviewee;
|
|
112
|
+
if (!seen.has(row._id)) {
|
|
113
|
+
seen.add(row._id);
|
|
114
|
+
added++;
|
|
115
|
+
}
|
|
116
|
+
if (row.reviewer === actorId && row.reviewerType === "User") {
|
|
117
|
+
if (own && own._id !== row._id)
|
|
118
|
+
throw new Error("More than one current review was returned. Contact support before changing it.");
|
|
119
|
+
own = row;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (!result.hasMore) {
|
|
123
|
+
if (seen.size !== expectedTotal)
|
|
124
|
+
throw new Error("The complete review collection could not be confirmed. Retry before submitting.");
|
|
125
|
+
return { success: true, review: own, entityId };
|
|
126
|
+
}
|
|
127
|
+
if (!added)
|
|
128
|
+
throw new Error("Review pages could not advance. Retry the read before posting.");
|
|
129
|
+
page++;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
return { success: false, review: null, entityId: null, error: error instanceof Error ? error.message : "Reviews could not load." };
|
|
134
|
+
}
|
|
135
|
+
}
|