@myrjfa/state 3.0.7 → 3.0.9

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 (202) hide show
  1. package/dist/lib/actions/adminDashboard.d.ts.map +1 -1
  2. package/dist/lib/actions/adminDashboard.js +2 -1
  3. package/dist/lib/actions/adventure.d.ts.map +1 -1
  4. package/dist/lib/actions/adventure.js +3 -2
  5. package/dist/lib/actions/application.d.ts +5 -3
  6. package/dist/lib/actions/application.d.ts.map +1 -1
  7. package/dist/lib/actions/application.js +46 -2
  8. package/dist/lib/actions/auth.d.ts +18 -3
  9. package/dist/lib/actions/auth.d.ts.map +1 -1
  10. package/dist/lib/actions/auth.js +22 -0
  11. package/dist/lib/actions/blog.d.ts.map +1 -1
  12. package/dist/lib/actions/blog.js +4 -2
  13. package/dist/lib/actions/booking.d.ts +29 -1
  14. package/dist/lib/actions/booking.d.ts.map +1 -1
  15. package/dist/lib/actions/booking.js +186 -0
  16. package/dist/lib/actions/brand.d.ts +7 -0
  17. package/dist/lib/actions/brand.d.ts.map +1 -1
  18. package/dist/lib/actions/brand.js +4 -0
  19. package/dist/lib/actions/chat.d.ts +3 -0
  20. package/dist/lib/actions/chat.d.ts.map +1 -1
  21. package/dist/lib/actions/chat.js +40 -1
  22. package/dist/lib/actions/community.d.ts +5 -2
  23. package/dist/lib/actions/community.d.ts.map +1 -1
  24. package/dist/lib/actions/community.js +16 -4
  25. package/dist/lib/actions/companion.d.ts +27 -15
  26. package/dist/lib/actions/companion.d.ts.map +1 -1
  27. package/dist/lib/actions/companion.js +22 -15
  28. package/dist/lib/actions/companionUpload.d.ts +11 -0
  29. package/dist/lib/actions/companionUpload.d.ts.map +1 -0
  30. package/dist/lib/actions/companionUpload.js +14 -0
  31. package/dist/lib/actions/event.d.ts +1 -1
  32. package/dist/lib/actions/event.d.ts.map +1 -1
  33. package/dist/lib/actions/event.js +8 -4
  34. package/dist/lib/actions/fetcher.d.ts +9 -3
  35. package/dist/lib/actions/fetcher.d.ts.map +1 -1
  36. package/dist/lib/actions/fetcher.js +60 -15
  37. package/dist/lib/actions/guide.d.ts.map +1 -1
  38. package/dist/lib/actions/guide.js +4 -2
  39. package/dist/lib/actions/homeBanner.d.ts +8 -0
  40. package/dist/lib/actions/homeBanner.d.ts.map +1 -0
  41. package/dist/lib/actions/homeBanner.js +33 -0
  42. package/dist/lib/actions/hostDashboard.d.ts +1 -11
  43. package/dist/lib/actions/hostDashboard.d.ts.map +1 -1
  44. package/dist/lib/actions/hostDashboard.js +1 -146
  45. package/dist/lib/actions/itinerary.d.ts +1 -1
  46. package/dist/lib/actions/itinerary.d.ts.map +1 -1
  47. package/dist/lib/actions/itinerary.js +2 -2
  48. package/dist/lib/actions/listingInterest.d.ts +2 -5
  49. package/dist/lib/actions/listingInterest.d.ts.map +1 -1
  50. package/dist/lib/actions/listingInterest.js +18 -3
  51. package/dist/lib/actions/location.d.ts +4 -0
  52. package/dist/lib/actions/location.d.ts.map +1 -1
  53. package/dist/lib/actions/location.js +10 -6
  54. package/dist/lib/actions/marketplaceContract.d.ts.map +1 -1
  55. package/dist/lib/actions/marketplaceContract.js +3 -2
  56. package/dist/lib/actions/nativeTransport.d.ts +25 -0
  57. package/dist/lib/actions/nativeTransport.d.ts.map +1 -0
  58. package/dist/lib/actions/nativeTransport.js +50 -0
  59. package/dist/lib/actions/notification.d.ts +54 -2
  60. package/dist/lib/actions/notification.d.ts.map +1 -1
  61. package/dist/lib/actions/notification.js +13 -1
  62. package/dist/lib/actions/opportunity.d.ts.map +1 -1
  63. package/dist/lib/actions/opportunity.js +3 -2
  64. package/dist/lib/actions/package.d.ts +5 -3
  65. package/dist/lib/actions/package.d.ts.map +1 -1
  66. package/dist/lib/actions/package.js +15 -9
  67. package/dist/lib/actions/portfolio.d.ts.map +1 -1
  68. package/dist/lib/actions/portfolio.js +2 -1
  69. package/dist/lib/actions/profile.d.ts +5 -0
  70. package/dist/lib/actions/profile.d.ts.map +1 -1
  71. package/dist/lib/actions/profile.js +15 -2
  72. package/dist/lib/actions/rental.d.ts.map +1 -1
  73. package/dist/lib/actions/rental.js +3 -2
  74. package/dist/lib/actions/review.d.ts +7 -0
  75. package/dist/lib/actions/review.d.ts.map +1 -1
  76. package/dist/lib/actions/review.js +65 -31
  77. package/dist/lib/actions/room.d.ts +0 -4
  78. package/dist/lib/actions/room.d.ts.map +1 -1
  79. package/dist/lib/actions/room.js +3 -2
  80. package/dist/lib/actions/serverActions.native.d.ts +4 -0
  81. package/dist/lib/actions/serverActions.native.d.ts.map +1 -0
  82. package/dist/lib/actions/serverActions.native.js +5 -0
  83. package/dist/lib/actions/socialAutomation.d.ts.map +1 -1
  84. package/dist/lib/actions/socialAutomation.js +3 -2
  85. package/dist/lib/actions/socket.d.ts.map +1 -1
  86. package/dist/lib/actions/socket.js +6 -5
  87. package/dist/lib/actions/stay.d.ts +14 -1
  88. package/dist/lib/actions/stay.d.ts.map +1 -1
  89. package/dist/lib/actions/stay.js +32 -4
  90. package/dist/lib/actions/store.d.ts +1 -0
  91. package/dist/lib/actions/store.d.ts.map +1 -1
  92. package/dist/lib/actions/store.js +9 -0
  93. package/dist/lib/actions/user.d.ts +2 -0
  94. package/dist/lib/actions/user.d.ts.map +1 -1
  95. package/dist/lib/actions/user.js +5 -0
  96. package/dist/lib/companion/discoveryPrefill.d.ts +17 -0
  97. package/dist/lib/companion/discoveryPrefill.d.ts.map +1 -1
  98. package/dist/lib/companion/discoveryPrefill.js +20 -0
  99. package/dist/lib/context/ChatContext.d.ts.map +1 -1
  100. package/dist/lib/context/ChatContext.js +59 -51
  101. package/dist/lib/data/catalogueLocations.d.ts +3 -0
  102. package/dist/lib/data/catalogueLocations.d.ts.map +1 -0
  103. package/dist/lib/data/catalogueLocations.js +21 -0
  104. package/dist/lib/data/skills.d.ts +5 -0
  105. package/dist/lib/data/skills.d.ts.map +1 -0
  106. package/dist/lib/data/skills.js +97 -0
  107. package/dist/lib/forms/application.d.ts +4 -0
  108. package/dist/lib/forms/application.d.ts.map +1 -0
  109. package/dist/lib/forms/application.js +17 -0
  110. package/dist/lib/forms/packageEnquiry.d.ts +4 -0
  111. package/dist/lib/forms/packageEnquiry.d.ts.map +1 -0
  112. package/dist/lib/forms/packageEnquiry.js +12 -0
  113. package/dist/lib/forms/review.d.ts +6 -0
  114. package/dist/lib/forms/review.d.ts.map +1 -0
  115. package/dist/lib/forms/review.js +20 -0
  116. package/dist/lib/hooks/useSubmissionGuard.d.ts +2 -0
  117. package/dist/lib/hooks/useSubmissionGuard.d.ts.map +1 -0
  118. package/dist/lib/hooks/useSubmissionGuard.js +12 -0
  119. package/dist/lib/hooks/useUploadTasks.d.ts +7 -0
  120. package/dist/lib/hooks/useUploadTasks.d.ts.map +1 -0
  121. package/dist/lib/hooks/useUploadTasks.js +11 -0
  122. package/dist/lib/models/application.d.ts +21 -0
  123. package/dist/lib/models/application.d.ts.map +1 -1
  124. package/dist/lib/models/authorization.d.ts +1 -1
  125. package/dist/lib/models/authorization.d.ts.map +1 -1
  126. package/dist/lib/models/authorization.js +2 -0
  127. package/dist/lib/models/blog.d.ts +2 -2
  128. package/dist/lib/models/booking.d.ts +3 -0
  129. package/dist/lib/models/booking.d.ts.map +1 -1
  130. package/dist/lib/models/chat.d.ts +8 -0
  131. package/dist/lib/models/chat.d.ts.map +1 -1
  132. package/dist/lib/models/chat.js +10 -0
  133. package/dist/lib/models/community.d.ts +15 -0
  134. package/dist/lib/models/community.d.ts.map +1 -1
  135. package/dist/lib/models/community.js +2 -1
  136. package/dist/lib/models/companion.d.ts +46 -0
  137. package/dist/lib/models/companion.d.ts.map +1 -1
  138. package/dist/lib/models/discount.d.ts +20 -20
  139. package/dist/lib/models/enquiry.d.ts +13 -0
  140. package/dist/lib/models/enquiry.d.ts.map +1 -1
  141. package/dist/lib/models/homeBanner.d.ts +17 -0
  142. package/dist/lib/models/homeBanner.d.ts.map +1 -0
  143. package/dist/lib/models/homeBanner.js +1 -0
  144. package/dist/lib/models/interest.d.ts +42 -0
  145. package/dist/lib/models/interest.d.ts.map +1 -0
  146. package/dist/lib/models/interest.js +1 -0
  147. package/dist/lib/models/location.d.ts +1 -0
  148. package/dist/lib/models/location.d.ts.map +1 -1
  149. package/dist/lib/models/notifications.d.ts +30 -2
  150. package/dist/lib/models/notifications.d.ts.map +1 -1
  151. package/dist/lib/models/notifications.js +6 -0
  152. package/dist/lib/models/opportunities/freelance.d.ts +37 -4
  153. package/dist/lib/models/opportunities/freelance.d.ts.map +1 -1
  154. package/dist/lib/models/opportunities/internship.d.ts +37 -4
  155. package/dist/lib/models/opportunities/internship.d.ts.map +1 -1
  156. package/dist/lib/models/opportunities/job.d.ts +37 -4
  157. package/dist/lib/models/opportunities/job.d.ts.map +1 -1
  158. package/dist/lib/models/opportunities/opportunity.d.ts +38 -5
  159. package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -1
  160. package/dist/lib/models/opportunities/opportunity.js +1 -1
  161. package/dist/lib/models/opportunities/volunteerJob.d.ts +37 -4
  162. package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -1
  163. package/dist/lib/models/pricing.d.ts +2 -0
  164. package/dist/lib/models/pricing.d.ts.map +1 -1
  165. package/dist/lib/models/pricing.js +4 -0
  166. package/dist/lib/models/props.d.ts +4 -43
  167. package/dist/lib/models/props.d.ts.map +1 -1
  168. package/dist/lib/models/props.js +3 -121
  169. package/dist/lib/models/question.d.ts +14 -0
  170. package/dist/lib/models/question.d.ts.map +1 -0
  171. package/dist/lib/models/question.js +6 -0
  172. package/dist/lib/models/review.d.ts +13 -1
  173. package/dist/lib/models/review.d.ts.map +1 -1
  174. package/dist/lib/models/review.js +4 -0
  175. package/dist/lib/models/tile.d.ts +7 -1
  176. package/dist/lib/models/tile.d.ts.map +1 -1
  177. package/dist/lib/models/travelPackage.d.ts +37 -4
  178. package/dist/lib/models/travelPackage.d.ts.map +1 -1
  179. package/dist/lib/models/travelPackage.js +1 -1
  180. package/dist/lib/models/user.d.ts +25 -2
  181. package/dist/lib/models/user.d.ts.map +1 -1
  182. package/dist/lib/models/user.js +1 -0
  183. package/dist/lib/userAtom.d.ts +30 -5
  184. package/dist/lib/userAtom.d.ts.map +1 -1
  185. package/dist/lib/utils/entityTiles.d.ts.map +1 -1
  186. package/dist/lib/utils/entityTiles.js +3 -2
  187. package/dist/lib/utils/htmlDescription.d.ts +3 -0
  188. package/dist/lib/utils/htmlDescription.d.ts.map +1 -0
  189. package/dist/lib/utils/htmlDescription.js +7 -0
  190. package/dist/lib/utils/htmlDescription.native.d.ts +3 -0
  191. package/dist/lib/utils/htmlDescription.native.d.ts.map +1 -0
  192. package/dist/lib/utils/htmlDescription.native.js +7 -0
  193. package/dist/lib/utils/text.d.ts +5 -1
  194. package/dist/lib/utils/text.d.ts.map +1 -1
  195. package/dist/lib/utils/text.js +18 -6
  196. package/dist/lib/utils/uploadFile.d.ts +9 -0
  197. package/dist/lib/utils/uploadFile.d.ts.map +1 -0
  198. package/dist/lib/utils/uploadFile.js +9 -0
  199. package/dist/lib/utils/uploadTasks.d.ts +76 -0
  200. package/dist/lib/utils/uploadTasks.d.ts.map +1 -0
  201. package/dist/lib/utils/uploadTasks.js +102 -0
  202. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeTransport.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/nativeTransport.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,MAAM,mBAAmB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AACvH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,IAAI,MAAM,CAAC;IACtB,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAID,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,IAAI,eAA+E,CAAC;AAE3I,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,IAAI,QAK3E;AACD,eAAO,MAAM,kBAAkB,qCAAgB,CAAC;AAChD,eAAO,MAAM,uBAAuB,cAAmB,CAAC;AACxD,wBAAgB,uBAAuB,SAAkC;AACzE,oEAAoE;AACpE,wBAAgB,sBAAsB,eAKrC;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,SAAa,EAAE,WAAW,UAAQ,iBAoB7G"}
@@ -0,0 +1,50 @@
1
+ let adapter = null;
2
+ let generation = 0;
3
+ const listeners = new Set();
4
+ export const subscribeNativeSession = (listener) => { listeners.add(listener); return () => { listeners.delete(listener); }; };
5
+ const changed = () => listeners.forEach(listener => listener());
6
+ export function configureNativeTransport(next) {
7
+ if (next && (!/^https?:\/\//.test(next.apiUrl) || !next.deviceId))
8
+ throw new Error("An explicit API URL and device ID are required");
9
+ adapter = next;
10
+ generation += 1;
11
+ changed();
12
+ }
13
+ export const getNativeTransport = () => adapter;
14
+ export const nativeSessionGeneration = () => generation;
15
+ export function invalidateNativeSession() { generation += 1; changed(); }
16
+ /** Capture at the start of a user interaction, before any await. */
17
+ export function nativeInteractionGuard() {
18
+ const owner = adapter, epoch = generation;
19
+ return () => {
20
+ if (owner && (adapter !== owner || generation !== epoch))
21
+ throw new Error("The account changed. Return to your draft before continuing.");
22
+ };
23
+ }
24
+ let credentialWrite = Promise.resolve();
25
+ export async function acceptNativeSession(value, expectedGeneration = generation, newIdentity = false) {
26
+ if (!adapter) {
27
+ if (expectedGeneration !== generation)
28
+ throw new Error("Session changed");
29
+ return;
30
+ }
31
+ const tokens = value;
32
+ if (!tokens || !tokens.accessToken || !tokens.refreshToken || tokens.accountType !== "user" || tokens.deviceId !== adapter.deviceId)
33
+ throw new Error("Invalid native session response");
34
+ const owner = adapter;
35
+ const isCurrent = () => adapter === owner && generation === expectedGeneration;
36
+ const write = credentialWrite.catch(() => { }).then(async () => {
37
+ if (!isCurrent())
38
+ throw new Error("Session changed");
39
+ await owner.setTokens(tokens, isCurrent);
40
+ if (!isCurrent())
41
+ throw new Error("Session changed");
42
+ // Login/verification may replace actor A with B. Requests started while the
43
+ // new identity was pending still used A's credential and must be invalidated.
44
+ // Refresh rotation is the same actor and intentionally retains its epoch.
45
+ if (newIdentity)
46
+ invalidateNativeSession();
47
+ });
48
+ credentialWrite = write;
49
+ await write;
50
+ }
@@ -8,12 +8,18 @@ export declare function getAllNotifications(): Promise<{
8
8
  type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
9
9
  userId?: string | undefined;
10
10
  timestamp?: any;
11
+ visitedAt?: string | null | undefined;
11
12
  link?: string | undefined;
12
- category?: "booking" | "opportunity" | "package" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
13
+ category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
13
14
  metadata?: {
14
15
  status?: string | undefined;
15
16
  rating?: number | undefined;
16
17
  title?: string | undefined;
18
+ uploadTaskId?: string | undefined;
19
+ uploadOutcome?: "failed" | "complete" | undefined;
20
+ uploadEventId?: string | undefined;
21
+ contentId?: string | undefined;
22
+ outcome?: string | undefined;
17
23
  conversationId?: string | undefined;
18
24
  messageId?: string | undefined;
19
25
  senderId?: string | undefined;
@@ -44,12 +50,18 @@ export declare function getNotifications(limit: number): Promise<{
44
50
  type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
45
51
  userId?: string | undefined;
46
52
  timestamp?: any;
53
+ visitedAt?: string | null | undefined;
47
54
  link?: string | undefined;
48
- category?: "booking" | "opportunity" | "package" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
55
+ category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
49
56
  metadata?: {
50
57
  status?: string | undefined;
51
58
  rating?: number | undefined;
52
59
  title?: string | undefined;
60
+ uploadTaskId?: string | undefined;
61
+ uploadOutcome?: "failed" | "complete" | undefined;
62
+ uploadEventId?: string | undefined;
63
+ contentId?: string | undefined;
64
+ outcome?: string | undefined;
53
65
  conversationId?: string | undefined;
54
66
  messageId?: string | undefined;
55
67
  senderId?: string | undefined;
@@ -88,4 +100,44 @@ export declare function toggleAllNotification(read: boolean): Promise<{
88
100
  error: any;
89
101
  message?: undefined;
90
102
  }>;
103
+ export declare const subscribeNotificationChanges: (listener: () => void) => () => void;
104
+ export declare const notificationsChanged: () => void;
105
+ export declare function saveUploadNotification(input: {
106
+ eventId: string;
107
+ taskId: string;
108
+ outcome: 'complete' | 'failed';
109
+ title: string;
110
+ link?: string;
111
+ resolveOnly?: boolean;
112
+ }): Promise<{
113
+ _id: string;
114
+ message: string;
115
+ read: boolean;
116
+ type?: "new_message" | "milestone_completed" | "expense_added" | "group_invite" | "mention" | "application_received" | "application_status" | "application_shortlisted" | "id_verification_request" | "id_verified" | "id_rejected" | "package_enquiry" | "package_approval" | "package_denial" | "package_rating" | "package_review" | "opportunity_assigned" | "opportunity_approval" | "opportunity_denial" | "opportunity_rating" | "opportunity_review" | "blog_like" | "blog_comment" | "blog_posted" | "blog_approval" | "blog_denial" | "booking_confirmed" | "system" | "general" | undefined;
117
+ userId?: string | undefined;
118
+ timestamp?: any;
119
+ visitedAt?: string | null | undefined;
120
+ link?: string | undefined;
121
+ category?: "opportunity" | "package" | "booking" | "blog" | "system" | "general" | "chat" | "application" | "account" | undefined;
122
+ metadata?: {
123
+ status?: string | undefined;
124
+ rating?: number | undefined;
125
+ title?: string | undefined;
126
+ uploadTaskId?: string | undefined;
127
+ uploadOutcome?: "failed" | "complete" | undefined;
128
+ uploadEventId?: string | undefined;
129
+ contentId?: string | undefined;
130
+ outcome?: string | undefined;
131
+ conversationId?: string | undefined;
132
+ messageId?: string | undefined;
133
+ senderId?: string | undefined;
134
+ senderName?: string | undefined;
135
+ conversationName?: string | undefined;
136
+ milestoneId?: string | undefined;
137
+ expenseId?: string | undefined;
138
+ referenceId?: string | undefined;
139
+ referenceType?: string | undefined;
140
+ } | undefined;
141
+ }>;
142
+ export declare function visitNotificationTargets(destination: string): Promise<string[]>;
91
143
  //# sourceMappingURL=notification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/notification.ts"],"names":[],"mappings":"AAuBA,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAElC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE7C;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;;;;;;;;GAWjE;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;GAQxD"}
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/notification.ts"],"names":[],"mappings":"AAuBA,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAElC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE7C;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;;;;;;;;GAWjE;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO;;;;;;;;GAQxD;AAID,eAAO,MAAM,4BAA4B,GAAI,UAAU,MAAM,IAAI,eAAuG,CAAC;AACzK,eAAO,MAAM,oBAAoB,YAA8D,CAAC;AAChG,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAI3K;AACD,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,qBAGjE"}
@@ -1,4 +1,4 @@
1
- import { get, patch } from "./fetcher";
1
+ import { get, patch, post } from "./fetcher";
2
2
  async function getNotificationList(endpoint) {
3
3
  try {
4
4
  const data = await get(endpoint);
@@ -40,3 +40,15 @@ export async function toggleAllNotification(read) {
40
40
  return { success: false, error: error.message };
41
41
  }
42
42
  }
43
+ const notificationListeners = new Set();
44
+ export const subscribeNotificationChanges = (listener) => { notificationListeners.add(listener); return () => { notificationListeners.delete(listener); }; };
45
+ export const notificationsChanged = () => notificationListeners.forEach(listener => listener());
46
+ export async function saveUploadNotification(input) {
47
+ const response = await post('/notification', { uploadOutcome: input });
48
+ notificationsChanged();
49
+ return response.data;
50
+ }
51
+ export async function visitNotificationTargets(destination) {
52
+ const response = await patch('/notification/visit', { destination });
53
+ return response.data.ids;
54
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"opportunity.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/opportunity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opportunity.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/opportunity.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { runUploadTask } from "../utils/uploadTasks";
1
2
  import { del, get, patch, post } from "./fetcher";
2
3
  import { convertOpportunityToTileProps } from "../utils/entityTiles";
3
4
  export async function getOpportunityTilesByStatus(status, limit) {
@@ -147,7 +148,7 @@ export async function opportunityMetaData(slug) {
147
148
  export async function createOpportunity(formData) {
148
149
  try {
149
150
  const endpoint = `/newHostPost/create`;
150
- const data = await post(endpoint, formData);
151
+ const data = await runUploadTask({ title: 'Opportunity listing', retrySafe: false, href: "/dashboard/host/opportunities", body: formData, operation: ({ progress }) => post(endpoint, formData, true, { onUploadProgress: progress }) });
151
152
  return {
152
153
  success: true,
153
154
  slug: data.data,
@@ -165,7 +166,7 @@ export async function createOpportunity(formData) {
165
166
  export async function editOpportunity(formData, slug) {
166
167
  try {
167
168
  const endpoint = `/newHostPost/update/${slug}`;
168
- const data = await patch(endpoint, formData);
169
+ const data = await runUploadTask({ title: 'Opportunity listing', retrySafe: false, href: "/dashboard/host/opportunities", body: formData, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
169
170
  return {
170
171
  success: true,
171
172
  slug: data.data,
@@ -1,7 +1,7 @@
1
1
  import { TravelPackage } from "../models/package";
2
2
  import { TileProps } from "../models/tile";
3
3
  import { DifficultyEnum, TravelPackage as DetailedTravelPackage, TravelPackageMetaData, TravelPackagePdfExtractionResult } from "../models/travelPackage";
4
- import { EnquiryStatus, PackageEnquiry } from "../models/enquiry";
4
+ import { EnquiryStatus, PackageEnquiry, PackageEnquiryInput } from "../models/enquiry";
5
5
  export type { PackageMetaData } from "../models/package";
6
6
  export declare function getPackageTiles(status?: readonly string[], limit?: number, filters?: {
7
7
  categoryId?: string;
@@ -101,20 +101,22 @@ export declare function getEnquiriesForPackage(slug: string): Promise<{
101
101
  error?: string;
102
102
  enquiries: PackageEnquiry[];
103
103
  }>;
104
- export declare function savePackageEnquiry(formData: FormData): Promise<{
104
+ export declare function savePackageEnquiry(input: FormData | PackageEnquiryInput): Promise<{
105
105
  success: boolean;
106
106
  message?: string;
107
107
  error?: string;
108
+ enquiry?: PackageEnquiry;
108
109
  }>;
109
110
  export declare function updateEnquiryStatus(status: EnquiryStatus, id: string): Promise<{
110
111
  success: boolean;
111
112
  message?: string;
112
113
  error?: string;
113
114
  }>;
114
- export declare function editPackageEnquiry(formData: FormData, id: string): Promise<{
115
+ export declare function editPackageEnquiry(input: FormData | PackageEnquiryInput, id: string): Promise<{
115
116
  success: boolean;
116
117
  message?: string;
117
118
  error?: string;
119
+ enquiry?: PackageEnquiry;
118
120
  }>;
119
121
  export declare function getPendingPackages(): Promise<{
120
122
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/package.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/package.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
+ import { getNativeTransport } from './nativeTransport';
2
+ import { runUploadTask } from "../utils/uploadTasks";
1
3
  import { get, patch, post, del } from "./fetcher";
2
4
  import { calculatePricingStrategyDisplayUnitPrice, getPricingCurrency, getPricingStrategies } from "../models/pricing";
5
+ import { packageEnquiryFormData } from "../forms/packageEnquiry";
3
6
  import { convertTravelPackageToTileProps } from "../utils/entityTiles";
4
7
  // ─── Public ───────────────────────────────────────────────────────────────────
5
8
  export async function getPackageTiles(status = ["open"], limit, filters) {
@@ -159,7 +162,7 @@ export async function packagesByHost() {
159
162
  }
160
163
  export async function createPackage(formData) {
161
164
  try {
162
- const data = await post("/packages/create", formData);
165
+ const data = await runUploadTask({ title: 'Package', retrySafe: false, href: "/dashboard/host/packages", body: formData, operation: ({ progress }) => post("/packages/create", formData, true, { onUploadProgress: progress }) });
163
166
  return {
164
167
  success: true,
165
168
  slug: extractPackageSlug(data.data),
@@ -179,7 +182,7 @@ export async function extractPackageFromPdf(file) {
179
182
  try {
180
183
  const formData = new FormData();
181
184
  formData.append("packagePdf", file);
182
- const response = await post("/packages/source-pdfs/extract", formData);
185
+ const response = await runUploadTask({ title: 'Package PDF import', recoveryKey: 'package-pdf', retrySafe: true, href: typeof window === 'undefined' ? undefined : window.location.pathname, body: formData, operation: ({ progress }) => post("/packages/source-pdfs/extract", formData, true, { onUploadProgress: progress }) });
183
186
  return {
184
187
  success: true,
185
188
  data: response.data,
@@ -196,7 +199,7 @@ export async function extractPackageFromPdf(file) {
196
199
  }
197
200
  export async function editPackage(formData, slug) {
198
201
  try {
199
- const data = await patch(`/packages/update/${slug}`, formData);
202
+ const data = await runUploadTask({ title: 'Package', retrySafe: false, href: "/dashboard/host/packages", body: formData, operation: ({ progress }) => patch(`/packages/update/${slug}`, formData, { onUploadProgress: progress }) });
200
203
  return {
201
204
  success: true,
202
205
  slug: extractPackageSlug(data.data) || slug,
@@ -221,6 +224,8 @@ export async function deletePackage(slug) {
221
224
  export async function getPackageEnquiry(slug) {
222
225
  try {
223
226
  const data = await get(`/enquiries/getEnquiryByUserAndSlug/${slug}`);
227
+ if (data.data === undefined || (data.data !== null && (!data.data || typeof data.data !== "object" || !data.data._id)))
228
+ throw new Error("Enquiry status response was incomplete. Please retry.");
224
229
  return {
225
230
  success: true,
226
231
  message: data.message,
@@ -244,10 +249,11 @@ export async function getEnquiriesForPackage(slug) {
244
249
  return { success: false, error: error.message, enquiries: [] };
245
250
  }
246
251
  }
247
- export async function savePackageEnquiry(formData) {
252
+ export async function savePackageEnquiry(input) {
248
253
  try {
249
- const data = await post("/enquiries/enquireForPackage", formData);
250
- return { success: true, message: data.message };
254
+ const formData = input instanceof FormData ? input : packageEnquiryFormData(input);
255
+ const data = await runUploadTask({ title: 'Package', retrySafe: false, href: getNativeTransport() ? "/my-trips" : "/dashboard/host/packages", body: formData, operation: ({ progress }) => post("/enquiries/enquireForPackage", formData, true, { onUploadProgress: progress }) });
256
+ return { success: true, message: data.message, enquiry: data.data };
251
257
  }
252
258
  catch (error) {
253
259
  return { success: false, error: error.message };
@@ -262,10 +268,10 @@ export async function updateEnquiryStatus(status, id) {
262
268
  return { success: false, error: error.message };
263
269
  }
264
270
  }
265
- export async function editPackageEnquiry(formData, id) {
271
+ export async function editPackageEnquiry(input, id) {
266
272
  try {
267
- const data = await patch(`/enquiries/updateEnquiry/${id}`, formData);
268
- return { success: true, message: data.message };
273
+ const data = await runUploadTask({ title: 'Package', retrySafe: false, href: getNativeTransport() ? "/my-trips" : "/dashboard/host/packages", body: input instanceof FormData ? input : undefined, operation: ({ progress }) => patch(`/enquiries/updateEnquiry/${id}`, input, { onUploadProgress: progress }) });
274
+ return { success: true, message: data.message, enquiry: data.data };
269
275
  }
270
276
  catch (error) {
271
277
  return { success: false, error: error.message };
@@ -1 +1 @@
1
- {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/portfolio.ts"],"names":[],"mappings":"AAMA,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;GAYhD;AACD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;GAYxD;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM;;;;;;;;GAenD"}
1
+ {"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/portfolio.ts"],"names":[],"mappings":"AAOA,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;GAYhD;AACD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;GAYxD;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM;;;;;;;;GAenD"}
@@ -1,3 +1,4 @@
1
+ import { runUploadTask } from "../utils/uploadTasks";
1
2
  import { del, get, post } from "./fetcher";
2
3
  // volunteer specific
3
4
  // portfolio
@@ -18,7 +19,7 @@ export async function getUserPortfolio(id) {
18
19
  export async function addPortfolioItem(formData) {
19
20
  try {
20
21
  const endpoint = "/portfolio/add";
21
- const data = await post(endpoint, formData);
22
+ const data = await runUploadTask({ title: 'Portfolio', retrySafe: false, href: typeof window === "undefined" ? undefined : window.location.pathname, operation: ({ progress }) => post(endpoint, formData, true, { onUploadProgress: progress }) });
22
23
  return { success: true, message: data.message, portfolio: data.data };
23
24
  }
24
25
  catch (error) {
@@ -1,6 +1,11 @@
1
1
  import type { UserRole } from "../models/props";
2
2
  import type { User } from "../models/user";
3
3
  import type { SocialPlatformType } from "../utils/socialMediaUrl";
4
+ import { type UploadFile } from "../utils/uploadFile";
5
+ export declare function updateTravellerResume(file: UploadFile): Promise<{
6
+ success: boolean;
7
+ error?: string;
8
+ }>;
4
9
  export declare function updateUserSkillExpertise(username: string, skill: string, expertise: number): Promise<{
5
10
  success: boolean;
6
11
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;GAYhG;AACD,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,QAAQ,EAAE,QAAQ,EAClB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAChC,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC,CAYD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,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,CAY3J;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7E,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAChE,CAAC,CAkBD;AAGD,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC,CAiBD"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAExE,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3G;AAED,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;GAYhG;AACD,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,QAAQ,EAAE,QAAQ,EAClB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAChC,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC,CASD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,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,CAY3J;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7E,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAChE,CAAC,CAkBD;AAGD,wBAAsB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CACnB,CAAC,CAgBD"}
@@ -1,4 +1,17 @@
1
+ import { runUploadTask } from "../utils/uploadTasks";
1
2
  import { get, patch } from "./fetcher";
3
+ import { appendUploadFile } from "../utils/uploadFile";
4
+ export async function updateTravellerResume(file) {
5
+ try {
6
+ const body = new FormData();
7
+ appendUploadFile(body, "resume", file);
8
+ await patch("/users/resume-update", body);
9
+ return { success: true };
10
+ }
11
+ catch (error) {
12
+ return { success: false, error: error.message };
13
+ }
14
+ }
2
15
  export async function updateUserSkillExpertise(username, skill, expertise) {
3
16
  try {
4
17
  const endpoint = `/users/updateSkillExpertise/${username}`;
@@ -17,7 +30,7 @@ export async function updateUserData(role, formData, baseAccountType) {
17
30
  try {
18
31
  const accountType = baseAccountType || (role === "host" ? "host" : "user");
19
32
  const endpoint = accountType === "host" ? "/hosts/update" : "/users/update";
20
- const data = await patch(endpoint, formData);
33
+ const data = await runUploadTask({ title: "Profile upload", retrySafe: false, href: typeof window === "undefined" ? undefined : window.location.pathname, body: formData, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
21
34
  return { success: true, user: data.data, message: data.message };
22
35
  }
23
36
  catch (error) {
@@ -63,7 +76,7 @@ export async function saveUserResume(file) {
63
76
  const endpoint = `/users/resume-update`;
64
77
  const formData = new FormData();
65
78
  formData.append("resume", file);
66
- const data = await patch(endpoint, formData);
79
+ const data = await runUploadTask({ title: 'Profile', retrySafe: true, href: typeof window === "undefined" ? undefined : window.location.pathname, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
67
80
  return {
68
81
  success: true,
69
82
  message: data.message,
@@ -1 +1 @@
1
- {"version":3,"file":"rental.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/rental.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rental.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/rental.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { runUploadTask } from "../utils/uploadTasks";
1
2
  import { get, patch, post, del } from "./fetcher";
2
3
  import { calculatePricingStrategyDisplayUnitPrice, getPricingStrategies, getPricingCurrency } from "../models/pricing";
3
4
  // ─── Public ───────────────────────────────────────────────────────────────────
@@ -91,7 +92,7 @@ export async function rentalsByHost() {
91
92
  }
92
93
  export async function createRental(formData) {
93
94
  try {
94
- const data = await post(`/rentals/create`, formData);
95
+ const data = await runUploadTask({ title: 'Rental listing', retrySafe: false, href: "/dashboard/host/rentals", body: formData, operation: ({ progress }) => post(`/rentals/create`, formData, true, { onUploadProgress: progress }) });
95
96
  return { success: true, slug: data.data.slug, message: data.message };
96
97
  }
97
98
  catch (error) {
@@ -101,7 +102,7 @@ export async function createRental(formData) {
101
102
  }
102
103
  export async function editRental(formData, slug) {
103
104
  try {
104
- const data = await patch(`/rentals/update/${slug}`, formData);
105
+ const data = await runUploadTask({ title: 'Rental listing', retrySafe: false, href: "/dashboard/host/rentals", body: formData, operation: ({ progress }) => patch(`/rentals/update/${slug}`, formData, { onUploadProgress: progress }) });
105
106
  return { success: true, slug: data.data.slug, message: data.message };
106
107
  }
107
108
  catch (error) {
@@ -41,4 +41,11 @@ export declare function deleteReview(id: string): Promise<{
41
41
  message?: string;
42
42
  error?: string;
43
43
  }>;
44
+ /** Exhaustive target-scoped owner read; malformed/changing pages are not absence. */
45
+ export declare function getReviewOwnerForTarget(slug: string, type: reviewTargetType, actorId: string): Promise<{
46
+ success: boolean;
47
+ review: Review | null;
48
+ entityId: string | null;
49
+ error?: string;
50
+ }>;
44
51
  //# sourceMappingURL=review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EACnB,MAAM,kBAAkB,CAAC;AAG1B,wBAAsB,cAAc,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE;IACL,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACd,GACP,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CA4BD;AAED,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,EAAE,gBAAgB,GACvB,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzF,CAAC,CAcD;AAED,wBAAsB,SAAS,CAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,cAAc,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBxF;AAED,wBAAsB,UAAU,CAC5B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,cAAc,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBxF;AAED,wBAAsB,YAAY,CAC9B,EAAE,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQjE"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EACnB,MAAM,kBAAkB,CAAC;AAM1B,wBAAsB,cAAc,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE;IACL,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACd,GACP,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CA4BD;AAED,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EAAE,EACb,IAAI,EAAE,gBAAgB,GACvB,OAAO,CAAC;IACP,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACzF,CAAC,CAcD;AAED,wBAAsB,SAAS,CAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,cAAc,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CASxF;AAED,wBAAsB,UAAU,CAC5B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,cAAc,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAUxF;AAED,wBAAsB,YAAY,CAC9B,EAAE,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQjE;AAED,qFAAqF;AACrF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,OAAO,EAAC,OAAO,CAAC;IAAA,MAAM,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,QAAQ,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,KAAK,CAAC,EAAC,MAAM,CAAA;CAAC,CAAC,CAgErL"}
@@ -1,4 +1,7 @@
1
1
  import { del, get, patch, post } from "./fetcher";
2
+ import { reviewRequestBody } from "../forms/review";
3
+ import { getNativeTransport } from "./nativeTransport";
4
+ import { runUploadTask } from "../utils/uploadTasks";
2
5
  export async function getReviewsById(id, type, options = {}) {
3
6
  try {
4
7
  const { page = 1, limit = 5, sortBy = "createdAt", sortOrder = "desc", rating } = options;
@@ -42,25 +45,8 @@ export async function getRatingById(ids, type) {
42
45
  }
43
46
  export async function addReview(id, type, formData) {
44
47
  try {
45
- let body;
46
- if (formData.images?.length && formData.images[0] instanceof File) {
47
- const formBody = new FormData();
48
- formBody.append("reviewee", id);
49
- formBody.append("revieweeType", type);
50
- formBody.append("rating", formData.rating.toString());
51
- formBody.append("comment", formData.comment || "");
52
- formData.images.forEach((image) => formBody.append("images", image));
53
- body = formBody;
54
- }
55
- else {
56
- body = {
57
- reviewee: id,
58
- revieweeType: type,
59
- rating: formData.rating,
60
- comment: formData.comment,
61
- };
62
- }
63
- const data = await post("/reviews/", body);
48
+ const body = reviewRequestBody(formData, { id, type });
49
+ const data = await runUploadTask({ title: "Review", retrySafe: getNativeTransport() ? false : undefined, href: typeof window === "undefined" || !window.location ? undefined : window.location.pathname, operation: ({ progress }) => post("/reviews/", body, true, { onUploadProgress: progress }) });
64
50
  return { success: true, review: data.data, message: data.message };
65
51
  }
66
52
  catch (error) {
@@ -70,18 +56,10 @@ export async function addReview(id, type, formData) {
70
56
  }
71
57
  export async function editReview(id, formData) {
72
58
  try {
73
- let body;
74
- if (formData.images?.length && formData.images[0] instanceof File) {
75
- const formBody = new FormData();
76
- formBody.append("rating", formData.rating.toString());
77
- formBody.append("comment", formData.comment || "");
78
- formData.images.forEach((image) => formBody.append("images", image));
79
- body = formBody;
80
- }
81
- else {
82
- body = { rating: formData.rating, comment: formData.comment };
83
- }
84
- const data = await patch(`/reviews/${encodeURIComponent(id)}`, body);
59
+ if (getNativeTransport() && formData.images?.length)
60
+ throw new Error("Review photos cannot be changed by the current service. Update the rating and comment only.");
61
+ const body = reviewRequestBody(formData);
62
+ const data = await runUploadTask({ title: "Review update", retrySafe: getNativeTransport() ? false : undefined, href: typeof window === "undefined" || !window.location ? undefined : window.location.pathname, operation: ({ progress }) => patch(`/reviews/${encodeURIComponent(id)}`, body, { onUploadProgress: progress }) });
85
63
  return { success: true, review: data.data, message: data.message };
86
64
  }
87
65
  catch (error) {
@@ -99,3 +77,59 @@ export async function deleteReview(id) {
99
77
  return { success: false, error: error.message };
100
78
  }
101
79
  }
80
+ /** Exhaustive target-scoped owner read; malformed/changing pages are not absence. */
81
+ export async function getReviewOwnerForTarget(slug, type, actorId) {
82
+ try {
83
+ let page = 1, entityId = null, own = null;
84
+ let expectedTotal = null;
85
+ const seen = new Set();
86
+ while (true) {
87
+ const result = await getReviewsById(slug, type, {
88
+ page,
89
+ limit: 20,
90
+ });
91
+ if (!result.success)
92
+ throw new Error(result.error);
93
+ if (!Array.isArray(result.reviews) ||
94
+ typeof result.hasMore !== "boolean" ||
95
+ !Number.isSafeInteger(result.totalCount) ||
96
+ result.totalCount < 0)
97
+ throw new Error("Reviews could not be read.");
98
+ if (expectedTotal !== null && expectedTotal !== result.totalCount)
99
+ throw new Error("Reviews changed while reading. Refresh before submitting.");
100
+ expectedTotal = result.totalCount;
101
+ let added = 0;
102
+ for (const row of result.reviews) {
103
+ if (!row?._id ||
104
+ !row.reviewee ||
105
+ row.revieweeType !== type ||
106
+ !row.reviewer ||
107
+ !row.reviewerType)
108
+ throw new Error("Review identity could not be confirmed.");
109
+ if (entityId && row.reviewee !== entityId)
110
+ throw new Error("Conflicting review targets were returned.");
111
+ entityId = row.reviewee;
112
+ if (!seen.has(row._id)) {
113
+ seen.add(row._id);
114
+ added++;
115
+ }
116
+ if (row.reviewer === actorId && row.reviewerType === "User") {
117
+ if (own && own._id !== row._id)
118
+ throw new Error("More than one current review was returned. Contact support before changing it.");
119
+ own = row;
120
+ }
121
+ }
122
+ if (!result.hasMore) {
123
+ if (seen.size !== expectedTotal)
124
+ throw new Error("The complete review collection could not be confirmed. Retry before submitting.");
125
+ return { success: true, review: own, entityId };
126
+ }
127
+ if (!added)
128
+ throw new Error("Review pages could not advance. Retry the read before posting.");
129
+ page++;
130
+ }
131
+ }
132
+ catch (error) {
133
+ return { success: false, review: null, entityId: null, error: error instanceof Error ? error.message : "Reviews could not load." };
134
+ }
135
+ }
@@ -1,7 +1,3 @@
1
- /**
2
- * Room Actions — CRUD operations for the Room entity
3
- * Rooms are linked to properties via propertyId
4
- */
5
1
  export declare function getRoomsByProperty(propertyId: string): Promise<{
6
2
  success: boolean;
7
3
  rooms: any[];