@myrjfa/state 2.3.1 → 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.
- package/dist/lib/actions/actions.d.ts +6 -6
- package/dist/lib/actions/auth.d.ts +23 -19
- package/dist/lib/actions/auth.d.ts.map +1 -1
- package/dist/lib/actions/auth.js +24 -5
- package/dist/lib/actions/fetcher.d.ts.map +1 -1
- package/dist/lib/actions/fetcher.js +15 -8
- package/dist/lib/actions.d.ts +12 -12
- package/dist/lib/actions.d.ts.map +1 -1
- package/dist/lib/actions.js +3 -1
- package/dist/lib/authSessionManager.d.ts.map +1 -1
- package/dist/lib/authSessionManager.js +77 -13
- package/dist/lib/authSessionPolicy.d.ts +34 -0
- package/dist/lib/authSessionPolicy.d.ts.map +1 -1
- package/dist/lib/authSessionPolicy.js +52 -0
- package/dist/lib/models/authorization.d.ts +4 -3
- package/dist/lib/models/authorization.d.ts.map +1 -1
- package/dist/lib/models/authorization.js +4 -1
- package/dist/lib/models/blog.d.ts +4 -4
- package/dist/lib/models/discount.d.ts +52 -52
- package/dist/lib/models/notifications.d.ts +2 -2
- package/dist/lib/models/opportunities/freelance.d.ts +34 -34
- package/dist/lib/models/opportunities/internship.d.ts +34 -34
- package/dist/lib/models/opportunities/job.d.ts +34 -34
- package/dist/lib/models/opportunities/opportunity.d.ts +34 -34
- package/dist/lib/models/opportunities/volunteerJob.d.ts +34 -34
- package/dist/lib/models/package.d.ts +16 -16
- package/dist/lib/models/portfolio.d.ts +2 -2
- package/dist/lib/models/pricing.d.ts +12 -12
- package/dist/lib/models/review.d.ts +2 -2
- package/dist/lib/models/stay.d.ts +18 -18
- package/dist/lib/models/travelPackage.d.ts +36 -36
- package/dist/lib/models/user.d.ts +12 -12
- package/dist/lib/userAtom.d.ts +126 -25
- package/dist/lib/userAtom.d.ts.map +1 -1
- package/dist/lib/userAtom.js +79 -45
- package/package.json +1 -1
- package/dist/lib/actions/adminDashboard.d.ts +0 -4
- package/dist/lib/actions/adminDashboard.d.ts.map +0 -1
- package/dist/lib/actions/adminDashboard.js +0 -29
- package/dist/lib/actions/adventure.d.ts +0 -104
- package/dist/lib/actions/adventure.d.ts.map +0 -1
- package/dist/lib/actions/adventure.js +0 -203
- package/dist/lib/actions/application.d.ts +0 -35
- package/dist/lib/actions/application.d.ts.map +0 -1
- package/dist/lib/actions/application.js +0 -573
- package/dist/lib/actions/blog.d.ts +0 -61
- package/dist/lib/actions/blog.d.ts.map +0 -1
- package/dist/lib/actions/blog.js +0 -762
- package/dist/lib/actions/brand.d.ts +0 -83
- package/dist/lib/actions/brand.d.ts.map +0 -1
- package/dist/lib/actions/brand.js +0 -28
- package/dist/lib/actions/companion.d.ts +0 -174
- package/dist/lib/actions/companion.d.ts.map +0 -1
- package/dist/lib/actions/companion.js +0 -276
- package/dist/lib/actions/event.d.ts +0 -178
- package/dist/lib/actions/event.d.ts.map +0 -1
- package/dist/lib/actions/event.js +0 -214
- package/dist/lib/actions/guide.d.ts +0 -55
- package/dist/lib/actions/guide.d.ts.map +0 -1
- package/dist/lib/actions/guide.js +0 -128
- package/dist/lib/actions/hostDashboard.d.ts +0 -122
- package/dist/lib/actions/hostDashboard.d.ts.map +0 -1
- package/dist/lib/actions/hostDashboard.js +0 -329
- package/dist/lib/actions/location.d.ts +0 -141
- package/dist/lib/actions/location.d.ts.map +0 -1
- package/dist/lib/actions/location.js +0 -113
- package/dist/lib/actions/notifications.d.ts +0 -91
- package/dist/lib/actions/notifications.d.ts.map +0 -1
- package/dist/lib/actions/notifications.js +0 -83
- package/dist/lib/actions/opportunity.d.ts +0 -44
- package/dist/lib/actions/opportunity.d.ts.map +0 -1
- package/dist/lib/actions/opportunity.js +0 -318
- package/dist/lib/actions/package.d.ts +0 -85
- package/dist/lib/actions/package.d.ts.map +0 -1
- package/dist/lib/actions/package.js +0 -167
- package/dist/lib/actions/place.d.ts +0 -191
- package/dist/lib/actions/place.d.ts.map +0 -1
- package/dist/lib/actions/place.js +0 -57
- package/dist/lib/actions/portfolio.d.ts +0 -65
- package/dist/lib/actions/portfolio.d.ts.map +0 -1
- package/dist/lib/actions/portfolio.js +0 -62
- package/dist/lib/actions/property.d.ts +0 -17
- package/dist/lib/actions/property.d.ts.map +0 -1
- package/dist/lib/actions/property.js +0 -16
- package/dist/lib/actions/rental.d.ts +0 -87
- package/dist/lib/actions/rental.d.ts.map +0 -1
- package/dist/lib/actions/rental.js +0 -205
- package/dist/lib/actions/review.d.ts +0 -8
- package/dist/lib/actions/review.d.ts.map +0 -1
- package/dist/lib/actions/review.js +0 -102
- package/dist/lib/actions/room.d.ts +0 -39
- package/dist/lib/actions/room.d.ts.map +0 -1
- package/dist/lib/actions/room.js +0 -74
- package/dist/lib/actions/stay.d.ts +0 -97
- package/dist/lib/actions/stay.d.ts.map +0 -1
- package/dist/lib/actions/stay.js +0 -138
- package/dist/lib/actions/travelPackage.d.ts +0 -104
- package/dist/lib/actions/travelPackage.d.ts.map +0 -1
- package/dist/lib/actions/travelPackage.js +0 -487
- package/dist/lib/data/adventureDummyData.d.ts +0 -3
- package/dist/lib/data/adventureDummyData.d.ts.map +0 -1
- package/dist/lib/data/adventureDummyData.js +0 -138
- package/dist/lib/data/adventureFormPage.d.ts +0 -28
- package/dist/lib/data/adventureFormPage.d.ts.map +0 -1
- package/dist/lib/data/adventureFormPage.js +0 -58
- package/dist/lib/data/companionDummyData.d.ts +0 -99
- package/dist/lib/data/companionDummyData.d.ts.map +0 -1
- package/dist/lib/data/companionDummyData.js +0 -203
- package/dist/lib/data/destinations.d.ts +0 -14
- package/dist/lib/data/destinations.d.ts.map +0 -1
- package/dist/lib/data/destinations.js +0 -203
- package/dist/lib/data/eventFormPage.d.ts +0 -38
- package/dist/lib/data/eventFormPage.d.ts.map +0 -1
- package/dist/lib/data/eventFormPage.js +0 -56
- package/dist/lib/data/eventsDummyData.d.ts +0 -54
- package/dist/lib/data/eventsDummyData.d.ts.map +0 -1
- package/dist/lib/data/eventsDummyData.js +0 -586
- package/dist/lib/data/guideDummyData.d.ts +0 -3
- package/dist/lib/data/guideDummyData.d.ts.map +0 -1
- package/dist/lib/data/guideDummyData.js +0 -66
- package/dist/lib/data/opportunityFormData.d.ts +0 -13
- package/dist/lib/data/opportunityFormData.d.ts.map +0 -1
- package/dist/lib/data/opportunityFormData.js +0 -62
- package/dist/lib/data/opportunityFormPage.d.ts +0 -12
- package/dist/lib/data/opportunityFormPage.d.ts.map +0 -1
- package/dist/lib/data/opportunityFormPage.js +0 -33
- package/dist/lib/data/packageDummyData.d.ts +0 -3
- package/dist/lib/data/packageDummyData.d.ts.map +0 -1
- package/dist/lib/data/packageDummyData.js +0 -56
- package/dist/lib/data/rentalDummyData.d.ts +0 -3
- package/dist/lib/data/rentalDummyData.d.ts.map +0 -1
- package/dist/lib/data/rentalDummyData.js +0 -382
- package/dist/lib/data/rentalFormPage.d.ts +0 -11
- package/dist/lib/data/rentalFormPage.d.ts.map +0 -1
- package/dist/lib/data/rentalFormPage.js +0 -86
- package/dist/lib/data/staysDummyData.d.ts +0 -72
- package/dist/lib/data/staysDummyData.d.ts.map +0 -1
- package/dist/lib/data/staysDummyData.js +0 -694
- package/dist/lib/data/storeDummyData.d.ts +0 -33
- package/dist/lib/data/storeDummyData.d.ts.map +0 -1
- package/dist/lib/data/storeDummyData.js +0 -336
- package/dist/lib/data/travelPackageFormData.d.ts +0 -19
- package/dist/lib/data/travelPackageFormData.d.ts.map +0 -1
- package/dist/lib/data/travelPackageFormData.js +0 -51
- package/dist/lib/data/travelPackageFormPage.d.ts +0 -22
- package/dist/lib/data/travelPackageFormPage.d.ts.map +0 -1
- package/dist/lib/data/travelPackageFormPage.js +0 -40
- package/dist/lib/data/vehicleData.d.ts +0 -2
- package/dist/lib/data/vehicleData.d.ts.map +0 -1
- package/dist/lib/data/vehicleData.js +0 -187
- package/dist/lib/data/vehicleModels.d.ts +0 -2
- package/dist/lib/data/vehicleModels.d.ts.map +0 -1
- package/dist/lib/data/vehicleModels.js +0 -128
- package/dist/lib/hooks/usePersistentDraftState.d.ts +0 -20
- package/dist/lib/hooks/usePersistentDraftState.d.ts.map +0 -1
- package/dist/lib/hooks/usePersistentDraftState.js +0 -47
- package/dist/lib/models/forms.d.ts +0 -384
- package/dist/lib/models/forms.d.ts.map +0 -1
- package/dist/lib/models/forms.js +0 -121
- package/dist/lib/pricingActions.d.ts +0 -13
- package/dist/lib/pricingActions.d.ts.map +0 -1
- package/dist/lib/pricingActions.js +0 -16
- package/dist/lib/utils/entitySubmission.d.ts +0 -21
- package/dist/lib/utils/entitySubmission.d.ts.map +0 -1
- package/dist/lib/utils/entitySubmission.js +0 -10
- package/dist/lib/utils/imageUpload.d.ts +0 -4
- package/dist/lib/utils/imageUpload.d.ts.map +0 -1
- package/dist/lib/utils/imageUpload.js +0 -36
- package/dist/lib/utils/tileConverters.d.ts +0 -8
- package/dist/lib/utils/tileConverters.d.ts.map +0 -1
- package/dist/lib/utils/tileConverters.js +0 -59
package/dist/lib/userAtom.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { type AuthSessionStatus } from './authSessionPolicy';
|
|
1
2
|
export declare const storageInitializedAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
2
3
|
init: boolean;
|
|
3
4
|
};
|
|
4
5
|
export declare const userAtom: import("jotai").WritableAtom<{
|
|
5
6
|
username: string;
|
|
7
|
+
email: string;
|
|
6
8
|
firstName: string;
|
|
7
9
|
lastName: string;
|
|
8
|
-
email: string;
|
|
9
|
-
password: string;
|
|
10
10
|
phoneNumber: string;
|
|
11
|
+
password: string;
|
|
11
12
|
countryCode: string;
|
|
12
13
|
country: string;
|
|
13
14
|
gender: "male" | "female" | "other";
|
|
@@ -20,6 +21,10 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
20
21
|
verifiedEmail: boolean;
|
|
21
22
|
verifiedMobile: boolean;
|
|
22
23
|
role: string;
|
|
24
|
+
baseAccountType?: "user" | "host" | undefined;
|
|
25
|
+
legacyRole?: string | undefined;
|
|
26
|
+
staffProfileId?: string | null | undefined;
|
|
27
|
+
accountType?: "user" | "host" | "staff" | undefined;
|
|
23
28
|
_id?: string | undefined;
|
|
24
29
|
location?: string | undefined;
|
|
25
30
|
pinCode?: string | undefined;
|
|
@@ -33,10 +38,6 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
33
38
|
refreshToken?: string | undefined;
|
|
34
39
|
verifiedIdCard?: boolean | undefined;
|
|
35
40
|
permissions?: string[] | undefined;
|
|
36
|
-
accountType?: "user" | "host" | "staff" | undefined;
|
|
37
|
-
baseAccountType?: "user" | "host" | undefined;
|
|
38
|
-
legacyRole?: string | undefined;
|
|
39
|
-
staffProfileId?: string | null | undefined;
|
|
40
41
|
baseUserId?: string | null | undefined;
|
|
41
42
|
baseHostId?: string | null | undefined;
|
|
42
43
|
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
@@ -73,11 +74,11 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
73
74
|
businessVerificationDenialReason?: string | undefined;
|
|
74
75
|
} | null, [{
|
|
75
76
|
username: string;
|
|
77
|
+
email: string;
|
|
76
78
|
firstName: string;
|
|
77
79
|
lastName: string;
|
|
78
|
-
email: string;
|
|
79
|
-
password: string;
|
|
80
80
|
phoneNumber: string;
|
|
81
|
+
password: string;
|
|
81
82
|
countryCode: string;
|
|
82
83
|
country: string;
|
|
83
84
|
gender: "male" | "female" | "other";
|
|
@@ -90,6 +91,10 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
90
91
|
verifiedEmail: boolean;
|
|
91
92
|
verifiedMobile: boolean;
|
|
92
93
|
role: string;
|
|
94
|
+
baseAccountType?: "user" | "host" | undefined;
|
|
95
|
+
legacyRole?: string | undefined;
|
|
96
|
+
staffProfileId?: string | null | undefined;
|
|
97
|
+
accountType?: "user" | "host" | "staff" | undefined;
|
|
93
98
|
_id?: string | undefined;
|
|
94
99
|
location?: string | undefined;
|
|
95
100
|
pinCode?: string | undefined;
|
|
@@ -103,10 +108,6 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
103
108
|
refreshToken?: string | undefined;
|
|
104
109
|
verifiedIdCard?: boolean | undefined;
|
|
105
110
|
permissions?: string[] | undefined;
|
|
106
|
-
accountType?: "user" | "host" | "staff" | undefined;
|
|
107
|
-
baseAccountType?: "user" | "host" | undefined;
|
|
108
|
-
legacyRole?: string | undefined;
|
|
109
|
-
staffProfileId?: string | null | undefined;
|
|
110
111
|
baseUserId?: string | null | undefined;
|
|
111
112
|
baseHostId?: string | null | undefined;
|
|
112
113
|
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
@@ -143,11 +144,11 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
143
144
|
businessVerificationDenialReason?: string | undefined;
|
|
144
145
|
} | typeof import("jotai/utils").RESET | ((prev: {
|
|
145
146
|
username: string;
|
|
147
|
+
email: string;
|
|
146
148
|
firstName: string;
|
|
147
149
|
lastName: string;
|
|
148
|
-
email: string;
|
|
149
|
-
password: string;
|
|
150
150
|
phoneNumber: string;
|
|
151
|
+
password: string;
|
|
151
152
|
countryCode: string;
|
|
152
153
|
country: string;
|
|
153
154
|
gender: "male" | "female" | "other";
|
|
@@ -160,6 +161,10 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
160
161
|
verifiedEmail: boolean;
|
|
161
162
|
verifiedMobile: boolean;
|
|
162
163
|
role: string;
|
|
164
|
+
baseAccountType?: "user" | "host" | undefined;
|
|
165
|
+
legacyRole?: string | undefined;
|
|
166
|
+
staffProfileId?: string | null | undefined;
|
|
167
|
+
accountType?: "user" | "host" | "staff" | undefined;
|
|
163
168
|
_id?: string | undefined;
|
|
164
169
|
location?: string | undefined;
|
|
165
170
|
pinCode?: string | undefined;
|
|
@@ -173,10 +178,6 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
173
178
|
refreshToken?: string | undefined;
|
|
174
179
|
verifiedIdCard?: boolean | undefined;
|
|
175
180
|
permissions?: string[] | undefined;
|
|
176
|
-
accountType?: "user" | "host" | "staff" | undefined;
|
|
177
|
-
baseAccountType?: "user" | "host" | undefined;
|
|
178
|
-
legacyRole?: string | undefined;
|
|
179
|
-
staffProfileId?: string | null | undefined;
|
|
180
181
|
baseUserId?: string | null | undefined;
|
|
181
182
|
baseHostId?: string | null | undefined;
|
|
182
183
|
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
@@ -213,11 +214,11 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
213
214
|
businessVerificationDenialReason?: string | undefined;
|
|
214
215
|
} | null) => {
|
|
215
216
|
username: string;
|
|
217
|
+
email: string;
|
|
216
218
|
firstName: string;
|
|
217
219
|
lastName: string;
|
|
218
|
-
email: string;
|
|
219
|
-
password: string;
|
|
220
220
|
phoneNumber: string;
|
|
221
|
+
password: string;
|
|
221
222
|
countryCode: string;
|
|
222
223
|
country: string;
|
|
223
224
|
gender: "male" | "female" | "other";
|
|
@@ -230,6 +231,10 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
230
231
|
verifiedEmail: boolean;
|
|
231
232
|
verifiedMobile: boolean;
|
|
232
233
|
role: string;
|
|
234
|
+
baseAccountType?: "user" | "host" | undefined;
|
|
235
|
+
legacyRole?: string | undefined;
|
|
236
|
+
staffProfileId?: string | null | undefined;
|
|
237
|
+
accountType?: "user" | "host" | "staff" | undefined;
|
|
233
238
|
_id?: string | undefined;
|
|
234
239
|
location?: string | undefined;
|
|
235
240
|
pinCode?: string | undefined;
|
|
@@ -243,10 +248,95 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
243
248
|
refreshToken?: string | undefined;
|
|
244
249
|
verifiedIdCard?: boolean | undefined;
|
|
245
250
|
permissions?: string[] | undefined;
|
|
246
|
-
|
|
251
|
+
baseUserId?: string | null | undefined;
|
|
252
|
+
baseHostId?: string | null | undefined;
|
|
253
|
+
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
254
|
+
userResume?: string | undefined;
|
|
255
|
+
skills?: {
|
|
256
|
+
skill: string;
|
|
257
|
+
skillExpertise: number;
|
|
258
|
+
}[] | undefined;
|
|
259
|
+
wishlist?: string[] | undefined;
|
|
260
|
+
favBlogs?: string[] | undefined;
|
|
261
|
+
favPackages?: string[] | undefined;
|
|
262
|
+
id?: string | undefined;
|
|
263
|
+
selfie?: string | undefined;
|
|
264
|
+
selfieAction?: string | undefined;
|
|
265
|
+
jobCount?: number | undefined;
|
|
266
|
+
travelPackageCount?: number | undefined;
|
|
267
|
+
gstNumber?: string | undefined;
|
|
268
|
+
panCard?: string | undefined;
|
|
269
|
+
verifiedBusiness?: "true" | "false" | "inProgress" | undefined;
|
|
270
|
+
properties?: {
|
|
271
|
+
country: string;
|
|
272
|
+
type: string;
|
|
273
|
+
name: string;
|
|
274
|
+
address: string;
|
|
275
|
+
city: string;
|
|
276
|
+
state: string;
|
|
277
|
+
pinCode?: string | undefined;
|
|
278
|
+
registrationNumber?: string | undefined;
|
|
279
|
+
}[] | undefined;
|
|
280
|
+
businessDocument?: string | undefined;
|
|
281
|
+
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
282
|
+
businessIdNumber?: string | undefined;
|
|
283
|
+
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
284
|
+
businessVerificationDenialReason?: string | undefined;
|
|
285
|
+
} | typeof import("jotai/utils").RESET | null) | null], void>;
|
|
286
|
+
export declare const isLoggedInAtom: import("jotai").WritableAtom<boolean, [boolean | typeof import("jotai/utils").RESET | ((prev: boolean) => boolean | typeof import("jotai/utils").RESET)], void>;
|
|
287
|
+
/**
|
|
288
|
+
* Changes whenever a login/logout boundary occurs.
|
|
289
|
+
*
|
|
290
|
+
* Background session requests capture this value. Responses belonging to an
|
|
291
|
+
* older revision must not clear a newer authenticated state.
|
|
292
|
+
*/
|
|
293
|
+
export declare const authRevisionAtom: import("jotai").PrimitiveAtom<number> & {
|
|
294
|
+
init: number;
|
|
295
|
+
};
|
|
296
|
+
export type { AuthSessionStatus } from './authSessionPolicy';
|
|
297
|
+
/** Backend reconciliation state for the currently persisted identity. */
|
|
298
|
+
export declare const authSessionStatusAtom: import("jotai").PrimitiveAtom<AuthSessionStatus> & {
|
|
299
|
+
init: AuthSessionStatus;
|
|
300
|
+
};
|
|
301
|
+
/**
|
|
302
|
+
* Atomically commits a successful login to the active Jotai store.
|
|
303
|
+
*/
|
|
304
|
+
export declare const commitLoginAtom: import("jotai").WritableAtom<null, [authenticatedUser: {
|
|
305
|
+
username: string;
|
|
306
|
+
email: string;
|
|
307
|
+
firstName: string;
|
|
308
|
+
lastName: string;
|
|
309
|
+
phoneNumber: string;
|
|
310
|
+
password: string;
|
|
311
|
+
countryCode: string;
|
|
312
|
+
country: string;
|
|
313
|
+
gender: "male" | "female" | "other";
|
|
314
|
+
rating: number;
|
|
315
|
+
ratingCount: number;
|
|
316
|
+
reviewCount: number;
|
|
317
|
+
joinedDate: Date;
|
|
318
|
+
isActive: boolean;
|
|
319
|
+
lastActive: Date;
|
|
320
|
+
verifiedEmail: boolean;
|
|
321
|
+
verifiedMobile: boolean;
|
|
322
|
+
role: string;
|
|
247
323
|
baseAccountType?: "user" | "host" | undefined;
|
|
248
324
|
legacyRole?: string | undefined;
|
|
249
325
|
staffProfileId?: string | null | undefined;
|
|
326
|
+
accountType?: "user" | "host" | "staff" | undefined;
|
|
327
|
+
_id?: string | undefined;
|
|
328
|
+
location?: string | undefined;
|
|
329
|
+
pinCode?: string | undefined;
|
|
330
|
+
dob?: Date | undefined;
|
|
331
|
+
profilePic?: string | undefined;
|
|
332
|
+
blogsCount?: number | undefined;
|
|
333
|
+
userBio?: string | undefined;
|
|
334
|
+
userIdCard?: string | undefined;
|
|
335
|
+
watchHistory?: string[] | undefined;
|
|
336
|
+
accessToken?: string | undefined;
|
|
337
|
+
refreshToken?: string | undefined;
|
|
338
|
+
verifiedIdCard?: boolean | undefined;
|
|
339
|
+
permissions?: string[] | undefined;
|
|
250
340
|
baseUserId?: string | null | undefined;
|
|
251
341
|
baseHostId?: string | null | undefined;
|
|
252
342
|
socialLinks?: Partial<Record<"instagram" | "linkedin" | "youtube" | "googleBusiness", string>> | undefined;
|
|
@@ -281,14 +371,25 @@ export declare const userAtom: import("jotai").WritableAtom<{
|
|
|
281
371
|
businessIdNumber?: string | undefined;
|
|
282
372
|
businessApiVerificationStatus?: "pending" | "verified" | "failed" | undefined;
|
|
283
373
|
businessVerificationDenialReason?: string | undefined;
|
|
284
|
-
}
|
|
285
|
-
export declare const isLoggedInAtom: import("jotai").WritableAtom<boolean, [boolean | typeof import("jotai/utils").RESET | ((prev: boolean) => boolean | typeof import("jotai/utils").RESET)], void>;
|
|
286
|
-
export declare const userLoadingAtom: import("jotai").Atom<boolean>;
|
|
287
|
-
export declare const initializeAuthSessionAtom: import("jotai").WritableAtom<null, [], Promise<void>> & {
|
|
374
|
+
}], void> & {
|
|
288
375
|
init: null;
|
|
289
376
|
};
|
|
377
|
+
export declare const userLoadingAtom: import("jotai").Atom<boolean>;
|
|
290
378
|
export declare const resetAuthStateAtom: import("jotai").WritableAtom<null, [], void> & {
|
|
291
379
|
init: null;
|
|
292
380
|
};
|
|
381
|
+
/**
|
|
382
|
+
* Clears provisional browser identity while keeping public auth controls
|
|
383
|
+
* disabled until the backend cookie/device cleanup request has settled.
|
|
384
|
+
*/
|
|
385
|
+
export declare const beginAuthCleanupAtom: import("jotai").WritableAtom<null, [], void> & {
|
|
386
|
+
init: null;
|
|
387
|
+
};
|
|
388
|
+
export declare const finishAuthCleanupAtom: import("jotai").WritableAtom<null, [expectedRevision: number], void> & {
|
|
389
|
+
init: null;
|
|
390
|
+
};
|
|
391
|
+
export declare const initializeAuthSessionAtom: import("jotai").WritableAtom<null, [], Promise<void>> & {
|
|
392
|
+
init: null;
|
|
393
|
+
};
|
|
293
394
|
export declare function resetAuthState(): void;
|
|
294
395
|
//# sourceMappingURL=userAtom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userAtom.d.ts","sourceRoot":"","sources":["../../src/lib/userAtom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"userAtom.d.ts","sourceRoot":"","sources":["../../src/lib/userAtom.ts"],"names":[],"mappings":"AAMA,OAAO,EAIH,KAAK,iBAAiB,EACzB,MAAM,qBAAqB,CAAC;AA0D7B,eAAO,MAAM,sBAAsB;;CAAuB,CAAC;AAG3D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DAQpB,CAAC;AAEF,eAAO,MAAM,cAAc,iKAA6C,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;CAAU,CAAC;AAExC,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,yEAAyE;AACzE,eAAO,MAAM,qBAAqB;;CAA0C,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS3B,CAAC;AAGF,eAAO,MAAM,eAAe,+BAS1B,CAAC;AAGH,eAAO,MAAM,kBAAkB;;CAY7B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;CAU/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;CAMjC,CAAC;AAGF,eAAO,MAAM,yBAAyB;;CAiCrC,CAAC;AAEF,wBAAgB,cAAc,SAY7B"}
|
package/dist/lib/userAtom.js
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import CryptoJS from 'crypto-js';
|
|
3
3
|
import { atom, getDefaultStore } from 'jotai';
|
|
4
4
|
import { atomWithStorage } from 'jotai/utils';
|
|
5
|
-
import {
|
|
5
|
+
import { clearSessionCookies } from './actions/auth';
|
|
6
|
+
import { canFinishAuthCleanup, clearCacheMissSessionBoundary, isAuthSessionPending, } from './authSessionPolicy';
|
|
6
7
|
const STORAGE_KEY = process.env.NEXT_PUBLIC_USER_KEY;
|
|
7
8
|
const LOGIN_KEY = process.env.NEXT_PUBLIC_LOGIN_KEY;
|
|
8
9
|
const SECRET_KEY = process.env.NEXT_PUBLIC_RACE;
|
|
@@ -35,14 +36,14 @@ const getWithExpiry = (key) => {
|
|
|
35
36
|
return null;
|
|
36
37
|
const { value, expiry } = data;
|
|
37
38
|
if (Date.now() > expiry) {
|
|
38
|
-
|
|
39
|
+
localStorage.removeItem(key);
|
|
39
40
|
return null;
|
|
40
41
|
}
|
|
41
42
|
return value;
|
|
42
43
|
}
|
|
43
44
|
catch (e) {
|
|
44
45
|
console.warn('Invalid user data:', e);
|
|
45
|
-
|
|
46
|
+
localStorage.removeItem(key);
|
|
46
47
|
return null;
|
|
47
48
|
}
|
|
48
49
|
};
|
|
@@ -64,68 +65,99 @@ export const userAtom = atomWithStorage(STORAGE_KEY, null, {
|
|
|
64
65
|
removeItem: (key) => localStorage.removeItem(key),
|
|
65
66
|
});
|
|
66
67
|
export const isLoggedInAtom = atomWithStorage(LOGIN_KEY, false);
|
|
68
|
+
/**
|
|
69
|
+
* Changes whenever a login/logout boundary occurs.
|
|
70
|
+
*
|
|
71
|
+
* Background session requests capture this value. Responses belonging to an
|
|
72
|
+
* older revision must not clear a newer authenticated state.
|
|
73
|
+
*/
|
|
74
|
+
export const authRevisionAtom = atom(0);
|
|
75
|
+
/** Backend reconciliation state for the currently persisted identity. */
|
|
76
|
+
export const authSessionStatusAtom = atom("initializing");
|
|
77
|
+
/**
|
|
78
|
+
* Atomically commits a successful login to the active Jotai store.
|
|
79
|
+
*/
|
|
80
|
+
export const commitLoginAtom = atom(null, (_get, set, authenticatedUser) => {
|
|
81
|
+
set(userAtom, authenticatedUser);
|
|
82
|
+
set(isLoggedInAtom, true);
|
|
83
|
+
set(storageInitializedAtom, true);
|
|
84
|
+
set(authSessionStatusAtom, "authenticated");
|
|
85
|
+
set(authRevisionAtom, (revision) => revision + 1);
|
|
86
|
+
});
|
|
67
87
|
// 🕒 Tracks if user is loading
|
|
68
88
|
export const userLoadingAtom = atom((get) => {
|
|
69
|
-
// The issue was here - we need to properly track initialization state
|
|
70
89
|
const initialized = get(storageInitializedAtom);
|
|
71
|
-
|
|
72
|
-
|
|
90
|
+
const sessionStatus = get(authSessionStatusAtom);
|
|
91
|
+
// Reconciliation is an authentication boundary, not background cosmetic
|
|
92
|
+
// work. Keep login/register controls unavailable until validation or
|
|
93
|
+
// cookie cleanup settles so a late Set-Cookie response cannot erase a
|
|
94
|
+
// newly-created session.
|
|
95
|
+
return !initialized || isAuthSessionPending(sessionStatus);
|
|
96
|
+
});
|
|
97
|
+
export const resetAuthStateAtom = atom(null, (_get, set) => {
|
|
98
|
+
if (typeof window === "undefined")
|
|
99
|
+
return;
|
|
100
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
101
|
+
localStorage.removeItem(LOGIN_KEY);
|
|
102
|
+
// Update the active Jotai store used by the calling React component.
|
|
103
|
+
set(userAtom, null);
|
|
104
|
+
set(isLoggedInAtom, false);
|
|
105
|
+
set(storageInitializedAtom, true);
|
|
106
|
+
set(authSessionStatusAtom, "signed-out");
|
|
107
|
+
set(authRevisionAtom, (revision) => revision + 1);
|
|
108
|
+
});
|
|
109
|
+
/**
|
|
110
|
+
* Clears provisional browser identity while keeping public auth controls
|
|
111
|
+
* disabled until the backend cookie/device cleanup request has settled.
|
|
112
|
+
*/
|
|
113
|
+
export const beginAuthCleanupAtom = atom(null, (_get, set) => {
|
|
114
|
+
if (typeof window === "undefined")
|
|
115
|
+
return;
|
|
116
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
117
|
+
localStorage.removeItem(LOGIN_KEY);
|
|
118
|
+
set(userAtom, null);
|
|
119
|
+
set(isLoggedInAtom, false);
|
|
120
|
+
set(storageInitializedAtom, true);
|
|
121
|
+
set(authSessionStatusAtom, "clearing");
|
|
122
|
+
set(authRevisionAtom, (revision) => revision + 1);
|
|
123
|
+
});
|
|
124
|
+
export const finishAuthCleanupAtom = atom(null, (get, set, expectedRevision) => {
|
|
125
|
+
if (!canFinishAuthCleanup(expectedRevision, get(authRevisionAtom)))
|
|
126
|
+
return;
|
|
127
|
+
set(authSessionStatusAtom, "signed-out");
|
|
73
128
|
});
|
|
74
129
|
// Initialize storage atom effect
|
|
75
130
|
export const initializeAuthSessionAtom = atom(null, async (get, set) => {
|
|
76
131
|
// Only run in browser
|
|
77
132
|
if (typeof window === 'undefined')
|
|
78
133
|
return;
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
// if (session.success) {
|
|
82
|
-
// Session validated successfully
|
|
83
|
-
// } else {
|
|
84
|
-
// resetAuthState();
|
|
85
|
-
// set(storageInitializedAtom, true);
|
|
86
|
-
// return;
|
|
87
|
-
// }
|
|
88
|
-
// NOTE: if validateSession fails we do NOT reset — we just fall through
|
|
89
|
-
// to cache/API. A failed ping could mean the backend is temporarily down,
|
|
90
|
-
// the user is a host (different endpoint), etc. We only clear state if we
|
|
91
|
-
// POSITIVELY know the user is logged out (getCurrentUser fails).
|
|
92
|
-
// 2. Try cache (localStorage)
|
|
134
|
+
// Try the local identity cache first. It remains provisional until the
|
|
135
|
+
// backend confirms that the cookies belong to the same actor.
|
|
93
136
|
const userData = getWithExpiry(STORAGE_KEY);
|
|
94
137
|
if (userData) {
|
|
95
|
-
set(
|
|
96
|
-
set(
|
|
97
|
-
set(storageInitializedAtom, true);
|
|
138
|
+
set(commitLoginAtom, userData);
|
|
139
|
+
set(authSessionStatusAtom, "validating");
|
|
98
140
|
return;
|
|
99
141
|
}
|
|
100
|
-
//
|
|
142
|
+
// Missing persisted identity is always a cleanup boundary. The endpoint
|
|
143
|
+
// is idempotent for a fresh guest and revokes stale cookie-only sessions.
|
|
144
|
+
set(beginAuthCleanupAtom);
|
|
145
|
+
const cleanupRevision = get(authRevisionAtom);
|
|
101
146
|
try {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
setWithExpiry(STORAGE_KEY, remoteUser); // Write to local cache for next time
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
resetAuthState();
|
|
111
|
-
}
|
|
147
|
+
await clearCacheMissSessionBoundary({
|
|
148
|
+
cleanupRevision,
|
|
149
|
+
getCurrentRevision: () => get(authRevisionAtom),
|
|
150
|
+
clearSession: clearSessionCookies,
|
|
151
|
+
});
|
|
112
152
|
}
|
|
113
153
|
catch {
|
|
114
|
-
|
|
154
|
+
// clearSessionCookies is bounded. Local signed-out state is still
|
|
155
|
+
// published only after the cleanup attempt has settled.
|
|
115
156
|
}
|
|
116
157
|
finally {
|
|
117
|
-
set(
|
|
158
|
+
set(finishAuthCleanupAtom, cleanupRevision);
|
|
118
159
|
}
|
|
119
160
|
});
|
|
120
|
-
export const resetAuthStateAtom = atom(null, (_get, set) => {
|
|
121
|
-
if (typeof window === 'undefined')
|
|
122
|
-
return;
|
|
123
|
-
localStorage.removeItem(STORAGE_KEY);
|
|
124
|
-
localStorage.removeItem(LOGIN_KEY);
|
|
125
|
-
set(userAtom, null);
|
|
126
|
-
set(isLoggedInAtom, false);
|
|
127
|
-
set(storageInitializedAtom, true);
|
|
128
|
-
});
|
|
129
161
|
export function resetAuthState() {
|
|
130
162
|
if (typeof window === 'undefined') {
|
|
131
163
|
console.warn('resetAuthState called on server — skipped');
|
|
@@ -136,4 +168,6 @@ export function resetAuthState() {
|
|
|
136
168
|
store.set(userAtom, null);
|
|
137
169
|
store.set(isLoggedInAtom, false);
|
|
138
170
|
store.set(storageInitializedAtom, true);
|
|
171
|
+
store.set(authSessionStatusAtom, "signed-out");
|
|
172
|
+
store.set(authRevisionAtom, (revision) => revision + 1);
|
|
139
173
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adminDashboard.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/adminDashboard.ts"],"names":[],"mappings":"AAIA,wBAAsB,mBAAmB,iBAOxC;AAED,wBAAsB,gBAAgB,iBAOrC;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,gBAO1D"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// --- Payouts actions --- //
|
|
2
|
-
import { get, post } from "./fetcher";
|
|
3
|
-
export async function getPayoutRecipients() {
|
|
4
|
-
try {
|
|
5
|
-
const data = await get("/admin/payouts/recipients");
|
|
6
|
-
return { success: true, ...data };
|
|
7
|
-
}
|
|
8
|
-
catch (error) {
|
|
9
|
-
return { success: false, error: error.message };
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export async function getPayoutHistory() {
|
|
13
|
-
try {
|
|
14
|
-
const data = await get("/admin/payouts/history");
|
|
15
|
-
return { success: true, ...data };
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
return { success: false, error: error.message };
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export async function recordManualPayout(formData) {
|
|
22
|
-
try {
|
|
23
|
-
const data = await post("/admin/payouts/record", formData);
|
|
24
|
-
return { success: true, ...data };
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
return { success: false, error: error.message };
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Adventure, AdventureMetaData } from "../models/adventure";
|
|
2
|
-
import { TileProps } from "../models/tile";
|
|
3
|
-
export declare function getAdventureTiles(limit?: number, filters?: {
|
|
4
|
-
activityType?: string;
|
|
5
|
-
difficulty?: string;
|
|
6
|
-
sort?: "popular" | "latest";
|
|
7
|
-
}): Promise<{
|
|
8
|
-
success: boolean;
|
|
9
|
-
tiles: TileProps[];
|
|
10
|
-
message?: string;
|
|
11
|
-
error?: string;
|
|
12
|
-
}>;
|
|
13
|
-
export declare function trendingAdventureTiles(limit: number): Promise<{
|
|
14
|
-
success: boolean;
|
|
15
|
-
tiles: TileProps[];
|
|
16
|
-
message?: string;
|
|
17
|
-
error?: string;
|
|
18
|
-
}>;
|
|
19
|
-
export declare function adventureDetails(slug: string, options?: {
|
|
20
|
-
edit?: boolean;
|
|
21
|
-
}): Promise<{
|
|
22
|
-
success: boolean;
|
|
23
|
-
adventure: Adventure | null;
|
|
24
|
-
message?: string;
|
|
25
|
-
error?: string;
|
|
26
|
-
}>;
|
|
27
|
-
export declare function adventureMetaData(slug: string): Promise<{
|
|
28
|
-
success: boolean;
|
|
29
|
-
metadata: AdventureMetaData | null;
|
|
30
|
-
message?: string;
|
|
31
|
-
error?: string;
|
|
32
|
-
}>;
|
|
33
|
-
export declare function adventuresByUsername(username: string, limit?: number): Promise<{
|
|
34
|
-
success: boolean;
|
|
35
|
-
tiles: TileProps[];
|
|
36
|
-
message?: string;
|
|
37
|
-
error?: string;
|
|
38
|
-
}>;
|
|
39
|
-
export declare function adminAdventuresByHost(username: string): Promise<{
|
|
40
|
-
success: boolean;
|
|
41
|
-
adventures: Adventure[];
|
|
42
|
-
error?: string;
|
|
43
|
-
}>;
|
|
44
|
-
export declare function adventuresByHost(): Promise<{
|
|
45
|
-
success: boolean;
|
|
46
|
-
adventures: Adventure[];
|
|
47
|
-
message?: string;
|
|
48
|
-
error?: string;
|
|
49
|
-
}>;
|
|
50
|
-
export declare function createAdventure(formData: FormData): Promise<{
|
|
51
|
-
success: boolean;
|
|
52
|
-
slug?: string;
|
|
53
|
-
message?: string;
|
|
54
|
-
error?: string;
|
|
55
|
-
}>;
|
|
56
|
-
export declare function editAdventure(formData: FormData, slug: string): Promise<{
|
|
57
|
-
success: boolean;
|
|
58
|
-
message?: string;
|
|
59
|
-
error?: string;
|
|
60
|
-
}>;
|
|
61
|
-
export declare function patchAdventureStatus(slug: string, status: string): Promise<{
|
|
62
|
-
success: boolean;
|
|
63
|
-
error?: string;
|
|
64
|
-
}>;
|
|
65
|
-
export declare function deleteAdventure(slug: string): Promise<{
|
|
66
|
-
success: boolean;
|
|
67
|
-
message?: string;
|
|
68
|
-
error?: string;
|
|
69
|
-
}>;
|
|
70
|
-
export declare function getPendingAdventures(): Promise<{
|
|
71
|
-
success: boolean;
|
|
72
|
-
adventures: Adventure[];
|
|
73
|
-
message?: string;
|
|
74
|
-
error?: string;
|
|
75
|
-
}>;
|
|
76
|
-
export declare function approveAdventure(slug: string): Promise<{
|
|
77
|
-
success: boolean;
|
|
78
|
-
message?: string;
|
|
79
|
-
error?: string;
|
|
80
|
-
}>;
|
|
81
|
-
export declare function rejectAdventure(slug: string, rejectionReason: string): Promise<{
|
|
82
|
-
success: boolean;
|
|
83
|
-
message?: string;
|
|
84
|
-
error?: string;
|
|
85
|
-
}>;
|
|
86
|
-
export declare function getAdventureBookingsAdmin(slugOrId: string): Promise<{
|
|
87
|
-
success: boolean;
|
|
88
|
-
bookings: any[];
|
|
89
|
-
error?: string;
|
|
90
|
-
}>;
|
|
91
|
-
export declare function submitAdventureQuery(slug: string, payload: {
|
|
92
|
-
name?: string;
|
|
93
|
-
email?: string;
|
|
94
|
-
phone?: string;
|
|
95
|
-
message: string;
|
|
96
|
-
preferredDate?: string | null;
|
|
97
|
-
preferredTime?: string | null;
|
|
98
|
-
numberOfPeople?: number;
|
|
99
|
-
}): Promise<{
|
|
100
|
-
success: boolean;
|
|
101
|
-
message?: string;
|
|
102
|
-
error?: string;
|
|
103
|
-
}>;
|
|
104
|
-
//# sourceMappingURL=adventure.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adventure.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/adventure.ts"],"names":[],"mappings":"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"}
|