@myrjfa/state 3.0.8 → 3.0.10
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 +20 -3
- package/dist/lib/actions/auth.d.ts.map +1 -1
- package/dist/lib/actions/auth.js +31 -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 +82 -62
- 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.d.ts.map +1 -1
- package/dist/lib/actions/serverActions.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/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/authSessionManager.d.ts.map +1 -1
- package/dist/lib/authSessionManager.js +42 -39
- package/dist/lib/authSessionPolicy.d.ts +2 -0
- package/dist/lib/authSessionPolicy.d.ts.map +1 -1
- package/dist/lib/authSessionPolicy.js +3 -1
- 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/userAtom.js +16 -25
- package/dist/lib/utils/authCookies.d.ts +3 -0
- package/dist/lib/utils/authCookies.d.ts.map +1 -0
- package/dist/lib/utils/authCookies.js +4 -0
- 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 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Application } from "../models/application";
|
|
1
|
+
import type { Application, ApplicationInput } from "../models/application";
|
|
2
2
|
export declare function getVolunteerApplicationForm(slug: string): Promise<{
|
|
3
3
|
success: boolean;
|
|
4
4
|
message?: string;
|
|
@@ -17,20 +17,22 @@ export declare function getApplicationsForOpportunity(slug: string): Promise<{
|
|
|
17
17
|
error?: string;
|
|
18
18
|
applications: Application[];
|
|
19
19
|
}>;
|
|
20
|
-
export declare function saveApplicationForm(formData: FormData): Promise<{
|
|
20
|
+
export declare function saveApplicationForm(formData: FormData | ApplicationInput): Promise<{
|
|
21
21
|
success: boolean;
|
|
22
22
|
message?: string;
|
|
23
23
|
error?: string;
|
|
24
|
+
application?: Application;
|
|
24
25
|
}>;
|
|
25
26
|
export declare function updateApplicationStatus(status: string, id: string): Promise<{
|
|
26
27
|
success: boolean;
|
|
27
28
|
message?: string;
|
|
28
29
|
error?: string;
|
|
29
30
|
}>;
|
|
30
|
-
export declare function editApplication(formData: FormData, id: string): Promise<{
|
|
31
|
+
export declare function editApplication(formData: FormData | ApplicationInput, id: string): Promise<{
|
|
31
32
|
success: boolean;
|
|
32
33
|
message?: string;
|
|
33
34
|
error?: string;
|
|
35
|
+
application?: Application;
|
|
34
36
|
}>;
|
|
35
37
|
export declare function getApplicationsOfVolunteer(): Promise<{
|
|
36
38
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/application.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/application.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG3E,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC,CAAC,CA2BD;AACD,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC,CAAC,CAmBD;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC,CAYD;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,GACpC,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC,CA0BD;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBjE;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,EACrC,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC,CA4BD;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC,CAsBD;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAcjE"}
|
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { runUploadTask } from "../utils/uploadTasks";
|
|
2
2
|
import { del, get, patch, post } from "./fetcher";
|
|
3
|
+
import { getNativeTransport } from "./nativeTransport";
|
|
4
|
+
import { applicationFormData } from "../forms/application";
|
|
3
5
|
export async function getVolunteerApplicationForm(slug) {
|
|
4
6
|
try {
|
|
5
7
|
const endpoint = `/applications/getApplicationByUserAndSlug/${slug}`;
|
|
6
8
|
const data = await get(endpoint);
|
|
9
|
+
if (data.data !== null &&
|
|
10
|
+
(!data.data ||
|
|
11
|
+
typeof data.data._id !== "string" ||
|
|
12
|
+
typeof data.data.opportunityId !== "string"))
|
|
13
|
+
throw new Error("Application response could not be read.");
|
|
7
14
|
return { success: true, message: data.message, application: data.data };
|
|
8
15
|
}
|
|
9
16
|
catch (error) {
|
|
17
|
+
// The deployed legacy controller wraps its precise not-found outcome in
|
|
18
|
+
// HTTP500. Only this exact outcome is absence; outages/auth remain errors.
|
|
19
|
+
if (getNativeTransport() &&
|
|
20
|
+
[404, 500].includes(error.statusCode) &&
|
|
21
|
+
error.message === "Application not found")
|
|
22
|
+
return { success: true, application: null };
|
|
10
23
|
return {
|
|
11
24
|
success: false,
|
|
12
25
|
error: error.message,
|
|
@@ -18,6 +31,11 @@ export async function applicationDetails(applicationId) {
|
|
|
18
31
|
try {
|
|
19
32
|
const endpoint = `/applications/getSingleApplication/${applicationId}`;
|
|
20
33
|
const data = await get(endpoint);
|
|
34
|
+
if (data.data !== null &&
|
|
35
|
+
(!data.data ||
|
|
36
|
+
typeof data.data._id !== "string" ||
|
|
37
|
+
typeof data.data.opportunityId !== "string"))
|
|
38
|
+
throw new Error("Application response could not be read.");
|
|
21
39
|
return { success: true, message: data.message, application: data.data };
|
|
22
40
|
}
|
|
23
41
|
catch (error) {
|
|
@@ -44,9 +62,18 @@ export async function getApplicationsForOpportunity(slug) {
|
|
|
44
62
|
}
|
|
45
63
|
export async function saveApplicationForm(formData) {
|
|
46
64
|
try {
|
|
65
|
+
const body = formData instanceof FormData ? formData : applicationFormData(formData);
|
|
47
66
|
const endpoint = `/applications/applyForOpportunity`;
|
|
48
|
-
const data = await runUploadTask({
|
|
67
|
+
const data = await runUploadTask({
|
|
68
|
+
title: "Application",
|
|
69
|
+
retrySafe: false,
|
|
70
|
+
href: typeof window === "undefined" || !window.location
|
|
71
|
+
? "/applications"
|
|
72
|
+
: window.location.pathname,
|
|
73
|
+
operation: ({ progress }) => post(endpoint, body, true, { onUploadProgress: progress }),
|
|
74
|
+
});
|
|
49
75
|
return {
|
|
76
|
+
application: data.data,
|
|
50
77
|
success: true,
|
|
51
78
|
message: data.message,
|
|
52
79
|
};
|
|
@@ -78,9 +105,20 @@ export async function updateApplicationStatus(status, id) {
|
|
|
78
105
|
}
|
|
79
106
|
export async function editApplication(formData, id) {
|
|
80
107
|
try {
|
|
108
|
+
const body = formData instanceof FormData
|
|
109
|
+
? formData
|
|
110
|
+
: applicationFormData(formData, true);
|
|
81
111
|
const endpoint = `/applications/updateApplication/${id}`;
|
|
82
|
-
const data = await runUploadTask({
|
|
112
|
+
const data = await runUploadTask({
|
|
113
|
+
title: "Application",
|
|
114
|
+
retrySafe: !getNativeTransport(),
|
|
115
|
+
href: typeof window === "undefined" || !window.location
|
|
116
|
+
? "/applications"
|
|
117
|
+
: window.location.pathname,
|
|
118
|
+
operation: ({ progress }) => patch(endpoint, body, { onUploadProgress: progress }),
|
|
119
|
+
});
|
|
83
120
|
return {
|
|
121
|
+
application: data.data,
|
|
84
122
|
success: true,
|
|
85
123
|
message: data.message,
|
|
86
124
|
};
|
|
@@ -96,6 +134,11 @@ export async function getApplicationsOfVolunteer() {
|
|
|
96
134
|
try {
|
|
97
135
|
const endpoint = `/applications/getApplicationsOfVolunteer`;
|
|
98
136
|
const data = await get(endpoint);
|
|
137
|
+
if (!Array.isArray(data.data) ||
|
|
138
|
+
data.data.some((row) => !row ||
|
|
139
|
+
typeof row._id !== "string" ||
|
|
140
|
+
typeof row.opportunityId !== "string"))
|
|
141
|
+
throw new Error("Application list could not be read.");
|
|
99
142
|
return { success: true, message: data.message, applications: data.data };
|
|
100
143
|
}
|
|
101
144
|
catch (error) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { User } from "../models/user";
|
|
1
2
|
import type { AuthenticationAccountType, RegisterPayload, RecoveryDevice } from "../models/authentication";
|
|
2
3
|
import type { SessionIdentity } from "../authSessionPolicy";
|
|
3
4
|
export declare function signIn(formData: {
|
|
@@ -40,6 +41,11 @@ export declare function signIn(formData: {
|
|
|
40
41
|
accessToken?: string | undefined;
|
|
41
42
|
refreshToken?: string | undefined;
|
|
42
43
|
verifiedIdCard?: boolean | undefined;
|
|
44
|
+
identityVerification?: {
|
|
45
|
+
documentSubmitted: boolean;
|
|
46
|
+
selfieSubmitted: boolean;
|
|
47
|
+
verified: boolean;
|
|
48
|
+
} | undefined;
|
|
43
49
|
permissions?: string[] | undefined;
|
|
44
50
|
baseUserId?: string | null | undefined;
|
|
45
51
|
baseHostId?: string | null | undefined;
|
|
@@ -73,7 +79,7 @@ export declare function signIn(formData: {
|
|
|
73
79
|
businessDocument?: string | undefined;
|
|
74
80
|
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
75
81
|
businessIdNumber?: string | undefined;
|
|
76
|
-
businessApiVerificationStatus?: "
|
|
82
|
+
businessApiVerificationStatus?: "verified" | "pending" | "failed" | undefined;
|
|
77
83
|
businessVerificationDenialReason?: string | undefined;
|
|
78
84
|
};
|
|
79
85
|
message: string;
|
|
@@ -128,6 +134,11 @@ export declare function signInStaff(formData: {
|
|
|
128
134
|
accessToken?: string | undefined;
|
|
129
135
|
refreshToken?: string | undefined;
|
|
130
136
|
verifiedIdCard?: boolean | undefined;
|
|
137
|
+
identityVerification?: {
|
|
138
|
+
documentSubmitted: boolean;
|
|
139
|
+
selfieSubmitted: boolean;
|
|
140
|
+
verified: boolean;
|
|
141
|
+
} | undefined;
|
|
131
142
|
permissions?: string[] | undefined;
|
|
132
143
|
baseUserId?: string | null | undefined;
|
|
133
144
|
baseHostId?: string | null | undefined;
|
|
@@ -161,7 +172,7 @@ export declare function signInStaff(formData: {
|
|
|
161
172
|
businessDocument?: string | undefined;
|
|
162
173
|
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
163
174
|
businessIdNumber?: string | undefined;
|
|
164
|
-
businessApiVerificationStatus?: "
|
|
175
|
+
businessApiVerificationStatus?: "verified" | "pending" | "failed" | undefined;
|
|
165
176
|
businessVerificationDenialReason?: string | undefined;
|
|
166
177
|
};
|
|
167
178
|
message: string;
|
|
@@ -218,6 +229,11 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
|
|
|
218
229
|
accessToken?: string | undefined;
|
|
219
230
|
refreshToken?: string | undefined;
|
|
220
231
|
verifiedIdCard?: boolean | undefined;
|
|
232
|
+
identityVerification?: {
|
|
233
|
+
documentSubmitted: boolean;
|
|
234
|
+
selfieSubmitted: boolean;
|
|
235
|
+
verified: boolean;
|
|
236
|
+
} | undefined;
|
|
221
237
|
permissions?: string[] | undefined;
|
|
222
238
|
baseUserId?: string | null | undefined;
|
|
223
239
|
baseHostId?: string | null | undefined;
|
|
@@ -251,7 +267,7 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
|
|
|
251
267
|
businessDocument?: string | undefined;
|
|
252
268
|
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
253
269
|
businessIdNumber?: string | undefined;
|
|
254
|
-
businessApiVerificationStatus?: "
|
|
270
|
+
businessApiVerificationStatus?: "verified" | "pending" | "failed" | undefined;
|
|
255
271
|
businessVerificationDenialReason?: string | undefined;
|
|
256
272
|
};
|
|
257
273
|
message: string;
|
|
@@ -283,6 +299,7 @@ export declare function resetPassword(password: string, token: string, role: str
|
|
|
283
299
|
export declare function validateSession(): Promise<{
|
|
284
300
|
success: boolean;
|
|
285
301
|
identity?: SessionIdentity;
|
|
302
|
+
user?: User;
|
|
286
303
|
message?: string;
|
|
287
304
|
error?: string;
|
|
288
305
|
statusCode?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/actions/auth.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { del, get, patch, post } from "./fetcher";
|
|
2
2
|
import { getAccountType } from "./serverActions";
|
|
3
3
|
import { isExpectedSignedOutError } from "../authSessionPolicy";
|
|
4
|
+
import { acceptNativeSession, getNativeTransport, invalidateNativeSession, nativeSessionGeneration } from "./nativeTransport";
|
|
4
5
|
function clearSensitiveBrowserState() {
|
|
6
|
+
if (getNativeTransport())
|
|
7
|
+
return;
|
|
5
8
|
if (typeof window === "undefined")
|
|
6
9
|
return;
|
|
7
10
|
window.sessionStorage.removeItem("latest_booking_confirmation");
|
|
@@ -24,6 +27,9 @@ function getDeviceRecoveryEndpoint(accountType) {
|
|
|
24
27
|
return "/users/device-recovery/devices";
|
|
25
28
|
}
|
|
26
29
|
export async function signIn(formData) {
|
|
30
|
+
if (getNativeTransport())
|
|
31
|
+
invalidateNativeSession();
|
|
32
|
+
const nativeGeneration = nativeSessionGeneration();
|
|
27
33
|
try {
|
|
28
34
|
// A cache-miss cleanup may still be reconciling stale cookies when the
|
|
29
35
|
// public form becomes interactive. Abort it before issuing the login
|
|
@@ -33,6 +39,7 @@ export async function signIn(formData) {
|
|
|
33
39
|
if (formData.role === 'host')
|
|
34
40
|
endpoint = '/hosts/login';
|
|
35
41
|
const data = await post(endpoint, formData);
|
|
42
|
+
await acceptNativeSession(data.data.session, nativeGeneration, true);
|
|
36
43
|
// console.log('Response:', data);
|
|
37
44
|
return {
|
|
38
45
|
user: data.data.user,
|
|
@@ -62,6 +69,11 @@ export async function signInStaff(formData) {
|
|
|
62
69
|
}
|
|
63
70
|
export async function logoutUser(role, accountTypeHint) {
|
|
64
71
|
clearSensitiveBrowserState();
|
|
72
|
+
const native = getNativeTransport();
|
|
73
|
+
if (native)
|
|
74
|
+
invalidateNativeSession();
|
|
75
|
+
const logoutGeneration = nativeSessionGeneration();
|
|
76
|
+
const ownsLogout = () => getNativeTransport() === native && nativeSessionGeneration() === logoutGeneration;
|
|
65
77
|
try {
|
|
66
78
|
const accountType = accountTypeHint ?? await getAccountType();
|
|
67
79
|
let endpoint = '/users/logout';
|
|
@@ -69,6 +81,8 @@ export async function logoutUser(role, accountTypeHint) {
|
|
|
69
81
|
endpoint = '/auth/staff/logout';
|
|
70
82
|
else if (accountType === 'host' || (!accountType && role === 'host'))
|
|
71
83
|
endpoint = '/hosts/logout';
|
|
84
|
+
if (native && !ownsLogout())
|
|
85
|
+
throw new Error("Session changed");
|
|
72
86
|
const response = await get(endpoint);
|
|
73
87
|
return {
|
|
74
88
|
success: true,
|
|
@@ -79,13 +93,21 @@ export async function logoutUser(role, accountTypeHint) {
|
|
|
79
93
|
console.error(error.message);
|
|
80
94
|
return { success: false, error: error.message };
|
|
81
95
|
}
|
|
96
|
+
finally {
|
|
97
|
+
if (native && ownsLogout())
|
|
98
|
+
await native.clearSession();
|
|
99
|
+
}
|
|
82
100
|
}
|
|
83
101
|
export async function verifyEmailOtp(email, otp, role) {
|
|
102
|
+
if (getNativeTransport())
|
|
103
|
+
invalidateNativeSession();
|
|
104
|
+
const nativeGeneration = nativeSessionGeneration();
|
|
84
105
|
try {
|
|
85
106
|
let endpoint = `/users/verify-otp`;
|
|
86
107
|
if (role === 'host')
|
|
87
108
|
endpoint = `/hosts/verify-otp`;
|
|
88
109
|
const data = await post(endpoint, { email: email, emailOtp: otp });
|
|
110
|
+
await acceptNativeSession(data.data.session, nativeGeneration, true);
|
|
89
111
|
// console.log('Response:', data);
|
|
90
112
|
return {
|
|
91
113
|
user: data.data.user,
|
|
@@ -158,8 +180,17 @@ export async function resetPassword(password, token, role) {
|
|
|
158
180
|
export async function validateSession() {
|
|
159
181
|
try {
|
|
160
182
|
const data = await get("/auth/session");
|
|
183
|
+
if (!getNativeTransport() && typeof window !== "undefined" && typeof localStorage !== "undefined" && data.data.deviceId) {
|
|
184
|
+
// Browser cache is optional; a denied/quota-limited write must not
|
|
185
|
+
// turn successful cookie authentication into a failed session.
|
|
186
|
+
try {
|
|
187
|
+
localStorage.setItem("_trippeaze_device_id", data.data.deviceId);
|
|
188
|
+
}
|
|
189
|
+
catch { /* The scoped device cookie remains canonical. */ }
|
|
190
|
+
}
|
|
161
191
|
return {
|
|
162
192
|
success: true,
|
|
193
|
+
user: data.data.user,
|
|
163
194
|
identity: data.data,
|
|
164
195
|
message: data.message
|
|
165
196
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/blog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/blog.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/actions/blog.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getNativeTransport } from './nativeTransport';
|
|
1
2
|
import { runUploadTask } from "../utils/uploadTasks";
|
|
2
3
|
import { del, get, patch, post } from "./fetcher";
|
|
3
4
|
import { convertBlogToTileProps } from "../utils/entityTiles";
|
|
@@ -192,7 +193,7 @@ export async function blogMetaData(slug) {
|
|
|
192
193
|
export async function createBlog(formData) {
|
|
193
194
|
try {
|
|
194
195
|
const endpoint = `/blog/create`;
|
|
195
|
-
const data = await runUploadTask({ title: 'Blog', retrySafe: false, href: "/dashboard/host/blogs", body: formData, operation: ({ progress }) => post(endpoint, formData, true, { onUploadProgress: progress }) });
|
|
196
|
+
const data = await runUploadTask({ title: 'Blog', retrySafe: false, href: getNativeTransport() ? "/blogs" : "/dashboard/host/blogs", body: formData, operation: ({ progress }) => post(endpoint, formData, true, { onUploadProgress: progress }) });
|
|
196
197
|
return {
|
|
197
198
|
success: true,
|
|
198
199
|
slug: data.data,
|
|
@@ -210,7 +211,7 @@ export async function createBlog(formData) {
|
|
|
210
211
|
export async function editBlog(formData, slug) {
|
|
211
212
|
try {
|
|
212
213
|
const endpoint = `/blog/update/${slug}`;
|
|
213
|
-
const data = await runUploadTask({ title: 'Blog', retrySafe: false, href: "/dashboard/host/blogs", body: formData, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
|
|
214
|
+
const data = await runUploadTask({ title: 'Blog', retrySafe: false, href: getNativeTransport() ? "/blogs" : "/dashboard/host/blogs", body: formData, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
|
|
214
215
|
return {
|
|
215
216
|
success: true,
|
|
216
217
|
slug: data.data,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Booking, CreateBookingRequest } from "../models/booking";
|
|
1
|
+
import type { Booking, CreateBookingRequest } from "../models/booking";
|
|
2
|
+
export declare function isConfirmedWithoutOnlinePayment(booking: Pick<Booking, 'status' | 'paymentStatus' | 'totalPrice' | 'entityType' | 'upfrontPaymentAmount'>): boolean;
|
|
2
3
|
export declare function createBooking(bookingData: CreateBookingRequest): Promise<{
|
|
3
4
|
success: boolean;
|
|
4
5
|
booking: Booking | null;
|
|
@@ -83,4 +84,31 @@ export declare function updateBookingStatus(bookingId: string, statusData: {
|
|
|
83
84
|
message?: string;
|
|
84
85
|
error?: string;
|
|
85
86
|
}>;
|
|
87
|
+
export declare function getMyBookings(options?: {
|
|
88
|
+
paymentEvidence?: "legacy" | "server";
|
|
89
|
+
}): Promise<{
|
|
90
|
+
success: boolean;
|
|
91
|
+
bookings: any[];
|
|
92
|
+
packageEnquiries: any[];
|
|
93
|
+
allPackageEnquiries: any[];
|
|
94
|
+
warnings: string[];
|
|
95
|
+
error?: undefined;
|
|
96
|
+
} | {
|
|
97
|
+
success: boolean;
|
|
98
|
+
bookings: never[];
|
|
99
|
+
packageEnquiries: never[];
|
|
100
|
+
allPackageEnquiries: never[];
|
|
101
|
+
error: any;
|
|
102
|
+
warnings?: undefined;
|
|
103
|
+
}>;
|
|
104
|
+
/** Resolve only the chosen history domain. A legacy ID is never a generic Booking ID. */
|
|
105
|
+
export declare function getTravellerHistoryRecord(id: string, source: "generic" | "stay" | "event" | "enquiry"): Promise<{
|
|
106
|
+
success: boolean;
|
|
107
|
+
booking: Booking | null;
|
|
108
|
+
message?: string;
|
|
109
|
+
error?: string;
|
|
110
|
+
} | {
|
|
111
|
+
success: boolean;
|
|
112
|
+
booking: any;
|
|
113
|
+
}>;
|
|
86
114
|
//# sourceMappingURL=booking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/booking.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { get, patch, post } from "./fetcher";
|
|
2
|
+
export function isConfirmedWithoutOnlinePayment(booking) {
|
|
3
|
+
return booking.status === 'confirmed' && (booking.totalPrice === 0 && booking.paymentStatus === 'paid' || booking.entityType === 'Rental' && booking.totalPrice > 0 && booking.upfrontPaymentAmount === 0 && booking.paymentStatus === 'pending');
|
|
4
|
+
}
|
|
2
5
|
function normalizeBookingCreation(data) {
|
|
3
6
|
return {
|
|
4
7
|
success: true,
|
|
@@ -106,3 +109,186 @@ export async function updateBookingStatus(bookingId, statusData) {
|
|
|
106
109
|
};
|
|
107
110
|
}
|
|
108
111
|
}
|
|
112
|
+
function resolvePaymentStatus(record, evidence = "legacy") {
|
|
113
|
+
if (evidence === "server")
|
|
114
|
+
return record.paymentStatus || "unknown";
|
|
115
|
+
if (record.paymentStatus === "paid" || record.paymentStatus === "refunded" || record.paymentStatus === "failed") {
|
|
116
|
+
return record.paymentStatus;
|
|
117
|
+
}
|
|
118
|
+
if (record.paymentId && record.paymentStatus !== "failed") {
|
|
119
|
+
return "paid";
|
|
120
|
+
}
|
|
121
|
+
if (["confirmed", "completed", "attended"].includes(record.status)) {
|
|
122
|
+
return "paid";
|
|
123
|
+
}
|
|
124
|
+
return "pending";
|
|
125
|
+
}
|
|
126
|
+
function normalizeGenericBooking(booking, evidence = "legacy") {
|
|
127
|
+
const rawHostId = booking.hostId || booking.operatorId || booking.entityId?.host || booking.entityId?.hostId || booking.host;
|
|
128
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
129
|
+
return {
|
|
130
|
+
...booking,
|
|
131
|
+
recordSource: "generic",
|
|
132
|
+
hostId: hostId || booking.hostId,
|
|
133
|
+
paymentStatus: resolvePaymentStatus(booking, evidence),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function normalizeStayBooking(booking, evidence = "legacy") {
|
|
137
|
+
const rawHostId = booking.hostId || booking.stayId?.host || booking.stayId?.hostId || booking.entityId?.host || booking.host;
|
|
138
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
139
|
+
return {
|
|
140
|
+
...booking,
|
|
141
|
+
recordSource: "stay",
|
|
142
|
+
hostId: hostId || booking.hostId,
|
|
143
|
+
entityId: booking.entityId || booking.stayId,
|
|
144
|
+
entityType: "Stay",
|
|
145
|
+
startDate: booking.startDate || booking.checkIn,
|
|
146
|
+
endDate: booking.endDate || booking.checkOut,
|
|
147
|
+
numberOfPeople: booking.numberOfPeople || booking.guests || 1,
|
|
148
|
+
totalPrice: booking.totalPrice || 0,
|
|
149
|
+
currency: booking.currency || "INR",
|
|
150
|
+
paymentStatus: resolvePaymentStatus(booking, evidence),
|
|
151
|
+
bookingCode: booking.bookingCode,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function normalizeEventBooking(booking, evidence = "legacy") {
|
|
155
|
+
const rawHostId = booking.hostId || booking.eventId?.host || booking.eventId?.hostId || booking.entityId?.host || booking.host;
|
|
156
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
157
|
+
return {
|
|
158
|
+
...booking,
|
|
159
|
+
recordSource: "event",
|
|
160
|
+
hostId: hostId || booking.hostId,
|
|
161
|
+
entityId: booking.entityId || booking.eventId,
|
|
162
|
+
entityType: "Event",
|
|
163
|
+
startDate: booking.startDate || booking.eventDate,
|
|
164
|
+
numberOfPeople: booking.numberOfPeople || booking.numberOfSeats || 1,
|
|
165
|
+
totalPrice: booking.totalPrice || 0,
|
|
166
|
+
currency: booking.currency || "INR",
|
|
167
|
+
paymentStatus: resolvePaymentStatus(booking, evidence),
|
|
168
|
+
bookingCode: booking.bookingCode,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function normalizePackageEnquiry(enquiry) {
|
|
172
|
+
const rawHostId = enquiry.operatorId || enquiry.hostId || enquiry.packageId?.host || enquiry.packageId?.hostId;
|
|
173
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
174
|
+
return {
|
|
175
|
+
...enquiry,
|
|
176
|
+
enquirySnapshot: {
|
|
177
|
+
_id: enquiry._id,
|
|
178
|
+
packageSlug: enquiry.packageSlug,
|
|
179
|
+
status: enquiry.status,
|
|
180
|
+
males: enquiry.males,
|
|
181
|
+
females: enquiry.females,
|
|
182
|
+
desiredStartDate: enquiry.desiredStartDate,
|
|
183
|
+
message: enquiry.message,
|
|
184
|
+
selectedActivities: enquiry.selectedActivities,
|
|
185
|
+
createdAt: enquiry.createdAt,
|
|
186
|
+
updatedAt: enquiry.updatedAt,
|
|
187
|
+
},
|
|
188
|
+
recordSource: "enquiry",
|
|
189
|
+
hostId: hostId || enquiry.operatorId,
|
|
190
|
+
operatorId: hostId || enquiry.operatorId,
|
|
191
|
+
entityId: {
|
|
192
|
+
_id: enquiry.packageId?._id || enquiry.packageId,
|
|
193
|
+
title: enquiry.packageTitle,
|
|
194
|
+
slug: enquiry.packageSlug,
|
|
195
|
+
host: hostId || enquiry.operatorId,
|
|
196
|
+
},
|
|
197
|
+
entityType: "TravelPackage",
|
|
198
|
+
bookingKind: "package_enquiry",
|
|
199
|
+
entityLabel: "Package Enquiry",
|
|
200
|
+
startDate: enquiry.createdAt,
|
|
201
|
+
endDate: undefined,
|
|
202
|
+
numberOfPeople: (Number(enquiry.males) || 0) + (Number(enquiry.females) || 0) || 1,
|
|
203
|
+
totalPrice: enquiry.totalPrice || 0,
|
|
204
|
+
currency: enquiry.currency || "INR",
|
|
205
|
+
paymentStatus: "not_applicable",
|
|
206
|
+
bookingCode: enquiry.bookingCode,
|
|
207
|
+
status: enquiry.status === "denied" ? "cancelled" : enquiry.status,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function dedupeBookings(bookings) {
|
|
211
|
+
const seen = new Set();
|
|
212
|
+
return bookings.filter((booking) => {
|
|
213
|
+
const key = String(booking._id || "") || `${booking.entityType}:${booking.bookingCode || booking.startDate}`;
|
|
214
|
+
if (seen.has(key))
|
|
215
|
+
return false;
|
|
216
|
+
seen.add(key);
|
|
217
|
+
return true;
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function hideSupersededPackageEnquiries(bookings) {
|
|
221
|
+
const bookedPackageIds = new Set(bookings
|
|
222
|
+
.filter((booking) => booking.entityType === "TravelPackage" &&
|
|
223
|
+
booking.bookingKind !== "package_enquiry")
|
|
224
|
+
.map((booking) => {
|
|
225
|
+
const packageId = booking.entityId?._id || booking.entityId;
|
|
226
|
+
return String(packageId || "");
|
|
227
|
+
})
|
|
228
|
+
.filter(Boolean));
|
|
229
|
+
return bookings.filter((booking) => {
|
|
230
|
+
if (booking.bookingKind !== "package_enquiry")
|
|
231
|
+
return true;
|
|
232
|
+
const packageId = booking.entityId?._id || booking.packageId || booking.entityId;
|
|
233
|
+
return !bookedPackageIds.has(String(packageId || ""));
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
export async function getMyBookings(options = {}) {
|
|
237
|
+
try {
|
|
238
|
+
const [genericResult, stayResult, eventResult, packageResult] = await Promise.allSettled([
|
|
239
|
+
get("/bookings/my"),
|
|
240
|
+
get("/stays/bookings/me"),
|
|
241
|
+
get("/events/bookings/me"),
|
|
242
|
+
get("/enquiries/my"),
|
|
243
|
+
]);
|
|
244
|
+
const failures = [genericResult, stayResult, eventResult, packageResult].flatMap((result, index) => result.status === "rejected" ? [["bookings", "stay bookings", "event bookings", "package enquiries"][index]] : []);
|
|
245
|
+
const malformedPackage = packageResult.status === "fulfilled" && !Array.isArray(packageResult.value?.data);
|
|
246
|
+
if (options.paymentEvidence === "server" && malformedPackage)
|
|
247
|
+
failures.push("package enquiries");
|
|
248
|
+
if (options.paymentEvidence === "server" && failures.length === 4)
|
|
249
|
+
throw new Error("Booking history could not be loaded");
|
|
250
|
+
const genericBookings = genericResult.status === "fulfilled"
|
|
251
|
+
? (genericResult.value?.data || []).map((booking) => ({
|
|
252
|
+
...normalizeGenericBooking(booking, options.paymentEvidence),
|
|
253
|
+
entityLabel: booking.entityType === "TravelPackage"
|
|
254
|
+
? "Package Booking"
|
|
255
|
+
: booking.entityType,
|
|
256
|
+
}))
|
|
257
|
+
: [];
|
|
258
|
+
const stayBookings = stayResult.status === "fulfilled"
|
|
259
|
+
? (stayResult.value?.data || []).map(item => normalizeStayBooking(item, options.paymentEvidence))
|
|
260
|
+
: [];
|
|
261
|
+
const eventBookings = eventResult.status === "fulfilled"
|
|
262
|
+
? (eventResult.value?.data || []).map(item => normalizeEventBooking(item, options.paymentEvidence))
|
|
263
|
+
: [];
|
|
264
|
+
const packageBookings = packageResult.status === "fulfilled"
|
|
265
|
+
? (options.paymentEvidence === "server" && malformedPackage ? [] : packageResult.value?.data || []).map(normalizePackageEnquiry)
|
|
266
|
+
: [];
|
|
267
|
+
const combined = hideSupersededPackageEnquiries(dedupeBookings([
|
|
268
|
+
...genericBookings,
|
|
269
|
+
...stayBookings,
|
|
270
|
+
...eventBookings,
|
|
271
|
+
...packageBookings,
|
|
272
|
+
])).sort((a, b) => new Date(b.createdAt || b.startDate || 0).getTime() -
|
|
273
|
+
new Date(a.createdAt || a.startDate || 0).getTime());
|
|
274
|
+
const packageEnquiries = combined.filter((booking) => booking.bookingKind === "package_enquiry");
|
|
275
|
+
const bookings = combined.filter((booking) => booking.bookingKind !== "package_enquiry");
|
|
276
|
+
const allPackageEnquiries = dedupeBookings(packageBookings).sort((left, right) => new Date(right.createdAt || 0).getTime() - new Date(left.createdAt || 0).getTime());
|
|
277
|
+
return { success: true, bookings, packageEnquiries, allPackageEnquiries, warnings: failures };
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
return { success: false, bookings: [], packageEnquiries: [], allPackageEnquiries: [], error: error.message };
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/** Resolve only the chosen history domain. A legacy ID is never a generic Booking ID. */
|
|
284
|
+
export async function getTravellerHistoryRecord(id, source) {
|
|
285
|
+
if (source === 'generic')
|
|
286
|
+
return getBookingById(id);
|
|
287
|
+
const history = await getMyBookings({ paymentEvidence: 'server' });
|
|
288
|
+
const domain = source === 'stay' ? 'stay bookings' : source === 'event' ? 'event bookings' : 'package enquiries';
|
|
289
|
+
if (!history.success || history.warnings?.includes(domain))
|
|
290
|
+
return { success: false, booking: null, error: `The selected ${domain} record could not be loaded. Please retry.` };
|
|
291
|
+
const records = source === 'enquiry' ? history.allPackageEnquiries : history.bookings;
|
|
292
|
+
const booking = records.find(record => record._id === id && record.recordSource === source);
|
|
293
|
+
return booking ? { success: true, booking } : { success: false, booking: null, error: 'This record is no longer available.' };
|
|
294
|
+
}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { AdOfferDetail, BrandPageData, CreatorPlacementReviewItem } from "../models/brand";
|
|
2
|
+
import type { BrandSummary } from "../models/place";
|
|
3
|
+
export declare function fetchBrands(page?: number, location?: string): Promise<{
|
|
4
|
+
items: BrandSummary[];
|
|
5
|
+
total: number;
|
|
6
|
+
page: number;
|
|
7
|
+
totalPages: number;
|
|
8
|
+
}>;
|
|
2
9
|
export type { AdOfferDetail, BrandPageData, CreatorPlacementReviewItem, } from "../models/brand";
|
|
3
10
|
export declare function fetchBrandPage(slug: string): Promise<{
|
|
4
11
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/brand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/brand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,wBAAsB,WAAW,CAAC,IAAI,SAAI,EAAE,QAAQ,SAAK;WAEpB,YAAY,EAAE;WAAS,MAAM;UAAQ,MAAM;gBAAc,MAAM;GACnG;AAED,YAAY,EACV,aAAa,EACb,aAAa,EACb,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAEzB,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAOD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAOD;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,eAAe,GAAG,qBAAqB,GAAG,YAAY,GAAG,UAAU,CAAC;IACvF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,GACA,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3D;AAED,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAG5F;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,GAAG,QAAQ,EAC9B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,0BAA0B,CAAC,CAMrC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { get, post, put } from "./fetcher";
|
|
2
|
+
export async function fetchBrands(page = 1, location = "") {
|
|
3
|
+
const query = new URLSearchParams({ page: String(page), limit: "12", ...(location ? { location } : {}) });
|
|
4
|
+
return (await get(`/brands?${query}`, false)).data;
|
|
5
|
+
}
|
|
2
6
|
export async function fetchBrandPage(slug) {
|
|
3
7
|
try {
|
|
4
8
|
const data = await get(`/brands/${slug}`);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ChatActorModel, ChatActorRef, ChatEvent, ChatGroupInvite, ChatGroupJoinRequest, ChatPaymentIntent, ChatPaymentDetailRequest, ChatBusinessProfile, ChatQuickReply, ChatHostConversationState, ChatOwnedListing, ChatCopilotResult, ChatAIActionProposal, ChatLiveLocation, ChatCampaignDraft, ChatHostKnowledgeSource, ChatAssistantSnapshot, ChatAssistantMessage, ChatAssistantSendResult, ChatAssistantProposal, ChatAssistantOpportunityStatusResult, ChatSafetyAlert, ChatPaymentProfile, Conversation, ConversationPreference, ConversationSearchResponse, ConversationStorageSummary, Message, PinnedMessage, StarredMessage, SharedChatCardInput, LinkedListingGroup, ListingAudience, ManagedListingGroup } from "../models/chat";
|
|
2
|
+
import { type UploadFile } from '../utils/uploadFile';
|
|
2
3
|
export declare const normalizeChatMessage: (message: any) => Message;
|
|
3
4
|
export declare const normalizeConversation: (conversation: any) => Conversation;
|
|
4
5
|
export declare const chatApi: {
|
|
@@ -123,6 +124,8 @@ export declare const chatApi: {
|
|
|
123
124
|
data: null;
|
|
124
125
|
error: unknown;
|
|
125
126
|
}>;
|
|
127
|
+
/** Same upload/send phases used by web chat, with native URI multipart support. */
|
|
128
|
+
sendTravellerAttachments: (convId: string, text: string, files: UploadFile[], replyTo?: string) => Promise<Message>;
|
|
126
129
|
sendSharedCard: (convId: string, data: SharedChatCardInput) => Promise<Message>;
|
|
127
130
|
editMessage: (id: string, text: string) => Promise<Message | null>;
|
|
128
131
|
addMessageReaction: (id: string, emoji: string) => Promise<Message | null>;
|