@myrjfa/state 2.0.1 → 2.1.1
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/LICENSE +201 -201
- package/README.md +3 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lib/actions/actions.d.ts +20 -1
- package/dist/lib/actions/actions.d.ts.map +1 -1
- package/dist/lib/actions/actions.js +50 -10
- package/dist/lib/actions/auth.d.ts +12 -2
- package/dist/lib/actions/auth.d.ts.map +1 -1
- package/dist/lib/actions/booking.d.ts +15 -0
- package/dist/lib/actions/booking.d.ts.map +1 -1
- package/dist/lib/actions/booking.js +15 -1
- package/dist/lib/actions/fetcher.d.ts +0 -3
- package/dist/lib/actions/fetcher.d.ts.map +1 -1
- package/dist/lib/actions/fetcher.js +65 -8
- package/dist/lib/actions/{severActions.d.ts → serverActions.d.ts} +1 -1
- package/dist/lib/actions/serverActions.d.ts.map +1 -0
- package/dist/lib/actions/{severActions.js → serverActions.js} +3 -0
- package/dist/lib/authSessionManager.d.ts.map +1 -1
- package/dist/lib/authSessionManager.js +14 -7
- package/dist/lib/context/ChatContext.d.ts +1 -1
- package/dist/lib/context/ChatContext.d.ts.map +1 -1
- package/dist/lib/hooks/use-mobile.js +1 -0
- package/dist/lib/hooks/useChatSocket.js +1 -0
- package/dist/lib/models/blog.d.ts +3 -2
- package/dist/lib/models/blog.d.ts.map +1 -1
- package/dist/lib/models/{notfications.d.ts → notifications.d.ts} +1 -1
- package/dist/lib/models/notifications.d.ts.map +1 -0
- package/dist/lib/models/opportunities/freelance.d.ts +48 -20
- package/dist/lib/models/opportunities/freelance.d.ts.map +1 -1
- package/dist/lib/models/opportunities/internship.d.ts +48 -20
- package/dist/lib/models/opportunities/internship.d.ts.map +1 -1
- package/dist/lib/models/opportunities/job.d.ts +58 -30
- package/dist/lib/models/opportunities/job.d.ts.map +1 -1
- package/dist/lib/models/opportunities/opportunity.d.ts +61 -33
- package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -1
- package/dist/lib/models/opportunities/opportunity.js +1 -0
- package/dist/lib/models/opportunities/volunteerJob.d.ts +48 -20
- package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -1
- package/dist/lib/models/package.d.ts +2 -2
- package/dist/lib/models/props.d.ts +21 -0
- package/dist/lib/models/props.d.ts.map +1 -1
- package/dist/lib/models/stay.d.ts +2 -2
- package/dist/lib/models/user.d.ts +19 -4
- package/dist/lib/models/user.d.ts.map +1 -1
- package/dist/lib/models/user.js +5 -0
- package/dist/lib/userAtom.d.ts +24 -4
- package/dist/lib/userAtom.d.ts.map +1 -1
- package/dist/lib/userAtom.js +13 -11
- package/dist/lib/utils/socialMediaUrl.d.ts +25 -0
- package/dist/lib/utils/socialMediaUrl.d.ts.map +1 -0
- package/dist/lib/utils/socialMediaUrl.js +97 -0
- package/dist/lib/utils.js +4 -4
- package/package.json +2 -1
- package/dist/lib/actions/severActions.d.ts.map +0 -1
- package/dist/lib/models/notfications.d.ts.map +0 -1
- /package/dist/lib/models/{notfications.js → notifications.js} +0 -0
|
@@ -33,7 +33,7 @@ export declare function signIn(formData: {
|
|
|
33
33
|
accessToken?: string | undefined;
|
|
34
34
|
refreshToken?: string | undefined;
|
|
35
35
|
verifiedIdCard?: boolean | undefined;
|
|
36
|
-
socialLinks?: Record<
|
|
36
|
+
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
37
37
|
userResume?: string | undefined;
|
|
38
38
|
skills?: {
|
|
39
39
|
skill: string;
|
|
@@ -60,6 +60,11 @@ export declare function signIn(formData: {
|
|
|
60
60
|
pinCode?: string | undefined;
|
|
61
61
|
registrationNumber?: string | undefined;
|
|
62
62
|
}[] | undefined;
|
|
63
|
+
businessDocument?: string | undefined;
|
|
64
|
+
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
65
|
+
businessIdNumber?: string | undefined;
|
|
66
|
+
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
67
|
+
businessVerificationDenialReason?: string | undefined;
|
|
63
68
|
};
|
|
64
69
|
message: string;
|
|
65
70
|
success?: undefined;
|
|
@@ -108,7 +113,7 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
|
|
|
108
113
|
accessToken?: string | undefined;
|
|
109
114
|
refreshToken?: string | undefined;
|
|
110
115
|
verifiedIdCard?: boolean | undefined;
|
|
111
|
-
socialLinks?: Record<
|
|
116
|
+
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
112
117
|
userResume?: string | undefined;
|
|
113
118
|
skills?: {
|
|
114
119
|
skill: string;
|
|
@@ -135,6 +140,11 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
|
|
|
135
140
|
pinCode?: string | undefined;
|
|
136
141
|
registrationNumber?: string | undefined;
|
|
137
142
|
}[] | undefined;
|
|
143
|
+
businessDocument?: string | undefined;
|
|
144
|
+
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
145
|
+
businessIdNumber?: string | undefined;
|
|
146
|
+
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
147
|
+
businessVerificationDenialReason?: string | undefined;
|
|
138
148
|
};
|
|
139
149
|
message: string;
|
|
140
150
|
success?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/auth.ts"],"names":[],"mappings":"AAGA,wBAAsB,MAAM,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/auth.ts"],"names":[],"mappings":"AAGA,wBAAsB,MAAM,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAeA;AAED,wBAAsB,UAAU,CAAC,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,CAa9G;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAcrF;AAED,wBAAsB,sBAAsB,CAAC,KAAK,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,CAgBzI;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,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,CAgBzJ;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,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,CAgBlJ;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAevG"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
import { Booking, CreateBookingRequest } from "../models/booking";
|
|
2
2
|
export declare function createBooking(bookingData: CreateBookingRequest): Promise<{
|
|
3
|
+
success: boolean;
|
|
4
|
+
booking: Booking | null;
|
|
5
|
+
razorpayOrderId?: string;
|
|
6
|
+
razorpayKeyId?: string;
|
|
7
|
+
amount?: number;
|
|
8
|
+
currency?: string;
|
|
9
|
+
message?: string;
|
|
10
|
+
error?: string;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function verifyBookingPayment(payload: {
|
|
13
|
+
bookingId: string;
|
|
14
|
+
razorpay_order_id: string;
|
|
15
|
+
razorpay_payment_id: string;
|
|
16
|
+
razorpay_signature: string;
|
|
17
|
+
}): Promise<{
|
|
3
18
|
success: boolean;
|
|
4
19
|
booking: Booking | null;
|
|
5
20
|
message?: string;
|
|
@@ -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;AAElE,wBAAsB,aAAa,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
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;AAElE,wBAAsB,aAAa,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBrP;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQvP;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB1H;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBhJ;AAED,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBlO"}
|
|
@@ -5,7 +5,11 @@ export async function createBooking(bookingData) {
|
|
|
5
5
|
const data = await post(endpoint, bookingData);
|
|
6
6
|
return {
|
|
7
7
|
success: true,
|
|
8
|
-
booking: data.data,
|
|
8
|
+
booking: data.data.booking,
|
|
9
|
+
razorpayOrderId: data.data.razorpayOrderId,
|
|
10
|
+
razorpayKeyId: data.data.razorpayKeyId,
|
|
11
|
+
amount: data.data.amount,
|
|
12
|
+
currency: data.data.currency,
|
|
9
13
|
message: data.message,
|
|
10
14
|
};
|
|
11
15
|
}
|
|
@@ -18,6 +22,16 @@ export async function createBooking(bookingData) {
|
|
|
18
22
|
};
|
|
19
23
|
}
|
|
20
24
|
}
|
|
25
|
+
export async function verifyBookingPayment(payload) {
|
|
26
|
+
try {
|
|
27
|
+
const data = await post('/bookings/verify-payment', payload);
|
|
28
|
+
return { success: true, booking: data.data.booking, message: data.message };
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error('Failed to verify payment: ', error);
|
|
32
|
+
return { success: false, booking: null, error: error.message };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
21
35
|
export async function getMyBookings() {
|
|
22
36
|
try {
|
|
23
37
|
const endpoint = `/bookings/my`;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
type FetchMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
2
|
-
export declare function refreshToken<T>(input: string, method: FetchMethod, body?: any): Promise<T>;
|
|
3
1
|
export declare function get<T>(url: string, includeAuth?: boolean): Promise<T>;
|
|
4
2
|
export declare function post<T>(url: string, body: any): Promise<T>;
|
|
5
3
|
export declare function put<T>(url: string, body: any): Promise<T>;
|
|
6
4
|
export declare function patch<T>(url: string, body: any): Promise<T>;
|
|
7
5
|
export declare function del<T>(url: string, body?: any): Promise<T>;
|
|
8
|
-
export {};
|
|
9
6
|
//# sourceMappingURL=fetcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/fetcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/fetcher.ts"],"names":[],"mappings":"AAgKA,wBAAsB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,cAEpE;AAED,wBAAsB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAEnD;AAED,wBAAsB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAElD;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAEpD;AAED,wBAAsB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,cAEnD"}
|
|
@@ -1,6 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { getCookieHeader, getRole } from "./serverActions";
|
|
2
|
+
// Custom API error class — do NOT import from next/dist internals
|
|
3
|
+
class ApiError extends Error {
|
|
4
|
+
constructor(statusCode, message) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.statusCode = statusCode;
|
|
7
|
+
this.name = 'ApiError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
3
10
|
const baseURL = process.env.NEXT_PUBLIC_API_URL;
|
|
11
|
+
/**
|
|
12
|
+
* #2 — Stable device fingerprint stored in localStorage.
|
|
13
|
+
* Survives browser sessions (unlike cookies which can expire/be cleared).
|
|
14
|
+
* Generated once per browser using crypto.randomUUID().
|
|
15
|
+
*/
|
|
16
|
+
function getOrCreateDeviceId() {
|
|
17
|
+
if (typeof window === 'undefined')
|
|
18
|
+
return null; // SSR guard
|
|
19
|
+
try {
|
|
20
|
+
let deviceId = localStorage.getItem('_trippeaze_device_id');
|
|
21
|
+
if (!deviceId) {
|
|
22
|
+
deviceId = crypto.randomUUID();
|
|
23
|
+
localStorage.setItem('_trippeaze_device_id', deviceId);
|
|
24
|
+
}
|
|
25
|
+
return deviceId;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
4
31
|
async function customFetch(input, method, body, options = {}) {
|
|
5
32
|
const { includeAuth = false, retry = true } = options;
|
|
6
33
|
const url = `${baseURL}${input}`;
|
|
@@ -8,12 +35,20 @@ async function customFetch(input, method, body, options = {}) {
|
|
|
8
35
|
let headers = isFormData
|
|
9
36
|
? { Accept: 'application/json' }
|
|
10
37
|
: { 'Content-Type': 'application/json', Accept: 'application/json' };
|
|
38
|
+
// #2: Attach stable device ID so backend can correctly identify the same browser
|
|
39
|
+
const deviceId = getOrCreateDeviceId();
|
|
40
|
+
if (deviceId) {
|
|
41
|
+
headers['X-Device-Id'] = deviceId;
|
|
42
|
+
}
|
|
11
43
|
if (includeAuth) {
|
|
12
44
|
try {
|
|
13
45
|
const cookieHeader = await getCookieHeader();
|
|
14
46
|
headers = { ...headers, Cookie: cookieHeader };
|
|
15
47
|
}
|
|
16
48
|
catch (error) {
|
|
49
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE')) {
|
|
50
|
+
throw error; // Re-throw Next.js PPR bail-out
|
|
51
|
+
}
|
|
17
52
|
// If we can't get cookies (CSR context), credentials: 'include' will handle it
|
|
18
53
|
console.warn('Could not get cookies for auth header:', error);
|
|
19
54
|
}
|
|
@@ -45,28 +80,50 @@ async function customFetch(input, method, body, options = {}) {
|
|
|
45
80
|
}
|
|
46
81
|
throw new ApiError(errorBody.statusCode, errorBody.error);
|
|
47
82
|
}
|
|
48
|
-
// Token refresh function
|
|
49
|
-
|
|
83
|
+
// Token refresh function — internal only, not exported
|
|
84
|
+
async function refreshToken(input, method, body) {
|
|
50
85
|
const role = await getRole();
|
|
86
|
+
// Map role to the correct refresh endpoint; fall back to 'user' if role is unavailable
|
|
87
|
+
const roleForEndpoint = (!role || role === "admin") ? "user" : role;
|
|
51
88
|
try {
|
|
52
|
-
|
|
89
|
+
// Build headers for the refresh request.
|
|
90
|
+
// The backend requires the refreshToken cookie AND the X-Device-Id header.
|
|
91
|
+
// In SSR, try to forward all cookies from the incoming request; in CSR, credentials:'include'
|
|
92
|
+
// sends them directly from the browser to the backend.
|
|
93
|
+
const refreshHeaders = {};
|
|
94
|
+
// Always include device ID so backend can match the device record
|
|
95
|
+
const deviceId = getOrCreateDeviceId();
|
|
96
|
+
if (deviceId)
|
|
97
|
+
refreshHeaders['X-Device-Id'] = deviceId;
|
|
98
|
+
try {
|
|
99
|
+
const cookieHeader = await getCookieHeader();
|
|
100
|
+
if (cookieHeader)
|
|
101
|
+
refreshHeaders['Cookie'] = cookieHeader;
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// CSR or static context — credentials:'include' handles cookie forwarding to backend
|
|
105
|
+
}
|
|
53
106
|
const response = await fetch(`${baseURL}/${roleForEndpoint}s/refresh-token`, {
|
|
54
107
|
method: 'POST',
|
|
55
108
|
credentials: 'include',
|
|
109
|
+
headers: refreshHeaders,
|
|
56
110
|
});
|
|
57
111
|
const data = await response.json();
|
|
58
112
|
if (response.ok) {
|
|
59
113
|
return customFetch(input, method, body, { includeAuth: true, retry: false });
|
|
60
114
|
}
|
|
61
115
|
else {
|
|
62
|
-
throw { statusCode:
|
|
116
|
+
throw { statusCode: response.status, error: data.error || data.message || 'Session expired' };
|
|
63
117
|
}
|
|
64
118
|
}
|
|
65
119
|
catch (error) {
|
|
66
|
-
|
|
120
|
+
if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE')) {
|
|
121
|
+
throw error; // Re-throw Next.js PPR bail-out
|
|
122
|
+
}
|
|
123
|
+
throw new ApiError(error.statusCode ?? 500, error.error || error.message || 'Session expired. Please log in again.');
|
|
67
124
|
}
|
|
68
125
|
}
|
|
69
|
-
// ✅
|
|
126
|
+
// ✅ Server-safe exported functions
|
|
70
127
|
export async function get(url, includeAuth = true) {
|
|
71
128
|
return customFetch(url, 'GET', undefined, { includeAuth });
|
|
72
129
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverActions.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/serverActions.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAKvD;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWtD"}
|
|
@@ -13,6 +13,9 @@ export async function getRole() {
|
|
|
13
13
|
return (role && validRoles.includes(role)) ? role : null;
|
|
14
14
|
}
|
|
15
15
|
catch (err) {
|
|
16
|
+
if (err && typeof err === 'object' && ('$$typeof' in err || err.digest === 'DYNAMIC_SERVER_USAGE')) {
|
|
17
|
+
throw err;
|
|
18
|
+
}
|
|
16
19
|
console.error('Invalid token', err);
|
|
17
20
|
return null;
|
|
18
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authSessionManager.d.ts","sourceRoot":"","sources":["../../src/lib/authSessionManager.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,kBAAkB,
|
|
1
|
+
{"version":3,"file":"authSessionManager.d.ts","sourceRoot":"","sources":["../../src/lib/authSessionManager.tsx"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,kBAAkB,SAqCzC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { useAtom } from 'jotai'; // Import useSetAtom
|
|
3
3
|
import { useEffect } from 'react';
|
|
4
4
|
import { useQuery } from '@tanstack/react-query';
|
|
5
|
-
import { initializeAuthSessionAtom
|
|
5
|
+
import { initializeAuthSessionAtom } from './userAtom'; // Import the atom itself
|
|
6
6
|
import { validateSession } from './actions/auth';
|
|
7
7
|
export default function AuthSessionManager() {
|
|
8
8
|
const [, initializeAuthSession] = useAtom(initializeAuthSessionAtom);
|
|
@@ -24,11 +24,18 @@ export default function AuthSessionManager() {
|
|
|
24
24
|
},
|
|
25
25
|
staleTime: 15 * 60 * 1000,
|
|
26
26
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
// NOTE: We intentionally do NOT reset auth state on isError here.
|
|
28
|
+
// A failed background session ping could be due to:
|
|
29
|
+
// - Backend temporarily down
|
|
30
|
+
// - Network issue
|
|
31
|
+
// - Wrong role endpoint (hosts vs users)
|
|
32
|
+
// The fetcher's refreshToken logic already handles 401s transparently.
|
|
33
|
+
// Aggressively resetting here was causing false logouts after browser restart.
|
|
34
|
+
// useEffect(() => {
|
|
35
|
+
// if (isError) {
|
|
36
|
+
// console.log("Session validation failed. Logging out.");
|
|
37
|
+
// resetAuthState();
|
|
38
|
+
// }
|
|
39
|
+
// }, [isError, resetAuthState]);
|
|
33
40
|
return null;
|
|
34
41
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { Socket } from "socket.io-client";
|
|
3
3
|
import type { Conversation, Message } from "../models/chat";
|
|
4
|
-
import type { Notif } from "../models/
|
|
4
|
+
import type { Notif } from "../models/notifications";
|
|
5
5
|
interface ChatContextType {
|
|
6
6
|
socket: Socket | null;
|
|
7
7
|
isConnected: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../../src/lib/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../../src/lib/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAMrD,UAAU,eAAe;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,kBAAkB,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC,qBAAqB,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvG,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1G,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChE,uBAAuB,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAClC;AAyBD,wBAAgB,cAAc,oBAE7B;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAgWvE"}
|
|
@@ -19,7 +19,7 @@ export declare const BlogSchema: z.ZodObject<{
|
|
|
19
19
|
authorImage: z.ZodString;
|
|
20
20
|
authorRole: z.ZodEnum<["host", "admin", "user"]>;
|
|
21
21
|
}, "strict", z.ZodTypeAny, {
|
|
22
|
-
status: "
|
|
22
|
+
status: "pending" | "draft" | "posted" | "archived" | "denied";
|
|
23
23
|
title: string;
|
|
24
24
|
createdAt: Date;
|
|
25
25
|
updatedAt: Date;
|
|
@@ -36,7 +36,7 @@ export declare const BlogSchema: z.ZodObject<{
|
|
|
36
36
|
authorRole: "host" | "user" | "admin";
|
|
37
37
|
hashtags?: string | undefined;
|
|
38
38
|
}, {
|
|
39
|
-
status: "
|
|
39
|
+
status: "pending" | "draft" | "posted" | "archived" | "denied";
|
|
40
40
|
title: string;
|
|
41
41
|
createdAt: Date;
|
|
42
42
|
updatedAt: Date;
|
|
@@ -58,6 +58,7 @@ export type BlogMetaData = {
|
|
|
58
58
|
image: string;
|
|
59
59
|
title: string;
|
|
60
60
|
overview: string;
|
|
61
|
+
hashtags: string;
|
|
61
62
|
};
|
|
62
63
|
export declare const hashTagOptions: {
|
|
63
64
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../src/lib/models/blog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,iEAA+D,CAAC;AAC7F,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBZ,CAAC;AAEZ,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,cAAc;;GAyB1B,CAAA"}
|
|
1
|
+
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../src/lib/models/blog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,iEAA+D,CAAC;AAC7F,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBZ,CAAC;AAEZ,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,cAAc;;GAyB1B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/lib/models/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0DtB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
10
10
|
state: z.ZodString;
|
|
11
11
|
country: z.ZodString;
|
|
12
12
|
address: z.ZodOptional<z.ZodString>;
|
|
13
|
-
workMode: z.ZodOptional<z.ZodEnum<[
|
|
13
|
+
workMode: z.ZodOptional<z.ZodEnum<["onsite" | "remote" | "hybrid", ...("onsite" | "remote" | "hybrid")[]]>>;
|
|
14
14
|
bondPlan: z.ZodOptional<z.ZodObject<{
|
|
15
15
|
enabled: z.ZodBoolean;
|
|
16
16
|
durationMonths: z.ZodOptional<z.ZodNumber>;
|
|
@@ -48,6 +48,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
48
48
|
answer: string;
|
|
49
49
|
}>, "many">;
|
|
50
50
|
applicationCount: z.ZodNumber;
|
|
51
|
+
pendingApplicationCount: z.ZodOptional<z.ZodNumber>;
|
|
51
52
|
views: z.ZodNumber;
|
|
52
53
|
shares: z.ZodNumber;
|
|
53
54
|
rating: z.ZodNumber;
|
|
@@ -84,7 +85,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
84
85
|
verifiedMobile: z.ZodBoolean;
|
|
85
86
|
verifiedIdCard: z.ZodOptional<z.ZodBoolean>;
|
|
86
87
|
role: z.ZodEnum<["host", "user", "admin", "hr", "sales"]>;
|
|
87
|
-
socialLinks: z.ZodOptional<z.ZodRecord<z.ZodEnum<[
|
|
88
|
+
socialLinks: z.ZodOptional<z.ZodRecord<z.ZodEnum<["instagram", "linkedin", "youtube", "googleBusiness"]>, z.ZodString>>;
|
|
88
89
|
userResume: z.ZodOptional<z.ZodString>;
|
|
89
90
|
skills: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
90
91
|
skill: z.ZodString;
|
|
@@ -135,6 +136,11 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
135
136
|
pinCode?: string | undefined;
|
|
136
137
|
registrationNumber?: string | undefined;
|
|
137
138
|
}>, "many">>;
|
|
139
|
+
businessDocument: z.ZodOptional<z.ZodString>;
|
|
140
|
+
businessIdType: z.ZodOptional<z.ZodEnum<["PAN", "GST", "Udyam", "PersonalPAN"]>>;
|
|
141
|
+
businessIdNumber: z.ZodOptional<z.ZodString>;
|
|
142
|
+
businessApiVerificationStatus: z.ZodOptional<z.ZodEnum<["pending", "verified", "failed"]>>;
|
|
143
|
+
businessVerificationDenialReason: z.ZodOptional<z.ZodString>;
|
|
138
144
|
}, "strict", z.ZodTypeAny, {
|
|
139
145
|
username: string;
|
|
140
146
|
firstName: string;
|
|
@@ -165,7 +171,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
165
171
|
accessToken?: string | undefined;
|
|
166
172
|
refreshToken?: string | undefined;
|
|
167
173
|
verifiedIdCard?: boolean | undefined;
|
|
168
|
-
socialLinks?: Record<
|
|
174
|
+
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
169
175
|
userResume?: string | undefined;
|
|
170
176
|
skills?: {
|
|
171
177
|
skill: string;
|
|
@@ -192,6 +198,11 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
192
198
|
pinCode?: string | undefined;
|
|
193
199
|
registrationNumber?: string | undefined;
|
|
194
200
|
}[] | undefined;
|
|
201
|
+
businessDocument?: string | undefined;
|
|
202
|
+
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
203
|
+
businessIdNumber?: string | undefined;
|
|
204
|
+
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
205
|
+
businessVerificationDenialReason?: string | undefined;
|
|
195
206
|
}, {
|
|
196
207
|
username: string;
|
|
197
208
|
firstName: string;
|
|
@@ -222,7 +233,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
222
233
|
accessToken?: string | undefined;
|
|
223
234
|
refreshToken?: string | undefined;
|
|
224
235
|
verifiedIdCard?: boolean | undefined;
|
|
225
|
-
socialLinks?: Record<
|
|
236
|
+
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
226
237
|
userResume?: string | undefined;
|
|
227
238
|
skills?: {
|
|
228
239
|
skill: string;
|
|
@@ -249,6 +260,11 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
249
260
|
pinCode?: string | undefined;
|
|
250
261
|
registrationNumber?: string | undefined;
|
|
251
262
|
}[] | undefined;
|
|
263
|
+
businessDocument?: string | undefined;
|
|
264
|
+
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
265
|
+
businessIdNumber?: string | undefined;
|
|
266
|
+
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
267
|
+
businessVerificationDenialReason?: string | undefined;
|
|
252
268
|
}>>;
|
|
253
269
|
applicationObservers: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
254
270
|
username: z.ZodString;
|
|
@@ -276,20 +292,20 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
276
292
|
} & {
|
|
277
293
|
opportunityType: z.ZodLiteral<"freelance">;
|
|
278
294
|
compensation: z.ZodObject<{
|
|
279
|
-
type: z.ZodEnum<[
|
|
295
|
+
type: z.ZodEnum<["free" | "stipend" | "salary" | "project-based", ...("free" | "stipend" | "salary" | "project-based")[]]>;
|
|
280
296
|
amount: z.ZodOptional<z.ZodNumber>;
|
|
281
297
|
currency: z.ZodEnum<[string, ...string[]]>;
|
|
282
|
-
frequency: z.ZodOptional<z.ZodEnum<[
|
|
298
|
+
frequency: z.ZodOptional<z.ZodEnum<["daily" | "weekly" | "monthly" | "yearly" | "one-time", ...("daily" | "weekly" | "monthly" | "yearly" | "one-time")[]]>>;
|
|
283
299
|
}, "strip", z.ZodTypeAny, {
|
|
284
|
-
type:
|
|
300
|
+
type: "free" | "stipend" | "salary" | "project-based";
|
|
285
301
|
currency: string;
|
|
286
302
|
amount?: number | undefined;
|
|
287
|
-
frequency?:
|
|
303
|
+
frequency?: "daily" | "weekly" | "monthly" | "yearly" | "one-time" | undefined;
|
|
288
304
|
}, {
|
|
289
|
-
type:
|
|
305
|
+
type: "free" | "stipend" | "salary" | "project-based";
|
|
290
306
|
currency: string;
|
|
291
307
|
amount?: number | undefined;
|
|
292
|
-
frequency?:
|
|
308
|
+
frequency?: "daily" | "weekly" | "monthly" | "yearly" | "one-time" | undefined;
|
|
293
309
|
}>;
|
|
294
310
|
platformFees: z.ZodObject<{
|
|
295
311
|
commissionPercent: z.ZodNumber;
|
|
@@ -319,7 +335,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
319
335
|
}>;
|
|
320
336
|
}, "strict", z.ZodTypeAny, {
|
|
321
337
|
country: string;
|
|
322
|
-
status: "
|
|
338
|
+
status: "pending" | "draft" | "archived" | "denied" | "open" | "closed" | "deleted";
|
|
323
339
|
rating: number;
|
|
324
340
|
ratingCount: number;
|
|
325
341
|
reviewCount: number;
|
|
@@ -332,10 +348,10 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
332
348
|
opportunityType: "freelance";
|
|
333
349
|
images: string[];
|
|
334
350
|
compensation: {
|
|
335
|
-
type:
|
|
351
|
+
type: "free" | "stipend" | "salary" | "project-based";
|
|
336
352
|
currency: string;
|
|
337
353
|
amount?: number | undefined;
|
|
338
|
-
frequency?:
|
|
354
|
+
frequency?: "daily" | "weekly" | "monthly" | "yearly" | "one-time" | undefined;
|
|
339
355
|
};
|
|
340
356
|
availableFrom: Date;
|
|
341
357
|
minDuration: number;
|
|
@@ -381,7 +397,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
381
397
|
accessToken?: string | undefined;
|
|
382
398
|
refreshToken?: string | undefined;
|
|
383
399
|
verifiedIdCard?: boolean | undefined;
|
|
384
|
-
socialLinks?: Record<
|
|
400
|
+
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
385
401
|
userResume?: string | undefined;
|
|
386
402
|
skills?: {
|
|
387
403
|
skill: string;
|
|
@@ -408,6 +424,11 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
408
424
|
pinCode?: string | undefined;
|
|
409
425
|
registrationNumber?: string | undefined;
|
|
410
426
|
}[] | undefined;
|
|
427
|
+
businessDocument?: string | undefined;
|
|
428
|
+
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
429
|
+
businessIdNumber?: string | undefined;
|
|
430
|
+
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
431
|
+
businessVerificationDenialReason?: string | undefined;
|
|
411
432
|
};
|
|
412
433
|
adminApproval: boolean;
|
|
413
434
|
platformFees: {
|
|
@@ -424,7 +445,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
424
445
|
createdAt?: Date | undefined;
|
|
425
446
|
updatedAt?: Date | undefined;
|
|
426
447
|
categoryId?: string | undefined;
|
|
427
|
-
workMode?:
|
|
448
|
+
workMode?: "onsite" | "remote" | "hybrid" | undefined;
|
|
428
449
|
bondPlan?: {
|
|
429
450
|
enabled: boolean;
|
|
430
451
|
commissionRate: number;
|
|
@@ -432,6 +453,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
432
453
|
hostFee?: number | undefined;
|
|
433
454
|
securityDeposit?: number | undefined;
|
|
434
455
|
} | undefined;
|
|
456
|
+
pendingApplicationCount?: number | undefined;
|
|
435
457
|
hostingType?: string | undefined;
|
|
436
458
|
applicationObservers?: {
|
|
437
459
|
username: string;
|
|
@@ -442,7 +464,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
442
464
|
}[] | undefined;
|
|
443
465
|
}, {
|
|
444
466
|
country: string;
|
|
445
|
-
status: "
|
|
467
|
+
status: "pending" | "draft" | "archived" | "denied" | "open" | "closed" | "deleted";
|
|
446
468
|
rating: number;
|
|
447
469
|
ratingCount: number;
|
|
448
470
|
reviewCount: number;
|
|
@@ -455,10 +477,10 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
455
477
|
opportunityType: "freelance";
|
|
456
478
|
images: string[];
|
|
457
479
|
compensation: {
|
|
458
|
-
type:
|
|
480
|
+
type: "free" | "stipend" | "salary" | "project-based";
|
|
459
481
|
currency: string;
|
|
460
482
|
amount?: number | undefined;
|
|
461
|
-
frequency?:
|
|
483
|
+
frequency?: "daily" | "weekly" | "monthly" | "yearly" | "one-time" | undefined;
|
|
462
484
|
};
|
|
463
485
|
availableFrom: Date;
|
|
464
486
|
minDuration: number;
|
|
@@ -504,7 +526,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
504
526
|
accessToken?: string | undefined;
|
|
505
527
|
refreshToken?: string | undefined;
|
|
506
528
|
verifiedIdCard?: boolean | undefined;
|
|
507
|
-
socialLinks?: Record<
|
|
529
|
+
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
508
530
|
userResume?: string | undefined;
|
|
509
531
|
skills?: {
|
|
510
532
|
skill: string;
|
|
@@ -531,6 +553,11 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
531
553
|
pinCode?: string | undefined;
|
|
532
554
|
registrationNumber?: string | undefined;
|
|
533
555
|
}[] | undefined;
|
|
556
|
+
businessDocument?: string | undefined;
|
|
557
|
+
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
558
|
+
businessIdNumber?: string | undefined;
|
|
559
|
+
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
560
|
+
businessVerificationDenialReason?: string | undefined;
|
|
534
561
|
};
|
|
535
562
|
adminApproval: boolean;
|
|
536
563
|
platformFees: {
|
|
@@ -547,7 +574,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
547
574
|
createdAt?: Date | undefined;
|
|
548
575
|
updatedAt?: Date | undefined;
|
|
549
576
|
categoryId?: string | undefined;
|
|
550
|
-
workMode?:
|
|
577
|
+
workMode?: "onsite" | "remote" | "hybrid" | undefined;
|
|
551
578
|
bondPlan?: {
|
|
552
579
|
enabled: boolean;
|
|
553
580
|
durationMonths?: number | undefined;
|
|
@@ -555,6 +582,7 @@ export declare const FreelanceOpportunitySchema: z.ZodObject<{
|
|
|
555
582
|
securityDeposit?: number | undefined;
|
|
556
583
|
commissionRate?: number | undefined;
|
|
557
584
|
} | undefined;
|
|
585
|
+
pendingApplicationCount?: number | undefined;
|
|
558
586
|
hostingType?: string | undefined;
|
|
559
587
|
applicationObservers?: {
|
|
560
588
|
username: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freelance.d.ts","sourceRoot":"","sources":["../../../../src/lib/models/opportunities/freelance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"freelance.d.ts","sourceRoot":"","sources":["../../../../src/lib/models/opportunities/freelance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrC,CAAC"}
|