@myrjfa/state 2.0.1 → 2.1.2

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.
Files changed (58) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +3 -3
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -2
  6. package/dist/lib/actions/actions.d.ts +20 -1
  7. package/dist/lib/actions/actions.d.ts.map +1 -1
  8. package/dist/lib/actions/actions.js +50 -10
  9. package/dist/lib/actions/auth.d.ts +12 -2
  10. package/dist/lib/actions/auth.d.ts.map +1 -1
  11. package/dist/lib/actions/booking.d.ts +15 -0
  12. package/dist/lib/actions/booking.d.ts.map +1 -1
  13. package/dist/lib/actions/booking.js +15 -1
  14. package/dist/lib/actions/fetcher.d.ts +0 -3
  15. package/dist/lib/actions/fetcher.d.ts.map +1 -1
  16. package/dist/lib/actions/fetcher.js +65 -8
  17. package/dist/lib/actions/{severActions.d.ts → serverActions.d.ts} +1 -1
  18. package/dist/lib/actions/serverActions.d.ts.map +1 -0
  19. package/dist/lib/actions/{severActions.js → serverActions.js} +3 -0
  20. package/dist/lib/authSessionManager.d.ts.map +1 -1
  21. package/dist/lib/authSessionManager.js +14 -7
  22. package/dist/lib/context/ChatContext.d.ts +1 -1
  23. package/dist/lib/context/ChatContext.d.ts.map +1 -1
  24. package/dist/lib/hooks/use-mobile.js +1 -0
  25. package/dist/lib/hooks/useChatSocket.js +1 -0
  26. package/dist/lib/models/blog.d.ts +3 -2
  27. package/dist/lib/models/blog.d.ts.map +1 -1
  28. package/dist/lib/models/{notfications.d.ts → notifications.d.ts} +1 -1
  29. package/dist/lib/models/notifications.d.ts.map +1 -0
  30. package/dist/lib/models/opportunities/freelance.d.ts +48 -20
  31. package/dist/lib/models/opportunities/freelance.d.ts.map +1 -1
  32. package/dist/lib/models/opportunities/internship.d.ts +48 -20
  33. package/dist/lib/models/opportunities/internship.d.ts.map +1 -1
  34. package/dist/lib/models/opportunities/job.d.ts +58 -30
  35. package/dist/lib/models/opportunities/job.d.ts.map +1 -1
  36. package/dist/lib/models/opportunities/opportunity.d.ts +61 -33
  37. package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -1
  38. package/dist/lib/models/opportunities/opportunity.js +1 -0
  39. package/dist/lib/models/opportunities/volunteerJob.d.ts +48 -20
  40. package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -1
  41. package/dist/lib/models/package.d.ts +2 -2
  42. package/dist/lib/models/props.d.ts +21 -0
  43. package/dist/lib/models/props.d.ts.map +1 -1
  44. package/dist/lib/models/stay.d.ts +2 -2
  45. package/dist/lib/models/user.d.ts +19 -4
  46. package/dist/lib/models/user.d.ts.map +1 -1
  47. package/dist/lib/models/user.js +5 -0
  48. package/dist/lib/userAtom.d.ts +24 -4
  49. package/dist/lib/userAtom.d.ts.map +1 -1
  50. package/dist/lib/userAtom.js +13 -11
  51. package/dist/lib/utils/socialMediaUrl.d.ts +25 -0
  52. package/dist/lib/utils/socialMediaUrl.d.ts.map +1 -0
  53. package/dist/lib/utils/socialMediaUrl.js +97 -0
  54. package/dist/lib/utils.js +4 -4
  55. package/package.json +2 -1
  56. package/dist/lib/actions/severActions.d.ts.map +0 -1
  57. package/dist/lib/models/notfications.d.ts.map +0 -1
  58. /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<string, string> | undefined;
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<string, string> | undefined;
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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,CAiB/J;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"}
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":"AAKA,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAsE/D,wBAAsB,YAAY,CAAC,CAAC,EAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,IAAI,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAID,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
+ {"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 { ApiError } from "next/dist/server/api-utils";
2
- import { getCookieHeader, getRole } from "./severActions";
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
- export async function refreshToken(input, method, body) {
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
- const roleForEndpoint = role == "admin" ? "user" : role;
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: 401, error: data.error };
116
+ throw { statusCode: response.status, error: data.error || data.message || 'Session expired' };
63
117
  }
64
118
  }
65
119
  catch (error) {
66
- throw new ApiError(error.statusCode ?? 500, error.error);
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
- // ✅ Sever-safe exported functions
126
+ // ✅ Server-safe exported functions
70
127
  export async function get(url, includeAuth = true) {
71
128
  return customFetch(url, 'GET', undefined, { includeAuth });
72
129
  }
@@ -1,3 +1,3 @@
1
1
  export declare function getCookieHeader(): Promise<string>;
2
2
  export declare function getRole(): Promise<string | null>;
3
- //# sourceMappingURL=severActions.d.ts.map
3
+ //# sourceMappingURL=serverActions.d.ts.map
@@ -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,SA8BzC"}
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, resetAuthState } from './userAtom'; // Import the atom itself
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
- useEffect(() => {
28
- if (isError) {
29
- console.log("Session validation failed. Logging out.");
30
- resetAuthState();
31
- }
32
- }, [isError, resetAuthState]);
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/notfications";
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,wBAAwB,CAAC;AAMpD,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"}
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"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import * as React from "react";
2
3
  const MOBILE_BREAKPOINT = 768;
3
4
  export function useIsMobile() {
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useEffect } from "react";
2
3
  import { useAtom, useAtomValue } from "jotai";
3
4
  import { getSocket, socketAtom, isConnectedAtom, disconnectSocket } from "../actions/socket";
@@ -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: "draft" | "posted" | "archived" | "pending" | "denied";
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: "draft" | "posted" | "archived" | "pending" | "denied";
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"}
@@ -91,4 +91,4 @@ export declare const NotifSchema: z.ZodObject<{
91
91
  } | undefined;
92
92
  }>;
93
93
  export type Notif = z.infer<typeof NotifSchema>;
94
- //# sourceMappingURL=notfications.d.ts.map
94
+ //# sourceMappingURL=notifications.d.ts.map
@@ -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<[string, ...string[]]>>;
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<[string, ...string[]]>, z.ZodString>>;
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<string, string> | undefined;
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<string, string> | undefined;
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<[string, ...string[]]>;
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<[string, ...string[]]>>;
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: string;
300
+ type: "free" | "stipend" | "salary" | "project-based";
285
301
  currency: string;
286
302
  amount?: number | undefined;
287
- frequency?: string | undefined;
303
+ frequency?: "daily" | "weekly" | "monthly" | "yearly" | "one-time" | undefined;
288
304
  }, {
289
- type: string;
305
+ type: "free" | "stipend" | "salary" | "project-based";
290
306
  currency: string;
291
307
  amount?: number | undefined;
292
- frequency?: string | undefined;
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: "draft" | "archived" | "pending" | "denied" | "open" | "closed" | "deleted";
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: string;
351
+ type: "free" | "stipend" | "salary" | "project-based";
336
352
  currency: string;
337
353
  amount?: number | undefined;
338
- frequency?: string | undefined;
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<string, string> | undefined;
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?: string | undefined;
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: "draft" | "archived" | "pending" | "denied" | "open" | "closed" | "deleted";
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: string;
480
+ type: "free" | "stipend" | "salary" | "project-based";
459
481
  currency: string;
460
482
  amount?: number | undefined;
461
- frequency?: string | undefined;
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<string, string> | undefined;
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?: string | undefined;
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrC,CAAC"}
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"}