New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@planningcenter/api-client

Package Overview
Dependencies
Maintainers
16
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@planningcenter/api-client - npm Package Compare versions

Comparing version

to
2.3.2

2

dist/cjs/api-client.js

@@ -1,2 +0,2 @@

var e=require("lodash"),t=require("urijs"),a=require("@planningcenter/url"),r=require("lodash-inflection/lib/lodash-inflection");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=n(e),u=n(t),d=n(a),i=n(r);const l=e=>{const t=new WeakMap,a=r=>(e=>!(s.default.isObject(e)&&(s.default.isArray(e)||s.default.isFunction(e))||!s.default.isObject(e)))(r)?s.default.reduce(r,(n,s,u)=>(t.has(r)||t.set(r,n),n[e(u)]=t.get(s)||a(s),n),{}):s.default.isArray(r)?s.default.map(r,a):r;return a},o=l(e=>e.replace(/(\_[a-z])/g,e=>e.toUpperCase().replace("_",""))),c=l(e=>{return e<0?e:(t=e).startsWith("_")?`_${s.default.snakeCase(t)}`:s.default.snakeCase(t);var t}),f=e=>e.endsWith("-staging.planningcenteronline.com")||e.endsWith("/staging.planningcenteronline.com")||e.endsWith(".staging.churchcenter.com")||e.endsWith("/staging.churchcenter.com")?"staging":e.endsWith(".planningcenteronline.com")||e.endsWith(".churchcenter.com")||e.endsWith("/churchcenter.com")?"production":e.endsWith(".planningcenter.ninja")?"prototype":e.endsWith("pco.codes")||e.endsWith("pco.dev")||e.endsWith("pco.test")||e.endsWith("churchcenter.test")?"development":"production",p=({fields:e,where:t,include:a,walk:r,...n})=>({...s.default.reduce(e,(e,t,a)=>({...e,[`fields[${a}]`]:s.default.isArray(t)?t.join(","):t}),{}),...s.default.reduce(t,(e,t,a)=>({...e,...h({key:`where[${a}]`,value:t})}),{}),...c({perPage:100,...n}),include:s.default.isArray(a)?a.join(","):a});function h({key:e,value:t}){return s.default.isArray(t)?{[e]:t.join(",")}:s.default.isObject(t)?Object.keys(t).reduce((a,r)=>({...a,...h({key:`${e}[${r}]`,value:t[r]})}),{}):{[e]:t}}s.default.mixin({...i.default}),s.default.singular(/^(media)$/i,"$1"),s.default.plural(/^(media)$/i,"$1");const g=e=>s.default.thru(parseInt(e,10),t=>t==e?t:e),y=e=>Object.keys(e||{}).reduce((t,a)=>{const r=e[a];if(s.default.isArray(r.data)){const e=s.default.map(r.data,({id:e})=>g(e));return{...t,[`${s.default.singularize(a)}_ids`]:e}}{const e=s.default.get(r,"data.id"),n=s.default.get(r,"data.type",null);return{...t,[`${a}_id`]:e?g(e):null,[`${a}_type`]:n}}},{}),m=(e,t,a)=>{const{id:r,attributes:n,links:u,relationships:d,type:i}=e;if(a.has(e))return a.get(e);{const l={id:g(r),type:i,links:u,...y(d),...s.default.mapKeys(n,(e,t)=>"length"===t?`${i.charAt(0).toLowerCase()}${i.slice(1)}Length`:t,{})};return a.set(e,l),((e,t,a,r)=>Object.keys(e||{}).reduce((r,n)=>{const u=e[n];if(s.default.isArray(u.data)){const e=s.default(u.data).map(e=>s.default.find(t,e)).compact().value();return{...r,[s.default.pluralize(n)]:s.default.map(e,e=>m(e,t,a))}}{const[e,d]=s.default.at(u,["data.id","data.type"]);if(e&&d){const u=s.default.find(t,{id:e,type:d});return s.default.set(r,n,u?m(u,t,a):null)}return r}},r))(d,t,a,l)}},v=s.default.flowRight(o,e=>{if(s.default.isEmpty(e))return e;const{data:t,included:a,meta:r}=e,n=new WeakMap;return s.default.isArray(t)?{data:t.map(e=>m(e,a,n)),meta:r}:{data:{...m(t,a,n)},meta:r}}),$=["total_count","count","prev","next","can_order_by","can_query_by","can_include","can_filter","parent"],w=function(e,t){try{return Promise.resolve(e(t)).then(function(e){return Promise.resolve(v(e))})}catch(e){return Promise.reject(e)}},k=s.default.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>E(t.url).then(()=>_(e,t)).then(v):w,q=s.default.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>E(t.url).then(e).then(v):w,E=e=>{if(new u.default(e).search().length)throw new Error("Must pass query params as data arg");return Promise.resolve()},_=function(e,t){try{const a=s.default.get(t,"data.fields");if(!a)throw new Error(`Must pass fields for request: ${t.url}`);const r=Object.keys(a);return Promise.resolve(e(t)).then(function(e){const a=s.default(e.data).castArray().map("type").value(),n=s.default.map(e.included,"type"),u=s.default.uniq(a.concat(n)),d=s.default.difference(u,r);if(d.length)throw new Error(`Must include fields for types: ${((e,t="and")=>(t=`${e.length>2?",":""} ${t}`,e.join(", ").replace(/,\s([^,]+$)/,`${t} $1`)))(d)} for request ${t.url}`);return e})}catch(e){return Promise.reject(e)}},j=({url:e,app:t,env:a})=>{const r=s.default.startsWith(e,"/"),n=`${d.default(a)("api")}/${t}/v2${r?"":"/"}`;return s.default.startsWith(e,n)?e:`${n}${e}`},W=({url:e,data:t={},app:a,version:r,env:n,action:d,headers:i={}})=>new Promise((l,o)=>{const c=new XMLHttpRequest;c.withCredentials=!0,c.open(d,((e,t,a,r,n=!1)=>{const d=u.default(e),i=d.query(!0),l=d.query({}).toString();if(n){const e=s.default.merge(p(t),i);return u.default(j({url:l,app:a,env:r})).query(e).toString()}return u.default(j({url:l,app:a,env:r})).toString()})(e,t,a,n,"GET"===d)),r&&c.setRequestHeader("X-PCO-API-Version",r),c.setRequestHeader("X-CSRF-Token","test"===process.env.NODE_ENV?"TEST_TOKEN":document.querySelector('meta[name="csrf-token"]').content),c.setRequestHeader("Content-Type","application/json;charset=UTF-8");for(const e in i)c.setRequestHeader(e,i[e]);c.onerror=o,c.onload=()=>{if(204===c.status)l();else if(c.status>=200&&c.status<300)try{l(JSON.parse(c.response))}catch(e){o(c)}else try{o(JSON.parse(c.response))}catch(e){o(c)}},c.send(JSON.stringify(t))});exports.Client=class{constructor({app:e,version:t,env:a=f(window.location.origin),defaultHeaders:r={}}){if(!e)throw new Error("You must pass an app");if(!a)throw new Error("env cannot be blank!");this.app=e,this.env=a,this.version=t,this.defaultHeaders=r}get(e){const t=s.default.get(e,"data.walk",!1),{defaultHeaders:a,...r}=this.config,n={...a,...e.headers||{}},u=({url:e,data:a={},acc:d={data:[],included:[]},...i})=>W({action:"GET",data:a,url:e,...i,...r,headers:n}).then(({links:e,...a})=>{const r=s.default.isArray(a.data)&&t?((e,t)=>({data:[...e.data,...t.data],included:[...e.included,...t.included],meta:s.default.pick(t.meta,$)}))(d,a):a;return t&&s.default.get(e,"next")?u({url:e.next,data:{},acc:r}):r});return k(u,e)}patch(e){const{defaultHeaders:t,...a}=this.config,r={...t,...e.headers||{}};return q(()=>W({...e,action:"PATCH",headers:r,...a}),e)}post(e){const{defaultHeaders:t,...a}=this.config,r={...t,...e.headers||{}};return q(()=>W({...e,action:"POST",headers:r,...a}),e)}delete(e){const{defaultHeaders:t,...a}=this.config,r={...t,...e.headers||{}};return W({...e,action:"DELETE",headers:r,...a})}get config(){return{app:this.app,version:this.version,env:this.env,defaultHeaders:this.defaultHeaders}}},exports.transformRequestData=p,exports.transformResponse=v;
var e=require("lodash"),t=require("urijs"),a=require("@planningcenter/url"),r=require("lodash-inflection/lib/lodash-inflection");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=n(e),u=n(t),d=n(a),i=n(r);const l=e=>{const t=new WeakMap,a=r=>(e=>!(s.default.isObject(e)&&(s.default.isArray(e)||s.default.isFunction(e))||!s.default.isObject(e)))(r)?s.default.reduce(r,(n,s,u)=>(t.has(r)||t.set(r,n),n[e(u)]=t.get(s)||a(s),n),{}):s.default.isArray(r)?s.default.map(r,a):r;return a},o=l(e=>e.replace(/(\_[a-z])/g,e=>e.toUpperCase().replace("_",""))),c=l(e=>{return e<0?e:(t=e).startsWith("_")?`_${s.default.snakeCase(t)}`:s.default.snakeCase(t);var t}),f=e=>e.endsWith("-staging.planningcenteronline.com")||e.endsWith("/staging.planningcenteronline.com")||e.endsWith(".staging.churchcenter.com")||e.endsWith("/staging.churchcenter.com")?"staging":e.endsWith(".planningcenteronline.com")||e.endsWith(".churchcenter.com")||e.endsWith("/churchcenter.com")?"production":e.endsWith(".planningcenter.ninja")?"prototype":e.endsWith("pco.codes")||e.endsWith("pco.dev")||e.endsWith("pco.test")||e.endsWith("churchcenter.test")?"development":"production",p=({fields:e,where:t,include:a,walk:r,...n})=>({...s.default.reduce(e,(e,t,a)=>({...e,[`fields[${a}]`]:s.default.isArray(t)?t.join(","):t}),{}),...s.default.reduce(t,(e,t,a)=>({...e,...h({key:`where[${a}]`,value:t})}),{}),...c({perPage:100,...n}),include:s.default.isArray(a)?a.join(","):a});function h({key:e,value:t}){return s.default.isArray(t)?{[e]:t.join(",")}:s.default.isObject(t)?Object.keys(t).reduce((a,r)=>({...a,...h({key:`${e}[${r}]`,value:t[r]})}),{}):{[e]:t}}s.default.mixin({...i.default}),s.default.singular(/^(media)$/i,"$1"),s.default.plural(/^(media)$/i,"$1");const g=e=>s.default.thru(parseInt(e,10),t=>t==e?t:e),y=e=>Object.keys(e||{}).reduce((t,a)=>{const r=e[a];if(s.default.isArray(r.data)){const e=s.default.map(r.data,({id:e})=>g(e));return{...t,[`${s.default.singularize(a)}_ids`]:e}}{const e=s.default.get(r,"data.id"),n=s.default.get(r,"data.type",null);return{...t,[`${a}_id`]:e?g(e):null,[`${a}_type`]:n}}},{}),m=(e,t,a)=>{const{id:r,attributes:n,links:u,relationships:d,type:i}=e;if(a.has(e))return a.get(e);{const l={id:g(r),type:i,links:u,...y(d),...s.default.mapKeys(n,(e,t)=>"length"===t?`${i.charAt(0).toLowerCase()}${i.slice(1)}Length`:t,{})};return a.set(e,l),((e,t,a,r)=>Object.keys(e||{}).reduce((r,n)=>{const u=e[n];if(s.default.isArray(u.data)){const e=s.default(u.data).map(e=>s.default.find(t,e)).compact().value();return s.default.set(r,s.default.pluralize(n),s.default.map(e,e=>m(e,t,a)))}{const[e,d]=s.default.at(u,["data.id","data.type"]);if(e&&d){const u=s.default.find(t,{id:e,type:d});return s.default.set(r,n,u?m(u,t,a):null)}return r}},r))(d,t,a,l)}},v=s.default.flowRight(o,e=>{if(s.default.isEmpty(e))return e;const{data:t,included:a,meta:r}=e,n=new WeakMap;return s.default.isArray(t)?{data:t.map(e=>m(e,a,n)),meta:r}:{data:{...m(t,a,n)},meta:r}}),$=["total_count","count","prev","next","can_order_by","can_query_by","can_include","can_filter","parent"],w=function(e,t){try{return Promise.resolve(e(t)).then(function(e){return Promise.resolve(v(e))})}catch(e){return Promise.reject(e)}},k=s.default.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>E(t.url).then(()=>_(e,t)).then(v):w,q=s.default.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>E(t.url).then(e).then(v):w,E=e=>{if(new u.default(e).search().length)throw new Error("Must pass query params as data arg");return Promise.resolve()},_=function(e,t){try{const a=s.default.get(t,"data.fields");if(!a)throw new Error(`Must pass fields for request: ${t.url}`);const r=Object.keys(a);return Promise.resolve(e(t)).then(function(e){const a=s.default(e.data).castArray().map("type").value(),n=s.default.map(e.included,"type"),u=s.default.uniq(a.concat(n)),d=s.default.difference(u,r);if(d.length)throw new Error(`Must include fields for types: ${((e,t="and")=>(t=`${e.length>2?",":""} ${t}`,e.join(", ").replace(/,\s([^,]+$)/,`${t} $1`)))(d)} for request ${t.url}`);return e})}catch(e){return Promise.reject(e)}},j=({url:e,app:t,env:a})=>{const r=s.default.startsWith(e,"/"),n=`${d.default(a)("api")}/${t}/v2${r?"":"/"}`;return s.default.startsWith(e,n)?e:`${n}${e}`},W=({url:e,data:t={},app:a,version:r,env:n,action:d,headers:i={}})=>new Promise((l,o)=>{const c=new XMLHttpRequest;c.withCredentials=!0,c.open(d,((e,t,a,r,n=!1)=>{const d=u.default(e),i=d.query(!0),l=d.query({}).toString();if(n){const e=s.default.merge(p(t),i);return u.default(j({url:l,app:a,env:r})).query(e).toString()}return u.default(j({url:l,app:a,env:r})).toString()})(e,t,a,n,"GET"===d)),r&&c.setRequestHeader("X-PCO-API-Version",r),c.setRequestHeader("X-CSRF-Token","test"===process.env.NODE_ENV?"TEST_TOKEN":document.querySelector('meta[name="csrf-token"]').content),c.setRequestHeader("Content-Type","application/json;charset=UTF-8");for(const e in i)c.setRequestHeader(e,i[e]);c.onerror=o,c.onload=()=>{if(204===c.status)l();else if(c.status>=200&&c.status<300)try{l(JSON.parse(c.response))}catch(e){o(c)}else try{o(JSON.parse(c.response))}catch(e){o(c)}},c.send(JSON.stringify(t))});exports.Client=class{constructor({app:e,version:t,env:a=f(window.location.origin),defaultHeaders:r={}}){if(!e)throw new Error("You must pass an app");if(!a)throw new Error("env cannot be blank!");this.app=e,this.env=a,this.version=t,this.defaultHeaders=r}get(e){const t=s.default.get(e,"data.walk",!1),{defaultHeaders:a,...r}=this.config,n={...a,...e.headers||{}},u=({url:e,data:a={},acc:d={data:[],included:[]},...i})=>W({action:"GET",data:a,url:e,...i,...r,headers:n}).then(({links:e,...a})=>{const r=s.default.isArray(a.data)&&t?((e,t)=>({data:[...e.data,...t.data],included:[...e.included,...t.included],meta:s.default.pick(t.meta,$)}))(d,a):a;return t&&s.default.get(e,"next")?u({url:e.next,data:{},acc:r}):r});return k(u,e)}patch(e){const{defaultHeaders:t,...a}=this.config,r={...t,...e.headers||{}};return q(()=>W({...e,action:"PATCH",headers:r,...a}),e)}post(e){const{defaultHeaders:t,...a}=this.config,r={...t,...e.headers||{}};return q(()=>W({...e,action:"POST",headers:r,...a}),e)}delete(e){const{defaultHeaders:t,...a}=this.config,r={...t,...e.headers||{}};return W({...e,action:"DELETE",headers:r,...a})}get config(){return{app:this.app,version:this.version,env:this.env,defaultHeaders:this.defaultHeaders}}},exports.transformRequestData=p,exports.transformResponse=v;
//# sourceMappingURL=api-client.js.map

@@ -1,2 +0,2 @@

import e from"lodash";import t from"urijs";import n from"@planningcenter/url";import r from"lodash-inflection/lib/lodash-inflection";const a=t=>{const n=new WeakMap,r=a=>(t=>!(e.isObject(t)&&(e.isArray(t)||e.isFunction(t))||!e.isObject(t)))(a)?e.reduce(a,(e,s,i)=>(n.has(a)||n.set(a,e),e[t(i)]=n.get(s)||r(s),e),{}):e.isArray(a)?e.map(a,r):a;return r},s=a(e=>e.replace(/(\_[a-z])/g,e=>e.toUpperCase().replace("_",""))),i=a(t=>{return t<0?t:(n=t).startsWith("_")?`_${e.snakeCase(n)}`:e.snakeCase(n);var n}),o=e=>e.endsWith("-staging.planningcenteronline.com")||e.endsWith("/staging.planningcenteronline.com")||e.endsWith(".staging.churchcenter.com")||e.endsWith("/staging.churchcenter.com")?"staging":e.endsWith(".planningcenteronline.com")||e.endsWith(".churchcenter.com")||e.endsWith("/churchcenter.com")?"production":e.endsWith(".planningcenter.ninja")?"prototype":e.endsWith("pco.codes")||e.endsWith("pco.dev")||e.endsWith("pco.test")||e.endsWith("churchcenter.test")?"development":"production",c=({fields:t,where:n,include:r,walk:a,...s})=>({...e.reduce(t,(t,n,r)=>({...t,[`fields[${r}]`]:e.isArray(n)?n.join(","):n}),{}),...e.reduce(n,(e,t,n)=>({...e,...d({key:`where[${n}]`,value:t})}),{}),...i({perPage:100,...s}),include:e.isArray(r)?r.join(","):r});function d({key:t,value:n}){return e.isArray(n)?{[t]:n.join(",")}:e.isObject(n)?Object.keys(n).reduce((e,r)=>({...e,...d({key:`${t}[${r}]`,value:n[r]})}),{}):{[t]:n}}e.mixin({...r}),e.singular(/^(media)$/i,"$1"),e.plural(/^(media)$/i,"$1");const u=t=>e.thru(parseInt(t,10),e=>e==t?e:t),l=t=>Object.keys(t||{}).reduce((n,r)=>{const a=t[r];if(e.isArray(a.data)){const t=e.map(a.data,({id:e})=>u(e));return{...n,[`${e.singularize(r)}_ids`]:t}}{const t=e.get(a,"data.id"),s=e.get(a,"data.type",null);return{...n,[`${r}_id`]:t?u(t):null,[`${r}_type`]:s}}},{}),p=(t,n,r)=>{const{id:a,attributes:s,links:i,relationships:o,type:c}=t;if(r.has(t))return r.get(t);{const d={id:u(a),type:c,links:i,...l(o),...e.mapKeys(s,(e,t)=>"length"===t?`${c.charAt(0).toLowerCase()}${c.slice(1)}Length`:t,{})};return r.set(t,d),((t,n,r,a)=>Object.keys(t||{}).reduce((a,s)=>{const i=t[s];if(e.isArray(i.data)){const t=e(i.data).map(t=>e.find(n,t)).compact().value();return{...a,[e.pluralize(s)]:e.map(t,e=>p(e,n,r))}}{const[t,o]=e.at(i,["data.id","data.type"]);if(t&&o){const i=e.find(n,{id:t,type:o});return e.set(a,s,i?p(i,n,r):null)}return a}},a))(o,n,r,d)}},h=e.flowRight(s,t=>{if(e.isEmpty(t))return t;const{data:n,included:r,meta:a}=t,s=new WeakMap;return e.isArray(n)?{data:n.map(e=>p(e,r,s)),meta:a}:{data:{...p(n,r,s)},meta:a}}),f=["total_count","count","prev","next","can_order_by","can_query_by","can_include","can_filter","parent"],m=function(e,t){try{return Promise.resolve(e(t)).then(function(e){return Promise.resolve(h(e))})}catch(e){return Promise.reject(e)}},g=e.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>v(t.url).then(()=>$(e,t)).then(h):m,y=e.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>v(t.url).then(e).then(h):m,v=e=>{if(new t(e).search().length)throw new Error("Must pass query params as data arg");return Promise.resolve()},$=function(t,n){try{const r=e.get(n,"data.fields");if(!r)throw new Error(`Must pass fields for request: ${n.url}`);const a=Object.keys(r);return Promise.resolve(t(n)).then(function(t){const r=e(t.data).castArray().map("type").value(),s=e.map(t.included,"type"),i=e.uniq(r.concat(s)),o=e.difference(i,a);if(o.length)throw new Error(`Must include fields for types: ${((e,t="and")=>(t=`${e.length>2?",":""} ${t}`,e.join(", ").replace(/,\s([^,]+$)/,`${t} $1`)))(o)} for request ${n.url}`);return t})}catch(e){return Promise.reject(e)}},w=({url:t,app:r,env:a})=>{const s=e.startsWith(t,"/"),i=`${n(a)("api")}/${r}/v2${s?"":"/"}`;return e.startsWith(t,i)?t:`${i}${t}`},k=({url:n,data:r={},app:a,version:s,env:i,action:o,headers:d={}})=>new Promise((u,l)=>{const p=new XMLHttpRequest;p.withCredentials=!0,p.open(o,((n,r,a,s,i=!1)=>{const o=t(n),d=o.query(!0),u=o.query({}).toString();if(i){const n=e.merge(c(r),d);return t(w({url:u,app:a,env:s})).query(n).toString()}return t(w({url:u,app:a,env:s})).toString()})(n,r,a,i,"GET"===o)),s&&p.setRequestHeader("X-PCO-API-Version",s),p.setRequestHeader("X-CSRF-Token","test"===process.env.NODE_ENV?"TEST_TOKEN":document.querySelector('meta[name="csrf-token"]').content),p.setRequestHeader("Content-Type","application/json;charset=UTF-8");for(const e in d)p.setRequestHeader(e,d[e]);p.onerror=l,p.onload=()=>{if(204===p.status)u();else if(p.status>=200&&p.status<300)try{u(JSON.parse(p.response))}catch(e){l(p)}else try{l(JSON.parse(p.response))}catch(e){l(p)}},p.send(JSON.stringify(r))});class E{constructor({app:e,version:t,env:n=o(window.location.origin),defaultHeaders:r={}}){if(!e)throw new Error("You must pass an app");if(!n)throw new Error("env cannot be blank!");this.app=e,this.env=n,this.version=t,this.defaultHeaders=r}get(t){const n=e.get(t,"data.walk",!1),{defaultHeaders:r,...a}=this.config,s={...r,...t.headers||{}},i=({url:t,data:r={},acc:o={data:[],included:[]},...c})=>k({action:"GET",data:r,url:t,...c,...a,headers:s}).then(({links:t,...r})=>{const a=e.isArray(r.data)&&n?((t,n)=>({data:[...t.data,...n.data],included:[...t.included,...n.included],meta:e.pick(n.meta,f)}))(o,r):r;return n&&e.get(t,"next")?i({url:t.next,data:{},acc:a}):a});return g(i,t)}patch(e){const{defaultHeaders:t,...n}=this.config,r={...t,...e.headers||{}};return y(()=>k({...e,action:"PATCH",headers:r,...n}),e)}post(e){const{defaultHeaders:t,...n}=this.config,r={...t,...e.headers||{}};return y(()=>k({...e,action:"POST",headers:r,...n}),e)}delete(e){const{defaultHeaders:t,...n}=this.config,r={...t,...e.headers||{}};return k({...e,action:"DELETE",headers:r,...n})}get config(){return{app:this.app,version:this.version,env:this.env,defaultHeaders:this.defaultHeaders}}}export{E as Client,c as transformRequestData,h as transformResponse};
import e from"lodash";import t from"urijs";import n from"@planningcenter/url";import r from"lodash-inflection/lib/lodash-inflection";const s=t=>{const n=new WeakMap,r=s=>(t=>!(e.isObject(t)&&(e.isArray(t)||e.isFunction(t))||!e.isObject(t)))(s)?e.reduce(s,(e,a,i)=>(n.has(s)||n.set(s,e),e[t(i)]=n.get(a)||r(a),e),{}):e.isArray(s)?e.map(s,r):s;return r},a=s(e=>e.replace(/(\_[a-z])/g,e=>e.toUpperCase().replace("_",""))),i=s(t=>{return t<0?t:(n=t).startsWith("_")?`_${e.snakeCase(n)}`:e.snakeCase(n);var n}),o=e=>e.endsWith("-staging.planningcenteronline.com")||e.endsWith("/staging.planningcenteronline.com")||e.endsWith(".staging.churchcenter.com")||e.endsWith("/staging.churchcenter.com")?"staging":e.endsWith(".planningcenteronline.com")||e.endsWith(".churchcenter.com")||e.endsWith("/churchcenter.com")?"production":e.endsWith(".planningcenter.ninja")?"prototype":e.endsWith("pco.codes")||e.endsWith("pco.dev")||e.endsWith("pco.test")||e.endsWith("churchcenter.test")?"development":"production",c=({fields:t,where:n,include:r,walk:s,...a})=>({...e.reduce(t,(t,n,r)=>({...t,[`fields[${r}]`]:e.isArray(n)?n.join(","):n}),{}),...e.reduce(n,(e,t,n)=>({...e,...d({key:`where[${n}]`,value:t})}),{}),...i({perPage:100,...a}),include:e.isArray(r)?r.join(","):r});function d({key:t,value:n}){return e.isArray(n)?{[t]:n.join(",")}:e.isObject(n)?Object.keys(n).reduce((e,r)=>({...e,...d({key:`${t}[${r}]`,value:n[r]})}),{}):{[t]:n}}e.mixin({...r}),e.singular(/^(media)$/i,"$1"),e.plural(/^(media)$/i,"$1");const u=t=>e.thru(parseInt(t,10),e=>e==t?e:t),l=t=>Object.keys(t||{}).reduce((n,r)=>{const s=t[r];if(e.isArray(s.data)){const t=e.map(s.data,({id:e})=>u(e));return{...n,[`${e.singularize(r)}_ids`]:t}}{const t=e.get(s,"data.id"),a=e.get(s,"data.type",null);return{...n,[`${r}_id`]:t?u(t):null,[`${r}_type`]:a}}},{}),p=(t,n,r)=>{const{id:s,attributes:a,links:i,relationships:o,type:c}=t;if(r.has(t))return r.get(t);{const d={id:u(s),type:c,links:i,...l(o),...e.mapKeys(a,(e,t)=>"length"===t?`${c.charAt(0).toLowerCase()}${c.slice(1)}Length`:t,{})};return r.set(t,d),((t,n,r,s)=>Object.keys(t||{}).reduce((s,a)=>{const i=t[a];if(e.isArray(i.data)){const t=e(i.data).map(t=>e.find(n,t)).compact().value();return e.set(s,e.pluralize(a),e.map(t,e=>p(e,n,r)))}{const[t,o]=e.at(i,["data.id","data.type"]);if(t&&o){const i=e.find(n,{id:t,type:o});return e.set(s,a,i?p(i,n,r):null)}return s}},s))(o,n,r,d)}},h=e.flowRight(a,t=>{if(e.isEmpty(t))return t;const{data:n,included:r,meta:s}=t,a=new WeakMap;return e.isArray(n)?{data:n.map(e=>p(e,r,a)),meta:s}:{data:{...p(n,r,a)},meta:s}}),f=["total_count","count","prev","next","can_order_by","can_query_by","can_include","can_filter","parent"],m=function(e,t){try{return Promise.resolve(e(t)).then(function(e){return Promise.resolve(h(e))})}catch(e){return Promise.reject(e)}},g=e.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>v(t.url).then(()=>$(e,t)).then(h):m,y=e.includes(["development","test"],process.env.NODE_ENV)?(e,t)=>v(t.url).then(e).then(h):m,v=e=>{if(new t(e).search().length)throw new Error("Must pass query params as data arg");return Promise.resolve()},$=function(t,n){try{const r=e.get(n,"data.fields");if(!r)throw new Error(`Must pass fields for request: ${n.url}`);const s=Object.keys(r);return Promise.resolve(t(n)).then(function(t){const r=e(t.data).castArray().map("type").value(),a=e.map(t.included,"type"),i=e.uniq(r.concat(a)),o=e.difference(i,s);if(o.length)throw new Error(`Must include fields for types: ${((e,t="and")=>(t=`${e.length>2?",":""} ${t}`,e.join(", ").replace(/,\s([^,]+$)/,`${t} $1`)))(o)} for request ${n.url}`);return t})}catch(e){return Promise.reject(e)}},w=({url:t,app:r,env:s})=>{const a=e.startsWith(t,"/"),i=`${n(s)("api")}/${r}/v2${a?"":"/"}`;return e.startsWith(t,i)?t:`${i}${t}`},k=({url:n,data:r={},app:s,version:a,env:i,action:o,headers:d={}})=>new Promise((u,l)=>{const p=new XMLHttpRequest;p.withCredentials=!0,p.open(o,((n,r,s,a,i=!1)=>{const o=t(n),d=o.query(!0),u=o.query({}).toString();if(i){const n=e.merge(c(r),d);return t(w({url:u,app:s,env:a})).query(n).toString()}return t(w({url:u,app:s,env:a})).toString()})(n,r,s,i,"GET"===o)),a&&p.setRequestHeader("X-PCO-API-Version",a),p.setRequestHeader("X-CSRF-Token","test"===process.env.NODE_ENV?"TEST_TOKEN":document.querySelector('meta[name="csrf-token"]').content),p.setRequestHeader("Content-Type","application/json;charset=UTF-8");for(const e in d)p.setRequestHeader(e,d[e]);p.onerror=l,p.onload=()=>{if(204===p.status)u();else if(p.status>=200&&p.status<300)try{u(JSON.parse(p.response))}catch(e){l(p)}else try{l(JSON.parse(p.response))}catch(e){l(p)}},p.send(JSON.stringify(r))});class E{constructor({app:e,version:t,env:n=o(window.location.origin),defaultHeaders:r={}}){if(!e)throw new Error("You must pass an app");if(!n)throw new Error("env cannot be blank!");this.app=e,this.env=n,this.version=t,this.defaultHeaders=r}get(t){const n=e.get(t,"data.walk",!1),{defaultHeaders:r,...s}=this.config,a={...r,...t.headers||{}},i=({url:t,data:r={},acc:o={data:[],included:[]},...c})=>k({action:"GET",data:r,url:t,...c,...s,headers:a}).then(({links:t,...r})=>{const s=e.isArray(r.data)&&n?((t,n)=>({data:[...t.data,...n.data],included:[...t.included,...n.included],meta:e.pick(n.meta,f)}))(o,r):r;return n&&e.get(t,"next")?i({url:t.next,data:{},acc:s}):s});return g(i,t)}patch(e){const{defaultHeaders:t,...n}=this.config,r={...t,...e.headers||{}};return y(()=>k({...e,action:"PATCH",headers:r,...n}),e)}post(e){const{defaultHeaders:t,...n}=this.config,r={...t,...e.headers||{}};return y(()=>k({...e,action:"POST",headers:r,...n}),e)}delete(e){const{defaultHeaders:t,...n}=this.config,r={...t,...e.headers||{}};return k({...e,action:"DELETE",headers:r,...n})}get config(){return{app:this.app,version:this.version,env:this.env,defaultHeaders:this.defaultHeaders}}}export{E as Client,c as transformRequestData,h as transformResponse};
//# sourceMappingURL=api-client.js.map
{
"name": "@planningcenter/api-client",
"version": "2.3.1",
"version": "2.3.2",
"description": "A Planning Center JavaScript API client that will make you smile",

@@ -5,0 +5,0 @@ "repository": "git@github.com:planningcenter/js-api-client.git",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet