@apolitical/sdk 2.1.0-beta.1 → 2.1.0-beta.3
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 +1 -1
- package/README.md +45 -5
- package/build/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,7 @@ 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
8
|
## [2.1.0] - 2022-12-06
|
|
9
|
-
###
|
|
9
|
+
### Added
|
|
10
10
|
- Solver methods: `buildQuestion` and `buildQuestions`
|
|
11
11
|
- Likes to contentInteraction resources
|
|
12
12
|
- userAnswers to people resources
|
package/README.md
CHANGED
|
@@ -24,7 +24,7 @@ yarn add @apolitical/sdk
|
|
|
24
24
|
|
|
25
25
|
In the project directory, you can run:
|
|
26
26
|
|
|
27
|
-
### `yarn
|
|
27
|
+
### `yarn test`
|
|
28
28
|
|
|
29
29
|
Runs the test (and the interactive mode can be enabled with `--watchAll`).
|
|
30
30
|
|
|
@@ -33,10 +33,6 @@ Runs the test (and the interactive mode can be enabled with `--watchAll`).
|
|
|
33
33
|
Builds the library for production to the `build` folder.
|
|
34
34
|
It correctly bundles the code on production mode and optimizes the build for the best performance.
|
|
35
35
|
|
|
36
|
-
### `yarn publish`
|
|
37
|
-
|
|
38
|
-
Publishes the library to NPM.
|
|
39
|
-
|
|
40
36
|
## Usage
|
|
41
37
|
|
|
42
38
|
The recommended way to use `@apolitical/sdk` is to load the SDK first:
|
|
@@ -60,3 +56,47 @@ sdk.people.users.read('me').then((result) => {
|
|
|
60
56
|
console.info('User:', result);
|
|
61
57
|
});
|
|
62
58
|
```
|
|
59
|
+
|
|
60
|
+
## Folders & files structure
|
|
61
|
+
|
|
62
|
+
Here's the library's folders structure:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
/lib
|
|
66
|
+
/apis
|
|
67
|
+
/api-1
|
|
68
|
+
/resources
|
|
69
|
+
/handlers
|
|
70
|
+
/contentful
|
|
71
|
+
/content-type-1
|
|
72
|
+
/helpers
|
|
73
|
+
/solvers
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### APIs folder
|
|
77
|
+
|
|
78
|
+
Under `/lib/apis/` we implement functionality to directly interact with the Apolitical APIs.
|
|
79
|
+
|
|
80
|
+
Each API will have its own folder, for example, `/lib/apis/people/` for People API.
|
|
81
|
+
|
|
82
|
+
Inside the API folder itself, there are two other folders
|
|
83
|
+
- `/lib/apis/people/resources`: The resources folder holds each RESTful resource on the API and implements CRUD operations
|
|
84
|
+
- `/lib/apis/people/handlers`: The handlers folder holds functions that require calling the same API more than one time (or in some particular way that cannot be done by using the CRUD operations)
|
|
85
|
+
|
|
86
|
+
### Contentful folder
|
|
87
|
+
|
|
88
|
+
Under `/lib/contentful/` we implement functionality to interact with Contentful Delivery (and Preview) API.
|
|
89
|
+
|
|
90
|
+
Each content type will have it's own folder, for example, `/lib/contentful/questions/` for the Q&A Question content type.
|
|
91
|
+
|
|
92
|
+
Internally, the functionality will be implemented with the help of the `@apolitical/content` module.
|
|
93
|
+
|
|
94
|
+
### Helpers folder
|
|
95
|
+
|
|
96
|
+
Under `/lib/helpers/` we implement reusable functionality that helps implementing internal logic within the SDK.
|
|
97
|
+
|
|
98
|
+
### Solvers folder
|
|
99
|
+
|
|
100
|
+
Under `/lib/solvers/` we implement high level functionality based on the functionality provided by internal APIs and Contentful.
|
|
101
|
+
|
|
102
|
+
For example, the `buildQuestion.js` is a function that reads a question from Contentful, and then, read the author data from the People API.
|
package/build/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@apolitical/auth"),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/auth","@apolitical/content","@apolitical/error-reporting","@apolitical/gtm","axios","http-status-codes","buffer"],e):"object"==typeof exports?exports.ApoliticalSDK=e(require("@apolitical/auth"),require("@apolitical/content"),require("@apolitical/error-reporting"),require("@apolitical/gtm"),require("axios"),require("http-status-codes"),require("buffer")):t.ApoliticalSDK=e(t["@apolitical/auth"],t["@apolitical/content"],t["@apolitical/error-reporting"],t["@apolitical/gtm"],t.axios,t["http-status-codes"],t.buffer)}(this,(function(t,e,a,n,r,o,s){return function(){"use strict";var i={654:function(e){e.exports=t},809:function(t){t.exports=e},30:function(t){t.exports=a},36:function(t){t.exports=n},300:function(t){t.exports=r},408:function(t){t.exports=s},25:function(t){t.exports=o}},c={};function S(t){var e=c[t];if(void 0!==e)return e.exports;var a=c[t]={exports:{}};return i[t](a,a.exports,S),a.exports}S.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return S.d(e,{a:e}),e},S.d=function(t,e){for(var a in e)S.o(e,a)&&!S.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},S.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},S.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(){S.r(E),S.d(E,{assets:function(){return O},auth:function(){return $},buildQuestion:function(){return re},buildQuestions:function(){return oe},contentInteraction:function(){return F},contentSuggestion:function(){return J},decodeBase64:function(){return ie},default:function(){return ce},getAuthContext:function(){return t.getContext},getEntries:function(){return e.getEntries},getEntry:function(){return e.getEntry},management:function(){return tt},passwordlessLogin:function(){return t.passwordlessLogin},payments:function(){return rt},people:function(){return Yt},peopleEngagement:function(){return zt},reportError:function(){return a.reportError},sendVerificationEmail:function(){return t.sendVerificationEmail}});var t=S(654),e=S(809),a=S(30),n=S(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"}},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:{QUESTIONS:{TYPE:"qaQuestion",ORDER:"-sys.updatedAt",FIELDS:"sys.createdAt,sys.updatedAt,fields.title,fields.slug,fields.authorId,fields.answers,fields.isEdited"}},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:o,LOCALHOST:s,STAGING:i,STAGING_SPLITTER:c},ENVIRONMENTS:{PRODUCTION:u,LOCAL:l}}}=r,{HUBSPOT:{ENVIRONMENTS_MAPPING:p,EMAIL_IDS:I}}=r;let d={emailIds:{}};var w=S(300),N=S.n(w);const A=async t=>{try{const{message:e,response:n,request:r}=t;let o=e;return n?o+=` - The request was made and the server responded with ${JSON.stringify({status:n.status,data:n.data})}`:r&&(o+=" - The request was made but no response was received"),console.warn(o),await(0,a.reportError)(new Error(o)),o}catch(t){return console.warn(`Cannot handle error: ${t.message}`),t.message}},{APIS:{ASSETS_API:{BASE_URL:P,ENDPOINTS:{USERS:R,CERTIFICATES:T}}}}=r;var O={certificates:{create:async(t,e)=>{let a=[];try{const{data:n}=await N().post(`${P}${R}/${t}${T}`,e);n&&(a=n)}catch(t){await A(t)}return a}}};const{APIS:{AUTH_API:{BASE_URL:U,ENDPOINTS:{USER_PASSWORD:h,USERS:y}}},USERS:{MYSELF:_}}=r;var $={userPassword:{update:async t=>{let e=null;try{e=await N().put(`${U}${y}/${_}${h}`,t)}catch(t){e={message:(((t||{}).response||{}).data||{}).message},await A(t)}return e}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:m,ENDPOINTS:{ANSWERS:f,QUESTIONS:g}}}}=r,L=`${m}${g}`;var C={create:async(t,e)=>{try{await N().post(`${L}/${encodeURIComponent(t)}${f}`,e)}catch(t){const e=await A(t);throw new Error(e)}},remove:async(t,e)=>{try{await N().delete(`${L}/${encodeURIComponent(t)}${f}/${encodeURIComponent(e)}`)}catch(t){const e=await A(t);throw new Error(e)}},update:async(t,e,a)=>{try{return await N().put(`${L}/${encodeURIComponent(t)}${f}/${encodeURIComponent(e)}`,{body:a})}catch(t){const e=await A(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:v,ENDPOINTS:{QUESTIONS:D}}}}=r,B=`${v}${D}`;var b={create:async t=>{try{await N().post(B,t)}catch(t){const e=await A(t);throw new Error(e)}},remove:async t=>{try{await N().delete(`${B}/${encodeURIComponent(t)}`)}catch(t){const e=await A(t);throw new Error(e)}},update:async(t,e)=>{try{return await N().put(`${B}/${encodeURIComponent(t)}`,{title:e})}catch(t){const e=await A(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:M,ENDPOINTS:{QUESTIONS:x,ANSWERS:G,LIKES:q}}}}=r,V=`${M}${x}`;var F={answers:C,questions:b,likes:{create:async(t,e)=>{try{return await N().post(`${V}/${encodeURIComponent(t)}${G}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await A(t);throw new Error(e)}},remove:async(t,e)=>{try{return await N().delete(`${V}/${encodeURIComponent(t)}${G}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await A(t);throw new Error(e)}}}},Y=S(25);const{OK:j,MULTIPLE_CHOICES:Q,NOT_FOUND:W,FORBIDDEN:H}=Y.StatusCodes,K=t=>t>=j&&t<Q||t===H||t===W,{APIS:{CONTENT_SUGGESTIONS_API:{BASE_URL:k,ENDPOINTS:{SUGGESTIONS:X}}}}=r;var J={suggestions:{list:async(t={})=>{let e=[],a=Object.assign({validateStatus:K},t);try{const{data:t}=await N().get(`${k}${X}`,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}}};const{APIS:{MANAGEMENT_API:{BASE_URL:z,ENDPOINTS:{ACCOUNTS:Z}}}}=r;var tt={accounts:{create:async t=>{try{await N().post(`${z}${Z}`,t)}catch(t){throw await A(t),t}},read:async t=>{let e=null;try{({data:e}=await N().get(`${z}${Z}/${encodeURIComponent(t)}`))}catch(t){await A(t)}return e},update:async(t,e)=>{try{await N().put(`${z}${Z}/${encodeURIComponent(t)}`,e)}catch(t){throw await A(t),t}}}};const{APIS:{PAYMENTS_API:{BASE_URL_V2:et,ENDPOINTS:{PRODUCTS:at}}}}=r,nt=`${et}${at}`;var rt={products:{list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(nt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:ot,ENDPOINTS:{USERS:st}}}}=r,it=async t=>{let e=null;try{const{data:a}=await N().get(`${ot}${st}/${encodeURIComponent(t)}`,{validateStatus:K});a&&a.id&&(e=a)}catch(t){await A(t)}return e};var ct={read:it,update:async(t,e)=>{let a=!1;try{const{data:n}=await N().put(`${ot}${st}/${encodeURIComponent(t)}`,e);a=!(!n||!n.id)}catch(t){await A(t)}return a}};const{APIS:{PEOPLE_API:{BASE_URL_V2:St,ENDPOINTS:{USERS:Et,USER_ANSWERS:ut}}},USERS:{MYSELF:lt}}=r,pt=`${St}${Et}/${lt}${ut}`,It=async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(pt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e};var dt={list:It},wt={authors:{readQuestionAuthors:async(t,e)=>{try{if(t.author=await it(t.authorId),t.answers&&t.answers.length){const a=[];if(e){const e=(await It("me",t.slug)).filter((t=>t.liked));for(const t of e)a.push(t.answerSlug)}for(let e of t.answers)e.author=e.authorId&&await it(e.authorId)||{},e.userLiked=a.includes(e.slug);t.answers.sort(((t,e)=>new Date(e.updatedAt)-new Date(t.updatedAt)))}return t}catch(t){throw await A(t),new Error(`Cannot read question authors: ${t.message}`)}}}};const{APIS:{PEOPLE_API:{BASE_URL:Nt,ENDPOINTS:{REGISTRATIONS:At}}}}=r;var Pt={list:async t=>{let e=[];try{const{data:a}=await N().get(`${Nt}${At}`,{params:t});a&&a.length&&(e=a)}catch(t){await A(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Rt,ENDPOINTS:{USERS:Tt,USER_COURSES:Ot}}},USERS:{MYSELF:Ut}}=r,ht=`${Rt}${Tt}/${Ut}${Ot}`;var yt={create:async t=>{try{await N().post(ht,t)}catch(t){await A(t)}},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(ht,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e},update:async(t,e)=>{try{await N().put(`${ht}/${t}`,e)}catch(t){await A(t)}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:_t,ENDPOINTS:{USERS:$t,USER_EVENTS:mt}}},USERS:{MYSELF:ft}}=r,gt=`${_t}${$t}/${ft}${mt}`;var Lt={list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(gt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Ct,ENDPOINTS:{USERS:vt,USER_LESSONS:Dt}}},USERS:{MYSELF:Bt}}=r,bt=`${Ct}${vt}/${Bt}${Dt}`;var Mt={create:async t=>{let e=null;try{e=await N().post(bt,t)}catch(t){await A(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(bt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:xt,ENDPOINTS:{USERS:Gt,USER_PRODUCTS:qt}}},USERS:{MYSELF:Vt}}=r,Ft=`${xt}${Gt}/${Vt}${qt}`;var Yt={handlers:wt,registrations:Pt,users:ct,userAnswers:dt,userCourses:yt,userEvents:Lt,userLessons:Mt,userProducts:{create:async t=>{let e=null;try{e=await N().post(Ft,t)}catch(t){await A(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(Ft,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e},update:async(t,e)=>{try{await N().put(`${Ft}/${t}`,e)}catch(t){await A(t)}}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:jt,ENDPOINTS:{ENQUIRY_EMAILS:Qt}}}}=r;var Wt={create:async t=>{let e=null;try{const{data:a}=await N().post(`${jt}${Qt}`,t);a&&(e=a)}catch(t){await A(t)}return e}},Ht={forms:{sendEnquiryEmails:async t=>{let e=null;try{const{emailIds:a}=d;e=await zt.emails.create({...a,...t})}catch(t){await A(t)}return e}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:Kt,ENDPOINTS:{USERS:kt,USER_PROPERTIES:Xt}}},USERS:{MYSELF:Jt}}=r;var zt={emails:Wt,handlers:Ht,userProperties:{update:async(t,e)=>{try{await N().put(`${Kt}${kt}/${Jt}${Xt}/${t}`,e)}catch(t){await A(t)}}}};const{CONTENTFUL:Zt}=r,{TYPE:te,ORDER:ee,FIELDS:ae}=Zt.QUESTIONS;var ne={read:async t=>{try{return await(0,e.getEntry)({content_type:te,"fields.slug":t,include:2,select:ae})}catch(t){throw await A(t),new Error(`Cannot read question: ${t.message}`)}},list:async(t=10,a=0)=>{try{return await(0,e.getEntries)({content_type:te,include:1,limit:t,order:ee,select:ae,skip:a})}catch(t){throw await A(t),new Error(`Cannot list questions: ${t.message}`)}}},re=async(t,e)=>{try{let a={};return a=await ne.read(t),a=await Yt.handlers.authors.readQuestionAuthors(a,e),a}catch(t){throw await A(t),new Error(`Cannot build question ${t.message}`)}},oe=async t=>{try{let e=[];const a=10,n=a*(t-1);e=await ne.list(a,n);for(let t of e)t.author=t.authorId&&await Yt.users.read(t.authorId)||{};return e}catch(t){throw await A(t),new Error(`Cannot build questions ${t.message}`)}},se=S(408);const ie=t=>t&&se.Buffer.from(t,"base64").toString("ascii");function ce({authContext:r=null,contentContext:S=null,errorsContext:E=null,gtmContext:w=null,origin:N}){try{const A=(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 n=e.match(i);return n?a=n[1].split(c)[0]:e===o?a=u:e.includes(s)&&(a=l),a||new Error(`Cannot select environment: No rule for website ${e}`),a})(N);r&&(0,t.setContext)(Object.assign({},r,{environment:A,origin:N})),S&&(0,e.setContext)(Object.assign({},S,{environment:A})),E&&(0,a.setContext)(Object.assign({},E,{environment:A})),w&&((0,n.setContext)(Object.assign({},w,{environment:A})),(0,n.setupGTM)()),(({environment:t})=>{const e=(t=>{if(!t)throw new Error("Cannot map environment: Environment not defined");if(!p[t])throw new Error(`Cannot map environment: No mapping found for environment ${t}`);return p[t]})(t);d.emailIds=I[e]})(Object.assign({},{environment:A}))}catch(t){console.warn(`Cannot load SDK: ${t.message}`)}}}(),E}()}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@apolitical/auth"),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/auth","@apolitical/content","@apolitical/error-reporting","@apolitical/gtm","axios","http-status-codes","buffer"],e):"object"==typeof exports?exports.ApoliticalSDK=e(require("@apolitical/auth"),require("@apolitical/content"),require("@apolitical/error-reporting"),require("@apolitical/gtm"),require("axios"),require("http-status-codes"),require("buffer")):t.ApoliticalSDK=e(t["@apolitical/auth"],t["@apolitical/content"],t["@apolitical/error-reporting"],t["@apolitical/gtm"],t.axios,t["http-status-codes"],t.buffer)}(this,(function(t,e,a,n,r,o,s){return function(){"use strict";var i={654:function(e){e.exports=t},809:function(t){t.exports=e},30:function(t){t.exports=a},36:function(t){t.exports=n},300:function(t){t.exports=r},408:function(t){t.exports=s},25:function(t){t.exports=o}},c={};function S(t){var e=c[t];if(void 0!==e)return e.exports;var a=c[t]={exports:{}};return i[t](a,a.exports,S),a.exports}S.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return S.d(e,{a:e}),e},S.d=function(t,e){for(var a in e)S.o(e,a)&&!S.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},S.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},S.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(){S.r(E),S.d(E,{assets:function(){return O},auth:function(){return $},buildQuestion:function(){return re},buildQuestions:function(){return oe},contentInteraction:function(){return F},contentSuggestion:function(){return J},decodeBase64:function(){return ie},default:function(){return ce},getAuthContext:function(){return t.getContext},getEntries:function(){return e.getEntries},getEntry:function(){return e.getEntry},management:function(){return tt},passwordlessLogin:function(){return t.passwordlessLogin},payments:function(){return rt},people:function(){return Yt},peopleEngagement:function(){return zt},reportError:function(){return a.reportError},sendVerificationEmail:function(){return t.sendVerificationEmail}});var t=S(654),e=S(809),a=S(30),n=S(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"}},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:{QUESTIONS:{TYPE:"qaQuestion",ORDER:"-sys.updatedAt",FIELDS:"sys.createdAt,sys.updatedAt,fields.title,fields.slug,fields.authorId,fields.answers,fields.isEdited"}},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:o,LOCALHOST:s,STAGING:i,STAGING_SPLITTER:c},ENVIRONMENTS:{PRODUCTION:u,LOCAL:l}}}=r,{HUBSPOT:{ENVIRONMENTS_MAPPING:p,EMAIL_IDS:I}}=r;let d={emailIds:{}};var w=S(300),N=S.n(w);const A=async t=>{try{const{message:e,response:n,request:r}=t;let o=e;return n?o+=` - The request was made and the server responded with ${JSON.stringify({status:n.status,data:n.data})}`:r&&(o+=" - The request was made but no response was received"),console.warn(o),await(0,a.reportError)(new Error(o)),o}catch(t){return console.warn(`Cannot handle error: ${t.message}`),t.message}},{APIS:{ASSETS_API:{BASE_URL:P,ENDPOINTS:{USERS:R,CERTIFICATES:T}}}}=r;var O={certificates:{create:async(t,e)=>{let a=[];try{const{data:n}=await N().post(`${P}${R}/${t}${T}`,e);n&&(a=n)}catch(t){await A(t)}return a}}};const{APIS:{AUTH_API:{BASE_URL:U,ENDPOINTS:{USER_PASSWORD:h,USERS:y}}},USERS:{MYSELF:_}}=r;var $={userPassword:{update:async t=>{let e=null;try{e=await N().put(`${U}${y}/${_}${h}`,t)}catch(t){e={message:(((t||{}).response||{}).data||{}).message},await A(t)}return e}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:m,ENDPOINTS:{ANSWERS:f,QUESTIONS:g}}}}=r,L=`${m}${g}`;var C={create:async(t,e)=>{try{await N().post(`${L}/${encodeURIComponent(t)}${f}`,e)}catch(t){const e=await A(t);throw new Error(e)}},remove:async(t,e)=>{try{await N().delete(`${L}/${encodeURIComponent(t)}${f}/${encodeURIComponent(e)}`)}catch(t){const e=await A(t);throw new Error(e)}},update:async(t,e,a)=>{try{return await N().put(`${L}/${encodeURIComponent(t)}${f}/${encodeURIComponent(e)}`,{body:a})}catch(t){const e=await A(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:v,ENDPOINTS:{QUESTIONS:D}}}}=r,B=`${v}${D}`;var b={create:async t=>{try{await N().post(B,t)}catch(t){const e=await A(t);throw new Error(e)}},remove:async t=>{try{await N().delete(`${B}/${encodeURIComponent(t)}`)}catch(t){const e=await A(t);throw new Error(e)}},update:async(t,e)=>{try{return await N().put(`${B}/${encodeURIComponent(t)}`,{title:e})}catch(t){const e=await A(t);throw new Error(e)}}};const{APIS:{CONTENT_INTERACTION_API:{BASE_URL:M,ENDPOINTS:{QUESTIONS:x,ANSWERS:G,LIKES:q}}}}=r,V=`${M}${x}`;var F={answers:C,questions:b,likes:{create:async(t,e)=>{try{return await N().post(`${V}/${encodeURIComponent(t)}${G}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await A(t);throw new Error(e)}},remove:async(t,e)=>{try{return await N().delete(`${V}/${encodeURIComponent(t)}${G}/${encodeURIComponent(e)}${q}`)}catch(t){const e=await A(t);throw new Error(e)}}}},Y=S(25);const{OK:j,MULTIPLE_CHOICES:Q,NOT_FOUND:W,FORBIDDEN:H}=Y.StatusCodes,K=t=>t>=j&&t<Q||t===H||t===W,{APIS:{CONTENT_SUGGESTIONS_API:{BASE_URL:k,ENDPOINTS:{SUGGESTIONS:X}}}}=r;var J={suggestions:{list:async(t={})=>{let e=[],a=Object.assign({validateStatus:K},t);try{const{data:t}=await N().get(`${k}${X}`,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}}};const{APIS:{MANAGEMENT_API:{BASE_URL:z,ENDPOINTS:{ACCOUNTS:Z}}}}=r;var tt={accounts:{create:async t=>{try{await N().post(`${z}${Z}`,t)}catch(t){throw await A(t),t}},read:async t=>{let e=null;try{({data:e}=await N().get(`${z}${Z}/${encodeURIComponent(t)}`))}catch(t){await A(t)}return e},update:async(t,e)=>{try{await N().put(`${z}${Z}/${encodeURIComponent(t)}`,e)}catch(t){throw await A(t),t}}}};const{APIS:{PAYMENTS_API:{BASE_URL_V2:et,ENDPOINTS:{PRODUCTS:at}}}}=r,nt=`${et}${at}`;var rt={products:{list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(nt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:ot,ENDPOINTS:{USERS:st}}}}=r,it=async t=>{let e=null;try{const{data:a}=await N().get(`${ot}${st}/${encodeURIComponent(t)}`,{validateStatus:K});a&&a.id&&(e=a)}catch(t){await A(t)}return e};var ct={read:it,update:async(t,e)=>{let a=!1;try{const{data:n}=await N().put(`${ot}${st}/${encodeURIComponent(t)}`,e);a=!(!n||!n.id)}catch(t){await A(t)}return a}};const{APIS:{PEOPLE_API:{BASE_URL_V2:St,ENDPOINTS:{USERS:Et,USER_ANSWERS:ut}}},USERS:{MYSELF:lt}}=r,pt=`${St}${Et}/${lt}${ut}`,It=async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(pt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e};var dt={list:It},wt={authors:{readQuestionAuthors:async(t,e)=>{try{if(t.author=await it(t.authorId),t.answers&&t.answers.length){const a=[];if(e){const e=(await It("me",t.slug)).filter((t=>t.liked));for(const t of e)a.push(t.answerSlug)}for(let e of t.answers)e.author=e.authorId&&await it(e.authorId)||{},e.userLiked=a.includes(e.slug);t.answers.sort(((t,e)=>new Date(e.updatedAt)-new Date(t.updatedAt)))}return t}catch(t){throw await A(t),new Error(`Cannot read question authors: ${t.message}`)}}}};const{APIS:{PEOPLE_API:{BASE_URL:Nt,ENDPOINTS:{REGISTRATIONS:At}}}}=r;var Pt={list:async t=>{let e=[];try{const{data:a}=await N().get(`${Nt}${At}`,{params:t});a&&a.length&&(e=a)}catch(t){await A(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Rt,ENDPOINTS:{USERS:Tt,USER_COURSES:Ot}}},USERS:{MYSELF:Ut}}=r,ht=`${Rt}${Tt}/${Ut}${Ot}`;var yt={create:async t=>{try{await N().post(ht,t)}catch(t){await A(t)}},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(ht,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e},update:async(t,e)=>{try{await N().put(`${ht}/${t}`,e)}catch(t){await A(t)}}};const{APIS:{PEOPLE_API:{BASE_URL_V2:_t,ENDPOINTS:{USERS:$t,USER_EVENTS:mt}}},USERS:{MYSELF:ft}}=r,gt=`${_t}${$t}/${ft}${mt}`;var Lt={list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(gt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:Ct,ENDPOINTS:{USERS:vt,USER_LESSONS:Dt}}},USERS:{MYSELF:Bt}}=r,bt=`${Ct}${vt}/${Bt}${Dt}`;var Mt={create:async t=>{let e=null;try{e=await N().post(bt,t)}catch(t){await A(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(bt,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e}};const{APIS:{PEOPLE_API:{BASE_URL_V2:xt,ENDPOINTS:{USERS:Gt,USER_PRODUCTS:qt}}},USERS:{MYSELF:Vt}}=r,Ft=`${xt}${Gt}/${Vt}${qt}`;var Yt={handlers:wt,registrations:Pt,users:ct,userAnswers:dt,userCourses:yt,userEvents:Lt,userLessons:Mt,userProducts:{create:async t=>{let e=null;try{e=await N().post(Ft,t)}catch(t){await A(t)}return e},list:async t=>{let e=[],a=t?{params:t}:{params:{}};try{const{data:t}=await N().get(Ft,a);t&&t.length&&(e=t)}catch(t){await A(t)}return e},update:async(t,e)=>{try{await N().put(`${Ft}/${t}`,e)}catch(t){await A(t)}}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:jt,ENDPOINTS:{ENQUIRY_EMAILS:Qt}}}}=r;var Wt={create:async t=>{let e=null;try{const{data:a}=await N().post(`${jt}${Qt}`,t);a&&(e=a)}catch(t){await A(t)}return e}},Ht={forms:{sendEnquiryEmails:async t=>{let e=null;try{const{emailIds:a}=d;e=await zt.emails.create({...a,...t})}catch(t){await A(t)}return e}}};const{APIS:{PEOPLE_ENGAGEMENT_API:{BASE_URL:Kt,ENDPOINTS:{USERS:kt,USER_PROPERTIES:Xt}}},USERS:{MYSELF:Jt}}=r;var zt={emails:Wt,handlers:Ht,userProperties:{update:async(t,e)=>{try{await N().put(`${Kt}${kt}/${Jt}${Xt}/${t}`,e)}catch(t){await A(t)}}}};const{CONTENTFUL:Zt}=r,{TYPE:te,ORDER:ee,FIELDS:ae}=Zt.QUESTIONS;var ne={read:async t=>{try{return await(0,e.getEntry)({content_type:te,"fields.slug":t,include:2,select:ae})}catch(t){throw await A(t),new Error(`Cannot read question: ${t.message}`)}},list:async(t=10,a=0)=>{try{return await(0,e.getEntries)({content_type:te,include:1,limit:t,order:ee,select:ae,skip:a})}catch(t){throw await A(t),new Error(`Cannot list questions: ${t.message}`)}}},re=async(t,e)=>{try{let a={};return a=await ne.read(t),a=await Yt.handlers.authors.readQuestionAuthors(a,e),a}catch(t){throw await A(t),new Error(`Cannot build question: ${t.message}`)}},oe=async(t,e=10)=>{try{let a=[];const n=e*(t-1);a=await ne.list(e,n);for(let t of a)t.author=t.authorId&&await Yt.users.read(t.authorId)||{};return a}catch(t){throw await A(t),new Error(`Cannot build questions: ${t.message}`)}},se=S(408);const ie=t=>t&&se.Buffer.from(t,"base64").toString("ascii");function ce({authContext:r=null,contentContext:S=null,errorsContext:E=null,gtmContext:w=null,origin:N}){try{const A=(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 n=e.match(i);return n?a=n[1].split(c)[0]:e===o?a=u:e.includes(s)&&(a=l),a||new Error(`Cannot select environment: No rule for website ${e}`),a})(N);r&&(0,t.setContext)(Object.assign({},r,{environment:A,origin:N})),S&&(0,e.setContext)(Object.assign({},S,{environment:A})),E&&(0,a.setContext)(Object.assign({},E,{environment:A})),w&&((0,n.setContext)(Object.assign({},w,{environment:A})),(0,n.setupGTM)()),(({environment:t})=>{const e=(t=>{if(!t)throw new Error("Cannot map environment: Environment not defined");if(!p[t])throw new Error(`Cannot map environment: No mapping found for environment ${t}`);return p[t]})(t);d.emailIds=I[e]})(Object.assign({},{environment:A}))}catch(t){console.warn(`Cannot load SDK: ${t.message}`)}}}(),E}()}));
|
package/package.json
CHANGED