1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,670357,544149,47337,45382,553009,e=>{"use strict";var t=e.i(816973),r=e.i(966505);class a{static instance;currentUser=null;static getInstance(){return a.instance||(a.instance=new a),a.instance}async authenticateWithWallet(e,a,s){try{let n={wallet:e,signature:btoa(String.fromCharCode(...a)),message:s,timestamp:Date.now()},i=await t.apiService.post((0,r.getEndpoint)("AUTH","WALLET"),n);return i.success&&i.data&&(t.apiService.setAuthToken(i.data.token),this.currentUser=i.data,localStorage.setItem("sosana_user",JSON.stringify(i.data.user)),localStorage.setItem("sosana_token",i.data.token)),i}catch(e){return console.error("Authentication failed:",e),{success:!1,error:"Authentication failed"}}}async verifyToken(){try{let e=localStorage.getItem("sosana_token");if(!e)return{success:!1,error:"No token found"};t.apiService.setAuthToken(e);let a=await t.apiService.get((0,r.getEndpoint)("AUTH","VERIFY"));if(a.success&&a.data)return this.currentUser=a.data,a;return this.logout(),a}catch(e){return console.error("Token verification failed:",e),this.logout(),{success:!1,error:"Token verification failed"}}}async refreshToken(){try{let e=await t.apiService.post((0,r.getEndpoint)("AUTH","REFRESH"),{});return e.success&&e.data&&(t.apiService.setAuthToken(e.data.token),this.currentUser=e.data,localStorage.setItem("sosana_token",e.data.token),localStorage.setItem("sosana_user",JSON.stringify(e.data.user))),e}catch(e){return console.error("Token refresh failed:",e),{success:!1,error:"Token refresh failed"}}}logout(){this.currentUser=null,t.apiService.clearAuthToken(),localStorage.removeItem("sosana_token"),localStorage.removeItem("sosana_user")}getCurrentUser(){if(!this.currentUser){let e=localStorage.getItem("sosana_user");if(e)try{let t=JSON.parse(e);this.currentUser={user:t,token:localStorage.getItem("sosana_token")||""}}catch(e){console.error("Failed to parse stored user data:",e),this.logout()}}return this.currentUser}isAuthenticated(){return null!==this.getCurrentUser()}hasRequiredBalance(e){let t=this.getCurrentUser();return!!t&&t.user.sosanaBalance>=e}isKYCVerified(){let e=this.getCurrentUser();return!!e&&"approved"===e.user.kycStatus}hasBadge(e){let t=this.getCurrentUser();return!!t&&t.user.badges.includes(e)}getTrustStatus(){let e=this.getCurrentUser();return e?e.user.trustStatus:"unknown"}updateUserData(e){this.currentUser&&(this.currentUser.user={...this.currentUser.user,...e},localStorage.setItem("sosana_user",JSON.stringify(this.currentUser.user)))}}var s=e.i(353209),n=e.i(614550);class i{static instance;static getInstance(){return i.instance||(i.instance=new i),i.instance}async getCRMAccess(){return t.apiService.get("/crm/access")}async optIntoCRM(){return t.apiService.post("/crm/opt-in",{})}async optOutOfCRM(){return t.apiService.post("/crm/opt-out",{})}async enableRoundRobin(){return t.apiService.post("/crm/round-robin/enable",{})}async disableRoundRobin(){return t.apiService.post("/crm/round-robin/disable",{})}async getRoundRobinSettings(){return t.apiService.get("/crm/round-robin/settings")}async updateRoundRobinSettings(e){return t.apiService.put("/crm/round-robin/settings",e)}async getAssignedLeads(e){let r=e?`/crm/leads?status=${e}`:"/crm/leads";return t.apiService.get(r)}async getLeadDetails(e){return t.apiService.get(`/crm/leads/${e}`)}async updateLeadStatus(e,r,a){return t.apiService.patch(`/crm/leads/${e}/status`,{status:r,notes:a})}async addLeadNotes(e,r){return t.apiService.post(`/crm/leads/${e}/notes`,{notes:r})}async reassignLead(e,r){return t.apiService.patch(`/crm/leads/${e}/assign`,{assignedTo:r})}async submitLead(e){return t.apiService.post("/crm/leads/submit",e)}async getCRMStats(){return t.apiService.get("/crm/stats")}async getLeadAnalytics(e){return t.apiService.get(`/crm/analytics/leads?t
1imeframe=${e}`)}async getConversionAnalytics(){return t.apiService.get("/crm/analytics/conversions")}async exportLeads(e){return t.apiService.get(`/crm/leads/export?format=${e}`)}async getLeadSources(){return t.apiService.get("/crm/leads/sources")}async getLeadTags(){return t.apiService.get("/crm/leads/tags")}async searchLeads(e){return t.apiService.get(`/crm/leads/search?q=${encodeURIComponent(e)}`)}async getTeamMembers(){return t.apiService.get("/crm/team")}async getTeamPerformance(){return t.apiService.get("/crm/team/performance")}async setLeadValue(e,r){return t.apiService.patch(`/crm/leads/${e}/value`,{value:r})}async addLeadTags(e,r){return t.apiService.patch(`/crm/leads/${e}/tags`,{tags:r})}async removeLeadTags(e,r){return t.apiService.patch(`/crm/leads/${e}/tags/remove`,{tags:r})}async getNotificationSettings(){return t.apiService.get("/crm/notifications/settings")}async updateNotificationSettings(e){return t.apiService.put("/crm/notifications/settings",e)}}e.s(["default",0,i],544149);class c{static instance;static getInstance(){return c.instance||(c.instance=new c),c.instance}async submitAMARequest(e){return t.apiService.post("/ama/requests",e)}async getUserAMARequests(){return t.apiService.get("/ama/user/requests")}async getAMARequest(e){return t.apiService.get(`/ama/requests/${e}`)}async updateAMARequest(e,r){return t.apiService.put(`/ama/requests/${e}`,r)}async cancelAMARequest(e,r){return t.apiService.post(`/ama/requests/${e}/cancel`,{reason:r})}async getAvailableHosts(){return t.apiService.get("/ama/hosts/available")}async getHostDetails(e){return t.apiService.get(`/ama/hosts/${e}`)}async getAMASchedule(){return t.apiService.get("/ama/schedule")}async getUpcomingAMAs(){return t.apiService.get("/ama/upcoming")}async getPastAMAs(){return t.apiService.get("/ama/past")}async getAMAReplays(){return t.apiService.get("/ama/replays")}async getReplayDetails(e){return t.apiService.get(`/ama/replays/${e}`)}async uploadReplay(e,r){return t.apiService.post(`/ama/${e}/replay`,r)}async updateReplay(e,r){return t.apiService.put(`/ama/replays/${e}`,r)}async deleteReplay(e){return t.apiService.delete(`/ama/replays/${e}`)}async rateHost(e,r,a,s){return t.apiService.post(`/ama/hosts/${e}/rate`,{amaId:r,rating:a,review:s})}async getHostRatings(e){return t.apiService.get(`/ama/hosts/${e}/ratings`)}async searchAMAs(e){return t.apiService.get(`/ama/search?q=${encodeURIComponent(e)}`)}async getAMAStats(){return t.apiService.get("/ama/stats")}async getUserAMAStats(){return t.apiService.get("/ama/user/stats")}async joinAMA(e){return t.apiService.post(`/ama/${e}/join`,{})}async startAMA(e){return t.apiService.post(`/ama/${e}/start`,{})}async endAMA(e){return t.apiService.post(`/ama/${e}/end`,{})}async getAMAParticipants(e){return t.apiService.get(`/ama/${e}/participants`)}async sendAMANotification(e,r){return t.apiService.post(`/ama/${e}/notify`,{message:r})}async getAMACalendar(e,r){let a=e&&r?`?month=${e}&year=${r}`:"";return t.apiService.get(`/ama/calendar${a}`)}async subscribeToAMANotifications(e){return t.apiService.post(`/ama/${e}/subscribe`,{})}async unsubscribeFromAMANotifications(e){return t.apiService.post(`/ama/${e}/unsubscribe`,{})}}class o{static instance;static getInstance(){return o.instance||(o.instance=new o),o.instance}async getCourses(e,r){let a=new URLSearchParams;e&&a.append("category",e),r&&a.append("difficulty",r);let s=a.toString()?`/lms/courses?${a.toString()}`:"/lms/courses";return t.apiService.get(s)}async getCourseDetails(e){return t.apiService.get(`/lms/courses/${e}`)}async getInstructorCourses(e){return t.apiService.get(`/lms/instructors/${e}/courses`)}async createCourse(e){return t.apiService.post("/lms/courses",e)}async updateCourse(e,r){return t.apiService.put(`/lms/courses/${e}`,r)}async deleteCourse(e){return t.apiService.delete(`/lms/courses/${e}`)}async publishCourse(e){return t.apiService.post(`/lms/courses/${e}/publish`,{})}async unpublishCourse(e){return t.apiService.post(`/lms/courses/${e}/unpublish`,{})}async enrollInCourse(e){return t.apiService.post(`/lms/courses/${e}/enroll`,{})}async getStudentEnrollments(){return t.apiService.get("/lms/student/enrollments")}async getStudentProgress(e){return t.apiService.get(`/lms/courses/${e}/progress`)}async updateModuleProgress(e,r,a){return t.apiService.patch(`/lms/courses/${e}/modules/${r}/progress`,{isCompleted:a})}async getCourseReviews(e){return t.apiService.get(`/lms/courses/${e}/reviews`)}async submitCourseReview(e,r){return t.apiService.post(`/lms/courses/${e}/reviews`,r)}async getInstructorDetails(e){return t.apiService.get(`/lms/instructors/${e}`)}async applyForInstructor(e){return t.apiService.post("/lms/instructors/appl
1y",e)}async getInstructorApplicationStatus(){return t.apiService.get("/lms/instructors/application-status")}async uploadCourseContent(e,r,a){let s=new FormData;s.append("file",r),s.append("type",a);try{let r=await fetch(`${t.apiService.baseUrl}/lms/courses/${e}/upload`,{method:"POST",body:s,headers:{Authorization:`Bearer ${localStorage.getItem("sosana_token")}`}}),a=await r.json();if(!r.ok)return{success:!1,error:a.error||`Upload failed: ${r.status}`};return{success:!0,data:{url:a.url}}}catch(e){return console.error("Content upload failed:",e),{success:!1,error:"Upload failed"}}}async searchCourses(e){return t.apiService.get(`/lms/courses/search?q=${encodeURIComponent(e)}`)}async getCourseCategories(){return t.apiService.get("/lms/courses/categories")}async getPopularCourses(){return t.apiService.get("/lms/courses/popular")}async getRecommendedCourses(){return t.apiService.get("/lms/courses/recommended")}async getLearningPath(){return t.apiService.get("/lms/learning-path")}async getCertificates(){return t.apiService.get("/lms/certificates")}async downloadCertificate(e){return t.apiService.get(`/lms/courses/${e}/certificate`)}async getLMSStats(){return t.apiService.get("/lms/stats")}async getStudentStats(){return t.apiService.get("/lms/student/stats")}async getInstructorStats(){return t.apiService.get("/lms/instructor/stats")}}class u{static instance;static getInstance(){return u.instance||(u.instance=new u),u.instance}async submitComplaint(e,r){return t.apiService.post("/complaints/legacy",{targetId:e.targetId,category:e.category,title:e.title||e.description.substring(0,200),description:e.description,severity:e.severity||"medium",evidence:e.evidence||[]},r)}async createComplaint(e,r){return t.apiService.post("/complaints/create",{businessId:e.businessId,business_slug:e.business_slug,complaint_type:e.complaint_type,complaint_body:e.complaint_body,evidence_links:e.evidence_links||[]},r)}async replyToComplaint(e,r){return t.apiService.post("/complaints/reply",{complaint_id:e.complaint_id,message:e.message,author_role:e.author_role},r)}async getBusinessComplaints(e){return t.apiService.get(`/complaints/${e}`)}async getUserComplaints(e,r){let a=new URLSearchParams;r?.page&&a.append("page",r.page.toString()),r?.limit&&a.append("limit",r.limit.toString()),r?.status&&a.append("status",r.status);let s=a.toString(),n=`/complaints${s?`?${s}`:""}`;return t.apiService.get(n,e)}async getComplaintTimer(e,r){return t.apiService.get(`/complaints/timer/${e}`,r)}async getComplaintsAgainstUser(){return t.apiService.get("/complaints/against-user")}async getComplaintDetails(e,r){return t.apiService.get(`/complaints/${e}`,r)}async updateComplaint(e,r){return t.apiService.put(`/complaints/${e}`,r)}async cancelComplaint(e,r){return t.apiService.post(`/complaints/${e}/cancel`,{reason:r})}async getTrustStatus(e){let r=e?`/complaints/trust-status/${e}`:"/complaints/trust-status";return t.apiService.get(r)}async getTrustHistory(e){return t.apiService.get(`/complaints/trust-history/${e}`)}async uploadEvidence(e,r,a){let s=new FormData;s.append("file",r),a&&s.append("description",a);try{let r=await fetch(`${t.apiService.baseUrl}/complaints/${e}/evidence`,{method:"POST",body:s,headers:{Authorization:`Bearer ${localStorage.getItem("sosana_token")}`}}),a=await r.json();if(!r.ok)return{success:!1,error:a.error||`Upload failed: ${r.status}`};return{success:!0,data:a}}catch(e){return console.error("Evidence upload failed:",e),{success:!1,error:"Upload failed"}}}async getComplaintEvidence(e){return t.apiService.get(`/complaints/${e}/evidence`)}async deleteEvidence(e,r){return t.apiService.delete(`/complaints/${e}/evidence/${r}`)}async searchComplaints(e){return t.apiService.get(`/complaints/search?q=${encodeURIComponent(e)}`)}async getComplaintStats(){return t.apiService.get("/complaints/stats")}async getUserComplaintStats(){return t.apiService.get("/complaints/user/stats")}async reportFalseComplaint(e,r){return t.apiService.post(`/complaints/${e}/report-false`,{reason:r})}async appealComplaint(e,r){return t.apiService.post(`/complaints/${e}/appeal`,{appealReason:r})}async getComplaintCategories(){return t.apiService.get("/complaints/categories")}async getComplaintGuidelines(){return t.apiService.get("/complaints/guidelines")}async canSubmitComplaint(e){return t.apiService.get(`/complaints/can-submit/${e}`)}async getComplaintProcessingTime(){return t.apiService.get("/complaints/processing-time")}async getTrustScoreExplanation(e){return t.apiService.get(`/complaints/trust-score-explanation/${e}`)}async requestTrustReview(e){return t.apiService.post("/complaints/request-trust-review",{reason:e})}async getComplaintTimeline(e){return t.apiService.get(`/complaints/${e}/timeline`)}async addComplaintComment(e,r){return t.apiService.post(`/complaints/${e}/comments`,{comment:r})}async getComplaintComments(e){return t.apiService.get(`/complaints/${e}/comments`)}async getTrustRecommendations(){return t.apiService.get("/complaints/trust-recommendations")}}e.s(["default",0,u],47337);class p{static instance;static getInstance(){return p.instance||(p.instance=new p),p.instance}async getBusinessReviews(e,r){let a=new URLSearchParams;r?.page&&a.append("page",r.page.toString()),r?.limit&&a.append("limit",r.limit.toString()),r?.minRating&&a.append("minRating",r.minRating.toString()),r?.maxRating&&a.append("maxRating",r.maxRating.toString()),r?.sortBy&&a.append("sortBy",r.sortBy),r?.sortOrder&&a.append("sortOrder",r.sortOrder);let s=a.toString(),n=`/reviews/business/${e}${s?`?${s}`:""}`;return t.apiService.get(n)}async getReview(e,r){return t.apiService.get(`/reviews/${e}`,r)}async submitReview(e,r){return t.apiService.post("/reviews",e,r)}async addReply(e,r,a){return t.apiService.post(`/reviews/${e}/reply`,r,a)}async getAISuggestions(e,r,a,s){return t.apiService.post("/reviews/ai/suggestions",{businessName:e,rating:r,userIn
1put:a||""},s)}async getReviewStats(e){return t.apiService.get(`/reviews/stats/${e}`)}async getBusinessReviewers(e,r){let a=new URLSearchParams;r?.page&&a.append("page",r.page.toString()),r?.limit&&a.append("limit",r.limit.toString());let s=a.toString(),n=`/reviews/reviewers/${e}${s?`?${s}`:""}`;return t.apiService.get(n)}}e.s(["default",0,p],45382);var l=e.i(737564);e.i(313813),e.i(517106);class g{static instance;static getInstance(){return g.instance||(g.instance=new g),g.instance}async validateReferralCode(e){return t.apiService.get(`/referral/validate/${e}`)}async applyReferralCode(e,r){return t.apiService.post("/referral/apply",{code:e,walletAddress:r})}async getReferralHistory(){return t.apiService.get("/referral/history")}async getReferralStats(){return t.apiService.get("/referral/stats")}async generateReferralCode(){return t.apiService.post("/referral/generate",{})}async getReferralCodeInfo(e){return t.apiService.get(`/referral/code/${e}`)}async checkIfReferred(e){return t.apiService.get(`/referral/check/${e}`)}async getReferralRewards(){return t.apiService.get("/referral/rewards")}async claimReferralReward(e){return t.apiService.post(`/referral/rewards/${e}/claim`,{})}async getReferralLeaderboard(){return t.apiService.get("/referral/leaderboard")}async getReferralTerms(){return t.apiService.get("/referral/terms")}async acceptReferralTerms(){return t.apiService.post("/referral/accept-terms",{})}async getReferralFAQ(){return t.apiService.get("/referral/faq")}async contactReferralSupport(e){return t.apiService.post("/referral/support",{message:e})}static formatReferralLink(e,t){return`${e}?ref=${t}`}static extractReferralCodeFromURL(e){try{return new URLSearchParams(e.split("?")[1]||"").get("ref")}catch(e){return null}}static validateReferralCodeFormat(e){return/^[A-Za-z0-9]{6,12}$/.test(e)}}class d{static instance;static getInstance(){return d.instance||(d.instance=new d),d.instance}async getUserBadges(){return t.apiService.get("/badges/user")}async getBadgesByWallet(e){return t.apiService.get(`/badges/wallet/${e}`)}async getBadgeDetails(e){return t.apiService.get(`/badges/${e}`)}async requestBadge(e){return t.apiService.post("/badges/request",e)}async updateBadge(e,r){return t.apiService.put(`/badges/${e}`,r)}async removeBadge(e){return t.apiService.delete(`/badges/${e}`)}async suppressBadge(e,r){return t.apiService.post(`/badges/${e}/suppress`,{reason:r})}async unsuppressBadge(e){return t.apiService.post(`/badges/${e}/unsuppress`,{})}async getBadgeAssets(){return t.apiService.get("/badges/assets")}async uploadBadgeAsset(e,r,a){let s=new FormData;s.append("file",e),s.append("name",r),a&&s.append("tags",JSON.stringify(a));try{let e=await fetch(`${t.apiService.baseUrl}/badges/assets/upload`,{method:"POST",body:s,headers:{Authorization:`Bearer ${localStorage.getItem("sosana_token")}`}}),r=await e.json();if(!e.ok)return{success:!1,error:r.error||`Upload failed: ${e.status}`};return{success:!0,data:r}}catch(e){return console.error("Badge asset upload failed:",e),{success:!1,error:"Upload failed"}}}async deleteBadgeAsset(e){return t.apiService.delete(`/badges/assets/${e}`)}async setBadgeRedirect(e,r){return t.apiService.post(`/badges/${e}/redirect`,{redirectUrl:r})}async removeBadgeRedirect(e){return t.apiService.delete(`/badges/${e}/redirect`)}async getBadgeRedirect(e){return t.apiService.get(`/badges/${e}/redirect`)}async accessBadgeRedirect(e){return t.apiService.get(`/badges/${e}/redirect/access`)}async getAvailableBadgeTypes(){return t.apiService.get("/badges/types")}async getBadgeRequirements(e){return t.apiService.get(`/badges/requirements/${e}`)}async checkBadgeEligibility(e){return t.apiService.get(`/badges/eligibility/${e}`)}async getBadgeStats(){return t.apiService.get("/badges/stats")}async getUserBadgeStats(){return t.apiService.get("/badges/user/stats")}async searchBadges(e){return t.apiService.get(`/badges/search?q=${encodeURIComponent(e)}`)}async getBadgeHistory(e){return t.apiService.get(`/badges/${e}/history`)}async getSuppressionHistory(e){return t.apiService.get(`/badges/${e}/suppressions`)}async appealBadgeSuppression(e,r){return t.apiService.post(`/badges/${e}/appeal-suppression`,{appealReason:r})}async getBadgeGuidelines(){return t.apiService.get("/badges/guidelines")}async getBadgeFAQ(){return t.apiService.get("/badges/faq")}async contactBadgeSupport(e){return t.apiService.post("/badges/support",{message:e})}async getBadgeLeaderboard(){return t.apiService.get("/badges/leaderboard")}async getBadgeAnalytics(){return t.apiService.get("/badges/analytics")}}e.s(["default",0,d],553009);var m=e.i(885148),S=e.i(740655),y=e.i(727085);e.i(843476),e.i(271645),e.i(167762),e.i(633576),e.i(234119),e.i(163341),e.i(817264),e.i(468094),e.i(851617),e.i(170319),e.i(614326),e.i(253011),e.i(927591),e.
1i(766972),e.i(191929),e.i(163858),e.i(270744),e.i(370221),e.i(521292),e.i(522016),a.getInstance(),s.default.getInstance(),n.default.getInstance(),i.getInstance(),c.getInstance(),o.getInstance(),u.getInstance(),p.getInstance(),l.default.getInstance(),g.getInstance(),d.getInstance(),m.default.getInstance(),y.default.getInstance(),S.default,e.s([],670357)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.