@myrjfa/state 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +21 -0
  3. package/dist/hooks/usePersistentDraftState.d.ts +20 -0
  4. package/dist/hooks/usePersistentDraftState.d.ts.map +1 -0
  5. package/dist/hooks/usePersistentDraftState.js +47 -0
  6. package/dist/index.d.ts +46 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +45 -0
  9. package/dist/lib/QueryProvider.d.ts +4 -0
  10. package/dist/lib/QueryProvider.d.ts.map +1 -0
  11. package/dist/lib/QueryProvider.js +10 -0
  12. package/dist/lib/actions/actions.d.ts +192 -0
  13. package/dist/lib/actions/actions.d.ts.map +1 -0
  14. package/dist/lib/actions/actions.js +392 -0
  15. package/dist/lib/actions/adminDashboard.d.ts +4 -0
  16. package/dist/lib/actions/adminDashboard.d.ts.map +1 -0
  17. package/dist/lib/actions/adminDashboard.js +29 -0
  18. package/dist/lib/actions/adventure.d.ts +104 -0
  19. package/dist/lib/actions/adventure.d.ts.map +1 -0
  20. package/dist/lib/actions/adventure.js +203 -0
  21. package/dist/lib/actions/application.d.ts +35 -0
  22. package/dist/lib/actions/application.d.ts.map +1 -0
  23. package/dist/lib/actions/application.js +573 -0
  24. package/dist/lib/actions/auth.d.ts +286 -0
  25. package/dist/lib/actions/auth.d.ts.map +1 -0
  26. package/dist/lib/actions/auth.js +155 -0
  27. package/dist/lib/actions/blog.d.ts +61 -0
  28. package/dist/lib/actions/blog.d.ts.map +1 -0
  29. package/dist/lib/actions/blog.js +762 -0
  30. package/dist/lib/actions/booking.d.ts +45 -0
  31. package/dist/lib/actions/booking.d.ts.map +1 -0
  32. package/dist/lib/actions/booking.js +91 -0
  33. package/dist/lib/actions/brand.d.ts +83 -0
  34. package/dist/lib/actions/brand.d.ts.map +1 -0
  35. package/dist/lib/actions/brand.js +28 -0
  36. package/dist/lib/actions/chat.d.ts +266 -0
  37. package/dist/lib/actions/chat.d.ts.map +1 -0
  38. package/dist/lib/actions/chat.js +741 -0
  39. package/dist/lib/actions/companion.d.ts +174 -0
  40. package/dist/lib/actions/companion.d.ts.map +1 -0
  41. package/dist/lib/actions/companion.js +276 -0
  42. package/dist/lib/actions/event.d.ts +178 -0
  43. package/dist/lib/actions/event.d.ts.map +1 -0
  44. package/dist/lib/actions/event.js +214 -0
  45. package/dist/lib/actions/fetcher.d.ts +6 -0
  46. package/dist/lib/actions/fetcher.d.ts.map +1 -0
  47. package/dist/lib/actions/fetcher.js +148 -0
  48. package/dist/lib/actions/guide.d.ts +55 -0
  49. package/dist/lib/actions/guide.d.ts.map +1 -0
  50. package/dist/lib/actions/guide.js +128 -0
  51. package/dist/lib/actions/hostDashboard.d.ts +122 -0
  52. package/dist/lib/actions/hostDashboard.d.ts.map +1 -0
  53. package/dist/lib/actions/hostDashboard.js +329 -0
  54. package/dist/lib/actions/location.d.ts +141 -0
  55. package/dist/lib/actions/location.d.ts.map +1 -0
  56. package/dist/lib/actions/location.js +113 -0
  57. package/dist/lib/actions/notifications.d.ts +91 -0
  58. package/dist/lib/actions/notifications.d.ts.map +1 -0
  59. package/dist/lib/actions/notifications.js +83 -0
  60. package/dist/lib/actions/opportunity.d.ts +44 -0
  61. package/dist/lib/actions/opportunity.d.ts.map +1 -0
  62. package/dist/lib/actions/opportunity.js +318 -0
  63. package/dist/lib/actions/package.d.ts +85 -0
  64. package/dist/lib/actions/package.d.ts.map +1 -0
  65. package/dist/lib/actions/package.js +167 -0
  66. package/dist/lib/actions/place.d.ts +191 -0
  67. package/dist/lib/actions/place.d.ts.map +1 -0
  68. package/dist/lib/actions/place.js +57 -0
  69. package/dist/lib/actions/portfolio.d.ts +65 -0
  70. package/dist/lib/actions/portfolio.d.ts.map +1 -0
  71. package/dist/lib/actions/portfolio.js +62 -0
  72. package/dist/lib/actions/property.d.ts +17 -0
  73. package/dist/lib/actions/property.d.ts.map +1 -0
  74. package/dist/lib/actions/property.js +16 -0
  75. package/dist/lib/actions/rental.d.ts +87 -0
  76. package/dist/lib/actions/rental.d.ts.map +1 -0
  77. package/dist/lib/actions/rental.js +205 -0
  78. package/dist/lib/actions/review.d.ts +8 -0
  79. package/dist/lib/actions/review.d.ts.map +1 -0
  80. package/dist/lib/actions/review.js +102 -0
  81. package/dist/lib/actions/room.d.ts +39 -0
  82. package/dist/lib/actions/room.d.ts.map +1 -0
  83. package/dist/lib/actions/room.js +74 -0
  84. package/dist/lib/actions/serverActions.d.ts +4 -0
  85. package/dist/lib/actions/serverActions.d.ts.map +1 -0
  86. package/dist/lib/actions/serverActions.js +37 -0
  87. package/dist/lib/actions/socket.d.ts +7 -0
  88. package/dist/lib/actions/socket.d.ts.map +1 -0
  89. package/dist/lib/actions/socket.js +26 -0
  90. package/dist/lib/actions/stay.d.ts +97 -0
  91. package/dist/lib/actions/stay.d.ts.map +1 -0
  92. package/dist/lib/actions/stay.js +138 -0
  93. package/dist/lib/actions/travelPackage.d.ts +104 -0
  94. package/dist/lib/actions/travelPackage.d.ts.map +1 -0
  95. package/dist/lib/actions/travelPackage.js +487 -0
  96. package/dist/lib/actions/user.d.ts +23 -0
  97. package/dist/lib/actions/user.d.ts.map +1 -0
  98. package/dist/lib/actions/user.js +55 -0
  99. package/dist/lib/actions.d.ts +556 -0
  100. package/dist/lib/actions.d.ts.map +1 -0
  101. package/dist/lib/actions.js +1330 -0
  102. package/dist/lib/adminDashboardActions.d.ts +73 -0
  103. package/dist/lib/adminDashboardActions.d.ts.map +1 -0
  104. package/dist/lib/adminDashboardActions.js +98 -0
  105. package/dist/lib/adventureActions.d.ts +102 -0
  106. package/dist/lib/adventureActions.d.ts.map +1 -0
  107. package/dist/lib/adventureActions.js +202 -0
  108. package/dist/lib/adventureDummyData.d.ts +3 -0
  109. package/dist/lib/adventureDummyData.d.ts.map +1 -0
  110. package/dist/lib/adventureDummyData.js +138 -0
  111. package/dist/lib/adventureFormPage.d.ts +39 -0
  112. package/dist/lib/adventureFormPage.d.ts.map +1 -0
  113. package/dist/lib/adventureFormPage.js +70 -0
  114. package/dist/lib/authSessionManager.d.ts +2 -0
  115. package/dist/lib/authSessionManager.d.ts.map +1 -0
  116. package/dist/lib/authSessionManager.js +35 -0
  117. package/dist/lib/authorizationActions.d.ts +77 -0
  118. package/dist/lib/authorizationActions.d.ts.map +1 -0
  119. package/dist/lib/authorizationActions.js +61 -0
  120. package/dist/lib/brandActions.d.ts +83 -0
  121. package/dist/lib/brandActions.d.ts.map +1 -0
  122. package/dist/lib/brandActions.js +28 -0
  123. package/dist/lib/companionActions.d.ts +174 -0
  124. package/dist/lib/companionActions.d.ts.map +1 -0
  125. package/dist/lib/companionActions.js +276 -0
  126. package/dist/lib/companionDummyData.d.ts +99 -0
  127. package/dist/lib/companionDummyData.d.ts.map +1 -0
  128. package/dist/lib/companionDummyData.js +203 -0
  129. package/dist/lib/context/ChatContext.d.ts +51 -0
  130. package/dist/lib/context/ChatContext.d.ts.map +1 -0
  131. package/dist/lib/context/ChatContext.js +445 -0
  132. package/dist/lib/data/adventureDummyData.d.ts +3 -0
  133. package/dist/lib/data/adventureDummyData.d.ts.map +1 -0
  134. package/dist/lib/data/adventureDummyData.js +138 -0
  135. package/dist/lib/data/adventureFormPage.d.ts +28 -0
  136. package/dist/lib/data/adventureFormPage.d.ts.map +1 -0
  137. package/dist/lib/data/adventureFormPage.js +58 -0
  138. package/dist/lib/data/companionDummyData.d.ts +99 -0
  139. package/dist/lib/data/companionDummyData.d.ts.map +1 -0
  140. package/dist/lib/data/companionDummyData.js +203 -0
  141. package/dist/lib/data/countryStates.d.ts +31 -0
  142. package/dist/lib/data/countryStates.d.ts.map +1 -0
  143. package/dist/lib/data/countryStates.js +7117 -0
  144. package/dist/lib/data/destinations.d.ts +14 -0
  145. package/dist/lib/data/destinations.d.ts.map +1 -0
  146. package/dist/lib/data/destinations.js +203 -0
  147. package/dist/lib/data/eventFormPage.d.ts +38 -0
  148. package/dist/lib/data/eventFormPage.d.ts.map +1 -0
  149. package/dist/lib/data/eventFormPage.js +56 -0
  150. package/dist/lib/data/eventsDummyData.d.ts +54 -0
  151. package/dist/lib/data/eventsDummyData.d.ts.map +1 -0
  152. package/dist/lib/data/eventsDummyData.js +586 -0
  153. package/dist/lib/data/guideDummyData.d.ts +3 -0
  154. package/dist/lib/data/guideDummyData.d.ts.map +1 -0
  155. package/dist/lib/data/guideDummyData.js +66 -0
  156. package/dist/lib/data/opportunityFormData.d.ts +13 -0
  157. package/dist/lib/data/opportunityFormData.d.ts.map +1 -0
  158. package/dist/lib/data/opportunityFormData.js +62 -0
  159. package/dist/lib/data/opportunityFormPage.d.ts +12 -0
  160. package/dist/lib/data/opportunityFormPage.d.ts.map +1 -0
  161. package/dist/lib/data/opportunityFormPage.js +33 -0
  162. package/dist/lib/data/packageDummyData.d.ts +3 -0
  163. package/dist/lib/data/packageDummyData.d.ts.map +1 -0
  164. package/dist/lib/data/packageDummyData.js +56 -0
  165. package/dist/lib/data/rentalDummyData.d.ts +3 -0
  166. package/dist/lib/data/rentalDummyData.d.ts.map +1 -0
  167. package/dist/lib/data/rentalDummyData.js +382 -0
  168. package/dist/lib/data/rentalFormPage.d.ts +11 -0
  169. package/dist/lib/data/rentalFormPage.d.ts.map +1 -0
  170. package/dist/lib/data/rentalFormPage.js +86 -0
  171. package/dist/lib/data/staysDummyData.d.ts +72 -0
  172. package/dist/lib/data/staysDummyData.d.ts.map +1 -0
  173. package/dist/lib/data/staysDummyData.js +694 -0
  174. package/dist/lib/data/storeDummyData.d.ts +33 -0
  175. package/dist/lib/data/storeDummyData.d.ts.map +1 -0
  176. package/dist/lib/data/storeDummyData.js +336 -0
  177. package/dist/lib/data/travelPackageFormData.d.ts +19 -0
  178. package/dist/lib/data/travelPackageFormData.d.ts.map +1 -0
  179. package/dist/lib/data/travelPackageFormData.js +51 -0
  180. package/dist/lib/data/travelPackageFormPage.d.ts +22 -0
  181. package/dist/lib/data/travelPackageFormPage.d.ts.map +1 -0
  182. package/dist/lib/data/travelPackageFormPage.js +40 -0
  183. package/dist/lib/data/vehicleData.d.ts +2 -0
  184. package/dist/lib/data/vehicleData.d.ts.map +1 -0
  185. package/dist/lib/data/vehicleData.js +187 -0
  186. package/dist/lib/data/vehicleModels.d.ts +2 -0
  187. package/dist/lib/data/vehicleModels.d.ts.map +1 -0
  188. package/dist/lib/data/vehicleModels.js +128 -0
  189. package/dist/lib/destinations.d.ts +14 -0
  190. package/dist/lib/destinations.d.ts.map +1 -0
  191. package/dist/lib/destinations.js +203 -0
  192. package/dist/lib/discountActions.d.ts +43 -0
  193. package/dist/lib/discountActions.d.ts.map +1 -0
  194. package/dist/lib/discountActions.js +69 -0
  195. package/dist/lib/entitySubmission.d.ts +21 -0
  196. package/dist/lib/entitySubmission.d.ts.map +1 -0
  197. package/dist/lib/entitySubmission.js +10 -0
  198. package/dist/lib/eventActions.d.ts +176 -0
  199. package/dist/lib/eventActions.d.ts.map +1 -0
  200. package/dist/lib/eventActions.js +222 -0
  201. package/dist/lib/eventFormPage.d.ts +49 -0
  202. package/dist/lib/eventFormPage.d.ts.map +1 -0
  203. package/dist/lib/eventFormPage.js +84 -0
  204. package/dist/lib/eventsDummyData.d.ts +54 -0
  205. package/dist/lib/eventsDummyData.d.ts.map +1 -0
  206. package/dist/lib/eventsDummyData.js +586 -0
  207. package/dist/lib/guideActions.d.ts +53 -0
  208. package/dist/lib/guideActions.d.ts.map +1 -0
  209. package/dist/lib/guideActions.js +127 -0
  210. package/dist/lib/guideDummyData.d.ts +3 -0
  211. package/dist/lib/guideDummyData.d.ts.map +1 -0
  212. package/dist/lib/guideDummyData.js +66 -0
  213. package/dist/lib/hooks/use-mobile.d.ts +2 -0
  214. package/dist/lib/hooks/use-mobile.d.ts.map +1 -0
  215. package/dist/lib/hooks/use-mobile.js +15 -0
  216. package/dist/lib/hooks/useChatSocket.d.ts +6 -0
  217. package/dist/lib/hooks/useChatSocket.d.ts.map +1 -0
  218. package/dist/lib/hooks/useChatSocket.js +35 -0
  219. package/dist/lib/hooks/useHostCalendarSelection.d.ts +51 -0
  220. package/dist/lib/hooks/useHostCalendarSelection.d.ts.map +1 -0
  221. package/dist/lib/hooks/useHostCalendarSelection.js +200 -0
  222. package/dist/lib/hooks/usePersistentDraftState.d.ts +20 -0
  223. package/dist/lib/hooks/usePersistentDraftState.d.ts.map +1 -0
  224. package/dist/lib/hooks/usePersistentDraftState.js +47 -0
  225. package/dist/lib/hostDashboardActions.d.ts +189 -0
  226. package/dist/lib/hostDashboardActions.d.ts.map +1 -0
  227. package/dist/lib/hostDashboardActions.js +400 -0
  228. package/dist/lib/imageUpload.d.ts +4 -0
  229. package/dist/lib/imageUpload.d.ts.map +1 -0
  230. package/dist/lib/imageUpload.js +36 -0
  231. package/dist/lib/locationActions.d.ts +141 -0
  232. package/dist/lib/locationActions.d.ts.map +1 -0
  233. package/dist/lib/locationActions.js +113 -0
  234. package/dist/lib/loyaltyActions.d.ts +32 -0
  235. package/dist/lib/loyaltyActions.d.ts.map +1 -0
  236. package/dist/lib/loyaltyActions.js +92 -0
  237. package/dist/lib/models/adventure.d.ts +90 -0
  238. package/dist/lib/models/adventure.d.ts.map +1 -0
  239. package/dist/lib/models/adventure.js +1 -0
  240. package/dist/lib/models/application.d.ts +26 -0
  241. package/dist/lib/models/application.d.ts.map +1 -0
  242. package/dist/lib/models/application.js +130 -0
  243. package/dist/lib/models/authorization.d.ts +107 -0
  244. package/dist/lib/models/authorization.d.ts.map +1 -0
  245. package/dist/lib/models/authorization.js +263 -0
  246. package/dist/lib/models/blog.d.ts +66 -0
  247. package/dist/lib/models/blog.d.ts.map +1 -0
  248. package/dist/lib/models/blog.js +181 -0
  249. package/dist/lib/models/booking.d.ts +90 -0
  250. package/dist/lib/models/booking.d.ts.map +1 -0
  251. package/dist/lib/models/booking.js +1 -0
  252. package/dist/lib/models/chat.d.ts +384 -0
  253. package/dist/lib/models/chat.d.ts.map +1 -0
  254. package/dist/lib/models/chat.js +5 -0
  255. package/dist/lib/models/discount.d.ts +611 -0
  256. package/dist/lib/models/discount.d.ts.map +1 -0
  257. package/dist/lib/models/discount.js +128 -0
  258. package/dist/lib/models/enquiry.d.ts +34 -0
  259. package/dist/lib/models/enquiry.d.ts.map +1 -0
  260. package/dist/lib/models/enquiry.js +140 -0
  261. package/dist/lib/models/forms.d.ts +384 -0
  262. package/dist/lib/models/forms.d.ts.map +1 -0
  263. package/dist/lib/models/forms.js +121 -0
  264. package/dist/lib/models/guide.d.ts +42 -0
  265. package/dist/lib/models/guide.d.ts.map +1 -0
  266. package/dist/lib/models/guide.js +1 -0
  267. package/dist/lib/models/loyalty.d.ts +88 -0
  268. package/dist/lib/models/loyalty.d.ts.map +1 -0
  269. package/dist/lib/models/loyalty.js +1 -0
  270. package/dist/lib/models/notifications.d.ts +99 -0
  271. package/dist/lib/models/notifications.d.ts.map +1 -0
  272. package/dist/lib/models/notifications.js +63 -0
  273. package/dist/lib/models/opportunities/freelance.d.ts +641 -0
  274. package/dist/lib/models/opportunities/freelance.d.ts.map +1 -0
  275. package/dist/lib/models/opportunities/freelance.js +12 -0
  276. package/dist/lib/models/opportunities/internship.d.ts +618 -0
  277. package/dist/lib/models/opportunities/internship.d.ts.map +1 -0
  278. package/dist/lib/models/opportunities/internship.js +7 -0
  279. package/dist/lib/models/opportunities/job.d.ts +754 -0
  280. package/dist/lib/models/opportunities/job.d.ts.map +1 -0
  281. package/dist/lib/models/opportunities/job.js +26 -0
  282. package/dist/lib/models/opportunities/opportunity.d.ts +729 -0
  283. package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -0
  284. package/dist/lib/models/opportunities/opportunity.js +232 -0
  285. package/dist/lib/models/opportunities/volunteerJob.d.ts +595 -0
  286. package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -0
  287. package/dist/lib/models/opportunities/volunteerJob.js +5 -0
  288. package/dist/lib/models/package.d.ts +422 -0
  289. package/dist/lib/models/package.d.ts.map +1 -0
  290. package/dist/lib/models/package.js +58 -0
  291. package/dist/lib/models/portfolio.d.ts +43 -0
  292. package/dist/lib/models/portfolio.d.ts.map +1 -0
  293. package/dist/lib/models/portfolio.js +70 -0
  294. package/dist/lib/models/pricing.d.ts +255 -0
  295. package/dist/lib/models/pricing.d.ts.map +1 -0
  296. package/dist/lib/models/pricing.js +145 -0
  297. package/dist/lib/models/props.d.ts +67 -0
  298. package/dist/lib/models/props.d.ts.map +1 -0
  299. package/dist/lib/models/props.js +191 -0
  300. package/dist/lib/models/rental.d.ts +95 -0
  301. package/dist/lib/models/rental.d.ts.map +1 -0
  302. package/dist/lib/models/rental.js +1 -0
  303. package/dist/lib/models/review.d.ts +50 -0
  304. package/dist/lib/models/review.d.ts.map +1 -0
  305. package/dist/lib/models/review.js +74 -0
  306. package/dist/lib/models/stay.d.ts +462 -0
  307. package/dist/lib/models/stay.d.ts.map +1 -0
  308. package/dist/lib/models/stay.js +215 -0
  309. package/dist/lib/models/store.d.ts +71 -0
  310. package/dist/lib/models/store.d.ts.map +1 -0
  311. package/dist/lib/models/store.js +1 -0
  312. package/dist/lib/models/tile.d.ts +57 -0
  313. package/dist/lib/models/tile.d.ts.map +1 -0
  314. package/dist/lib/models/tile.js +1 -0
  315. package/dist/lib/models/travelPackage.d.ts +844 -0
  316. package/dist/lib/models/travelPackage.d.ts.map +1 -0
  317. package/dist/lib/models/travelPackage.js +324 -0
  318. package/dist/lib/models/user.d.ts +241 -0
  319. package/dist/lib/models/user.d.ts.map +1 -0
  320. package/dist/lib/models/user.js +115 -0
  321. package/dist/lib/multistepDraft.d.ts +4 -0
  322. package/dist/lib/multistepDraft.d.ts.map +1 -0
  323. package/dist/lib/multistepDraft.js +18 -0
  324. package/dist/lib/opportunityFormData.d.ts +13 -0
  325. package/dist/lib/opportunityFormData.d.ts.map +1 -0
  326. package/dist/lib/opportunityFormData.js +62 -0
  327. package/dist/lib/opportunityFormPage.d.ts +39 -0
  328. package/dist/lib/opportunityFormPage.d.ts.map +1 -0
  329. package/dist/lib/opportunityFormPage.js +34 -0
  330. package/dist/lib/packageActions.d.ts +86 -0
  331. package/dist/lib/packageActions.d.ts.map +1 -0
  332. package/dist/lib/packageActions.js +168 -0
  333. package/dist/lib/packageDummyData.d.ts +3 -0
  334. package/dist/lib/packageDummyData.d.ts.map +1 -0
  335. package/dist/lib/packageDummyData.js +57 -0
  336. package/dist/lib/placeActions.d.ts +192 -0
  337. package/dist/lib/placeActions.d.ts.map +1 -0
  338. package/dist/lib/placeActions.js +57 -0
  339. package/dist/lib/pricingActions.d.ts +13 -0
  340. package/dist/lib/pricingActions.d.ts.map +1 -0
  341. package/dist/lib/pricingActions.js +16 -0
  342. package/dist/lib/propertyActions.d.ts +17 -0
  343. package/dist/lib/propertyActions.d.ts.map +1 -0
  344. package/dist/lib/propertyActions.js +16 -0
  345. package/dist/lib/rentalActions.d.ts +86 -0
  346. package/dist/lib/rentalActions.d.ts.map +1 -0
  347. package/dist/lib/rentalActions.js +234 -0
  348. package/dist/lib/rentalDummyData.d.ts +3 -0
  349. package/dist/lib/rentalDummyData.d.ts.map +1 -0
  350. package/dist/lib/rentalDummyData.js +367 -0
  351. package/dist/lib/rentalFormPage.d.ts +46 -0
  352. package/dist/lib/rentalFormPage.d.ts.map +1 -0
  353. package/dist/lib/rentalFormPage.js +94 -0
  354. package/dist/lib/roomActions.d.ts +39 -0
  355. package/dist/lib/roomActions.d.ts.map +1 -0
  356. package/dist/lib/roomActions.js +74 -0
  357. package/dist/lib/stayActions.d.ts +97 -0
  358. package/dist/lib/stayActions.d.ts.map +1 -0
  359. package/dist/lib/stayActions.js +138 -0
  360. package/dist/lib/staysDummyData.d.ts +72 -0
  361. package/dist/lib/staysDummyData.d.ts.map +1 -0
  362. package/dist/lib/staysDummyData.js +694 -0
  363. package/dist/lib/storeActions.d.ts +25 -0
  364. package/dist/lib/storeActions.d.ts.map +1 -0
  365. package/dist/lib/storeActions.js +46 -0
  366. package/dist/lib/storeDummyData.d.ts +9 -0
  367. package/dist/lib/storeDummyData.d.ts.map +1 -0
  368. package/dist/lib/storeDummyData.js +336 -0
  369. package/dist/lib/travelPackageActions.d.ts +102 -0
  370. package/dist/lib/travelPackageActions.d.ts.map +1 -0
  371. package/dist/lib/travelPackageActions.js +487 -0
  372. package/dist/lib/travelPackageFormData.d.ts +20 -0
  373. package/dist/lib/travelPackageFormData.d.ts.map +1 -0
  374. package/dist/lib/travelPackageFormData.js +54 -0
  375. package/dist/lib/travelPackageFormPage.d.ts +32 -0
  376. package/dist/lib/travelPackageFormPage.d.ts.map +1 -0
  377. package/dist/lib/travelPackageFormPage.js +43 -0
  378. package/dist/lib/userAtom.d.ts +294 -0
  379. package/dist/lib/userAtom.d.ts.map +1 -0
  380. package/dist/lib/userAtom.js +139 -0
  381. package/dist/lib/util.d.ts +11 -0
  382. package/dist/lib/util.d.ts.map +1 -0
  383. package/dist/lib/util.js +82 -0
  384. package/dist/lib/utils/entitySubmission.d.ts +21 -0
  385. package/dist/lib/utils/entitySubmission.d.ts.map +1 -0
  386. package/dist/lib/utils/entitySubmission.js +10 -0
  387. package/dist/lib/utils/fileCompression.d.ts +16 -0
  388. package/dist/lib/utils/fileCompression.d.ts.map +1 -0
  389. package/dist/lib/utils/fileCompression.js +56 -0
  390. package/dist/lib/utils/imageUpload.d.ts +4 -0
  391. package/dist/lib/utils/imageUpload.d.ts.map +1 -0
  392. package/dist/lib/utils/imageUpload.js +36 -0
  393. package/dist/lib/utils/socialMediaUrl.d.ts +25 -0
  394. package/dist/lib/utils/socialMediaUrl.d.ts.map +1 -0
  395. package/dist/lib/utils/socialMediaUrl.js +97 -0
  396. package/dist/lib/utils/tileConverters.d.ts +8 -0
  397. package/dist/lib/utils/tileConverters.d.ts.map +1 -0
  398. package/dist/lib/utils/tileConverters.js +59 -0
  399. package/dist/lib/utils.d.ts +53 -0
  400. package/dist/lib/utils.d.ts.map +1 -0
  401. package/dist/lib/utils.js +183 -0
  402. package/dist/lib/vehicleData.d.ts +2 -0
  403. package/dist/lib/vehicleData.d.ts.map +1 -0
  404. package/dist/lib/vehicleData.js +181 -0
  405. package/dist/lib/vehicleModels.d.ts +2 -0
  406. package/dist/lib/vehicleModels.d.ts.map +1 -0
  407. package/dist/lib/vehicleModels.js +128 -0
  408. package/package.json +61 -0
@@ -0,0 +1,36 @@
1
+ export async function normalizeImageFile(file) {
2
+ const lowerName = file.name.toLowerCase();
3
+ const isHeicLike = file.type === "image/heic" ||
4
+ file.type === "image/heif" ||
5
+ lowerName.endsWith(".heic") ||
6
+ lowerName.endsWith(".heif");
7
+ if (!isHeicLike)
8
+ return file;
9
+ const heic2any = (await import("heic2any")).default;
10
+ const convertedBlob = await heic2any({
11
+ blob: file,
12
+ toType: "image/jpeg",
13
+ quality: 0.9,
14
+ });
15
+ return new File([convertedBlob], file.name.replace(/\.(heic|heif)$/i, ".jpeg"), { type: "image/jpeg" });
16
+ }
17
+ export async function normalizeImageFiles(files) {
18
+ return Promise.all(files.map((file) => normalizeImageFile(file)));
19
+ }
20
+ export async function prepareImageFiles(files, maxImageSizeMb, onWarning) {
21
+ const preparedFiles = [];
22
+ for (const file of files) {
23
+ if (file.size > maxImageSizeMb * 1024 * 1024) {
24
+ await onWarning(`${file.name} is too large. Max allowed size is ${maxImageSizeMb}MB.`);
25
+ continue;
26
+ }
27
+ try {
28
+ preparedFiles.push(await normalizeImageFile(file));
29
+ }
30
+ catch (error) {
31
+ console.error("Image normalization failed for", file.name, error);
32
+ await onWarning(`Could not convert ${file.name} from HEIC.`);
33
+ }
34
+ }
35
+ return preparedFiles;
36
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Normalizes social media input (username or partial URL) into a fully qualified URL.
3
+ * Handles cases where users enter just a username, handle, or partial URL.
4
+ */
5
+ export type SocialPlatformType = 'instagram' | 'twitter' | 'linkedin' | 'facebook' | 'youtube' | 'github' | 'googleBusiness';
6
+ interface PlatformConfig {
7
+ baseUrl: string;
8
+ usernameRegex: RegExp;
9
+ urlPattern: RegExp;
10
+ buildUrl: (username: string) => string;
11
+ placeholder: string;
12
+ hint: string;
13
+ }
14
+ declare const PLATFORM_CONFIGS: Record<SocialPlatformType, PlatformConfig>;
15
+ /**
16
+ * Attempts to normalize a social media input into a full URL.
17
+ * Returns { url, error } — url is the corrected URL or the original input, error is a message if invalid.
18
+ */
19
+ export declare function normalizeSocialUrl(platform: SocialPlatformType, input: string): {
20
+ url: string;
21
+ error: string | null;
22
+ };
23
+ export { PLATFORM_CONFIGS };
24
+ export type { SocialPlatformType as SocialPlatform };
25
+ //# sourceMappingURL=socialMediaUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socialMediaUrl.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/socialMediaUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAE7H,UAAU,cAAc;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,aAAa,EAAE,MAAM,CAAC;IAEtB,UAAU,EAAE,MAAM,CAAC;IAEnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAyDhE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,GACd;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAiCvC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,kBAAkB,IAAI,cAAc,EAAE,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Normalizes social media input (username or partial URL) into a fully qualified URL.
3
+ * Handles cases where users enter just a username, handle, or partial URL.
4
+ */
5
+ const PLATFORM_CONFIGS = {
6
+ instagram: {
7
+ baseUrl: 'https://instagram.com/',
8
+ usernameRegex: /^[a-zA-Z0-9._]{1,30}$/,
9
+ urlPattern: /^https?:\/\/(www\.)?instagram\.com\/([a-zA-Z0-9._]+)\/?/,
10
+ buildUrl: (u) => `https://instagram.com/${u}`,
11
+ placeholder: 'pankaj.sharma or https://instagram.com/pankaj.sharma',
12
+ hint: 'Username: letters, numbers, . and _ (max 30 chars)',
13
+ },
14
+ twitter: {
15
+ baseUrl: 'https://x.com/',
16
+ usernameRegex: /^[a-zA-Z0-9_]{1,15}$/,
17
+ urlPattern: /^https?:\/\/(www\.)?(twitter\.com|x\.com)\/([a-zA-Z0-9_]+)\/?/,
18
+ buildUrl: (u) => `https://x.com/${u}`,
19
+ placeholder: 'pankajsharma or https://x.com/pankajsharma',
20
+ hint: 'Username: letters, numbers, _ (max 15 chars)',
21
+ },
22
+ linkedin: {
23
+ baseUrl: 'https://linkedin.com/in/',
24
+ usernameRegex: /^[a-zA-Z0-9-]{3,100}$/,
25
+ urlPattern: /^https?:\/\/(www\.)?linkedin\.com\/in\/([a-zA-Z0-9-]+)\/?/,
26
+ buildUrl: (u) => `https://linkedin.com/in/${u}`,
27
+ placeholder: 'pankaj-sharma or https://linkedin.com/in/pankaj-sharma',
28
+ hint: 'Username: letters, numbers, - (3–100 chars)',
29
+ },
30
+ facebook: {
31
+ baseUrl: 'https://facebook.com/',
32
+ usernameRegex: /^[a-zA-Z0-9.]{5,50}$/,
33
+ urlPattern: /^https?:\/\/(www\.)?facebook\.com\/([a-zA-Z0-9.]+)\/?/,
34
+ buildUrl: (u) => `https://facebook.com/${u}`,
35
+ placeholder: 'pankaj.sharma or https://facebook.com/pankaj.sharma',
36
+ hint: 'Username: letters, numbers, . (5–50 chars)',
37
+ },
38
+ youtube: {
39
+ baseUrl: 'https://youtube.com/@',
40
+ usernameRegex: /^@?[a-zA-Z0-9_-]{3,30}$/,
41
+ urlPattern: /^https?:\/\/(www\.)?youtube\.com\/@?([a-zA-Z0-9_-]+)\/?/,
42
+ buildUrl: (u) => `https://youtube.com/@${u.replace(/^@/, '')}`,
43
+ placeholder: '@pankajsharma or https://youtube.com/@pankajsharma',
44
+ hint: 'Handle: letters, numbers, _ and - (3–30 chars)',
45
+ },
46
+ github: {
47
+ baseUrl: 'https://github.com/',
48
+ usernameRegex: /^[a-zA-Z0-9-]{1,39}$/,
49
+ urlPattern: /^https?:\/\/(www\.)?github\.com\/([a-zA-Z0-9-]+)\/?/,
50
+ buildUrl: (u) => `https://github.com/${u}`,
51
+ placeholder: 'pankaj-sharma or https://github.com/pankaj-sharma',
52
+ hint: 'Username: letters, numbers, - (max 39 chars)',
53
+ },
54
+ googleBusiness: {
55
+ baseUrl: 'https://mybusiness.google.com/',
56
+ usernameRegex: /^[a-zA-Z0-9-]{1,39}$/, // Adjust regex as needed
57
+ urlPattern: /^https?:\/\/(www\.)?mybusiness\.google\.com\/([a-zA-Z0-9-]+)\/?/,
58
+ buildUrl: (u) => `https://mybusiness.google.com/${u}`,
59
+ placeholder: 'pankaj-sharma or https://mybusiness.google.com/pankaj-sharma',
60
+ hint: 'Username: letters, numbers, - (max 39 chars)',
61
+ },
62
+ };
63
+ /**
64
+ * Attempts to normalize a social media input into a full URL.
65
+ * Returns { url, error } — url is the corrected URL or the original input, error is a message if invalid.
66
+ */
67
+ export function normalizeSocialUrl(platform, input) {
68
+ const cfg = PLATFORM_CONFIGS[platform];
69
+ if (!input || input.trim() === '')
70
+ return { url: '', error: null };
71
+ const trimmed = input.trim();
72
+ // Already a full URL for this platform → extract username and rebuild canonical
73
+ const urlMatch = trimmed.match(cfg.urlPattern);
74
+ if (urlMatch) {
75
+ // Take the captured username group (last capture group)
76
+ const username = urlMatch[urlMatch.length - 1] ?? trimmed;
77
+ return { url: cfg.buildUrl(username), error: null };
78
+ }
79
+ // Looks like a URL for a *different* site or malformed URL
80
+ if (trimmed.startsWith('http://') || trimmed.startsWith('https://') || trimmed.includes('.com/') || trimmed.includes('.net/')) {
81
+ return {
82
+ url: trimmed,
83
+ error: `That doesn't look like a valid ${platform} URL. ${cfg.hint}`,
84
+ };
85
+ }
86
+ // Plain username — validate and build URL
87
+ const usernameToTest = trimmed.replace(/^@/, ''); // strip leading @ for youtube/etc
88
+ const testValue = platform === 'youtube' ? trimmed : usernameToTest;
89
+ if (!cfg.usernameRegex.test(testValue)) {
90
+ return {
91
+ url: trimmed,
92
+ error: `Invalid ${platform} username. ${cfg.hint}`,
93
+ };
94
+ }
95
+ return { url: cfg.buildUrl(usernameToTest), error: null };
96
+ }
97
+ export { PLATFORM_CONFIGS };
@@ -0,0 +1,8 @@
1
+ import { Blog } from "../models/blog";
2
+ import { TileProps } from "../models/tile";
3
+ import { TravelPackage } from "../models/package";
4
+ import { Opportunity } from "../models/opportunities/opportunity";
5
+ export declare function convertOpportunityToTileProps(opportunity: Opportunity): TileProps;
6
+ export declare function convertBlogToTileProps(blog: Blog): TileProps;
7
+ export declare function convertTravelPackageToTileProps(travelPackage: TravelPackage): TileProps;
8
+ //# sourceMappingURL=tileConverters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tileConverters.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/tileConverters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAGlE,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAejF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAgB5D;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAuBvF"}
@@ -0,0 +1,59 @@
1
+ import { truncateText } from "../utils";
2
+ import { calculatePricingStrategyDisplayUnitPrice, getPricingCurrency, getPricingStrategies } from "../models/pricing";
3
+ export function convertOpportunityToTileProps(opportunity) {
4
+ return {
5
+ slug: opportunity.slug || '',
6
+ image: opportunity.images?.[0] || "/images/placeholder.svg",
7
+ title: opportunity.title || '',
8
+ description: opportunity.description || '',
9
+ location: opportunity.city + ', ' + opportunity.state || '',
10
+ date: opportunity.createdAt || new Date(),
11
+ rating: opportunity.rating,
12
+ skills: opportunity.skills || [],
13
+ className: opportunity.categoryId,
14
+ duration: opportunity.minDuration,
15
+ maxDuration: opportunity.maxDuration,
16
+ opportunityType: opportunity.opportunityType || 'volunteer',
17
+ };
18
+ }
19
+ export function convertBlogToTileProps(blog) {
20
+ return {
21
+ slug: blog.slug || '',
22
+ image: blog.blogImages?.[0] || "/images/placeholder.svg",
23
+ title: blog.title || '',
24
+ description: truncateText(blog.overview, 150),
25
+ location: '',
26
+ date: blog.createdAt,
27
+ rating: blog.likes || 0,
28
+ skills: [],
29
+ className: '',
30
+ host: blog.author ? {
31
+ name: blog.author,
32
+ image: blog.authorImage
33
+ } : undefined,
34
+ };
35
+ }
36
+ export function convertTravelPackageToTileProps(travelPackage) {
37
+ return {
38
+ slug: travelPackage.slug || '',
39
+ image: travelPackage.packageImages?.[0] || "/images/placeholder.svg",
40
+ title: travelPackage.title || '',
41
+ description: '',
42
+ tileType: "packages",
43
+ location: travelPackage.city + ', ' + travelPackage.state || '',
44
+ date: travelPackage.createdAt instanceof Date ? travelPackage.createdAt : new Date(travelPackage.createdAt),
45
+ rating: travelPackage.rating,
46
+ className: travelPackage.categoryId,
47
+ price: calculatePricingStrategyDisplayUnitPrice(getPricingStrategies(travelPackage)?.[0]),
48
+ currency: getPricingCurrency(travelPackage),
49
+ duration: travelPackage.duration,
50
+ difficultyLevel: travelPackage.difficultyLevel,
51
+ host: travelPackage.host?.name ? {
52
+ image: travelPackage.host?.image ?? "/images/profile_placeholder.webp",
53
+ name: travelPackage.host?.name,
54
+ } : {
55
+ image: travelPackage.hostId?.profilePic ?? "/images/profile_placeholder.webp",
56
+ name: travelPackage.hostId?.username,
57
+ }
58
+ };
59
+ }
@@ -0,0 +1,53 @@
1
+ import { type ClassValue } from "clsx";
2
+ import { User } from "./models/user";
3
+ export declare const MAX_IMAGE_SIZE_MB = 5;
4
+ export declare const MAX_PDF_SIZE_MB = 10;
5
+ export declare const validRoles: string[];
6
+ export declare function cn(...inputs: ClassValue[]): string;
7
+ export declare function retrieveCity(location: string): string;
8
+ export declare function retrieveState(location: string): string;
9
+ export declare const safeNumber: (val: string | undefined) => number;
10
+ export declare function formatDate(date: string | Date): string;
11
+ export declare function formatRelativeTime(date: string | Date): string;
12
+ export declare function getStatusColor(status: string): string;
13
+ export declare function getProgressValue(status: string): number;
14
+ export declare const truncateText: (text: string, limit: number) => string;
15
+ export declare const numToStr: (input: number) => string;
16
+ export declare const handleEmail: (email: string, subject: string, body: string) => string;
17
+ export declare function formatDuration(start: number, end: number): string;
18
+ export declare function truncateDecimal(num: number, limit: number): number;
19
+ export declare function sanitize<T>(input: any, keys: (keyof T)[]): T;
20
+ export declare const formatTimestamp: (date: Date) => string;
21
+ export declare function extractHtmlContentDescription(html: string, limit?: number): string;
22
+ export declare function createMetadata({ title, description, path, }: {
23
+ title?: string;
24
+ description?: string;
25
+ path?: string;
26
+ }): {
27
+ title: string;
28
+ description: string;
29
+ alternates: {
30
+ canonical: string;
31
+ };
32
+ openGraph: {
33
+ title: string;
34
+ description: string;
35
+ url: string;
36
+ siteName: string;
37
+ images: {
38
+ url: string;
39
+ width: number;
40
+ height: number;
41
+ }[];
42
+ };
43
+ twitter: {
44
+ card: string;
45
+ title: string;
46
+ description: string;
47
+ images: string[];
48
+ };
49
+ };
50
+ export declare function convertEscapesToHTML(raw: string): string;
51
+ export declare const expertiseLevels: string[];
52
+ export declare function incompleteMVP(user?: User): string[];
53
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,eAAO,MAAM,UAAU,UAA4E,CAAC;AAEpG,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,GAAG,SAAS,WAGjD,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAG9D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWvD;AAGD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,WACO,CAAC;AAEhE,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,WAKrC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,SAAS,MAAM,EAAE,MAAM,MAAM,WACE,CAAC;AAE3E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAcjE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAM5D;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,WAczC,CAAC;AAEF,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,UAItE;AAGD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,IAAI,GACL,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;;;;;;;;;;;;;;;;;;;;;;;EA8BA;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAaxD;AAED,eAAO,MAAM,eAAe,UAA0D,CAAC;AAEvF,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAanD"}
@@ -0,0 +1,183 @@
1
+ import { load } from 'cheerio';
2
+ import { clsx } from "clsx";
3
+ import { format, formatDistanceToNow } from 'date-fns';
4
+ import he from "he";
5
+ import { twMerge } from "tailwind-merge";
6
+ export const MAX_IMAGE_SIZE_MB = 5;
7
+ export const MAX_PDF_SIZE_MB = 10;
8
+ export const validRoles = ["host", "user", "admin", "hr", "sales", "developer", "customer_support"];
9
+ export function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+ export function retrieveCity(location) {
13
+ const parts = location.split(", ");
14
+ return parts[0]?.toLowerCase() || '';
15
+ }
16
+ ;
17
+ export function retrieveState(location) {
18
+ const parts = location.split(", ");
19
+ return (parts.length > 1 ? parts[1]?.trim().toLowerCase() : parts[0]?.trim().toLowerCase()) || '';
20
+ }
21
+ ;
22
+ export const safeNumber = (val) => {
23
+ const num = Number(val);
24
+ return isNaN(num) ? 0 : num;
25
+ };
26
+ export function formatDate(date) {
27
+ const dateObj = typeof date === 'string' ? new Date(date) : date;
28
+ return format(dateObj, 'MMM d, yyyy');
29
+ }
30
+ export function formatRelativeTime(date) {
31
+ const dateObj = typeof date === 'string' ? new Date(date) : date;
32
+ return formatDistanceToNow(dateObj, { addSuffix: true });
33
+ }
34
+ export function getStatusColor(status) {
35
+ const statusColors = {
36
+ draft: 'text-gray-500 bg-gray-100',
37
+ posted: 'text-blue-500 bg-blue-100',
38
+ archived: 'text-gray-500 bg-gray-100',
39
+ pending: 'text-amber-500 bg-amber-100',
40
+ approved: 'text-green-500 bg-green-100',
41
+ denied: 'text-red-500 bg-red-100',
42
+ completed: 'text-purple-500 bg-purple-100',
43
+ withdrawn: 'text-red-500 bg-red-100',
44
+ open: 'text-green-500 bg-green-100',
45
+ confirmed: 'text-green-700 bg-green-50 border border-green-200',
46
+ closed: 'text-red-500 bg-red-100',
47
+ };
48
+ return statusColors[status] || 'text-gray-500 bg-gray-100';
49
+ }
50
+ export function getProgressValue(status) {
51
+ const progressValues = {
52
+ pending: 25,
53
+ adminApproved: 50,
54
+ approved: 75,
55
+ completed: 100,
56
+ withdrawn: 0,
57
+ denied: 0,
58
+ };
59
+ return progressValues[status] || 0;
60
+ }
61
+ // Helper functions
62
+ export const truncateText = (text, limit) => text.length > limit ? text.substring(0, limit) + "..." : text;
63
+ export const numToStr = (input) => {
64
+ if (input > 1000000000)
65
+ return `${(input / 1000000000).toFixed(1)}B+`;
66
+ if (input > 1000000)
67
+ return `${(input / 1000000).toFixed(1)}M+`;
68
+ if (input > 1000)
69
+ return `${(input / 1000).toFixed(1)}K+`;
70
+ return `${input}`;
71
+ };
72
+ export const handleEmail = (email, subject, body) => window.location.href = `mailto:${email}?subject=${subject}&body=${body}`;
73
+ export function formatDuration(start, end) {
74
+ // const diff = end - start;
75
+ // if (diff < 14) {
76
+ // return `${start} - ${end} days`;
77
+ // } else if (diff < 60) {
78
+ const weeksStart = Math.floor(start);
79
+ const weeksEnd = Math.floor(end);
80
+ return `${weeksStart} - ${weeksEnd} weeks`;
81
+ // } else {
82
+ // const monthsStart = Math.floor(start / 30);
83
+ // const monthsEnd = Math.floor(end / 30);
84
+ // return `${monthsStart} - ${monthsEnd} months`;
85
+ // }
86
+ }
87
+ export function truncateDecimal(num, limit) {
88
+ return Math.round(num * Math.pow(10, limit)) / Math.pow(10, limit);
89
+ }
90
+ export function sanitize(input, keys) {
91
+ const result = {};
92
+ keys.forEach((key) => {
93
+ if (key in input)
94
+ result[key] = input[key];
95
+ });
96
+ return result;
97
+ }
98
+ export const formatTimestamp = (date) => {
99
+ const now = new Date();
100
+ const diffMinutes = Math.floor((now.getTime() - date.getTime()) / (1000 * 60));
101
+ if (diffMinutes < 1)
102
+ return "Just now";
103
+ if (diffMinutes < 60)
104
+ return `${diffMinutes}m ago`;
105
+ const diffHours = Math.floor(diffMinutes / 60);
106
+ if (diffHours < 24)
107
+ return `${diffHours}h ago`;
108
+ const diffDays = Math.floor(diffHours / 24);
109
+ if (diffDays < 7)
110
+ return `${diffDays}d ago`;
111
+ return format(date, "MMM d");
112
+ };
113
+ export function extractHtmlContentDescription(html, limit = 150) {
114
+ const $ = load(html || '');
115
+ const firstParagraph = $('p').first().text().trim();
116
+ return truncateText(firstParagraph, limit);
117
+ }
118
+ // seo
119
+ export function createMetadata({ title, description, path, }) {
120
+ const baseUrl = "https://www.trippeaze.com";
121
+ const url = path ? `${baseUrl}${path}` : baseUrl;
122
+ return {
123
+ title: title ?? "Trippeaze",
124
+ description: description ?? "Discover and volunteer globally with Trippeaze",
125
+ alternates: {
126
+ canonical: url,
127
+ },
128
+ openGraph: {
129
+ title: title ?? "Trippeaze",
130
+ description: description ?? "Discover and volunteer globally with Trippeaze",
131
+ url,
132
+ siteName: "Trippeaze",
133
+ images: [
134
+ {
135
+ url: "/og-default.jpg",
136
+ width: 1200,
137
+ height: 630,
138
+ },
139
+ ],
140
+ },
141
+ twitter: {
142
+ card: "summary_large_image",
143
+ title: title ?? "Trippeaze",
144
+ description: description ?? "Discover and volunteer globally with Trippeaze",
145
+ images: ["/og-default.jpg"],
146
+ },
147
+ };
148
+ }
149
+ export function convertEscapesToHTML(raw) {
150
+ const decoded = he.decode(raw.trim());
151
+ return decoded
152
+ // Horizontal rules (like markdown's ---)
153
+ .replace(/(?:\r?\n)?-{3,}(?:\r?\n)?/g, "<hr />")
154
+ // Paragraph breaks (2+ newlines)
155
+ .replace(/(\r\n|\n|\r){2,}/g, "</p><p>")
156
+ // Line breaks
157
+ .replace(/(\r\n|\n|\r)/g, "<br />")
158
+ // Wrap the whole thing in <p> to begin with
159
+ .replace(/^/, "<p>")
160
+ .replace(/$/, "</p>");
161
+ }
162
+ export const expertiseLevels = ["none", "basic", "intermediate", "advanced", "expert"];
163
+ export function incompleteMVP(user) {
164
+ const incompletions = [];
165
+ if (user) {
166
+ if (!user.verifiedIdCard)
167
+ incompletions.push("Verify your id card");
168
+ if (!user.skills || user.skills.length == 0)
169
+ incompletions.push("Your skills");
170
+ if (!user.userResume)
171
+ incompletions.push("Profile Default Resume");
172
+ if (!user.location)
173
+ incompletions.push("your location");
174
+ if (!user.pinCode)
175
+ incompletions.push("PinCode");
176
+ if (!user.profilePic)
177
+ incompletions.push("Profile Pic");
178
+ }
179
+ else {
180
+ incompletions.push("Please login first");
181
+ }
182
+ return incompletions;
183
+ }
@@ -0,0 +1,2 @@
1
+ export declare const VEHICLE_BRANDS_AND_MODELS: Record<string, Record<string, string[]>>;
2
+ //# sourceMappingURL=vehicleData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicleData.d.ts","sourceRoot":"","sources":["../../src/lib/vehicleData.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAqLzB,CAAC"}
@@ -0,0 +1,181 @@
1
+ export const VEHICLE_BRANDS_AND_MODELS = {
2
+ bike: {
3
+ "Royal Enfield": [
4
+ "Classic 350",
5
+ "Meteor 350",
6
+ "Himalayan 411",
7
+ "Himalayan 450",
8
+ "Interceptor 650",
9
+ "Continental GT 650",
10
+ "Hunter 350",
11
+ "Bullet 350",
12
+ "Scram 411",
13
+ "Super Meteor 650",
14
+ "Other",
15
+ ],
16
+ Bajaj: [
17
+ "Pulsar 150",
18
+ "Pulsar 220F",
19
+ "Pulsar RS200",
20
+ "Dominar 400",
21
+ "Dominar 250",
22
+ "Avenger Cruise 220",
23
+ "Avenger Street 160",
24
+ "Other",
25
+ ],
26
+ TVS: [
27
+ "Apache RTR 160",
28
+ "Apache RTR 200",
29
+ "Apache RR 310",
30
+ "Ronin",
31
+ "Raider",
32
+ "Other",
33
+ ],
34
+ KTM: [
35
+ "Duke 200",
36
+ "Duke 250",
37
+ "Duke 390",
38
+ "RC 200",
39
+ "RC 390",
40
+ "Adventure 250",
41
+ "Adventure 390",
42
+ "Other",
43
+ ],
44
+ Honda: [
45
+ "CB Shine",
46
+ "Unicorn",
47
+ "Hornet 2.0",
48
+ "H'ness CB350",
49
+ "CB350RS",
50
+ "CB200X",
51
+ "Other",
52
+ ],
53
+ Yamaha: ["YZF R15", "MT-15", "FZS-FI", "FZ-X", "Other"],
54
+ Hero: [
55
+ "Splendor Plus",
56
+ "Passion Pro",
57
+ "Xpulse 200",
58
+ "Xtreme 160R",
59
+ "Other",
60
+ ],
61
+ Suzuki: ["Gixxer", "Gixxer SF", "V-Strom SX", "Other"],
62
+ Kawasaki: ["Ninja 300", "Ninja 650", "Z900", "Versys 650", "Other"],
63
+ BMW: ["G 310 R", "G 310 GS", "Other"],
64
+ "Jawa/Yezdi": [
65
+ "Jawa 42",
66
+ "Jawa Perak",
67
+ "Yezdi Adventure",
68
+ "Yezdi Scrambler",
69
+ "Yezdi Roadster",
70
+ "Other",
71
+ ],
72
+ Other: ["Other"],
73
+ },
74
+ scooty: {
75
+ Honda: ["Activa 6G", "Activa 125", "Dio", "Grazia", "Other"],
76
+ TVS: ["Jupiter 110", "Jupiter 125", "Ntorq 125", "Scooty Pep+", "Other"],
77
+ Suzuki: ["Access 125", "Burgman Street", "Avenis", "Other"],
78
+ Yamaha: ["Fascino 125", "RayZR 125", "Aerox 155", "Other"],
79
+ Hero: ["Pleasure Plus", "Maestro Edge 125", "Destini 125", "Other"],
80
+ Vespa: ["SXL 125", "VXL 150", "Other"],
81
+ Aprilia: ["SR 160", "SXR 125", "Other"],
82
+ Ather: ["450X", "Rizta", "Other"],
83
+ "Ola Electric": ["S1 Pro", "S1 Air", "S1 X", "Other"],
84
+ Other: ["Other"],
85
+ },
86
+ car: {
87
+ "Maruti Suzuki": [
88
+ "Swift",
89
+ "Baleno",
90
+ "Dzire",
91
+ "Ignis",
92
+ "Celerio",
93
+ "Wagon R",
94
+ "Alto K10",
95
+ "Other",
96
+ ],
97
+ Hyundai: ["i20", "Grand i10 Nios", "Aura", "Verna", "Other"],
98
+ Tata: ["Altroz", "Tiago", "Tigor", "Other"],
99
+ Honda: ["Amaze", "City", "Other"],
100
+ Toyota: ["Glanza", "Camry", "Other"],
101
+ Volkswagen: ["Virtus", "Polo", "Other"],
102
+ Skoda: ["Slavia", "Other"],
103
+ Other: ["Other"],
104
+ },
105
+ suv: {
106
+ Mahindra: [
107
+ "Thar",
108
+ "XUV700",
109
+ "Scorpio-N",
110
+ "Scorpio Classic",
111
+ "Bolero",
112
+ "XUV300",
113
+ "XUV 3XO",
114
+ "Other",
115
+ ],
116
+ Tata: ["Nexon", "Punch", "Harrier", "Safari", "Other"],
117
+ Hyundai: ["Creta", "Venue", "Alcazar", "Tucson", "Other"],
118
+ Kia: ["Seltos", "Sonet", "Carens", "Other"],
119
+ Toyota: [
120
+ "Fortuner",
121
+ "Innova Crysta",
122
+ "Innova Hycross",
123
+ "Urban Cruiser Hyryder",
124
+ "Other",
125
+ ],
126
+ "Maruti Suzuki": [
127
+ "Brezza",
128
+ "Grand Vitara",
129
+ "Jimny",
130
+ "Fronx",
131
+ "Ertiga",
132
+ "XL6",
133
+ "Other",
134
+ ],
135
+ MG: ["Hector", "Astor", "Gloster", "Other"],
136
+ Jeep: ["Compass", "Wrangler", "Other"],
137
+ Other: ["Other"],
138
+ },
139
+ cycle: {
140
+ Firefox: ["Other"],
141
+ "Hero Cycles": ["Other"],
142
+ "B'Twin": ["Other"],
143
+ Hercules: ["Other"],
144
+ Trek: ["Other"],
145
+ Giant: ["Other"],
146
+ Other: ["Other"],
147
+ },
148
+ "electric-bike": {
149
+ Revolt: ["RV400", "Other"],
150
+ Tork: ["Kratos R", "Other"],
151
+ Ultraviolette: ["F77", "Other"],
152
+ Oben: ["Rorr", "Other"],
153
+ Other: ["Other"],
154
+ },
155
+ "electric-car": {
156
+ Tata: ["Nexon EV", "Tiago EV", "Punch EV", "Other"],
157
+ MG: ["ZSEV", "Comet EV", "Other"],
158
+ BYD: ["Atto 3", "Seal", "Other"],
159
+ Hyundai: ["Ioniq 5", "Kona Electric", "Other"],
160
+ Mahindra: ["XUV400", "Other"],
161
+ Other: ["Other"],
162
+ },
163
+ "tempo-traveller": {
164
+ "Force Motors": [
165
+ "Traveller 12 Seater",
166
+ "Traveller 17 Seater",
167
+ "Traveller 26 Seater",
168
+ "Urbania",
169
+ "Other",
170
+ ],
171
+ Other: ["Other"],
172
+ },
173
+ campervan: {
174
+ "Custom Caravan": ["Overlander", "Vanlife Custom", "Other"],
175
+ "Force Motors": ["Traveller Caravan", "Other"],
176
+ Other: ["Other"],
177
+ },
178
+ other: {
179
+ Other: ["Other"],
180
+ },
181
+ };
@@ -0,0 +1,2 @@
1
+ export declare const VEHICLE_BRANDS: Record<string, string[]>;
2
+ //# sourceMappingURL=vehicleModels.d.ts.map