@apolitical/sdk
Version:
Browser library to interact with Apolitical's APIs
2 lines • 40.5 kB
JavaScript
/*! For license information please see index.js.LICENSE.txt */
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@apolitical/content"),require("@apolitical/error-reporting"),require("@apolitical/gtm"),require("axios"),require("http-status-codes"),require("socket.io-client"),require("buffer")):"function"==typeof define&&define.amd?define(["@apolitical/content","@apolitical/error-reporting","@apolitical/gtm","axios","http-status-codes","socket.io-client","buffer"],e):"object"==typeof exports?exports.ApoliticalSDK=e(require("@apolitical/content"),require("@apolitical/error-reporting"),require("@apolitical/gtm"),require("axios"),require("http-status-codes"),require("socket.io-client"),require("buffer")):t.ApoliticalSDK=e(t["@apolitical/content"],t["@apolitical/error-reporting"],t["@apolitical/gtm"],t.axios,t["http-status-codes"],t["socket.io-client"],t.buffer)}(this,(function(t,e,r,a,n,s,i){return function(){"use strict";var o={809:function(e){e.exports=t},30:function(t){t.exports=e},36:function(t){t.exports=r},300:function(t){t.exports=a},408:function(t){t.exports=i},25:function(t){t.exports=n},130:function(t){t.exports=s}},c={};function l(t){var e=c[t];if(void 0!==e)return e.exports;var r=c[t]={exports:{}};return o[t](r,r.exports,l),r.exports}l.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return l.d(e,{a:e}),e},l.d=function(t,e){for(var r in e)l.o(e,r)&&!l.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},l.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},l.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var u={};return function(){l.r(u),l.d(u,{assets:function(){return C},auth:function(){return D},badges:function(){return ea},buildAnswer:function(){return Ya},buildCardCtaClickHandler:function(){return Fa},buildCarouselCard:function(){return Va},buildQuestion:function(){return $a},carouselCards:function(){return sa},contentInteraction:function(){return st},decodeBase64:function(){return Qa},default:function(){return Wa},editorialPages:function(){return ua},getEntries:function(){return e.getEntries},getEntry:function(){return e.getEntry},management:function(){return At},mgmt:function(){return Ct},payments:function(){return bt},people:function(){return We},peopleEngagement:function(){return nr},qaQuestions:function(){return wa},reportError:function(){return r.reportError},search:function(){return hr},socials:function(){return Hr},useMaps:function(){return Ra}});var t={};l.r(t),l.d(t,{read:function(){return dr},remove:function(){return Ir},stream:function(){return pr}});var e=l(809),r=l(30),a=l(36),n={APOLITICAL:{WEBSITES:{LIVE:"https://apolitical.co",LOCALHOST:"localhost",STAGING:/https:\/\/([\w|\d|-]+)\.apolitical\.co/i,STAGING_SPLITTER:"-"},ENVIRONMENTS:{PRODUCTION:"live",LOCAL:"local"}},APIS:{ASSETS_API:{BASE_URL:"/api/assets-api",ENDPOINTS:{USERS:"/users",CERTIFICATES:"/certificates",PROFILE_IMAGES:"/profile-images",LINK_PREVIEWS:"/link-previews"}},AUTH_API:{BASE_URL:"/api/auth-api",ENDPOINTS:{USER_PASSWORD:"/password",USERS:"/users"}},CONTENT_INTERACTION_API:{BASE_URL:"/api/content-interaction-api",ENDPOINTS:{QUESTIONS:"/questions",ANSWERS:"/answers",REPLIES:"/replies",LIKES:"/likes"}},MANAGEMENT_API:{BASE_URL:"/api/management-api",ENDPOINTS:{ACCOUNTS:"/accounts",EVENT_REGISTRATIONS:"/event-registrations",LOGINS:"/logins",LOGIN_PASSWORDLESS:"/passwordless",BULK_ENROLMENTS:"/bulk-enrolments",PROFILE:"/users/me/profile"}},MGMT_API:{BASE_URL:"/api/mgmt-api",ENDPOINTS:{REFERRALS:"/referrals",BULK_REFERRALS:"/bulk-referrals",BULK_ENROLMENTS:"/bulk-enrolments"}},PAYMENTS_API:{BASE_URL:"/api/payments-api",BASE_URL_V2:"/api/payments-api/v2",ENDPOINTS:{PRODUCTS:"/products"}},PEOPLE_API:{BASE_URL:"/api/people-api",BASE_URL_V2:"/api/people-api/v2",ENDPOINTS:{BULK_ENROLMENTS:"/bulk-enrolments",COMMUNITIES:"/communities",REGISTRATIONS:"/registrations",USERS:"/users",USER_ANSWERS:"/answers",USER_COURSES:"/courses",USER_EVENTS:"/events",USER_LIKES:"/likes",USER_LESSONS:"/lessons",USER_PRODUCTS:"/products",USER_RATINGS:"/ratings",USER_REFERRALS:"/referrals",USER_SUBSCRIPTIONS:"/subscriptions"}},PEOPLE_ENGAGEMENT_API:{BASE_URL:"/api/people-engagement-api",ENDPOINTS:{ENQUIRY_EMAILS:"/enquiry-emails",USERS:"/users",USER_PROPERTIES:"/properties"}},SEARCH_API:{BASE_URL:"/api/search-api",ENDPOINTS:{SEARCH:"/search",CHATBOT:{COURSES:"/chatbot/me/courses"}}},SOCIALS_API:{BASE_URL:"/api/socials-api",ENDPOINTS:{COMMUNITIES:"/communities"},PATHS:{ACTIVITIES:"activities",REACTIONS:"reactions"}}},CONTENTFUL:{ARTICLES:{TYPE:"solutionArticle"},BADGES:{TYPE:"badge",INCLUDE:0,LIMIT:1e3,SELECT:"fields.name,fields.slug,fields.description,fields.icon,fields.colour",SKIP:0},CAROUSELS:{CARD_TYPES:{communityPage:{INCLUDE:1,SELECT:"fields.bannerSection,fields.slug,fields.title"},customCard:{INCLUDE:1,SELECT:"fields.icon,fields.label,fields.image,fields.primaryText,fields.secondaryText,fields.authorName,fields.authorImage,fields.link,fields.openInNewTab"},solutionArticle:{INCLUDE:1,SELECT:"fields.authorIds,fields.authorTag,fields.image,fields.coverImage,fields.publishedDate,fields.readingTime,fields.slug,fields.title"},courseJourney:{INCLUDE:1,SELECT:"fields.bannerImage,fields.slug,fields.title,fields.accessPrivacy,fields.partnerLogos"},microcourse:{INCLUDE:2,SELECT:"fields.banner,fields.freeCourse,fields.partnershipDetails,fields.slug,fields.title,fields.courseType"},event:{INCLUDE:1,SELECT:"fields.bannerImage,fields.defaultStartDate,fields.slug,fields.speakers,fields.title,fields.isEventOngoing"},listPage:{INCLUDE:1,SELECT:"fields.hero,fields.slug,fields.title"},qaQuestion:{INCLUDE:0,SELECT:"fields.answers,fields.authorId,fields.slug,fields.title,sys.createdAt,fields.projectNames"},learningHub:{INCLUDE:1,SELECT:"fields.bannerSection,fields.customLabel,fields.slug,fields.title"}}},COMMUNITY:{TYPE:"communityPage"},COURSES:{TYPE:"microcourse"},COURSE_JOURNEYS:{TYPE:"courseJourney"},CUSTOM_CARD:{TYPE:"customCard"},EDITORIAL_PAGES:{INCLUDE:1,SELECT:"fields.carousels,fields.slug,fields.showCarouselCta,fields.header,fields.subHeader",TYPE:"editorialPage"},EVENTS:{TYPE:"event"},LISTS:{TYPE:"listPage"},QUESTIONS:{TYPE:"qaQuestion",INCLUDE:1,LIMIT:10,ORDER:"-sys.createdAt",SELECT:"sys.createdAt,sys.updatedAt,fields.title,fields.slug,fields.authorId,fields.answers,fields.isEdited,fields.projectNames",SKIP:0},ANSWERS:{TYPE:"qaAnswer"},REPLIES:{TYPE:"reply"},LEARNING_HUB:{TYPE:"learningHub"}},GOOGLE:{MAPS:{LIBRARIES:{PLACES:"places",GEOCODING:"geocoding"},VERSION:"weekly"}},HUBSPOT:{ENVIRONMENTS_MAPPING:{local:"SANDBOX",beta:"SANDBOX",rc:"SANDBOX",live:"LIVE"},EMAIL_IDS:{SANDBOX:{internalEmailId:49099078634,externalEmailId:55196526554},LIVE:{internalEmailId:55233583049,externalEmailId:55231159239}}},USERS:{MYSELF:"me"},STATUS_CODES:{INVALID_TOKEN:498},ERROR_MESSAGES:{INVALID_TOKEN:"Invalid token error: Logging user out..."}};const{HUBSPOT:{ENVIRONMENTS_MAPPING:s,EMAIL_IDS:i}}=n;let o={emailIds:{}};const c=()=>o,{APOLITICAL:{WEBSITES:{LIVE:E,LOCALHOST:S,STAGING:d,STAGING_SPLITTER:p},ENVIRONMENTS:{PRODUCTION:I,LOCAL:h}}}=n;var g=l(300),w=l.n(g);const y=async t=>{try{const{message:e,response:a,request:n}=t;let s=e;return a?s+=` - The request was made and the server responded with ${JSON.stringify({status:a.status,data:a.data})}`:n&&(s+=" - The request was made but no response was received"),console.warn(s),await(0,r.reportError)(new Error(s)),s}catch(t){return console.warn(`Cannot handle error: ${t.message}`),t.message}},{APIS:{ASSETS_API:{BASE_URL:m,ENDPOINTS:{USERS:A,CERTIFICATES:f}}}}=n;var T={create:async(t,e)=>{let r=[];try{const{data:a}=await w().post(`${m}${A}/${t}${f}`,e);a&&(r=a)}catch(t){await y(t)}return r}};const{APIS:{ASSETS_API:{BASE_URL:N,ENDPOINTS:{USERS:P,PROFILE_IMAGES:R}}}}=n;var $={create:async({userId:t,fileObject:e})=>{let r=[];try{if(!t)throw new Error("userSlug not found!");const a=new FormData;a.append("file",e);const{data:n}=await w().post(`${N}${P}/${t}${R}`,a);n&&(r=n)}catch(t){await y(t)}return r}};const{APIS:{ASSETS_API:{BASE_URL:L,ENDPOINTS:{LINK_PREVIEWS:O}}}}=n;var C={certificates:T,profileImages:$,linkPreviews:{get:async t=>{let e={};try{if(!t)throw new Error("url not found!");const{data:r}=await w().get(`${L}${O}/${encodeURIComponent(btoa(t))}`);r&&r.url&&(e=r)}catch(t){await y(t)}return e}}};const{APIS:{AUTH_API:{BASE_URL:U,ENDPOINTS:{USER_PASSWORD:_,USERS:v}}},USERS:{MYSELF:b}}=n;var D={userPassword:{update:async t=>{let e=null;try{e=await w().put(`${U}${v}/${b}${_}`,t)}catch(t){e={message:(((t||{}).response||{}).data||{}).message},await y(t)}return e}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:M,ENDPOINTS:{ANSWERS:B,QUESTIONS:k,LIKES:G}}}}=n,q=`${M}${k}`;var x={create:async({questionSlug:t},e)=>{try{await w().post(`${q}/${encodeURIComponent(t)}${B}`,e)}catch(t){const e=await y(t);throw new Error(e)}},remove:async({questionSlug:t,answerSlug:e})=>{try{await w().delete(`${q}/${encodeURIComponent(t)}${B}/${encodeURIComponent(e)}`)}catch(t){const e=await y(t);throw new Error(e)}},update:async({questionSlug:t,answerSlug:e},r)=>{try{return await w().put(`${q}/${encodeURIComponent(t)}${B}/${encodeURIComponent(e)}`,r)}catch(t){const e=await y(t);throw new Error(e)}},like:async({questionSlug:t,answerSlug:e},r)=>{try{return await w().post(`${q}/${encodeURIComponent(t)}${B}/${encodeURIComponent(e)}${G}`,r)}catch(t){const e=await y(t);throw new Error(e)}},unlike:async({questionSlug:t,answerSlug:e})=>{try{return await w().delete(`${q}/${encodeURIComponent(t)}${B}/${encodeURIComponent(e)}${G}`)}catch(t){const e=await y(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:V,ENDPOINTS:{QUESTIONS:Y}}}}=n,j=`${V}${Y}`;var K={create:async t=>{try{return await w().post(j,t)}catch(t){const e=await y(t);throw new Error(e)}},remove:async({questionSlug:t})=>{try{await w().delete(`${j}/${encodeURIComponent(t)}`)}catch(t){const e=await y(t);throw new Error(e)}},update:async({questionSlug:t},e)=>{try{return await w().put(`${j}/${encodeURIComponent(t)}`,e)}catch(t){const e=await y(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:F,ENDPOINTS:{REPLIES:H,ANSWERS:Q,QUESTIONS:W,LIKES:J}}}}=n,z=`${F}${W}`,X=({questionSlug:t,answerSlug:e,replySlug:r},a=!1)=>{let n=`${z}/${encodeURIComponent(t)}${Q}/${encodeURIComponent(e)}${H}`;return r&&(n=`${n}/${encodeURIComponent(r)}`,a&&(n=`${n}${J}`)),n};var Z={create:async({questionSlug:t,answerSlug:e},r)=>{try{return await w().post(X({questionSlug:t,answerSlug:e}),r)}catch(t){const e=await y(t);throw new Error(e)}},update:async({questionSlug:t,answerSlug:e,replySlug:r},a)=>{try{return await w().put(X({questionSlug:t,answerSlug:e,replySlug:r}),a)}catch(t){const e=await y(t);throw new Error(e)}},remove:async({questionSlug:t,answerSlug:e,replySlug:r})=>{try{await w().delete(X({questionSlug:t,answerSlug:e,replySlug:r}))}catch(t){const e=await y(t);throw new Error(e)}},like:async({questionSlug:t,answerSlug:e,replySlug:r,payload:a})=>{try{await w().post(X({questionSlug:t,answerSlug:e,replySlug:r},!0),a)}catch(t){const e=await y(t);throw new Error(e)}},unlike:async({questionSlug:t,answerSlug:e,replySlug:r})=>{try{await w().delete(X({questionSlug:t,answerSlug:e,replySlug:r},!0))}catch(t){const e=await y(t);throw new Error(e)}},getReplyUrl:X};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:tt,ENDPOINTS:{QUESTIONS:et,ANSWERS:rt,LIKES:at}}}}=n,nt=`${tt}${et}`;var st={answers:x,questions:K,replies:Z,likes:{create:async({questionSlug:t,answerSlug:e})=>{try{return await w().post(`${nt}/${encodeURIComponent(t)}${rt}/${encodeURIComponent(e)}${at}`)}catch(t){const e=await y(t);throw new Error(e)}},remove:async({questionSlug:t,answerSlug:e})=>{try{return await w().delete(`${nt}/${encodeURIComponent(t)}${rt}/${encodeURIComponent(e)}${at}`)}catch(t){const e=await y(t);throw new Error(e)}}}};const{APIS:{MANAGEMENT_API:{BASE_URL:it,ENDPOINTS:{ACCOUNTS:ot}}}}=n;var ct={create:async t=>{try{await w().post(`${it}${ot}`,t)}catch(t){throw await y(t),t}},read:async t=>{let e=null;try{({data:e}=await w().get(`${it}${ot}/${encodeURIComponent(t)}`))}catch(t){await y(t)}return e},update:async(t,e)=>{try{await w().put(`${it}${ot}/${encodeURIComponent(t)}`,e)}catch(t){throw await y(t),t}}};const{APIS:{MANAGEMENT_API:{BASE_URL:lt,ENDPOINTS:{EVENT_REGISTRATIONS:ut}}}}=n;var Et={create:async t=>{try{await w().post(`${lt}${ut}`,t)}catch(t){const e=await y(t);throw new Error(e)}}};const{APIS:{MANAGEMENT_API:{BASE_URL:St,ENDPOINTS:{LOGINS:dt,LOGIN_PASSWORDLESS:pt}}}}=n,It=`${St}${dt}`;var ht={update:async t=>{try{await w().put(`${It}/${encodeURIComponent(t)}${pt}`)}catch(t){throw await y(t),t}}};const{APIS:{MANAGEMENT_API:{BASE_URL:gt}}}=n;var wt={create:async t=>{try{await w().post(`${gt}/users/${t.id}/products`,t)}catch(t){const e=await y(t);throw new Error(e)}}};const{APIS:{MANAGEMENT_API:{BASE_URL:yt,ENDPOINTS:{PROFILE:mt}}}}=n;var At={accounts:ct,eventRegistrations:Et,passwordless:ht,userProducts:wt,profile:{update:async t=>{try{const e=["name","jobTitle","organization","location","biography","image"];if(!Object.keys(t).some((t=>e.includes(t))))throw new Error("Profile data should include at least one of 'name', 'jobTitle', 'organization', 'location', 'biography', 'image'");await w().put(`${yt}${mt}`,t)}catch(t){const e=await y(t);throw new Error(`An error occurred while trying to update the user's profile in the management api: ${e}`)}}}};const{APIS:{MGMT_API:{BASE_URL:ft,ENDPOINTS:{REFERRALS:Tt}}}}=n;var Nt={create:async t=>{try{await w().post(`${ft}${Tt}`,t)}catch(t){throw await y(t),t}}};const{APIS:{MGMT_API:{BASE_URL:Pt,ENDPOINTS:{BULK_REFERRALS:Rt}}}}=n;var $t={create:async t=>{try{await w().post(`${Pt}${Rt}`,t)}catch(t){throw await y(t),t}}};const{APIS:{MGMT_API:{BASE_URL:Lt,ENDPOINTS:{BULK_ENROLMENTS:Ot}}}}=n;var Ct={referrals:Nt,bulkReferrals:$t,bulkEnrolments:{create:async t=>{try{await w().post(`${Lt}${Ot}`,t)}catch(t){throw await y(t),t}}}};const{APIS:{PAYMENTS_API:{BASE_URL_V2:Ut,ENDPOINTS:{PRODUCTS:_t}}}}=n,vt=`${Ut}${_t}`;var bt={products:{list:async t=>{let e=[],r=t?{params:t}:{params:{}};try{const{data:t}=await w().get(vt,r);t&&t.length&&(e=t)}catch(t){await y(t)}return e}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Dt,ENDPOINTS:{BULK_ENROLMENTS:Mt}}}}=n;var Bt={list:async t=>{let e=[];try{const{data:r}=await w().get(`${Dt}${Mt}`,{params:t});r&&r.length&&(e=r)}catch(t){await y(t)}return e}},kt=l(25);const{OK:Gt,MULTIPLE_CHOICES:qt,NOT_FOUND:xt,FORBIDDEN:Vt}=kt.StatusCodes,Yt=t=>t>=Gt&&t<qt||t===Vt||t===xt,{APIS:{PEOPLE_API:{BASE_URL_V2:jt,ENDPOINTS:{USERS:Kt}}},STATUS_CODES:{INVALID_TOKEN:Ft},ERROR_MESSAGES:{INVALID_TOKEN:Ht}}=n,Qt=async t=>{let e=null;try{const{data:r}=await w().get(`${jt}${Kt}/${encodeURIComponent(t)}`,{validateStatus:Yt});r&&r.id&&(e=r)}catch(t){if(t?.response?.status===Ft)throw new Error(Ht);await y(t)}return e},Wt=async t=>{let e=[];try{if(t&&t.length<2)throw new Error("users list method requires at least two ids");const r=t.map((t=>`ids=${encodeURIComponent(t)}`)).join("&"),a=await w().get(`${jt}${Kt}?${r}`,{validateStatus:Yt});a&&a.length&&(e=a)}catch(t){await y(t)}return e};var Jt={read:Qt,update:async(t,e)=>{let r=!1;try{const{data:a}=await w().put(`${jt}${Kt}/${encodeURIComponent(t)}`,e);r=!(!a||!a.id)}catch(t){await y(t)}return r},list:Wt};const{APIS:{PEOPLE_API:{BASE_URL_V2:zt,ENDPOINTS:{USERS:Xt,USER_LIKES:Zt}}},USERS:{MYSELF:te}}=n,ee=`${zt}${Xt}/${te}${Zt}`,re=async t=>{let e=[],r=t?{params:t}:{params:{}};try{const{data:t}=await w().get(ee,r);t&&t.length&&(e=t)}catch(t){await y(t)}return e};var ae={list:re};var ne={authors:{readQuestionAuthors:async(t,e,r)=>{try{if(t.author=await Qt(t.authorId),t.answers&&t.answers.length&&!r.ignoreAnswersAuthors){t.answers.sort(((t,e)=>new Date(e.updatedAt)-new Date(t.updatedAt))),t.totalAnswers=t.answers.length;let a=t.answers;if(r.limit&&r.pageNumber){const e=r.limit*(r.pageNumber-1);a=t.answers.slice(e,e+r.limit)}for(let t of a){t.author=t.authorId&&await Qt(t.authorId)||{};const[r]=e?await re({contentType:n.CONTENTFUL.ANSWERS.TYPE,contentSlug:t.slug}):[null];t.userLiked=!!r}t.answers=a}else t.answers||(t.answers=[]);return t}catch(t){throw await y(t),new Error(`Cannot read authors for question: ${t.message}`)}},readAuthors:async(t=[])=>{let e=[];try{if(!1===Array.isArray(t))throw new Error("authorIds is not an array!");if(t&&1===t.length){const r=await Qt(t[0]);r&&e.push(r)}else if(t&&t.length>1){const r=await Wt(t);r&&r.length>0&&(e=r)}}catch(t){throw await y(t),new Error(`Cannot read authors: ${t.message}`)}return e}}};const{APIS:{PEOPLE_API:{BASE_URL:se,ENDPOINTS:{REGISTRATIONS:ie}}}}=n;var oe={list:async t=>{let e=[];try{const{data:r}=await w().get(`${se}${ie}`,{params:t});r&&r.length&&(e=r)}catch(t){await y(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:ce,ENDPOINTS:{COMMUNITIES:le,USERS:ue}}}}=n,Ee=`${ce}${ue}`;function Se(t){const e=t["content-range"].split(" ")[1].split("/"),[r,a,n]=[...e[0].split("-"),e[1]].map((t=>parseInt(t,10)||0));return{start:r,end:a,total:n}}var de={list:async(t="me",e={})=>{let r={items:[],start:0,end:0,total:0},a=e?{params:e}:{params:{}};try{const{data:e,headers:n}=await w().get(`${Ee}/${t}${le}`,{...a,headers:{"Cache-Control":"no-cache",Pragma:"no-cache",Expires:0}});return e?.length>0&&(r={data:e,pagination:Se(n)}),r}catch(t){await y(t)}return r}};const{APIS:{PEOPLE_API:{BASE_URL_V2:pe,ENDPOINTS:{USERS:Ie,USER_COURSES:he}}},USERS:{MYSELF:ge}}=n,we=`${pe}${Ie}/${ge}${he}`;var ye={create:async t=>{try{await w().post(we,t)}catch(t){await y(t)}},list:async t=>{let e=[],r=t?{params:t}:{params:{}};try{const{data:t}=await w().get(we,r);t&&t.length&&(e=t)}catch(t){await y(t)}return e},update:async(t,e)=>{try{await w().put(`${we}/${t}`,e)}catch(t){await y(t)}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:me,ENDPOINTS:{USERS:Ae,USER_EVENTS:fe}}},USERS:{MYSELF:Te}}=n,Ne=`${me}${Ae}/${Te}${fe}`;var Pe={list:async t=>{let e=[],r=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Ne,r);t&&t.length&&(e=t)}catch(t){await y(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Re,ENDPOINTS:{USERS:$e,USER_LESSONS:Le}}},USERS:{MYSELF:Oe}}=n,Ce=`${Re}${$e}/${Oe}${Le}`;var Ue={create:async t=>{let e=null;try{e=await w().post(Ce,t)}catch(t){await y(t)}return e},list:async t=>{let e=[],r=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Ce,r);t&&t.length&&(e=t)}catch(t){await y(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:_e,ENDPOINTS:{USERS:ve,USER_PRODUCTS:be}}},USERS:{MYSELF:De}}=n,Me=`${_e}${ve}/${De}${be}`;var Be={create:async t=>{let e=null;try{e=await w().post(Me,t)}catch(t){await y(t)}return e},list:async t=>{let e=[],r=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Me,r);t&&t.length&&(e=t)}catch(t){await y(t)}return e},update:async(t,e)=>{try{await w().put(`${Me}/${t}`,e)}catch(t){await y(t)}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:ke,ENDPOINTS:{USERS:Ge,USER_RATINGS:qe}}},USERS:{MYSELF:xe}}=n,Ve=`${ke}${Ge}/${xe}${qe}`;var Ye={create:async t=>{let e=null;try{const{data:r}=await w().post(Ve,t);r?.id&&(e=r)}catch(t){await y(t)}return e},update:async(t,e)=>{try{await w().put(`${Ve}/${t}`,e)}catch(t){await y(t)}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:je,ENDPOINTS:{USERS:Ke,USER_REFERRALS:Fe}}},USERS:{MYSELF:He}}=n,Qe=`${je}${Ke}/${He}${Fe}`;var We={bulkEnrolments:Bt,handlers:ne,registrations:oe,users:Jt,userCommunities:de,userCourses:ye,userEvents:Pe,userLessons:Ue,userLikes:ae,userProducts:Be,userRatings:Ye,userReferrals:{list:async t=>{let e=[],r=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Qe,r);t&&t.length&&(e=t)}catch(t){await y(t)}return e}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:Je,ENDPOINTS:{ENQUIRY_EMAILS:ze}}}}=n;var Xe={create:async t=>{let e=null;try{const{data:r}=await w().post(`${Je}${ze}`,t);r&&(e=r)}catch(t){await y(t)}return e}},Ze={forms:{sendEnquiryEmails:async t=>{let e=null;try{const{emailIds:r}=c();e=await nr.emails.create({...r,...t})}catch(t){await y(t)}return e}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:tr,ENDPOINTS:{USERS:er,USER_PROPERTIES:rr}}},USERS:{MYSELF:ar}}=n;var nr={emails:Xe,handlers:Ze,userProperties:{update:async(t,e)=>{try{await w().put(`${tr}${er}/${ar}${rr}/${t}`,e)}catch(t){await y(t)}}}},sr=l(130);const{APIS:{SEARCH_API:{BASE_URL:ir,ENDPOINTS:{SEARCH:or}}}}=n,cr=`${ir}${or}`;var lr={ask:async t=>{try{let e=null;const{data:r}=await w().get(cr,{params:{question:t}});return r?.answer&&r?.references&&r?.version&&(e=r),e}catch(t){const e=await y(t);throw new Error(e)}},stream:(t,e,r)=>{const a=(0,sr.io)(void 0,{path:"/api/search-api/web-sockets"});function n(){a.emit("search",{question:t})}function s(t){r(t),i(),a.disconnect()}function i(){a.off("connect",n),a.off("update",e),a.off("result",s)}return a.on("connect",n),a.on("update",e),a.on("result",s),i}};const{APIS:{SEARCH_API:{BASE_URL:ur,ENDPOINTS:{CHATBOT:{COURSES:Er}}}}}=n,Sr=`${ur}${Er}`;async function dr(t,e){try{let r=null;const{data:a}=await w().get(`${Sr}/${t}`,{params:{text:e}});return a&&(r=a),r}catch(t){await y(t)}}const pr=(t,e,r,a)=>{const n=(0,sr.io)(void 0,{path:"/api/search-api/web-sockets"});function s(){n.emit("chatbot",{text:t,courseSlug:e})}n.on("connect",s),n.on("update",r),n.on("result",(function t(e){a(e),n.off("connect",s),n.off("update",r),n.off("result",t),n.disconnect()}))};async function Ir(t){try{let e=null;const{data:r}=await w().delete(`${Sr}/${t}`);return r&&(e=r),e}catch(t){await y(t)}}var hr={...lr,chatbot:{courses:t}};const{APIS:{SOCIALS_API:{BASE_URL:gr,ENDPOINTS:{COMMUNITIES:wr},PATHS:{ACTIVITIES:yr}}}}=n,mr=`${gr}${wr}`;var Ar={read:async(t,e)=>{let r=null;try{const{data:a}=await w().get(`${mr}/${encodeURIComponent(t)}/${yr}/${e}`);a&&(r=a)}catch(t){await y(t)}return r},list:async(t,e={})=>{let r=null;try{const{data:a}=await w().get(`${mr}/${encodeURIComponent(t)}/${yr}`,{params:e});a&&(r=a)}catch(t){await y(t)}return r},create:async(t,e)=>{let r=null;try{const{data:a}=await w().post(`${mr}/${encodeURIComponent(t)}/${yr}`,e);(a?.content||a?.title)&&(r=a)}catch(t){await y(t)}return r},update:async(t,e,r)=>{let a=null;try{const{data:n}=await w().put(`${mr}/${encodeURIComponent(t)}/${yr}/${e}`,r);(n?.content||n?.title)&&(a=n)}catch(t){await y(t)}return a},remove:async(t,e)=>{let r=null;try{const{data:a}=await w().delete(`${mr}/${encodeURIComponent(t)}/${yr}/${e}`);r=a}catch(t){await y(t)}return r}};const{APIS:{SOCIALS_API:{BASE_URL:fr,ENDPOINTS:{COMMUNITIES:Tr}}}}=n,Nr=`${fr}${Tr}`;var Pr={read:async t=>{let e=null;try{const{data:r}=await w().get(`${Nr}/${encodeURIComponent(t)}`);r?.title?e=r:r?.page?.title&&(e=r?.page)}catch(t){await y(t)}return e},join:async(t,e)=>{let r=null;try{const{data:a}=await w().post(`${Nr}/${encodeURIComponent(t)}/members`,e);r=a}catch(t){await y(t)}return r},leave:async t=>{let e=null;try{const{data:r}=await w().delete(`${Nr}/${encodeURIComponent(t)}/members/me`);e=r}catch(t){await y(t)}return e}};const{APIS:{SOCIALS_API:{BASE_URL:Rr,ENDPOINTS:{COMMUNITIES:$r},PATHS:{ACTIVITIES:Lr,REACTIONS:Or}}}}=n,Cr=`${Rr}${$r}`;var Ur={create:async({slug:t,activityId:e,reactionId:r})=>{let a=null;const n={kind:"like"};let s=`${Cr}/${encodeURIComponent(t)}`;s=e?`${s}/${Lr}/${e}/${Or}`:`${s}/${Or}/${r}/${Or}`;try{const{data:t}=await w().post(s,n);a=t}catch(t){await y(t)}return a},remove:async({slug:t,reactionId:e})=>{let r=null;try{const{data:a}=await w().delete(`${Cr}/${encodeURIComponent(t)}/${Or}/${e}`);r=a}catch(t){await y(t)}return r}};const{APIS:{SOCIALS_API:{BASE_URL:_r,ENDPOINTS:{COMMUNITIES:vr}}}}=n,br=`${_r}${vr}`;var Dr={list:async(t,e)=>{let r={data:[],pagination:{start:0,end:0,total:0}},a=e?{params:e}:{params:{}};try{const{data:e}=await w().get(`${br}/${encodeURIComponent(t)}/members`,{...a,headers:{"Cache-Control":"no-cache",Pragma:"no-cache",Expires:0}});(e?.data?.length>0||e?.pagination)&&(r=e)}catch(t){await y(t)}return r},read:async(t,e=!0)=>{let r=null;try{let a=`${br}/${encodeURIComponent(t)}/members`;e&&(a+="/me");const n=await w().get(a,{headers:{"Cache-Control":"no-cache",Pragma:"no-cache",Expires:0}});r=n.data,!r&&n.pagnination&&(r=n.pagnination)}catch(t){await y(t)}return r}};const{APIS:{SOCIALS_API:{BASE_URL:Mr,ENDPOINTS:{COMMUNITIES:Br},PATHS:{ACTIVITIES:kr,REACTIONS:Gr}}}}=n,qr=`${Mr}${Br}`;var xr={create:async({slug:t,activityId:e})=>{let r=null;const a={kind:"pin"};let n=`${qr}/${encodeURIComponent(t)}`;n=`${n}/${kr}/${e}/${Gr}`;try{const{data:t}=await w().post(n,a);r=t}catch(t){await y(t)}return r},remove:async({slug:t,reactionId:e})=>{let r=null;try{const{data:a}=await w().delete(`${qr}/${encodeURIComponent(t)}/${Gr}/${e}`);r=a}catch(t){await y(t)}return r}};const{APIS:{SOCIALS_API:{BASE_URL:Vr,ENDPOINTS:{COMMUNITIES:Yr},PATHS:{ACTIVITIES:jr,REACTIONS:Kr}}}}=n,Fr=`${Vr}${Yr}`;var Hr={activities:Ar,communities:Pr,members:Dr,likes:Ur,pins:xr,reactions:{create:async(t,e,r,a)=>{let n=null,s=`${Fr}/${encodeURIComponent(t)}`;s=e?`${s}/${jr}/${e}/${Kr}`:`${s}/${Kr}/${r}/${Kr}`;try{const{data:t}=await w().post(s,a);n=t}catch(t){await y(t)}return n},list:async(t,{activityId:e,reactionId:r},a={})=>{let n=null,s=`${Fr}/${encodeURIComponent(t)}`;s=e?`${s}/${jr}/${e}/${Kr}`:`${s}/${Kr}/${r}/${Kr}`;try{const{data:t}=await w().get(s,{params:a});t&&(n=t)}catch(t){await y(t)}return n},remove:async(t,e)=>{let r=null;try{const{data:a}=await w().delete(`${Fr}/${encodeURIComponent(t)}/${Kr}/${e}`);r=a}catch(t){await y(t)}return r},update:async(t,e,r,a)=>{let n=null,s=`${Fr}/${encodeURIComponent(t)}`;s=e?`${s}/${jr}/${e}`:`${s}/${Kr}/${r}`;try{const{data:t}=await w().put(s,a);n=t}catch(t){await y(t)}return n}}};const{CONTENTFUL:Qr}=n,{TYPE:Wr,ORDER:Jr,SELECT:zr,SKIP:Xr,LIMIT:Zr,INCLUDE:ta}=Qr.BADGES;var ea={list:async()=>{try{return await(0,e.getEntries)({content_type:Wr,include:ta,limit:Zr,order:Jr,select:zr,skip:Xr})}catch(t){return await y(t),[]}}};const{CONTENTFUL:ra}=n,{CARD_TYPES:aa}=ra.CAROUSELS,na={read:async(t,r)=>{try{if(!r||!r.sys||!r.sys.id)throw new Error("Invalid link to card");if(!t||!aa[t])throw new Error("Unsupported card content type");const{INCLUDE:a,SELECT:n}=aa[t],s=await(0,e.getEntry)({content_type:t,"sys.id":r.sys.id,include:a,select:n},{assetDetails:!0});return"courseJourney"===t&&(s.sys={id:r.sys.id}),s}catch(t){throw await y(t),new Error(`Cannot read carousel card: ${t.message}`)}}};var sa=na;const{CONTENTFUL:ia}=n,{INCLUDE:oa,SELECT:ca,TYPE:la}=ia.EDITORIAL_PAGES;var ua={read:async t=>{try{return await(0,e.getEntry)({content_type:la,"fields.slug":t,include:oa,select:ca})}catch(t){throw await y(t),new Error(`Cannot read editorial page: ${t.message}`)}}};const{CONTENTFUL:Ea}=n,{TYPE:Sa,ORDER:da,SELECT:pa,SKIP:Ia,LIMIT:ha,INCLUDE:ga}=Ea.QUESTIONS;var wa={read:async t=>{try{return await(0,e.getEntry)({content_type:Sa,"fields.slug":t,include:2,select:pa})}catch(t){throw await y(t),new Error(`Cannot read question: ${t.message}`)}},list:async(t={})=>{try{return await(0,e.getEntries)({content_type:Sa,include:ga,limit:ha,order:da,select:pa,skip:Ia,...t})}catch(t){throw await y(t),new Error(`Cannot list questions: ${t.message}`)}}};var ya=function t(e,r){if(e===r)return!0;if(e&&r&&"object"==typeof e&&"object"==typeof r){if(e.constructor!==r.constructor)return!1;var a,n,s;if(Array.isArray(e)){if((a=e.length)!=r.length)return!1;for(n=a;0!=n--;)if(!t(e[n],r[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if((a=(s=Object.keys(e)).length)!==Object.keys(r).length)return!1;for(n=a;0!=n--;)if(!Object.prototype.hasOwnProperty.call(r,s[n]))return!1;for(n=a;0!=n--;){var i=s[n];if(!t(e[i],r[i]))return!1}return!0}return e!=e&&r!=r};const ma="__googleMapsScriptId";var Aa;!function(t){t[t.INITIALIZED=0]="INITIALIZED",t[t.LOADING=1]="LOADING",t[t.SUCCESS=2]="SUCCESS",t[t.FAILURE=3]="FAILURE"}(Aa||(Aa={}));class fa{constructor({apiKey:t,authReferrerPolicy:e,channel:r,client:a,id:n=ma,language:s,libraries:i=[],mapIds:o,nonce:c,region:l,retries:u=3,url:E="https://maps.googleapis.com/maps/api/js",version:S}){if(this.callbacks=[],this.done=!1,this.loading=!1,this.errors=[],this.apiKey=t,this.authReferrerPolicy=e,this.channel=r,this.client=a,this.id=n||ma,this.language=s,this.libraries=i,this.mapIds=o,this.nonce=c,this.region=l,this.retries=u,this.url=E,this.version=S,fa.instance){if(!ya(this.options,fa.instance.options))throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(fa.instance.options)}`);return fa.instance}fa.instance=this}get options(){return{version:this.version,apiKey:this.apiKey,channel:this.channel,client:this.client,id:this.id,libraries:this.libraries,language:this.language,region:this.region,mapIds:this.mapIds,nonce:this.nonce,url:this.url,authReferrerPolicy:this.authReferrerPolicy}}get status(){return this.errors.length?Aa.FAILURE:this.done?Aa.SUCCESS:this.loading?Aa.LOADING:Aa.INITIALIZED}get failed(){return this.done&&!this.loading&&this.errors.length>=this.retries+1}createUrl(){let t=this.url;return t+="?callback=__googleMapsCallback",this.apiKey&&(t+=`&key=${this.apiKey}`),this.channel&&(t+=`&channel=${this.channel}`),this.client&&(t+=`&client=${this.client}`),this.libraries.length>0&&(t+=`&libraries=${this.libraries.join(",")}`),this.language&&(t+=`&language=${this.language}`),this.region&&(t+=`®ion=${this.region}`),this.version&&(t+=`&v=${this.version}`),this.mapIds&&(t+=`&map_ids=${this.mapIds.join(",")}`),this.authReferrerPolicy&&(t+=`&auth_referrer_policy=${this.authReferrerPolicy}`),t}deleteScript(){const t=document.getElementById(this.id);t&&t.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise(((t,e)=>{this.loadCallback((r=>{r?e(r.error):t(window.google)}))}))}importLibrary(t){return this.execute(),google.maps.importLibrary(t)}loadCallback(t){this.callbacks.push(t),this.execute()}setScript(){var t,e;if(document.getElementById(this.id))return void this.callback();const r={key:this.apiKey,channel:this.channel,client:this.client,libraries:this.libraries.length&&this.libraries,v:this.version,mapIds:this.mapIds,language:this.language,region:this.region,authReferrerPolicy:this.authReferrerPolicy};Object.keys(r).forEach((t=>!r[t]&&delete r[t])),(null===(e=null===(t=null===window||void 0===window?void 0:window.google)||void 0===t?void 0:t.maps)||void 0===e?void 0:e.importLibrary)||(t=>{let e,r,a,n="The Google Maps JavaScript API",s="google",i="importLibrary",o="__ib__",c=document,l=window;l=l[s]||(l[s]={});const u=l.maps||(l.maps={}),E=new Set,S=new URLSearchParams,d=()=>e||(e=new Promise(((i,l)=>{return d=this,p=void 0,h=function*(){var d;for(a in yield r=c.createElement("script"),r.id=this.id,S.set("libraries",[...E]+""),t)S.set(a.replace(/[A-Z]/g,(t=>"_"+t[0].toLowerCase())),t[a]);S.set("callback",s+".maps."+o),r.src=this.url+"?"+S,u[o]=i,r.onerror=()=>e=l(Error(n+" could not load.")),r.nonce=this.nonce||(null===(d=c.querySelector("script[nonce]"))||void 0===d?void 0:d.nonce)||"",c.head.append(r)},new((I=void 0)||(I=Promise))((function(t,e){function r(t){try{n(h.next(t))}catch(t){e(t)}}function a(t){try{n(h.throw(t))}catch(t){e(t)}}function n(e){var n;e.done?t(e.value):(n=e.value,n instanceof I?n:new I((function(t){t(n)}))).then(r,a)}n((h=h.apply(d,p||[])).next())}));var d,p,I,h})));u[i]?console.warn(n+" only loads once. Ignoring:",t):u[i]=(t,...e)=>E.add(t)&&d().then((()=>u[i](t,...e)))})(r);const a=this.libraries.map((t=>this.importLibrary(t)));a.length||a.push(this.importLibrary("core")),Promise.all(a).then((()=>this.callback()),(t=>{const e=new ErrorEvent("error",{error:t});this.loadErrorCallback(e)}))}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.errors=[],this.onerrorEvent=null}resetIfRetryingFailed(){this.failed&&this.reset()}loadErrorCallback(t){if(this.errors.push(t),this.errors.length<=this.retries){const t=this.errors.length*Math.pow(2,this.errors.length);console.error(`Failed to load Google Maps script, retrying in ${t} ms.`),setTimeout((()=>{this.deleteScript(),this.setScript()}),t)}else this.onerrorEvent=t,this.callback()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach((t=>{t(this.onerrorEvent)})),this.callbacks=[]}execute(){if(this.resetIfRetryingFailed(),this.done)this.callback();else{if(window.google&&window.google.maps&&window.google.maps.version)return console.warn("Google Maps already loaded outside @googlemaps/js-api-loader.This may result in undesirable behavior as options and script parameters may not match."),void this.callback();this.loading||(this.loading=!0,this.setScript())}}}const{GOOGLE:{MAPS:{LIBRARIES:{GEOCODING:Ta,PLACES:Na},VERSION:Pa}}}=n;var Ra=function(t={}){let e=[];const r=c(),a=new fa({apiKey:r?.googleMaps?.apiKey,version:Pa});return{buildLocation:async function(t){try{const r=e.find((e=>e.description===t));if(!r)throw new Error("Place not found");const{place_id:n,description:s}=r,{Geocoder:i}=await a.importLibrary(Ta),o=new i;return new Promise((t=>{o.geocode({placeId:n},((e=[],r)=>{if("OK"===r){const r=e[0].address_components.find((t=>t.types.includes("country"))),a=r?r.short_name:null;t({id:n,en:s,code:a})}else t({id:n,en:s,code:null})})).catch((()=>t({id:n,en:s,code:null})))}))}catch(t){return await y(t),null}},isValidPlace:function(t){return e.some((e=>e.description===t))},predictPlaces:async function(r){try{const{AutocompleteService:n}=await a.importLibrary(Na),s=new n;return new Promise((a=>{s.getPlacePredictions({...t,input:r,types:["(cities)"]},((t=[],r)=>{"OK"===r?(e=t,a(t)):a([])})).catch((()=>a([])))}))}catch(t){return await y(t),[]}}}},$a=async(t,e,r={ignoreAnswersAuthors:!1})=>{try{let a={};return a=await wa.read(t),a=await We.handlers.authors.readQuestionAuthors(a,e,r),a}catch(t){throw await y(t),new Error(`Cannot build question: ${t.message}`)}};const{ARTICLES:{TYPE:La},COURSES:{TYPE:Oa},COURSE_JOURNEYS:{TYPE:Ca},CUSTOM_CARD:{TYPE:Ua},COMMUNITY:{TYPE:_a},EVENTS:{TYPE:va},LISTS:{TYPE:ba},QUESTIONS:{TYPE:Da},LEARNING_HUB:{TYPE:Ma}}=n.CONTENTFUL,Ba={ClosedHidden:"closed-hidden",ClosedVisible:"closed-visible",OpenHidden:"open-hidden",OpenVisible:"open-visible"},ka=t=>t&&t.url?(Object.assign(t,{aspect:"responsiveCard",query:"q=90&fit=fill"}),t):null,Ga=t=>t&&t.url?`${t.url}?w=100&h=100&fit=thumb&f=center`:null,qa=t=>t.toLowerCase().split(" ")[0],xa={[La]:async t=>{const{authorIds:e,authorTag:r,image:a,coverImage:n,publishedDate:s,readingTime:i,slug:o,title:c}=t;let l=a;n&&(l.url=n.url,l.width=n.width,l.height=n.height,l.color=n.color);const u=await We.handlers.authors.readAuthors(e),E=u&&u.length?u:r?[qa(r)]:null;return{banner:ka(l),contributors:E,publishedDate:s,readingTime:i,slug:o,title:c}},[_a]:async t=>{const{title:e,slug:r,bannerSection:a,privacy:n,createdAt:s}=t,i=[Ba.ClosedVisible,Ba.ClosedHidden].includes(n),o=[Ba.OpenVisible,Ba.ClosedVisible].includes(n);return{banner:a?.image?ka(a.image):null,slug:r,title:e,privacy:n,isPrivate:i,isVisible:o,createdAt:s}},[Oa]:async(t,e)=>{const{banner:r,freeCourse:a,partnershipDetails:n,slug:s,title:i,registered:o,courseType:c}=t,l={banner:ka(r),slug:s,title:i,pill:a?"free":"premium",registered:!!o,courseType:c};if(n){const{partners:t}=n;if(t)if(t.length>1){let e=[];for(let r=0;r<t.length;r++)e.push(t[r].title);l.partner=e}else l.partner=[t[0].title]}if(void 0===o&&e){const[t]=await We.userProducts.list({courseSlug:s,isEnrolled:!0,scope:"active"});l.registered=!!t}return l},[Ca]:async(t,r)=>{const{bannerImage:a,slug:n,title:s,accessPrivacy:i,partnerLogos:o,locale:c}=t;let l=!1;const u=await(0,e.getEntry)({content_type:"course","fields.journeys.sys.id":t.sys.id,include:1,select:"fields.slug,fields.journeys"});if(r){const[t]=await We.userProducts.list({courseSlug:u.slug,journeySlug:n,isEnrolled:!0,scope:"active"});l=!!t}let E;return E=u.journeys&&u.journeys[0]?.slug===n?u.slug:`${u.slug}/${n}`,{banner:ka(a),slug:E,title:s,partner:o?o.map((t=>t.title)):[],registered:l,pill:i.includes("open")?"free":"premium",courseType:i.includes("public")?"Public":"Private",customLabel:"Course",locale:c||"en"}},[Ua]:t=>{const{authorName:e,authorImage:r,icon:a,image:n,label:s,link:i,primaryText:o}=t;return{...t,banner:n?ka(n):null,customIcon:a?a.toLowerCase():null,customLabel:s,contributors:e?[{name:e,image:r?{thumbnail:Ga(r)}:null}]:null,slug:i,text:o}},[va]:async(t,e)=>{const{bannerImage:r,defaultStartDate:a,isEventOngoing:n,slug:s,speakers:i,title:o,registered:c}=t,l=new Date(a),u=!!l&&l<new Date;if(i&&i.length)for(const t of i)t.image=Ga(t.image);const E={banner:ka(r),dateHasPassed:u,title:o,slug:s,isOngoingEvent:n,contributors:i,startDate:l,registered:!!c};if(void 0===c&&e){const[t]=await We.userEvents.list({eventSlug:s});E.registered=!!t}return E},[ba]:async t=>{const{hero:e,slug:r,title:a}=t;return{banner:ka(e),slug:r,title:a}},[Da]:async t=>{const{answers:e,authorId:r,createdAt:a,slug:n,title:s}=t;let i=null;if(r){const t=await We.users.read(r);t&&(i=t)}return{answers:e&&e.length?e.length:0,contributors:i?[i]:[],createdAt:a,slug:n,title:s}},[Ma]:t=>{const{bannerSection:e,customLabel:r,slug:a,title:n}=t;return{banner:ka(e.image),slug:a,title:n,customLabel:r}},people:t=>{const{id:e,name:r,jobTitle:a,location:n,image:s,customLink:i}=t;return{profile:s,slug:i?.link||e,title:r,text:a,secondaryText:n,customLinkText:i?.text}}};var Va=async({contentType:t,...e}={},r)=>{try{if(!xa[t])throw new Error("Content type not supported");if("function"!=typeof xa[t])throw new Error("No builder function for content type");return"people"!==t&&e.sys&&e.sys.type&&"Link"===e.sys.type&&(e=await sa.read(t,e)),{contentType:t,...await xa[t](e,r)}}catch(t){throw await y(t),new Error(`Cannot build carousel card: ${t.message}`)}},Ya=async(t,e,r={})=>{try{if(!t.replies||0===t.replies.length)return t.replies=[],t;t.replies.sort(((t,e)=>new Date(t.createdAt)-new Date(e.createdAt))),t.totalReplies=t.totalReplies||t.replies.length;let a=t.replies;if(r.limit&&r.pageNumber){const e=r.limit*(r.pageNumber-1);a=t.replies.slice(e,e+r.limit)}for(const r of a){if(r.authorId===t.authorId){r.author=t.author,r.userLiked=!1;continue}r.author=r.authorId&&await Qt(r.authorId)||{};const[a]=e?await re({contentType:n.CONTENTFUL.REPLIES.TYPE,contentSlug:r.slug}):[null];r.userLiked=!!a}return t.replies=a,t}catch(t){throw await y(t),new Error(`Cannot build replies for answer: ${t.message}`)}};const ja="success",Ka="error";var Fa=t=>async e=>{const{contentType:r}=e;switch(r){case"event":try{return await At.eventRegistrations.create({eventSlug:e.slug,expectation:null,userEmail:t.email,startsAt:new Date(e.startDate).toISOString()}),ja}catch(t){return reportError(new Error(`Error registering for event: ${JSON.stringify(t)}`)),Ka}case"microcourse":try{return await At.userProducts.create({id:t.id,courseSlug:e.slug,email:t.email,courseType:e.courseType}),ja}catch(t){return reportError(new Error(`Error registering for microcourse: ${JSON.stringify(t)}`)),Ka}case"communityPage":try{return await Hr.communities.join(e.slug,{...t.image.thumbnail&&{thumbnail:t.image.thumbnail},...t.jobTitle&&{jobTitle:t.jobTitle},...t.location&&{location:{...t.location}},...t.organization&&{organization:t.organization}}),ja}catch(t){return reportError(new Error(`Error joining community: ${JSON.stringify(t)}`)),Ka}default:return Ka}},Ha=l(408);const Qa=t=>t&&Ha.Buffer.from(t,"base64").toString("ascii");function Wa({contentContext:t=null,errorsContext:n=null,googleMapsContext:c=null,gtmContext:l=null,origin:u}){try{const g=(t=>{let e=null;t?e=t:"undefined"!=typeof window&&(e=window.origin||window.location.origin),e||new Error("Cannot select environment: Website not defined");let r=null;const a=e.match(d);return a?r=a[1].split(p)[0]:e===E?r=I:e.includes(S)&&(r=h),r||new Error(`Cannot select environment: No rule for website ${e}`),r})(u);return t&&(0,e.setContext)(Object.assign({},t,{environment:g})),n&&(0,r.setContext)(Object.assign({},n,{environment:g})),c&&(({apiKey:t})=>{o.googleMaps={apiKey:t}})(Object.assign({},c,{environment:g})),l&&((0,a.setContext)(Object.assign({},l,{environment:g})),(0,a.setupGTM)()),(({environment:t})=>{const e=(t=>{if(!t)throw new Error("Cannot map environment: Environment not defined");if(!s[t])throw new Error(`Cannot map environment: No mapping found for environment ${t}`);return s[t]})(t);o.emailIds=i[e]})(Object.assign({},{environment:g})),g}catch(t){console.warn(`Cannot load SDK: ${t.message}`)}}}(),u}()}));