@apolitical/sdk 5.0.0-draco.5 → 5.0.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.
package/CHANGELOG.md CHANGED
@@ -5,10 +5,24 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [5.0.0] - 2023-03-16
8
+ ## [5.0.1] - 2023-03-21
9
+ ### Changed
10
+ - `@apolitical/content` version
11
+
12
+ ## [5.0.0] - 2023-03-21
9
13
  ### Added
10
14
  - Support for paginated answers
11
15
 
16
+ ## [4.2.0] - 2023-03-15
17
+ ### Added
18
+ - API call to expose POST `/event-registrations` request on the Management API
19
+
20
+ ## [4.1.4] - 2023-03-16
21
+ ### Fixed
22
+ - buildCarouselCard to handle event email boot camps
23
+ ### Changed
24
+ - qaQuestions sort by createdAt field instead of updatedAt
25
+
12
26
  ## [4.1.3] - 2023-03-15
13
27
  ### Fixed
14
28
  - buildCarouselCard to handle event speakers
package/build/index.js CHANGED
@@ -1 +1 @@
1
- !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("buffer")):"function"==typeof define&&define.amd?define(["@apolitical/content","@apolitical/error-reporting","@apolitical/gtm","axios","http-status-codes","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("buffer")):t.ApoliticalSDK=e(t["@apolitical/content"],t["@apolitical/error-reporting"],t["@apolitical/gtm"],t.axios,t["http-status-codes"],t.buffer)}(this,(function(t,e,a,r,n,s){return function(){"use strict";var o={809:function(e){e.exports=t},30:function(t){t.exports=e},36:function(t){t.exports=a},300:function(t){t.exports=r},408:function(t){t.exports=s},25:function(t){t.exports=n}},i={};function c(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={exports:{}};return o[t](a,a.exports,c),a.exports}c.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return c.d(e,{a:e}),e},c.d=function(t,e){for(var a in e)c.o(e,a)&&!c.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},c.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},c.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(){c.r(u),c.d(u,{assets:function(){return f},auth:function(){return O},buildCarouselCard:function(){return Le},buildQuestion:function(){return Pe},buildQuestions:function(){return fe},carouselCards:function(){return oe},contentInteraction:function(){return x},contentSuggestion:function(){return X},decodeBase64:function(){return _e},default:function(){return $e},editorialPages:function(){return le},getEntries:function(){return t.getEntries},getEntry:function(){return t.getEntry},management:function(){return nt},payments:function(){return ct},people:function(){return kt},peopleEngagement:function(){return ae},qaQuestions:function(){return Ae},reportError:function(){return e.reportError}});var t=c(809),e=c(30),a=c(36),r={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"}},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",LIKES:"/likes"}},CONTENT_SUGGESTIONS_API:{BASE_URL:"/api/content-suggestions-api",ENDPOINTS:{SUGGESTIONS:"/suggest"}},MANAGEMENT_API:{BASE_URL:"/api/management-api",ENDPOINTS:{ACCOUNTS:"/accounts",LOGINS:"/logins",LOGIN_PASSWORDLESS:"/passwordless"}},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:{REGISTRATIONS:"/registrations",USERS:"/users",USER_ANSWERS:"/answers",USER_COURSES:"/courses",USER_EVENTS:"/events",USER_LESSONS:"/lessons",USER_PRODUCTS:"/products",USER_SUBSCRIPTIONS:"/subscriptions"}},PEOPLE_ENGAGEMENT_API:{BASE_URL:"/api/people-engagement-api",ENDPOINTS:{ENQUIRY_EMAILS:"/enquiry-emails",USERS:"/users",USER_PROPERTIES:"/properties"}}},CONTENTFUL:{ARTICLES:{TYPE:"solutionArticle"},CAROUSELS:{CARD_TYPES:{solutionArticle:{INCLUDE:1,SELECT:"fields.authorIds,fields.authorTag,fields.image,fields.publishedDate,fields.readingTime,fields.slug,fields.title"},microcourse:{INCLUDE:2,SELECT:"fields.banner,fields.freeCourse,fields.partnershipDetails,fields.slug,fields.title"},event:{INCLUDE:1,SELECT:"fields.bannerImage,fields.defaultStartDate,fields.slug,fields.speakers,fields.title"},listPage:{INCLUDE:1,SELECT:"fields.hero,fields.slug,fields.title"},qaQuestion:{INCLUDE:0,SELECT:"fields.answers,fields.authorId,fields.slug,fields.title,sys.createdAt"}}},COURSES:{TYPE:"microcourse"},EDITORIAL_PAGES:{INCLUDE:1,SELECT:"fields.carousels,fields.slug",TYPE:"editorialPage"},EVENTS:{TYPE:"event"},LISTS:{TYPE:"listPage"},QUESTIONS:{TYPE:"qaQuestion",INCLUDE:1,LIMIT:10,ORDER:"-sys.updatedAt",SELECT:"sys.createdAt,sys.updatedAt,fields.title,fields.slug,fields.authorId,fields.answers,fields.isEdited",SKIP:0}},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"}};const{APOLITICAL:{WEBSITES:{LIVE:n,LOCALHOST:s,STAGING:o,STAGING_SPLITTER:i},ENVIRONMENTS:{PRODUCTION:E,LOCAL:l}}}=r,{HUBSPOT:{ENVIRONMENTS_MAPPING:S,EMAIL_IDS:d}}=r;let p={emailIds:{}};var I=c(300),w=c.n(I);const N=async t=>{try{const{message:a,response:r,request:n}=t;let s=a;return r?s+=` - The request was made and the server responded with ${JSON.stringify({status:r.status,data:r.data})}`:n&&(s+=" - The request was made but no response was received"),console.warn(s),await(0,e.reportError)(new Error(s)),s}catch(t){return console.warn(`Cannot handle error: ${t.message}`),t.message}},{APIS:{ASSETS_API:{BASE_URL:T,ENDPOINTS:{USERS:A,CERTIFICATES:P}}}}=r;var f={certificates:{create:async(t,e)=>{let a=[];try{const{data:r}=await w().post(`${T}${A}/${t}${P}`,e);r&&(a=r)}catch(t){await N(t)}return a}}};const{APIS:{AUTH_API:{BASE_URL:g,ENDPOINTS:{USER_PASSWORD:y,USERS:h}}},USERS:{MYSELF:R}}=r;var O={userPassword:{update:async t=>{let e=null;try{e=await w().put(`${g}${h}/${R}${y}`,t)}catch(t){e={message:(((t||{}).response||{}).data||{}).message},await N(t)}return e}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:U,ENDPOINTS:{ANSWERS:m,QUESTIONS:L}}}}=r,C=`${U}${L}`;var _={create:async(t,e)=>{try{await w().post(`${C}/${encodeURIComponent(t)}${m}`,e)}catch(t){const e=await N(t);throw new Error(e)}},remove:async(t,e)=>{try{await w().delete(`${C}/${encodeURIComponent(t)}${m}/${encodeURIComponent(e)}`)}catch(t){const e=await N(t);throw new Error(e)}},update:async(t,e,a)=>{try{return await w().put(`${C}/${encodeURIComponent(t)}${m}/${encodeURIComponent(e)}`,{body:a})}catch(t){const e=await N(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:$,ENDPOINTS:{QUESTIONS:D}}}}=r,v=`${$}${D}`;var b={create:async t=>{try{return await w().post(v,t)}catch(t){const e=await N(t);throw new Error(e)}},remove:async t=>{try{await w().delete(`${v}/${encodeURIComponent(t)}`)}catch(t){const e=await N(t);throw new Error(e)}},update:async(t,e)=>{try{return await w().put(`${v}/${encodeURIComponent(t)}`,{title:e})}catch(t){const e=await N(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:B,ENDPOINTS:{QUESTIONS:G,ANSWERS:M,LIKES:q}}}}=r,Y=`${B}${G}`;var x={answers:_,questions:b,likes:{create:async(t,e)=>{try{return await w().post(`${Y}/${encodeURIComponent(t)}${M}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await N(t);throw new Error(e)}},remove:async(t,e)=>{try{return await w().delete(`${Y}/${encodeURIComponent(t)}${M}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await N(t);throw new Error(e)}}}},V=c(25);const{OK:F,MULTIPLE_CHOICES:Q,NOT_FOUND:j,FORBIDDEN:W}=V.StatusCodes,k=t=>t>=F&&t<Q||t===W||t===j,{APIS:{CONTENT_SUGGESTIONS_API:{BASE_URL:H,ENDPOINTS:{SUGGESTIONS:K}}}}=r;var X={suggestions:{list:async(t={})=>{let e=[],a=Object.assign({validateStatus:k},t);try{const{data:t}=await w().get(`${H}${K}`,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}}};const{APIS:{MANAGEMENT_API:{BASE_URL:J,ENDPOINTS:{ACCOUNTS:z}}}}=r;var Z={create:async t=>{try{await w().post(`${J}${z}`,t)}catch(t){throw await N(t),t}},read:async t=>{let e=null;try{({data:e}=await w().get(`${J}${z}/${encodeURIComponent(t)}`))}catch(t){await N(t)}return e},update:async(t,e)=>{try{await w().put(`${J}${z}/${encodeURIComponent(t)}`,e)}catch(t){throw await N(t),t}}};const{APIS:{MANAGEMENT_API:{BASE_URL:tt,ENDPOINTS:{LOGINS:et,LOGIN_PASSWORDLESS:at}}}}=r,rt=`${tt}${et}`;var nt={accounts:Z,passwordless:{update:async t=>{try{await w().put(`${rt}/${encodeURIComponent(t)}${at}`)}catch(t){throw await N(t),t}}}};const{APIS:{PAYMENTS_API:{BASE_URL_V2:st,ENDPOINTS:{PRODUCTS:ot}}}}=r,it=`${st}${ot}`;var ct={products:{list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(it,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:ut,ENDPOINTS:{USERS:Et}}}}=r,lt=async t=>{let e=null;try{const{data:a}=await w().get(`${ut}${Et}/${encodeURIComponent(t)}`,{validateStatus:k});a&&a.id&&(e=a)}catch(t){await N(t)}return e};var St={read:lt,update:async(t,e)=>{let a=!1;try{const{data:r}=await w().put(`${ut}${Et}/${encodeURIComponent(t)}`,e);a=!(!r||!r.id)}catch(t){await N(t)}return a}};const{APIS:{PEOPLE_API:{BASE_URL_V2:dt,ENDPOINTS:{USERS:pt,USER_ANSWERS:It}}},USERS:{MYSELF:wt}}=r,Nt=`${dt}${pt}/${wt}${It}`,Tt=async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Nt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e};var At={list:Tt},Pt={authors:{readQuestionAuthors:async(t,e,a)=>{try{if(t.author=await lt(t.authorId),t.answers&&t.answers.length&&!a.ignoreAnswersAuthors){const r=[];if(e){const e=(await Tt("me",t.slug)).filter((t=>t.liked));for(const t of e)r.push(t.answerSlug)}t.answers.sort(((t,e)=>new Date(e.updatedAt)-new Date(t.updatedAt))),t.totalAnswers=t.answers.length;let n=t.answers;if(a.limit&&a.pageNumber){const e=a.limit*(a.pageNumber-1);n=t.answers.slice(e,e+a.limit)}for(let t of n)t.author=t.authorId&&await lt(t.authorId)||{},t.userLiked=r.includes(t.slug);t.answers=n}else t.answers||(t.answers=[]);return t}catch(t){throw await N(t),new Error(`Cannot read authors: ${t.message}`)}}}};const{APIS:{PEOPLE_API:{BASE_URL:ft,ENDPOINTS:{REGISTRATIONS:gt}}}}=r;var yt={list:async t=>{let e=[];try{const{data:a}=await w().get(`${ft}${gt}`,{params:t});a&&a.length&&(e=a)}catch(t){await N(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:ht,ENDPOINTS:{USERS:Rt,USER_COURSES:Ot}}},USERS:{MYSELF:Ut}}=r,mt=`${ht}${Rt}/${Ut}${Ot}`;var Lt={create:async t=>{try{await w().post(mt,t)}catch(t){await N(t)}},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(mt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e},update:async(t,e)=>{try{await w().put(`${mt}/${t}`,e)}catch(t){await N(t)}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Ct,ENDPOINTS:{USERS:_t,USER_EVENTS:$t}}},USERS:{MYSELF:Dt}}=r,vt=`${Ct}${_t}/${Dt}${$t}`;var bt={list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(vt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Bt,ENDPOINTS:{USERS:Gt,USER_LESSONS:Mt}}},USERS:{MYSELF:qt}}=r,Yt=`${Bt}${Gt}/${qt}${Mt}`;var xt={create:async t=>{let e=null;try{e=await w().post(Yt,t)}catch(t){await N(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Yt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Vt,ENDPOINTS:{USERS:Ft,USER_PRODUCTS:Qt}}},USERS:{MYSELF:jt}}=r,Wt=`${Vt}${Ft}/${jt}${Qt}`;var kt={handlers:Pt,registrations:yt,users:St,userAnswers:At,userCourses:Lt,userEvents:bt,userLessons:xt,userProducts:{create:async t=>{let e=null;try{e=await w().post(Wt,t)}catch(t){await N(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Wt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e},update:async(t,e)=>{try{await w().put(`${Wt}/${t}`,e)}catch(t){await N(t)}}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:Ht,ENDPOINTS:{ENQUIRY_EMAILS:Kt}}}}=r;var Xt={create:async t=>{let e=null;try{const{data:a}=await w().post(`${Ht}${Kt}`,t);a&&(e=a)}catch(t){await N(t)}return e}},Jt={forms:{sendEnquiryEmails:async t=>{let e=null;try{const{emailIds:a}=p;e=await ae.emails.create({...a,...t})}catch(t){await N(t)}return e}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:zt,ENDPOINTS:{USERS:Zt,USER_PROPERTIES:te}}},USERS:{MYSELF:ee}}=r;var ae={emails:Xt,handlers:Jt,userProperties:{update:async(t,e)=>{try{await w().put(`${zt}${Zt}/${ee}${te}/${t}`,e)}catch(t){await N(t)}}}};const{CONTENTFUL:re}=r,{CARD_TYPES:ne}=re.CAROUSELS,se={read:async(e,a)=>{try{if(!a||!a.sys||!a.sys.id)throw new Error("Invalid link to card");if(!e||!ne[e])throw new Error("Unsupported card content type");const{INCLUDE:r,SELECT:n}=ne[e];return await(0,t.getEntry)({content_type:e,"sys.id":a.sys.id,include:r,select:n},{assetDetails:!0})}catch(t){throw await N(t),new Error(`Cannot read carousel card: ${t.message}`)}}};var oe=se;const{CONTENTFUL:ie}=r,{INCLUDE:ce,SELECT:ue,TYPE:Ee}=ie.EDITORIAL_PAGES;var le={read:async e=>{try{return await(0,t.getEntry)({content_type:Ee,"fields.slug":e,include:ce,select:ue})}catch(t){throw await N(t),new Error(`Cannot read editorial page: ${t.message}`)}}};const{CONTENTFUL:Se}=r,{TYPE:de,ORDER:pe,SELECT:Ie,SKIP:we,LIMIT:Ne,INCLUDE:Te}=Se.QUESTIONS;var Ae={read:async e=>{try{return await(0,t.getEntry)({content_type:de,"fields.slug":e,include:2,select:Ie})}catch(t){throw await N(t),new Error(`Cannot read question: ${t.message}`)}},list:async(e={})=>{try{return await(0,t.getEntries)({content_type:de,include:Te,limit:Ne,order:pe,select:Ie,skip:we,"fields.private[ne]":!0,...e})}catch(t){throw await N(t),new Error(`Cannot list questions: ${t.message}`)}}},Pe=async(t,e,a={ignoreAnswersAuthors:!1})=>{try{let r={};return r=await Ae.read(t),r=await kt.handlers.authors.readQuestionAuthors(r,e,a),r}catch(t){throw await N(t),new Error(`Cannot build question: ${t.message}`)}},fe=async(t,e=10,a={})=>{try{let r=[];const n=e*(t-1);r=await Ae.list({...a,limit:e,skip:n});for(let t of r)t.author=t.authorId&&await kt.users.read(t.authorId)||{};return r}catch(t){throw await N(t),new Error(`Cannot build questions: ${t.message}`)}};const{ARTICLES:{TYPE:ge},COURSES:{TYPE:ye},EVENTS:{TYPE:he},LISTS:{TYPE:Re},QUESTIONS:{TYPE:Oe}}=r.CONTENTFUL,Ue=t=>t&&t.url?(Object.assign(t,{aspect:"responsiveCard",query:"q=90&fit=fill"}),t):null,me={[ge]:async t=>{const{authorIds:e,authorTag:a,image:r,publishedDate:n,readingTime:s,slug:o,title:i}=t;let c=[];if(e&&e.length)for(const t of e){const e=await kt.users.read(t);e&&c.push(e)}const u=c&&c.length?c:a?[a]:null;return{banner:Ue(r),contributors:u,publishedDate:n,readingTime:s,slug:o,title:i}},[ye]:async(t,e)=>{const{banner:a,freeCourse:r,partnershipDetails:n,slug:s,title:o,registered:i}=t,c={banner:Ue(a),slug:s,title:o,pill:r?"free":"premium",registered:!!i};if(n){const{partners:t}=n;c.partner=t&&t.length&&n.partners[0]}if(void 0===i&&e){const[t]=await kt.userProducts.list({courseSlug:s,isEnrolled:!0,scope:"active"});c.registered=!!t}return c},[he]:async(t,e)=>{const{bannerImage:a,defaultStartDate:r,slug:n,speakers:s,title:o,registered:i}=t,c=new Date(r),u=!!c&&c<new Date;if(s&&s.length)for(const t of s)t.image=(E=t.image)&&E.url?`${E.url}?w=100&h=100&fit=thumb&f=center`:null;var E;const l={banner:Ue(a),dateHasPassed:u,title:o,slug:n,contributors:s,startDate:c,registered:!!i};if(void 0===i&&e){const[t]=await kt.userEvents.list({eventSlug:n});l.registered=!!t}return l},[Re]:async t=>{const{hero:e,slug:a,title:r}=t;return{banner:Ue(e),slug:a,title:r}},[Oe]:async t=>{const{answers:e,authorId:a,createdAt:r,slug:n,title:s}=t;let o=null;if(a){const t=await kt.users.read(a);t&&(o=t)}return{answers:e&&e.length?e.length:0,contributors:o?[o]:[],createdAt:r,slug:n,title:s}}};var Le=async({contentType:t,...e}={},a)=>{try{if(!me[t])throw new Error("Content type not supported");if("function"!=typeof me[t])throw new Error("No builder function for content type");return e.sys&&e.sys.type&&"Link"===e.sys.type&&(e=await oe.read(t,e)),{contentType:t,...await me[t](e,a)}}catch(t){throw await N(t),new Error(`Cannot build carousel card: ${t.message}`)}},Ce=c(408);const _e=t=>t&&Ce.Buffer.from(t,"base64").toString("ascii");function $e({contentContext:r=null,errorsContext:c=null,gtmContext:u=null,origin:I}){try{const w=(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 a=null;const r=e.match(o);return r?a=r[1].split(i)[0]:e===n?a=E:e.includes(s)&&(a=l),a||new Error(`Cannot select environment: No rule for website ${e}`),a})(I);return r&&(0,t.setContext)(Object.assign({},r,{environment:w})),c&&(0,e.setContext)(Object.assign({},c,{environment:w})),u&&((0,a.setContext)(Object.assign({},u,{environment:w})),(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);p.emailIds=d[e]})(Object.assign({},{environment:w})),w}catch(t){console.warn(`Cannot load SDK: ${t.message}`)}}}(),u}()}));
1
+ !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("buffer")):"function"==typeof define&&define.amd?define(["@apolitical/content","@apolitical/error-reporting","@apolitical/gtm","axios","http-status-codes","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("buffer")):t.ApoliticalSDK=e(t["@apolitical/content"],t["@apolitical/error-reporting"],t["@apolitical/gtm"],t.axios,t["http-status-codes"],t.buffer)}(this,(function(t,e,a,r,n,s){return function(){"use strict";var o={809:function(e){e.exports=t},30:function(t){t.exports=e},36:function(t){t.exports=a},300:function(t){t.exports=r},408:function(t){t.exports=s},25:function(t){t.exports=n}},i={};function c(t){var e=i[t];if(void 0!==e)return e.exports;var a=i[t]={exports:{}};return o[t](a,a.exports,c),a.exports}c.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return c.d(e,{a:e}),e},c.d=function(t,e){for(var a in e)c.o(e,a)&&!c.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},c.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},c.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var E={};return function(){c.r(E),c.d(E,{assets:function(){return f},auth:function(){return h},buildCarouselCard:function(){return $e},buildQuestion:function(){return Re},buildQuestions:function(){return ye},carouselCards:function(){return Ee},contentInteraction:function(){return x},contentSuggestion:function(){return X},decodeBase64:function(){return ve},default:function(){return be},editorialPages:function(){return Ie},getEntries:function(){return t.getEntries},getEntry:function(){return t.getEntry},management:function(){return it},payments:function(){return lt},people:function(){return Xt},peopleEngagement:function(){return se},qaQuestions:function(){return ge},reportError:function(){return e.reportError}});var t=c(809),e=c(30),a=c(36),r={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"}},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",LIKES:"/likes"}},CONTENT_SUGGESTIONS_API:{BASE_URL:"/api/content-suggestions-api",ENDPOINTS:{SUGGESTIONS:"/suggest"}},MANAGEMENT_API:{BASE_URL:"/api/management-api",ENDPOINTS:{ACCOUNTS:"/accounts",EVENT_REGISTRATIONS:"/event-registrations",LOGINS:"/logins",LOGIN_PASSWORDLESS:"/passwordless"}},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:{REGISTRATIONS:"/registrations",USERS:"/users",USER_ANSWERS:"/answers",USER_COURSES:"/courses",USER_EVENTS:"/events",USER_LESSONS:"/lessons",USER_PRODUCTS:"/products",USER_SUBSCRIPTIONS:"/subscriptions"}},PEOPLE_ENGAGEMENT_API:{BASE_URL:"/api/people-engagement-api",ENDPOINTS:{ENQUIRY_EMAILS:"/enquiry-emails",USERS:"/users",USER_PROPERTIES:"/properties"}}},CONTENTFUL:{ARTICLES:{TYPE:"solutionArticle"},CAROUSELS:{CARD_TYPES:{solutionArticle:{INCLUDE:1,SELECT:"fields.authorIds,fields.authorTag,fields.image,fields.publishedDate,fields.readingTime,fields.slug,fields.title"},microcourse:{INCLUDE:2,SELECT:"fields.banner,fields.freeCourse,fields.partnershipDetails,fields.slug,fields.title"},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"}}},COURSES:{TYPE:"microcourse"},EDITORIAL_PAGES:{INCLUDE:1,SELECT:"fields.carousels,fields.slug",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",SKIP:0}},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"}};const{APOLITICAL:{WEBSITES:{LIVE:n,LOCALHOST:s,STAGING:o,STAGING_SPLITTER:i},ENVIRONMENTS:{PRODUCTION:u,LOCAL:l}}}=r,{HUBSPOT:{ENVIRONMENTS_MAPPING:S,EMAIL_IDS:d}}=r;let I={emailIds:{}};var p=c(300),w=c.n(p);const N=async t=>{try{const{message:a,response:r,request:n}=t;let s=a;return r?s+=` - The request was made and the server responded with ${JSON.stringify({status:r.status,data:r.data})}`:n&&(s+=" - The request was made but no response was received"),console.warn(s),await(0,e.reportError)(new Error(s)),s}catch(t){return console.warn(`Cannot handle error: ${t.message}`),t.message}},{APIS:{ASSETS_API:{BASE_URL:T,ENDPOINTS:{USERS:A,CERTIFICATES:P}}}}=r;var f={certificates:{create:async(t,e)=>{let a=[];try{const{data:r}=await w().post(`${T}${A}/${t}${P}`,e);r&&(a=r)}catch(t){await N(t)}return a}}};const{APIS:{AUTH_API:{BASE_URL:g,ENDPOINTS:{USER_PASSWORD:R,USERS:y}}},USERS:{MYSELF:O}}=r;var h={userPassword:{update:async t=>{let e=null;try{e=await w().put(`${g}${y}/${O}${R}`,t)}catch(t){e={message:(((t||{}).response||{}).data||{}).message},await N(t)}return e}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:U,ENDPOINTS:{ANSWERS:m,QUESTIONS:L}}}}=r,_=`${U}${L}`;var C={create:async(t,e)=>{try{await w().post(`${_}/${encodeURIComponent(t)}${m}`,e)}catch(t){const e=await N(t);throw new Error(e)}},remove:async(t,e)=>{try{await w().delete(`${_}/${encodeURIComponent(t)}${m}/${encodeURIComponent(e)}`)}catch(t){const e=await N(t);throw new Error(e)}},update:async(t,e,a)=>{try{return await w().put(`${_}/${encodeURIComponent(t)}${m}/${encodeURIComponent(e)}`,{body:a})}catch(t){const e=await N(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:$,ENDPOINTS:{QUESTIONS:D}}}}=r,v=`${$}${D}`;var b={create:async t=>{try{return await w().post(v,t)}catch(t){const e=await N(t);throw new Error(e)}},remove:async t=>{try{await w().delete(`${v}/${encodeURIComponent(t)}`)}catch(t){const e=await N(t);throw new Error(e)}},update:async(t,e)=>{try{return await w().put(`${v}/${encodeURIComponent(t)}`,{title:e})}catch(t){const e=await N(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:B,ENDPOINTS:{QUESTIONS:G,ANSWERS:M,LIKES:q}}}}=r,Y=`${B}${G}`;var x={answers:C,questions:b,likes:{create:async(t,e)=>{try{return await w().post(`${Y}/${encodeURIComponent(t)}${M}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await N(t);throw new Error(e)}},remove:async(t,e)=>{try{return await w().delete(`${Y}/${encodeURIComponent(t)}${M}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await N(t);throw new Error(e)}}}},V=c(25);const{OK:F,MULTIPLE_CHOICES:Q,NOT_FOUND:j,FORBIDDEN:W}=V.StatusCodes,k=t=>t>=F&&t<Q||t===W||t===j,{APIS:{CONTENT_SUGGESTIONS_API:{BASE_URL:H,ENDPOINTS:{SUGGESTIONS:K}}}}=r;var X={suggestions:{list:async(t={})=>{let e=[],a=Object.assign({validateStatus:k},t);try{const{data:t}=await w().get(`${H}${K}`,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}}};const{APIS:{MANAGEMENT_API:{BASE_URL:J,ENDPOINTS:{ACCOUNTS:z}}}}=r;var Z={create:async t=>{try{await w().post(`${J}${z}`,t)}catch(t){throw await N(t),t}},read:async t=>{let e=null;try{({data:e}=await w().get(`${J}${z}/${encodeURIComponent(t)}`))}catch(t){await N(t)}return e},update:async(t,e)=>{try{await w().put(`${J}${z}/${encodeURIComponent(t)}`,e)}catch(t){throw await N(t),t}}};const{APIS:{MANAGEMENT_API:{BASE_URL:tt,ENDPOINTS:{EVENT_REGISTRATIONS:et}}}}=r;var at={create:async t=>{try{await w().post(`${tt}${et}`,t)}catch(t){const e=await N(t);throw new Error(e)}}};const{APIS:{MANAGEMENT_API:{BASE_URL:rt,ENDPOINTS:{LOGINS:nt,LOGIN_PASSWORDLESS:st}}}}=r,ot=`${rt}${nt}`;var it={accounts:Z,eventRegistrations:at,passwordless:{update:async t=>{try{await w().put(`${ot}/${encodeURIComponent(t)}${st}`)}catch(t){throw await N(t),t}}}};const{APIS:{PAYMENTS_API:{BASE_URL_V2:ct,ENDPOINTS:{PRODUCTS:Et}}}}=r,ut=`${ct}${Et}`;var lt={products:{list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(ut,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:St,ENDPOINTS:{USERS:dt}}}}=r,It=async t=>{let e=null;try{const{data:a}=await w().get(`${St}${dt}/${encodeURIComponent(t)}`,{validateStatus:k});a&&a.id&&(e=a)}catch(t){await N(t)}return e};var pt={read:It,update:async(t,e)=>{let a=!1;try{const{data:r}=await w().put(`${St}${dt}/${encodeURIComponent(t)}`,e);a=!(!r||!r.id)}catch(t){await N(t)}return a}};const{APIS:{PEOPLE_API:{BASE_URL_V2:wt,ENDPOINTS:{USERS:Nt,USER_ANSWERS:Tt}}},USERS:{MYSELF:At}}=r,Pt=`${wt}${Nt}/${At}${Tt}`,ft=async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Pt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e};var gt={list:ft},Rt={authors:{readQuestionAuthors:async(t,e,a)=>{try{if(t.author=await It(t.authorId),t.answers&&t.answers.length&&!a.ignoreAnswersAuthors){const r=[];if(e){const e=(await ft("me",t.slug)).filter((t=>t.liked));for(const t of e)r.push(t.answerSlug)}t.answers.sort(((t,e)=>new Date(e.updatedAt)-new Date(t.updatedAt))),t.totalAnswers=t.answers.length;let n=t.answers;if(a.limit&&a.pageNumber){const e=a.limit*(a.pageNumber-1);n=t.answers.slice(e,e+a.limit)}for(let t of n)t.author=t.authorId&&await It(t.authorId)||{},t.userLiked=r.includes(t.slug);t.answers=n}else t.answers||(t.answers=[]);return t}catch(t){throw await N(t),new Error(`Cannot read authors: ${t.message}`)}}}};const{APIS:{PEOPLE_API:{BASE_URL:yt,ENDPOINTS:{REGISTRATIONS:Ot}}}}=r;var ht={list:async t=>{let e=[];try{const{data:a}=await w().get(`${yt}${Ot}`,{params:t});a&&a.length&&(e=a)}catch(t){await N(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Ut,ENDPOINTS:{USERS:mt,USER_COURSES:Lt}}},USERS:{MYSELF:_t}}=r,Ct=`${Ut}${mt}/${_t}${Lt}`;var $t={create:async t=>{try{await w().post(Ct,t)}catch(t){await N(t)}},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Ct,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e},update:async(t,e)=>{try{await w().put(`${Ct}/${t}`,e)}catch(t){await N(t)}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Dt,ENDPOINTS:{USERS:vt,USER_EVENTS:bt}}},USERS:{MYSELF:Bt}}=r,Gt=`${Dt}${vt}/${Bt}${bt}`;var Mt={list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Gt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:qt,ENDPOINTS:{USERS:Yt,USER_LESSONS:xt}}},USERS:{MYSELF:Vt}}=r,Ft=`${qt}${Yt}/${Vt}${xt}`;var Qt={create:async t=>{let e=null;try{e=await w().post(Ft,t)}catch(t){await N(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Ft,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:jt,ENDPOINTS:{USERS:Wt,USER_PRODUCTS:kt}}},USERS:{MYSELF:Ht}}=r,Kt=`${jt}${Wt}/${Ht}${kt}`;var Xt={handlers:Rt,registrations:ht,users:pt,userAnswers:gt,userCourses:$t,userEvents:Mt,userLessons:Qt,userProducts:{create:async t=>{let e=null;try{e=await w().post(Kt,t)}catch(t){await N(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await w().get(Kt,a);t&&t.length&&(e=t)}catch(t){await N(t)}return e},update:async(t,e)=>{try{await w().put(`${Kt}/${t}`,e)}catch(t){await N(t)}}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:Jt,ENDPOINTS:{ENQUIRY_EMAILS:zt}}}}=r;var Zt={create:async t=>{let e=null;try{const{data:a}=await w().post(`${Jt}${zt}`,t);a&&(e=a)}catch(t){await N(t)}return e}},te={forms:{sendEnquiryEmails:async t=>{let e=null;try{const{emailIds:a}=I;e=await se.emails.create({...a,...t})}catch(t){await N(t)}return e}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:ee,ENDPOINTS:{USERS:ae,USER_PROPERTIES:re}}},USERS:{MYSELF:ne}}=r;var se={emails:Zt,handlers:te,userProperties:{update:async(t,e)=>{try{await w().put(`${ee}${ae}/${ne}${re}/${t}`,e)}catch(t){await N(t)}}}};const{CONTENTFUL:oe}=r,{CARD_TYPES:ie}=oe.CAROUSELS,ce={read:async(e,a)=>{try{if(!a||!a.sys||!a.sys.id)throw new Error("Invalid link to card");if(!e||!ie[e])throw new Error("Unsupported card content type");const{INCLUDE:r,SELECT:n}=ie[e];return await(0,t.getEntry)({content_type:e,"sys.id":a.sys.id,include:r,select:n},{assetDetails:!0})}catch(t){throw await N(t),new Error(`Cannot read carousel card: ${t.message}`)}}};var Ee=ce;const{CONTENTFUL:ue}=r,{INCLUDE:le,SELECT:Se,TYPE:de}=ue.EDITORIAL_PAGES;var Ie={read:async e=>{try{return await(0,t.getEntry)({content_type:de,"fields.slug":e,include:le,select:Se})}catch(t){throw await N(t),new Error(`Cannot read editorial page: ${t.message}`)}}};const{CONTENTFUL:pe}=r,{TYPE:we,ORDER:Ne,SELECT:Te,SKIP:Ae,LIMIT:Pe,INCLUDE:fe}=pe.QUESTIONS;var ge={read:async e=>{try{return await(0,t.getEntry)({content_type:we,"fields.slug":e,include:2,select:Te})}catch(t){throw await N(t),new Error(`Cannot read question: ${t.message}`)}},list:async(e={})=>{try{return await(0,t.getEntries)({content_type:we,include:fe,limit:Pe,order:Ne,select:Te,skip:Ae,"fields.private[ne]":!0,...e})}catch(t){throw await N(t),new Error(`Cannot list questions: ${t.message}`)}}},Re=async(t,e,a={ignoreAnswersAuthors:!1})=>{try{let r={};return r=await ge.read(t),r=await Xt.handlers.authors.readQuestionAuthors(r,e,a),r}catch(t){throw await N(t),new Error(`Cannot build question: ${t.message}`)}},ye=async(t,e=10,a={})=>{try{let r=[];const n=e*(t-1);r=await ge.list({...a,limit:e,skip:n});for(let t of r)t.author=t.authorId&&await Xt.users.read(t.authorId)||{};return r}catch(t){throw await N(t),new Error(`Cannot build questions: ${t.message}`)}};const{ARTICLES:{TYPE:Oe},COURSES:{TYPE:he},EVENTS:{TYPE:Ue},LISTS:{TYPE:me},QUESTIONS:{TYPE:Le}}=r.CONTENTFUL,_e=t=>t&&t.url?(Object.assign(t,{aspect:"responsiveCard",query:"q=90&fit=fill"}),t):null,Ce={[Oe]:async t=>{const{authorIds:e,authorTag:a,image:r,publishedDate:n,readingTime:s,slug:o,title:i}=t;let c=[];if(e&&e.length)for(const t of e){const e=await Xt.users.read(t);e&&c.push(e)}const E=c&&c.length?c:a?[a]:null;return{banner:_e(r),contributors:E,publishedDate:n,readingTime:s,slug:o,title:i}},[he]:async(t,e)=>{const{banner:a,freeCourse:r,partnershipDetails:n,slug:s,title:o,registered:i}=t,c={banner:_e(a),slug:s,title:o,pill:r?"free":"premium",registered:!!i};if(n){const{partners:t}=n;c.partner=t&&t.length&&n.partners[0]}if(void 0===i&&e){const[t]=await Xt.userProducts.list({courseSlug:s,isEnrolled:!0,scope:"active"});c.registered=!!t}return c},[Ue]:async(t,e)=>{const{bannerImage:a,defaultStartDate:r,isEventOngoing:n,slug:s,speakers:o,title:i,registered:c}=t,E=new Date(r),u=!!E&&E<new Date;if(o&&o.length)for(const t of o)t.image=(l=t.image)&&l.url?`${l.url}?w=100&h=100&fit=thumb&f=center`:null;var l;const S={banner:_e(a),dateHasPassed:u,title:i,slug:s,isOngoingEvent:n,contributors:o,startDate:E,registered:!!c};if(void 0===c&&e){const[t]=await Xt.userEvents.list({eventSlug:s});S.registered=!!t}return S},[me]:async t=>{const{hero:e,slug:a,title:r}=t;return{banner:_e(e),slug:a,title:r}},[Le]:async t=>{const{answers:e,authorId:a,createdAt:r,slug:n,title:s}=t;let o=null;if(a){const t=await Xt.users.read(a);t&&(o=t)}return{answers:e&&e.length?e.length:0,contributors:o?[o]:[],createdAt:r,slug:n,title:s}}};var $e=async({contentType:t,...e}={},a)=>{try{if(!Ce[t])throw new Error("Content type not supported");if("function"!=typeof Ce[t])throw new Error("No builder function for content type");return e.sys&&e.sys.type&&"Link"===e.sys.type&&(e=await Ee.read(t,e)),{contentType:t,...await Ce[t](e,a)}}catch(t){throw await N(t),new Error(`Cannot build carousel card: ${t.message}`)}},De=c(408);const ve=t=>t&&De.Buffer.from(t,"base64").toString("ascii");function be({contentContext:r=null,errorsContext:c=null,gtmContext:E=null,origin:p}){try{const w=(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 a=null;const r=e.match(o);return r?a=r[1].split(i)[0]:e===n?a=u:e.includes(s)&&(a=l),a||new Error(`Cannot select environment: No rule for website ${e}`),a})(p);return r&&(0,t.setContext)(Object.assign({},r,{environment:w})),c&&(0,e.setContext)(Object.assign({},c,{environment:w})),E&&((0,a.setContext)(Object.assign({},E,{environment:w})),(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);I.emailIds=d[e]})(Object.assign({},{environment:w})),w}catch(t){console.warn(`Cannot load SDK: ${t.message}`)}}}(),E}()}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apolitical/sdk",
3
- "version": "5.0.0-draco.5",
3
+ "version": "5.0.1",
4
4
  "description": "Browser library to interact with Apolitical's APIs",
5
5
  "author": "Apolitical Group Limited <engineering@apolitical.co>",
6
6
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  "SDK"
26
26
  ],
27
27
  "dependencies": {
28
- "@apolitical/content": "0.7.0",
28
+ "@apolitical/content": "0.7.2",
29
29
  "@apolitical/error-reporting": "0.2.2",
30
30
  "@apolitical/gtm": "1.2.1",
31
31
  "axios": "0.27.2",
@@ -68,8 +68,7 @@
68
68
  "production": [
69
69
  ">0.2%",
70
70
  "not dead",
71
- "not op_mini all",
72
- "ie 11"
71
+ "not op_mini all"
73
72
  ]
74
73
  },
75
74
  "jest": {