@myrjfa/state 2.2.0 → 2.3.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 (117) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +20 -3
  3. package/dist/index.d.ts +8 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +8 -0
  6. package/dist/lib/actions/actions.d.ts +13 -13
  7. package/dist/lib/actions/actions.d.ts.map +1 -1
  8. package/dist/lib/actions/actions.js +5 -4
  9. package/dist/lib/actions/auth.d.ts +116 -7
  10. package/dist/lib/actions/auth.d.ts.map +1 -1
  11. package/dist/lib/actions/auth.js +59 -10
  12. package/dist/lib/actions/chat.d.ts +261 -24
  13. package/dist/lib/actions/chat.d.ts.map +1 -1
  14. package/dist/lib/actions/chat.js +525 -41
  15. package/dist/lib/actions/fetcher.d.ts.map +1 -1
  16. package/dist/lib/actions/fetcher.js +26 -9
  17. package/dist/lib/actions/serverActions.d.ts +1 -0
  18. package/dist/lib/actions/serverActions.d.ts.map +1 -1
  19. package/dist/lib/actions/serverActions.js +15 -0
  20. package/dist/lib/actions/socket.d.ts.map +1 -1
  21. package/dist/lib/actions/socket.js +5 -1
  22. package/dist/lib/actions.d.ts +26 -26
  23. package/dist/lib/actions.d.ts.map +1 -1
  24. package/dist/lib/actions.js +17 -12
  25. package/dist/lib/adminDashboardActions.d.ts +15 -3
  26. package/dist/lib/adminDashboardActions.d.ts.map +1 -1
  27. package/dist/lib/adminDashboardActions.js +16 -7
  28. package/dist/lib/authSessionManager.d.ts.map +1 -1
  29. package/dist/lib/authSessionManager.js +77 -12
  30. package/dist/lib/authSessionPolicy.d.ts +44 -0
  31. package/dist/lib/authSessionPolicy.d.ts.map +1 -0
  32. package/dist/lib/authSessionPolicy.js +61 -0
  33. package/dist/lib/authorizationActions.d.ts +77 -0
  34. package/dist/lib/authorizationActions.d.ts.map +1 -0
  35. package/dist/lib/authorizationActions.js +61 -0
  36. package/dist/lib/context/ChatContext.d.ts +25 -6
  37. package/dist/lib/context/ChatContext.d.ts.map +1 -1
  38. package/dist/lib/context/ChatContext.js +356 -245
  39. package/dist/lib/discountActions.d.ts +43 -0
  40. package/dist/lib/discountActions.d.ts.map +1 -0
  41. package/dist/lib/discountActions.js +69 -0
  42. package/dist/lib/loyaltyActions.d.ts +32 -0
  43. package/dist/lib/loyaltyActions.d.ts.map +1 -0
  44. package/dist/lib/loyaltyActions.js +92 -0
  45. package/dist/lib/models/adventure.d.ts +0 -2
  46. package/dist/lib/models/adventure.d.ts.map +1 -1
  47. package/dist/lib/models/authorization.d.ts +108 -0
  48. package/dist/lib/models/authorization.d.ts.map +1 -0
  49. package/dist/lib/models/authorization.js +266 -0
  50. package/dist/lib/models/blog.d.ts +6 -6
  51. package/dist/lib/models/booking.d.ts +7 -2
  52. package/dist/lib/models/booking.d.ts.map +1 -1
  53. package/dist/lib/models/chat.d.ts +418 -32
  54. package/dist/lib/models/chat.d.ts.map +1 -1
  55. package/dist/lib/models/chat.js +5 -1
  56. package/dist/lib/models/discount.d.ts +589 -138
  57. package/dist/lib/models/discount.d.ts.map +1 -1
  58. package/dist/lib/models/discount.js +118 -96
  59. package/dist/lib/models/guide.d.ts +0 -2
  60. package/dist/lib/models/guide.d.ts.map +1 -1
  61. package/dist/lib/models/loyalty.d.ts +88 -0
  62. package/dist/lib/models/loyalty.d.ts.map +1 -0
  63. package/dist/lib/models/loyalty.js +1 -0
  64. package/dist/lib/models/notifications.d.ts +6 -6
  65. package/dist/lib/models/opportunities/freelance.d.ts +66 -20
  66. package/dist/lib/models/opportunities/freelance.d.ts.map +1 -1
  67. package/dist/lib/models/opportunities/internship.d.ts +66 -20
  68. package/dist/lib/models/opportunities/internship.d.ts.map +1 -1
  69. package/dist/lib/models/opportunities/job.d.ts +66 -20
  70. package/dist/lib/models/opportunities/job.d.ts.map +1 -1
  71. package/dist/lib/models/opportunities/opportunity.d.ts +66 -20
  72. package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -1
  73. package/dist/lib/models/opportunities/opportunity.js +2 -0
  74. package/dist/lib/models/opportunities/volunteerJob.d.ts +66 -20
  75. package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -1
  76. package/dist/lib/models/package.d.ts +77 -216
  77. package/dist/lib/models/package.d.ts.map +1 -1
  78. package/dist/lib/models/package.js +0 -2
  79. package/dist/lib/models/portfolio.d.ts +2 -2
  80. package/dist/lib/models/pricing.d.ts +12 -12
  81. package/dist/lib/models/props.d.ts +1 -1
  82. package/dist/lib/models/props.d.ts.map +1 -1
  83. package/dist/lib/models/rental.d.ts +0 -2
  84. package/dist/lib/models/rental.d.ts.map +1 -1
  85. package/dist/lib/models/review.d.ts +2 -2
  86. package/dist/lib/models/stay.d.ts +17 -17
  87. package/dist/lib/models/store.d.ts +71 -0
  88. package/dist/lib/models/store.d.ts.map +1 -0
  89. package/dist/lib/models/store.js +1 -0
  90. package/dist/lib/models/tile.d.ts +0 -2
  91. package/dist/lib/models/tile.d.ts.map +1 -1
  92. package/dist/lib/models/travelPackage.d.ts +211 -310
  93. package/dist/lib/models/travelPackage.d.ts.map +1 -1
  94. package/dist/lib/models/travelPackage.js +0 -2
  95. package/dist/lib/models/user.d.ts +32 -8
  96. package/dist/lib/models/user.d.ts.map +1 -1
  97. package/dist/lib/models/user.js +10 -1
  98. package/dist/lib/opportunityFormPage.d.ts +1 -0
  99. package/dist/lib/opportunityFormPage.d.ts.map +1 -1
  100. package/dist/lib/opportunityFormPage.js +1 -0
  101. package/dist/lib/rentalActions.js +0 -1
  102. package/dist/lib/rentalDummyData.d.ts.map +1 -1
  103. package/dist/lib/rentalDummyData.js +0 -35
  104. package/dist/lib/rentalFormPage.d.ts +0 -2
  105. package/dist/lib/rentalFormPage.d.ts.map +1 -1
  106. package/dist/lib/rentalFormPage.js +0 -3
  107. package/dist/lib/storeActions.d.ts +25 -0
  108. package/dist/lib/storeActions.d.ts.map +1 -0
  109. package/dist/lib/storeActions.js +46 -0
  110. package/dist/lib/storeDummyData.d.ts +2 -26
  111. package/dist/lib/storeDummyData.d.ts.map +1 -1
  112. package/dist/lib/userAtom.d.ts +178 -42
  113. package/dist/lib/userAtom.d.ts.map +1 -1
  114. package/dist/lib/userAtom.js +80 -52
  115. package/dist/lib/utils.d.ts.map +1 -1
  116. package/dist/lib/utils.js +1 -1
  117. package/package.json +4 -2
@@ -1,15 +1,104 @@
1
+ import type { SessionIdentity } from "../authSessionPolicy";
1
2
  export declare function signIn(formData: {
2
3
  email: string;
3
4
  password: string;
4
- role: string;
5
+ role: "user" | "host";
5
6
  }): Promise<{
6
7
  user: {
7
8
  username: string;
9
+ email: string;
8
10
  firstName: string;
9
11
  lastName: string;
10
- email: string;
12
+ phoneNumber: string;
11
13
  password: string;
14
+ countryCode: string;
15
+ country: string;
16
+ gender: "male" | "female" | "other";
17
+ rating: number;
18
+ ratingCount: number;
19
+ reviewCount: number;
20
+ joinedDate: Date;
21
+ isActive: boolean;
22
+ lastActive: Date;
23
+ verifiedEmail: boolean;
24
+ verifiedMobile: boolean;
25
+ role: string;
26
+ baseAccountType?: "user" | "host" | undefined;
27
+ legacyRole?: string | undefined;
28
+ staffProfileId?: string | null | undefined;
29
+ accountType?: "user" | "host" | "staff" | undefined;
30
+ _id?: string | undefined;
31
+ location?: string | undefined;
32
+ pinCode?: string | undefined;
33
+ dob?: Date | undefined;
34
+ profilePic?: string | undefined;
35
+ blogsCount?: number | undefined;
36
+ userBio?: string | undefined;
37
+ userIdCard?: string | undefined;
38
+ watchHistory?: string[] | undefined;
39
+ accessToken?: string | undefined;
40
+ refreshToken?: string | undefined;
41
+ verifiedIdCard?: boolean | undefined;
42
+ permissions?: string[] | undefined;
43
+ baseUserId?: string | null | undefined;
44
+ baseHostId?: string | null | undefined;
45
+ socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
46
+ userResume?: string | undefined;
47
+ skills?: {
48
+ skill: string;
49
+ skillExpertise: number;
50
+ }[] | undefined;
51
+ wishlist?: string[] | undefined;
52
+ favBlogs?: string[] | undefined;
53
+ favPackages?: string[] | undefined;
54
+ id?: string | undefined;
55
+ selfie?: string | undefined;
56
+ selfieAction?: string | undefined;
57
+ jobCount?: number | undefined;
58
+ travelPackageCount?: number | undefined;
59
+ gstNumber?: string | undefined;
60
+ panCard?: string | undefined;
61
+ verifiedBusiness?: "true" | "false" | "inProgress" | undefined;
62
+ properties?: {
63
+ country: string;
64
+ type: string;
65
+ name: string;
66
+ address: string;
67
+ city: string;
68
+ state: string;
69
+ pinCode?: string | undefined;
70
+ registrationNumber?: string | undefined;
71
+ }[] | undefined;
72
+ businessDocument?: string | undefined;
73
+ businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
74
+ businessIdNumber?: string | undefined;
75
+ businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
76
+ businessVerificationDenialReason?: string | undefined;
77
+ };
78
+ message: string;
79
+ success?: undefined;
80
+ status?: undefined;
81
+ error?: undefined;
82
+ data?: undefined;
83
+ } | {
84
+ success: boolean;
85
+ status: any;
86
+ error: any;
87
+ data: any;
88
+ user?: undefined;
89
+ message?: undefined;
90
+ }>;
91
+ export declare function signInStaff(formData: {
92
+ email: string;
93
+ password: string;
94
+ }): Promise<{
95
+ user: {
96
+ username: string;
97
+ email: string;
98
+ firstName: string;
99
+ lastName: string;
12
100
  phoneNumber: string;
101
+ password: string;
13
102
  countryCode: string;
14
103
  country: string;
15
104
  gender: "male" | "female" | "other";
@@ -21,7 +110,12 @@ export declare function signIn(formData: {
21
110
  lastActive: Date;
22
111
  verifiedEmail: boolean;
23
112
  verifiedMobile: boolean;
24
- role: "host" | "user" | "admin" | "hr" | "sales";
113
+ role: string;
114
+ baseAccountType?: "user" | "host" | undefined;
115
+ legacyRole?: string | undefined;
116
+ staffProfileId?: string | null | undefined;
117
+ accountType?: "user" | "host" | "staff" | undefined;
118
+ _id?: string | undefined;
25
119
  location?: string | undefined;
26
120
  pinCode?: string | undefined;
27
121
  dob?: Date | undefined;
@@ -33,6 +127,9 @@ export declare function signIn(formData: {
33
127
  accessToken?: string | undefined;
34
128
  refreshToken?: string | undefined;
35
129
  verifiedIdCard?: boolean | undefined;
130
+ permissions?: string[] | undefined;
131
+ baseUserId?: string | null | undefined;
132
+ baseHostId?: string | null | undefined;
36
133
  socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
37
134
  userResume?: string | undefined;
38
135
  skills?: {
@@ -79,7 +176,7 @@ export declare function signIn(formData: {
79
176
  user?: undefined;
80
177
  message?: undefined;
81
178
  }>;
82
- export declare function logoutUser(role: string): Promise<{
179
+ export declare function logoutUser(role: string, accountTypeHint?: "user" | "host" | "staff"): Promise<{
83
180
  success: boolean;
84
181
  message?: string;
85
182
  error?: string;
@@ -87,11 +184,11 @@ export declare function logoutUser(role: string): Promise<{
87
184
  export declare function verifyEmailOtp(email: string, otp: string, role: "user" | "host"): Promise<{
88
185
  user: {
89
186
  username: string;
187
+ email: string;
90
188
  firstName: string;
91
189
  lastName: string;
92
- email: string;
93
- password: string;
94
190
  phoneNumber: string;
191
+ password: string;
95
192
  countryCode: string;
96
193
  country: string;
97
194
  gender: "male" | "female" | "other";
@@ -103,7 +200,12 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
103
200
  lastActive: Date;
104
201
  verifiedEmail: boolean;
105
202
  verifiedMobile: boolean;
106
- role: "host" | "user" | "admin" | "hr" | "sales";
203
+ role: string;
204
+ baseAccountType?: "user" | "host" | undefined;
205
+ legacyRole?: string | undefined;
206
+ staffProfileId?: string | null | undefined;
207
+ accountType?: "user" | "host" | "staff" | undefined;
208
+ _id?: string | undefined;
107
209
  location?: string | undefined;
108
210
  pinCode?: string | undefined;
109
211
  dob?: Date | undefined;
@@ -115,6 +217,9 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
115
217
  accessToken?: string | undefined;
116
218
  refreshToken?: string | undefined;
117
219
  verifiedIdCard?: boolean | undefined;
220
+ permissions?: string[] | undefined;
221
+ baseUserId?: string | null | undefined;
222
+ baseHostId?: string | null | undefined;
118
223
  socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
119
224
  userResume?: string | undefined;
120
225
  skills?: {
@@ -176,7 +281,11 @@ export declare function resetPassword(password: string, token: string, role: str
176
281
  }>;
177
282
  export declare function validateSession(): Promise<{
178
283
  success: boolean;
284
+ identity?: SessionIdentity;
179
285
  message?: string;
180
286
  error?: string;
287
+ statusCode?: number;
181
288
  }>;
289
+ /** Clear HTTP-only auth cookies after a local/server session mismatch. */
290
+ export declare function clearSessionCookies(): Promise<void>;
182
291
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/auth.ts"],"names":[],"mappings":"AAWA,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,CAc9G;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":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAU5D,wBAAsB,MAAM,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAeA;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgBA;AAED,wBAAsB,UAAU,CAC5B,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAC5C,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBjE;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,CAiBzJ;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;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CAuBD;AAED,0EAA0E;AAC1E,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBzD"}
@@ -1,4 +1,6 @@
1
1
  import { get, patch, post } from "./fetcher";
2
+ import { getAccountType } from "./serverActions";
3
+ import { isExpectedSignedOutError } from "../authSessionPolicy";
2
4
  function clearSensitiveBrowserState() {
3
5
  if (typeof window === "undefined")
4
6
  return;
@@ -24,11 +26,29 @@ export async function signIn(formData) {
24
26
  return { success: false, status: error.statusCode || error.status, error: error.message, data: error.data };
25
27
  }
26
28
  }
27
- export async function logoutUser(role) {
29
+ export async function signInStaff(formData) {
30
+ try {
31
+ const data = await post("/auth/staff/login", formData);
32
+ return { user: data.data.user, message: data.message };
33
+ }
34
+ catch (error) {
35
+ console.error(error.message);
36
+ return {
37
+ success: false,
38
+ status: error.statusCode || error.status,
39
+ error: error.message,
40
+ data: error.data,
41
+ };
42
+ }
43
+ }
44
+ export async function logoutUser(role, accountTypeHint) {
28
45
  clearSensitiveBrowserState();
29
46
  try {
47
+ const accountType = accountTypeHint ?? await getAccountType();
30
48
  let endpoint = '/users/logout';
31
- if (role === 'host')
49
+ if (accountType === 'staff')
50
+ endpoint = '/auth/staff/logout';
51
+ else if (accountType === 'host' || (!accountType && role === 'host'))
32
52
  endpoint = '/hosts/logout';
33
53
  const response = await get(endpoint);
34
54
  return {
@@ -79,8 +99,9 @@ export async function sendPasswordResetEmail(email, role) {
79
99
  }
80
100
  export async function changePassword(password, oldPassword, role) {
81
101
  try {
102
+ const accountType = await getAccountType();
82
103
  let endpoint = `/users/change-password`;
83
- if (role === 'host')
104
+ if (accountType === 'host' || (!accountType && role === 'host'))
84
105
  endpoint = `/hosts/change-password`;
85
106
  const data = await patch(endpoint, { oldPassword: oldPassword, password: password });
86
107
  return {
@@ -117,18 +138,46 @@ export async function resetPassword(password, token, role) {
117
138
  }
118
139
  export async function validateSession() {
119
140
  try {
120
- const endpoint = '/users/verifySession';
121
- const data = await get(endpoint);
141
+ const data = await get("/auth/session");
122
142
  return {
123
143
  success: true,
144
+ identity: data.data,
124
145
  message: data.message
125
146
  };
126
147
  }
127
148
  catch (error) {
128
- console.error(error);
129
- return {
130
- success: false,
131
- error: error.message,
132
- };
149
+ // An expired or absent session is an expected state for public pages.
150
+ // Return it as data so React Query and the Next.js development overlay
151
+ // do not treat a normal signed-out browser as an application failure.
152
+ if (isExpectedSignedOutError(error)) {
153
+ return {
154
+ success: false,
155
+ statusCode: 401,
156
+ error: error.message,
157
+ };
158
+ }
159
+ // Network and server failures remain errors so React Query can retry
160
+ // them without falsely clearing a valid cached identity.
161
+ throw error;
162
+ }
163
+ }
164
+ /** Clear HTTP-only auth cookies after a local/server session mismatch. */
165
+ export async function clearSessionCookies() {
166
+ const controller = new AbortController();
167
+ const timeout = setTimeout(() => controller.abort(), 10000);
168
+ try {
169
+ await fetch(`${process.env.NEXT_PUBLIC_API_URL}/auth/session/clear`, {
170
+ method: "POST",
171
+ credentials: "include",
172
+ headers: { "Content-Type": "application/json" },
173
+ body: "{}",
174
+ signal: controller.signal,
175
+ });
176
+ }
177
+ catch {
178
+ // Local state still resets; this endpoint is an idempotent cleanup fallback.
179
+ }
180
+ finally {
181
+ clearTimeout(timeout);
133
182
  }
134
183
  }
@@ -1,52 +1,242 @@
1
- import { Message, Milestone, Participant } from "../models/chat";
1
+ import { ChatActorRef, ChatEvent, ChatGroupInvite, ChatGroupJoinRequest, ChatPaymentIntent, ChatPaymentDetailRequest, ChatBusinessProfile, ChatQuickReply, ChatHostConversationState, ChatOwnedListing, ChatCopilotResult, ChatAIActionProposal, ChatLiveLocation, ChatCampaignDraft, ChatHostKnowledgeSource, ChatPaymentProfile, Conversation, ConversationPreference, ConversationSearchResponse, ConversationStorageSummary, Message, PinnedMessage, StarredMessage } from "../models/chat";
2
+ export declare const normalizeChatMessage: (message: any) => Message;
3
+ export declare const normalizeConversation: (conversation: any) => Conversation;
2
4
  export declare const chatApi: {
3
- getConversations: () => Promise<any[]>;
4
- getConversation: (id: string) => Promise<any>;
5
- createConversation: (data: any) => Promise<any>;
6
- updateConversation: (id: string, data: any) => Promise<any>;
5
+ searchParticipants: (query: string) => Promise<{
6
+ actorId: string;
7
+ actorModel: "User" | "HostProfile";
8
+ username: any;
9
+ displayName: any;
10
+ profilePic: any;
11
+ }[]>;
12
+ createGroup: (data: {
13
+ name: string;
14
+ participantIds: {
15
+ actorId: string;
16
+ actorModel: "User" | "HostProfile";
17
+ }[];
18
+ description?: string;
19
+ image?: string;
20
+ currency?: string;
21
+ }) => Promise<Conversation | null>;
22
+ getConversations: (params?: {
23
+ filter?: "all" | "unread" | "hosts" | "groups" | "favourites" | "archived";
24
+ q?: string;
25
+ before?: string;
26
+ limit?: number;
27
+ }) => Promise<Conversation[]>;
28
+ getConversation: (id: string) => Promise<Conversation | null>;
29
+ createConversation: (data: {
30
+ participantId: string;
31
+ participantModel: "User" | "HostProfile";
32
+ context?: {
33
+ type: "direct" | "booking" | "listing" | "companionMatch";
34
+ entityId?: string;
35
+ entityModel?: string;
36
+ };
37
+ }) => Promise<Conversation | null>;
38
+ updateConversation: (id: string, data: any) => Promise<Conversation | null>;
7
39
  deleteConversation: (id: string) => Promise<any>;
8
- addParticipants: (id: string, userIds: string[]) => Promise<{
9
- error: unknown;
10
- data: Participant[];
11
- }>;
12
- removeParticipant: (convId: string, userId: string) => Promise<any>;
13
- updateParticipant: (convId: string, userId: string, data: any) => Promise<any>;
40
+ addParticipants: (id: string, participantIds: {
41
+ actorId: string;
42
+ actorModel: "User" | "HostProfile";
43
+ }[]) => Promise<Conversation | null>;
44
+ removeParticipant: (convId: string, actorId: string, actorModel: "User" | "HostProfile") => Promise<Conversation | null>;
45
+ updateParticipant: (convId: string, actorId: string, actorModel: "User" | "HostProfile", data: {
46
+ chatRole: "admin" | "member";
47
+ }) => Promise<Conversation | null>;
14
48
  getMessages: (convId: string, params?: {
15
49
  limit?: number;
16
50
  before?: string;
51
+ around?: string;
52
+ radius?: number;
17
53
  }) => Promise<Message[]>;
18
54
  getMessage: (convId: string, id: string) => Promise<{
55
+ data: Message | null;
19
56
  error: string;
20
- data: Message;
21
57
  } | {
22
58
  error: unknown;
23
59
  data: null;
24
60
  }>;
25
- sendMessage: (convId: string, data: any) => Promise<any>;
26
- editMessage: (id: string, text: string) => Promise<any>;
27
- addMessageReaction: (id: string, emoji: string) => Promise<any>;
28
- deleteMessage: (id: string) => Promise<any>;
29
- addReaction: (id: string, emoji: string) => Promise<any>;
30
- removeReaction: (id: string) => Promise<any>;
61
+ sendMessage: (convId: string, data: any) => Promise<Message | null>;
62
+ editMessage: (id: string, text: string) => Promise<Message | null>;
63
+ addMessageReaction: (id: string, emoji: string) => Promise<Message | null>;
64
+ deleteMessage: (id: string) => Promise<Message | null>;
65
+ addReaction: (id: string, emoji: string) => Promise<Message | null>;
66
+ removeReaction: (id: string) => Promise<Message | null>;
31
67
  markRead: (convId: string, messageIds: string[]) => Promise<any>;
32
- getMilestones: (convId: string) => Promise<Milestone[]>;
68
+ blockParticipant: (targetId: string, targetModel: "User" | "HostProfile") => Promise<{
69
+ blocked: boolean;
70
+ }>;
71
+ restrictParticipant: (convId: string, actorId: string, actorModel: "User" | "HostProfile", restrictedUntil: string | null) => Promise<Conversation | null>;
72
+ getConversationPreference: (id: string) => Promise<ConversationPreference>;
73
+ updateConversationPreference: (id: string, data: {
74
+ pinned?: boolean;
75
+ favourited?: boolean;
76
+ archived?: boolean;
77
+ markedUnread?: boolean;
78
+ mutedUntil?: string | null;
79
+ notificationLevel?: "all" | "mentions" | "important" | "none";
80
+ draftText?: string;
81
+ }) => Promise<ConversationPreference>;
82
+ markConversationUnread: (id: string) => Promise<ConversationPreference>;
83
+ unblockParticipant: (targetId: string, targetModel: "User" | "HostProfile") => Promise<{
84
+ blocked: boolean;
85
+ }>;
86
+ getBlockStatus: (targetId: string, targetModel: "User" | "HostProfile") => Promise<{
87
+ isBlocked: boolean;
88
+ hasBlocked: boolean;
89
+ }>;
90
+ getEvents: (convId: string) => Promise<ChatEvent[]>;
91
+ createEvent: (convId: string, data: any) => Promise<ChatEvent>;
92
+ updateEvent: (eventId: string, data: any) => Promise<ChatEvent>;
93
+ deleteEvent: (eventId: string) => Promise<any>;
94
+ rsvpEvent: (eventId: string, status: "going" | "maybe" | "not_going") => Promise<ChatEvent>;
95
+ getEventCalendarUrl: (eventId: string) => string;
96
+ createGroupInvite: (convId: string, data: {
97
+ approvalRequired?: boolean;
98
+ expiresAt?: string | null;
99
+ maxUses?: number | null;
100
+ }) => Promise<ChatGroupInvite>;
101
+ getGroupInvites: (convId: string) => Promise<ChatGroupInvite[]>;
102
+ revokeGroupInvite: (inviteId: string) => Promise<any>;
103
+ joinGroupWithToken: (token: string) => Promise<any>;
104
+ getGroupJoinRequests: (convId: string) => Promise<ChatGroupJoinRequest[]>;
105
+ reviewGroupJoinRequest: (requestId: string, status: "approved" | "rejected") => Promise<ChatGroupJoinRequest>;
106
+ moderateMessage: (messageId: string, reason?: string) => Promise<Message>;
107
+ reportContent: (convId: string, data: {
108
+ messageId?: string;
109
+ targetActor?: ChatActorRef;
110
+ reason: string;
111
+ }) => Promise<any>;
112
+ getPaymentProfile: () => Promise<ChatPaymentProfile>;
113
+ updatePaymentProfile: (methods: Array<{
114
+ methodId?: string;
115
+ type: "upi" | "bank" | "qr";
116
+ value: string;
117
+ label?: string;
118
+ bankName?: string;
119
+ accountHolderName?: string;
120
+ qrImageUrl?: string;
121
+ isDefault?: boolean;
122
+ isShareable?: boolean;
123
+ }>) => Promise<ChatPaymentProfile>;
124
+ getSharedPaymentDetails: (convId: string, target: ChatActorRef) => Promise<ChatPaymentProfile>;
125
+ sharePaymentDetails: (convId: string) => Promise<{
126
+ request: ChatPaymentDetailRequest;
127
+ message: Message;
128
+ }>;
129
+ getPaymentDetailRequests: (convId: string) => Promise<ChatPaymentDetailRequest[]>;
130
+ requestPaymentDetails: (convId: string, target: ChatActorRef) => Promise<{
131
+ request: ChatPaymentDetailRequest;
132
+ message: Message;
133
+ }>;
134
+ respondToPaymentDetailRequest: (requestId: string, accepted: boolean, methodIds?: string[]) => Promise<{
135
+ request: ChatPaymentDetailRequest;
136
+ message: Message;
137
+ }>;
138
+ getPaymentIntents: (convId: string) => Promise<ChatPaymentIntent[]>;
139
+ createPaymentIntent: (convId: string, data: any) => Promise<ChatPaymentIntent>;
140
+ verifyPaymentIntent: (paymentIntentId: string, data: {
141
+ razorpay_order_id: string;
142
+ razorpay_payment_id: string;
143
+ razorpay_signature: string;
144
+ }) => Promise<ChatPaymentIntent>;
145
+ confirmPaymentIntent: (paymentIntentId: string, disputed?: boolean, reason?: string) => Promise<ChatPaymentIntent>;
146
+ getChatBusinessProfile: () => Promise<ChatBusinessProfile | null>;
147
+ updateChatBusinessProfile: (data: Partial<ChatBusinessProfile>) => Promise<ChatBusinessProfile>;
148
+ getChatQuickReplies: () => Promise<ChatQuickReply[]>;
149
+ saveChatQuickReply: (data: Partial<ChatQuickReply>, quickReplyId?: string) => Promise<ChatQuickReply>;
150
+ deleteChatQuickReply: (quickReplyId: string) => Promise<void>;
151
+ getHostConversationState: (conversationId: string) => Promise<ChatHostConversationState | null>;
152
+ updateHostConversationState: (conversationId: string, data: Partial<ChatHostConversationState> & {
153
+ privateNote?: string;
154
+ automationPaused?: boolean;
155
+ }) => Promise<ChatHostConversationState>;
156
+ getOwnedPublishedChatListings: (query?: string) => Promise<ChatOwnedListing[]>;
157
+ sendOwnedListingCard: (conversationId: string, listing: Pick<ChatOwnedListing, "listingId" | "category">) => Promise<Message>;
158
+ sendBookingCard: (conversationId: string, bookingId: string) => Promise<Message>;
159
+ sendQuoteCard: (conversationId: string, data: {
160
+ title: string;
161
+ description?: string;
162
+ amount: number;
163
+ currency: string;
164
+ validUntil?: string | null;
165
+ }) => Promise<Message>;
166
+ sendHostTripCard: (conversationId: string, data: {
167
+ kind: "availability";
168
+ listingId: string;
169
+ category: string;
170
+ status: "available" | "on_request" | "unavailable";
171
+ startDate: string;
172
+ endDate?: string | null;
173
+ note?: string;
174
+ } | {
175
+ kind: "itinerary";
176
+ title: string;
177
+ summary?: string;
178
+ highlights: string[];
179
+ startDate?: string | null;
180
+ endDate?: string | null;
181
+ }) => Promise<Message>;
182
+ requestChatCopilotAssistance: (conversationId: string, data: {
183
+ task: string;
184
+ instruction?: string;
185
+ targetLanguage?: string;
186
+ }) => Promise<ChatCopilotResult>;
187
+ requestChatAICommand: (conversationId: string, command: string) => Promise<{
188
+ proposal?: ChatAIActionProposal;
189
+ draft?: ChatCopilotResult;
190
+ }>;
191
+ decideChatAIProposal: (proposalId: string, confirm: boolean) => Promise<ChatAIActionProposal>;
192
+ setBusinessCommunicationConsent: (conversationId: string, channel: "campaign_transactional" | "campaign_promotional" | "business_calls", granted: boolean) => Promise<void>;
193
+ getCampaignDrafts: () => Promise<ChatCampaignDraft[]>;
194
+ getBusinessCommunicationConsents: (conversationId: string) => Promise<Array<{
195
+ channel: "campaign_transactional" | "campaign_promotional" | "business_calls";
196
+ status: "granted" | "revoked";
197
+ }>>;
198
+ createCampaignDraft: (data: Partial<ChatCampaignDraft>) => Promise<ChatCampaignDraft>;
199
+ updateCampaign: (campaignId: string, data: {
200
+ action: "schedule" | "pause" | "cancel";
201
+ scheduledAt?: string;
202
+ }) => Promise<ChatCampaignDraft>;
203
+ getChatHostKnowledgeSources: () => Promise<ChatHostKnowledgeSource[]>;
204
+ saveChatHostKnowledgeSource: (data: Omit<ChatHostKnowledgeSource, "_id"> & {
205
+ _id?: string;
206
+ }) => Promise<ChatHostKnowledgeSource>;
207
+ deleteChatHostKnowledgeSource: (sourceId: string) => Promise<void>;
208
+ getActiveLiveLocations: (conversationId: string) => Promise<ChatLiveLocation[]>;
209
+ startLiveLocation: (conversationId: string, data: {
210
+ latitude: number;
211
+ longitude: number;
212
+ accuracy?: number;
213
+ label?: string;
214
+ durationMinutes: number;
215
+ }) => Promise<ChatLiveLocation>;
216
+ updateLiveLocation: (liveLocationId: string, data: {
217
+ latitude: number;
218
+ longitude: number;
219
+ accuracy?: number;
220
+ }) => Promise<ChatLiveLocation>;
221
+ revokeLiveLocation: (liveLocationId: string) => Promise<void>;
222
+ getMilestones: (convId: string) => Promise<any[]>;
33
223
  createMilestone: (convId: string, data: any) => Promise<{
34
- error: string;
35
224
  data: any;
225
+ error: string;
36
226
  } | {
37
227
  error: unknown;
38
228
  data: null;
39
229
  }>;
40
230
  toggleMilestone: (id: string, note?: string) => Promise<{
41
- error: string;
42
231
  data: any;
232
+ error: string;
43
233
  } | {
44
234
  error: unknown;
45
235
  data: null;
46
236
  }>;
47
237
  updateMilestone: (id: string, data: any) => Promise<{
48
- error: string;
49
238
  data: any;
239
+ error: string;
50
240
  } | {
51
241
  error: unknown;
52
242
  data: null;
@@ -73,7 +263,7 @@ export declare const chatApi: {
73
263
  error: unknown;
74
264
  data: null;
75
265
  }>;
76
- settleSplit: (id: string, targetUserId: string, amount: number) => Promise<{
266
+ settleSplit: (id: string, targetActorId: string, amount: number, targetActorModel: "User" | "HostProfile") => Promise<{
77
267
  error: string;
78
268
  data: any;
79
269
  } | {
@@ -96,6 +286,12 @@ export declare const chatApi: {
96
286
  error: unknown;
97
287
  data: null;
98
288
  }>;
289
+ transcribeVoice: (file: File, language?: string) => Promise<{
290
+ text: string;
291
+ language: string | null;
292
+ provider: string;
293
+ model: string;
294
+ }>;
99
295
  getExpenseAnalytics: (convId: string) => Promise<any>;
100
296
  getPolls: (convId: string) => Promise<any[]>;
101
297
  getPollById: (pollId: string) => Promise<any>;
@@ -106,9 +302,50 @@ export declare const chatApi: {
106
302
  error: unknown;
107
303
  data: null;
108
304
  }>;
305
+ updatePoll: (pollId: string, data: {
306
+ question: string;
307
+ options: string[];
308
+ allowMultiple: boolean;
309
+ }) => Promise<{
310
+ data: any;
311
+ error: string;
312
+ } | {
313
+ error: unknown;
314
+ data: null;
315
+ }>;
316
+ searchConversationMessages: (convId: string, params: {
317
+ q?: string;
318
+ senderId?: string;
319
+ senderModel?: "User" | "HostProfile";
320
+ from?: string;
321
+ to?: string;
322
+ contentType?: string;
323
+ before?: string;
324
+ limit?: number;
325
+ }) => Promise<ConversationSearchResponse>;
326
+ getSharedContent: (convId: string, section: string, before?: string) => Promise<{
327
+ items: any[];
328
+ section: string;
329
+ nextCursor?: string | null;
330
+ }>;
331
+ getConversationStorage: (convId: string) => Promise<ConversationStorageSummary>;
332
+ starMessage: (messageId: string) => Promise<any>;
333
+ unstarMessage: (messageId: string) => Promise<any>;
334
+ deleteMessageForMe: (messageId: string) => Promise<{
335
+ messageId: string;
336
+ deletedForMe: boolean;
337
+ }>;
338
+ forwardMessage: (messageId: string, targetConversationIds: string[]) => Promise<{
339
+ conversationId: string;
340
+ message: Message;
341
+ }[]>;
342
+ getStarredMessages: (convId: string) => Promise<StarredMessage[]>;
343
+ pinMessage: (messageId: string, expiresAt?: string) => Promise<any>;
344
+ unpinMessage: (messageId: string) => Promise<any>;
345
+ getPinnedMessages: (convId: string) => Promise<PinnedMessage[]>;
109
346
  votePoll: (pollId: string, optionIndex: number) => Promise<{
347
+ data: any;
110
348
  error: string;
111
- data: Message;
112
349
  } | {
113
350
  error: unknown;
114
351
  data: null;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKjE,eAAO,MAAM,OAAO;;0BAWY,MAAM;+BASD,GAAG;6BASL,MAAM,QAAQ,GAAG;6BASjB,MAAM;0BAST,MAAM,WAAW,MAAM,EAAE;;cAMV,WAAW,EAAE;;gCAGtB,MAAM,UAAU,MAAM;gCAStB,MAAM,UAAU,MAAM,QAAQ,GAAG;0BAWvC,MAAM,WAAW;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;yBAYrD,MAAM,MAAM,MAAM;eAED,MAAM;cAAQ,OAAO;;;;;0BAOrC,MAAM,QAAQ,GAAG;sBASrB,MAAM,QAAQ,MAAM;6BASb,MAAM,SAAS,MAAM;wBAS1B,MAAM;sBASR,MAAM,SAAS,MAAM;yBASlB,MAAM;uBASR,MAAM,cAAc,MAAM,EAAE;4BAWvB,MAAM;8BASJ,MAAM,QAAQ,GAAG;eAEJ,MAAM;cAAQ,GAAG;;;;;0BAOlC,MAAM,SAAS,MAAM;eAEH,MAAM;cAAQ,GAAG;;;;;0BAOnC,MAAM,QAAQ,GAAG;eAEC,MAAM;cAAQ,GAAG;;;;;0BAOnC,MAAM;eAEU,MAAM;cAAQ,GAAG;;;;;0BASjC,MAAM;4BASJ,MAAM,QAAQ,GAAG;eAEF,MAAM;cAAQ,GAAG;;;;;wBAOpC,MAAM,QAAQ,GAAG;eAEG,MAAM;cAAQ,GAAG;;;;;sBAOvC,MAAM,gBAAgB,MAAM,UAAU,MAAM;eAEvB,MAAM;cAAQ,GAAG;;;;;wBAOpC,MAAM;eAEY,MAAM;cAAQ,GAAG;;;;;0BAOjC,MAAM;mCASG,MAAM;4BASb,QAAQ;eAEO,MAAM;cAAQ,GAAG;;;;;kCAO1B,MAAM;uBAUjB,MAAM;0BASH,MAAM;yBASP,MAAM,QAAQ,GAAG;eAEC,MAAM;cAAQ,OAAO;;;;;uBAOzC,MAAM,eAAe,MAAM;eAEN,MAAM;cAAQ,OAAO;;;;;CAOtE,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,OAAO,EAEP,aAAa,EACb,cAAc,EACjB,MAAM,gBAAgB,CAAC;AAWxB,eAAO,MAAM,oBAAoB,GAAI,SAAS,GAAG,KAAG,OA4BlD,CAAC;AAEH,eAAO,MAAM,qBAAqB,GAAI,cAAc,GAAG,KAAG,YA+CxD,CAAC;AAyCH,eAAO,MAAM,OAAO;gCACkB,MAAM;;oBAIM,MAAM,GAAG,aAAa;;;;;wBAM1C;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAA;SAAE,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;gCAK5I;QAC9B,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;QAC3E,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB;0BAgB2B,MAAM;+BASD;QAC7B,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,GAAG,aAAa,CAAC;QACzC,OAAO,CAAC,EAAE;YACN,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC;YAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;KACL;6BAS8B,MAAM,QAAQ,GAAG;6BASjB,MAAM;0BAST,MAAM,kBAAkB;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,EAAE;gCAS3E,MAAM,WAAW,MAAM,cAAc,MAAM,GAAG,aAAa;gCAS3D,MAAM,WAAW,MAAM,cAAc,MAAM,GAAG,aAAa,QAAQ;QAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAA;KAAE;0BAWzG,MAAM,WAAW;QACzC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;yBAc0B,MAAM,MAAM,MAAM;;eAED,MAAM;;;;;0BAUtB,MAAM,QAAQ,GAAG;sBASrB,MAAM,QAAQ,MAAM;6BASb,MAAM,SAAS,MAAM;wBAS1B,MAAM;sBASR,MAAM,SAAS,MAAM;yBASlB,MAAM;uBASR,MAAM,cAAc,MAAM,EAAE;iCAUlB,MAAM,eAAe,MAAM,GAAG,aAAa;iBACZ,OAAO;;kCAMrC,MAAM,WAAW,MAAM,cAAc,MAAM,GAAG,aAAa,mBAAmB,MAAM,GAAG,IAAI;oCAOzF,MAAM;uCAKpC,MAAM,QACJ;QACF,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,iBAAiB,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;QAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB;iCAK8B,MAAM;mCAIJ,MAAM,eAAe,MAAM,GAAG,aAAa;iBACf,OAAO;;+BAKvC,MAAM,eAAe,MAAM,GAAG,aAAa;mBAGjD,OAAO;oBAAc,OAAO;;wBAK7B,MAAM,KAAG,OAAO,CAAC,SAAS,EAAE,CAAC;0BAI3B,MAAM,QAAQ,GAAG,KAAG,OAAO,CAAC,SAAS,CAAC;2BAIrC,MAAM,QAAQ,GAAG,KAAG,OAAO,CAAC,SAAS,CAAC;2BAItC,MAAM;yBAIR,MAAM,UAAU,OAAO,GAAG,OAAO,GAAG,WAAW,KAAG,OAAO,CAAC,SAAS,CAAC;mCAIhE,MAAM;gCACH,MAAM,QAAQ;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAG,OAAO,CAAC,eAAe,CAAC;8BAI7H,MAAM,KAAG,OAAO,CAAC,eAAe,EAAE,CAAC;kCAI/B,MAAM;gCAIR,MAAM;mCAIH,MAAM,KAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;wCAInC,MAAM,UAAU,UAAU,GAAG,UAAU;iCAI9C,MAAM,WAAW,MAAM;4BAI5B,MAAM,QAAQ;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;6BAIjF,OAAO,CAAC,kBAAkB,CAAC;oCAIlB,KAAK,CAAC;QACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC,KAAG,OAAO,CAAC,kBAAkB,CAAC;sCAIQ,MAAM,UAAU,YAAY;kCAMhC,MAAM,KAAG,OAAO,CAAC;QAAE,OAAO,EAAE,wBAAwB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;uCAOpE,MAAM,KAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;oCAOzE,MAAM,UACN,YAAY,KACrB,OAAO,CAAC;QAAE,OAAO,EAAE,wBAAwB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;+CAQpD,MAAM,YACP,OAAO,cACN,MAAM,EAAE,KACpB,OAAO,CAAC;QAAE,OAAO,EAAE,wBAAwB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;gCAOjC,MAAM,KAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;kCAInC,MAAM,QAAQ,GAAG,KAAG,OAAO,CAAC,iBAAiB,CAAC;2CAIrC,MAAM,QAAQ;QACvD,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;KAC9B,KAAG,OAAO,CAAC,iBAAiB,CAAC;4CAIgB,MAAM,+BAA6B,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAAC;kCAIlF,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;sCAI7B,OAAO,CAAC,mBAAmB,CAAC,KAAG,OAAO,CAAC,mBAAmB,CAAC;+BAIpE,OAAO,CAAC,cAAc,EAAE,CAAC;+BAIvB,OAAO,CAAC,cAAc,CAAC,iBAAiB,MAAM,KAAG,OAAO,CAAC,cAAc,CAAC;yCAM9D,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;+CAGhB,MAAM,KAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;kDAI/C,MAAM,QAAQ,OAAO,CAAC,yBAAyB,CAAC,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAG,OAAO,CAAC,yBAAyB,CAAC;uDAI7I,OAAO,CAAC,gBAAgB,EAAE,CAAC;2CAK1D,MAAM,WACb,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,UAAU,CAAC,KAC1D,OAAO,CAAC,OAAO,CAAC;sCAOqB,MAAM,aAAa,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;oCAQhE,MAAM,QAChB;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAC5G,OAAO,CAAC,OAAO,CAAC;uCAQC,MAAM,QAEhB;QACE,IAAI,EAAE,cAAc,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;QACnD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,GACC;QACE,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,KACN,OAAO,CAAC,OAAO,CAAC;mDAQC,MAAM,QAChB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KACtE,OAAO,CAAC,iBAAiB,CAAC;2CAKT,MAAM,WACb,MAAM,KAChB,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,oBAAoB,CAAC;QAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;KAAE,CAAC;uCAOjC,MAAM,WAAW,OAAO,KAAG,OAAO,CAAC,oBAAoB,CAAC;sDAK7E,MAAM,WACb,wBAAwB,GAAG,sBAAsB,GAAG,gBAAgB,WACpE,OAAO,KACjB,OAAO,CAAC,IAAI,CAAC;6BAGa,OAAO,CAAC,iBAAiB,EAAE,CAAC;uDAKrC,MAAM,KACvB,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,wBAAwB,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;gCAMjG,OAAO,CAAC,iBAAiB,CAAC,KAAG,OAAO,CAAC,iBAAiB,CAAC;iCAKzE,MAAM,QACZ;QAAE,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KACxE,OAAO,CAAC,iBAAiB,CAAC;uCAIU,OAAO,CAAC,uBAAuB,EAAE,CAAC;wCAK/D,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,KAC9D,OAAO,CAAC,uBAAuB,CAAC;8CAMa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;6CAGvB,MAAM,KAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;wCAIzC,MAAM,QAAQ;QACpD,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;KACnG,KAAG,OAAO,CAAC,gBAAgB,CAAC;yCAIc,MAAM,QAAQ;QACrD,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC1D,KAAG,OAAO,CAAC,gBAAgB,CAAC;yCAIc,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;4BAKnC,MAAM;8BASJ,MAAM,QAAQ,GAAG;;eAEJ,MAAM;;;;;0BAOvB,MAAM,SAAS,MAAM;;eAEH,MAAM;;;;;0BAOxB,MAAM,QAAQ,GAAG;;eAEC,MAAM;;;;;0BAOxB,MAAM;eAEU,MAAM;cAAQ,GAAG;;;;;0BASjC,MAAM;4BASJ,MAAM,QAAQ,GAAG;eAEF,MAAM;cAAQ,GAAG;;;;;wBAOpC,MAAM,QAAQ,GAAG;eAEG,MAAM;cAAQ,GAAG;;;;;sBAOvC,MAAM,iBAAiB,MAAM,UAAU,MAAM,oBAAoB,MAAM,GAAG,aAAa;eAElE,MAAM;cAAQ,GAAG;;;;;wBAOpC,MAAM;eAEY,MAAM;cAAQ,GAAG;;;;;0BAOjC,MAAM;mCAiBG,MAAM;4BASb,QAAQ;eAEO,MAAM;cAAQ,GAAG;;;;;4BAOhC,IAAI,aAAa,MAAM;cAOnC,MAAM;kBACF,MAAM,GAAG,IAAI;kBACb,MAAM;eACT,MAAM;;kCAKW,MAAM;uBAUjB,MAAM;0BASH,MAAM;yBASP,MAAM,QAAQ,GAAG;eAEC,MAAM;cAAQ,OAAO;;;;;yBAOvC,MAAM,QAAQ;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE;;eAE1D,MAAM;;;;;yCAQxC,MAAM,UACN;QACJ,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;QACrC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,KACF,OAAO,CAAC,0BAA0B,CAAC;+BAcL,MAAM,WAAW,MAAM,WAAW,MAAM;;iBAGvB,MAAM;qBAA6B,MAAM,GAAG,IAAI;;qCAW3D,MAAM,KAAG,OAAO,CAAC,0BAA0B,CAAC;6BAIpD,MAAM;+BAIJ,MAAM;oCAID,MAAM;mBACS,MAAM;sBAAgB,OAAO;;gCAMhD,MAAM,yBAAyB,MAAM,EAAE;;;;iCAUtC,MAAM,KAAG,OAAO,CAAC,cAAc,EAAE,CAAC;4BAQvC,MAAM,cAAc,MAAM;8BAIxB,MAAM;gCAIJ,MAAM,KAAG,OAAO,CAAC,aAAa,EAAE,CAAC;uBAS1C,MAAM,eAAe,MAAM;;eAEN,MAAM;;;;;CAOvD,CAAC"}