@experian-ecs/connected-api-sdk 1.2.0 → 1.3.0

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.
@@ -12,5 +12,5 @@
12
12
  * OTHER LIABILITY ARISING FROM OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS CODE.
13
13
  */
14
14
 
15
- (function(a,u){typeof exports=="object"&&typeof module<"u"?u(exports):typeof define=="function"&&define.amd?define(["exports"],u):(a=typeof globalThis<"u"?globalThis:a||self,u(a["@experian-ecs/connected-api-sdk"]={}))})(this,function(a){"use strict";var Mt=Object.defineProperty;var Ut=a=>{throw TypeError(a)};var Kt=(a,u,d)=>u in a?Mt(a,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):a[u]=d;var l=(a,u,d)=>Kt(a,typeof u!="symbol"?u+"":u,d),gt=(a,u,d)=>u.has(a)||Ut("Cannot "+d);var r=(a,u,d)=>(gt(a,u,"read from private field"),d?d.call(a):u.get(a)),y=(a,u,d)=>u.has(a)?Ut("Cannot add the same private member more than once"):u instanceof WeakSet?u.add(a):u.set(a,d),H=(a,u,d,j)=>(gt(a,u,"write to private field"),j?j.call(a,d):u.set(a,d),d),P=(a,u,d)=>(gt(a,u,"access private method"),d);var w,mt,Pt,D,g,z,V,N,Q,W,T,C,F,Y,q,S,L,K,f,Ct,$t,Et,_t,_;function u(o){switch(o.type){case"api_error":return new j(o);case"auth_error":return new pt(o);case"sdk_error":return new ft(o);default:return new St(o)}}class d extends Error{constructor(e){var n;super(e.message);l(this,"message");l(this,"data");l(this,"status");this.message=((n=e.data)==null?void 0:n.message)||e.message||"",this.data=e.data,this.status=e.status}}l(d,"generateError",u);class j extends d{constructor(t){super(t),this.name="ConnectedSolutionsClientApiError"}}class pt extends d{constructor(t){super(t),this.name="ConnectedSolutionsClientAuthError"}}class St extends d{constructor(t){super(t),this.name="ConnectedSolutionsClientUnknownError"}}class ft extends d{constructor(t){super(t),this.name="ConnectedSolutionsClientSDKError"}}const bt={PRODUCTION:"https://connected-api.experian.com",SANDBOX:"https://sandbox.connected-api.experian.com",UAT:"https://uat-api.ecs.experian.com",INTEGRATION:"https://integration-api.ecs.experian.com",DEVELOPMENT:"https://dev-api.ecs.experian.com"},Rt={PRODUCTION:"https://unity-contentstack.integration.us-exp-api.experiancs.com",SANDBOX:"https://unity-contentstack.dev.us-exp-api.experiancs.com",UAT:"https://unity-contentstack.dev.us-exp-api.experiancs.com",INTEGRATION:"https://unity-contentstack.dev.us-exp-api.experiancs.com",DEVELOPMENT:"https://unity-contentstack.dev.us-exp-api.experiancs.com"};class ${constructor(t){y(this,w);l(this,"config");l(this,"baseUrl","");l(this,"contentstackUrl","");const n=t.environment??"PRODUCTION";this.config=t,this.baseUrl=bt[n],this.contentstackUrl=Rt[n]}setConfig(t){"environment"in t&&(this.config.environment=t.environment),"token"in t&&(this.config.token=t.token)}async fetchWithAuth(t,e){try{P(this,w,mt).call(this);const n=typeof Headers<"u"&&new Headers(e==null?void 0:e.headers);n&&!n.Authorization&&n.set("Authorization",`Bearer ${this.config.token}`);const s={...e,headers:n||(e==null?void 0:e.headers)||{}};return await this.fetchRequest(t,s)}catch(n){const s=n;return{data:void 0,error:s,meta:{status:s.status??500,statusText:s.message??""}}}}async fetchRequest(t,e){var n;try{P(this,w,mt).call(this);const s=await fetch(t,e);if(!(s!=null&&s.ok)){let c;const p={type:"api_error",status:s==null?void 0:s.status,message:s==null?void 0:s.statusText};if((n=s==null?void 0:s.headers.get("content-type"))!=null&&n.includes("application/json")){const k=await s.clone().json();p.data=k.error}throw(s==null?void 0:s.status)===401?c={...p,type:"auth_error"}:c={...p,type:"api_error"},d.generateError(c)}return P(this,w,Pt).call(this,s)?{data:await s.clone().json(),error:void 0,meta:{status:s.status,statusText:s.statusText}}:{data:void 0,error:void 0,meta:{status:s.status,statusText:s.statusText}}}catch(s){const i=s;return{data:void 0,error:i,meta:{status:i.status??500,statusText:i.message}}}}}w=new WeakSet,mt=function(){if(!this.config.token){const t={type:"sdk_error",message:"You must first obtain and set a token before using an SDK method"};throw d.generateError(t)}},Pt=function(t){var e,n;return((e=t==null?void 0:t.headers.get("content-type"))==null?void 0:e.includes("application/json"))||((n=t==null?void 0:t.headers.get("content-type"))==null?void 0:n.includes("application/octet-stream"))};const I=class I extends ${constructor(t){super(t)}async getCreditScores(t,e){const n={...t!=null&&t.product_config_id?{product_config_id:t.product_config_id}:{},...t!=null&&t.include_factors?{include_factors:t.include_factors.toString()}:{},...t!=null&&t.include_ingredients?{include_ingredients:t.include_ingredients.toString()}:{}},s=new URLSearchParams(n).toString(),i=s?`?${s}`:"",h=`${this.baseUrl}${r(I,D)}${i}`;return this.fetchWithAuth(h,e)}async orderCreditScore(t,e){const n={...t!=null&&t.include_factors?{include_factors:t.include_factors.toString()}:{},...t!=null&&t.include_ingredients?{include_ingredients:t.include_ingredients.toString()}:{}},s=new URLSearchParams(n).toString(),i=s?`?${s}`:"",h=`${this.baseUrl}${r(I,D)}?${i}`;return this.fetchWithAuth(h,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({product_config_id:t.product_config_id}),...e??{}})}};D=new WeakMap,y(I,D,"/v1/credit/scores");let tt=I;const m=class m extends ${constructor(t){super(t)}async getEntitlements(t,e){return this.fetchWithAuth(`${this.baseUrl}${r(m,g)}?customer_id=${t.customer_id}`,e)}async getEntitlementById({entitlement_id:t},e){return this.fetchWithAuth(`${this.baseUrl}${r(m,g)}/${t}`,e)}async createEntitlement(t,e){return this.fetchWithAuth(`${this.baseUrl}${r(m,g)}`,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(t),...e??{}})}async updateEntitlement(t,e){const{entitlement_id:n,...s}=t;return this.fetchWithAuth(`${this.baseUrl}${r(m,g)}/${n}`,{method:"PUT",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s),...e??{}})}async deleteEntitlement({entitlement_id:t},e){return this.fetchWithAuth(`${this.baseUrl}${r(m,g)}/${t}`,{method:"DELETE",...e??{}})}async activateEntitlement({entitlement_id:t},e){const n=`${this.baseUrl}${r(m,g)}/${t}/activate`;return this.fetchWithAuth(n,{method:"POST",...e??{}})}async deactivateEntitlement({entitlement_id:t},e){const n=`${this.baseUrl}${r(m,g)}/${t}/deactivate`;return this.fetchWithAuth(n,{method:"POST",...e??{}})}async entitleCustomerToNewProduct(t,e){const{product_config_id:n,entitlement_id:s,customer_id:i}=t,h=`${this.baseUrl}${r(m,g)}/${s}/products/${n}/activate`;return this.fetchWithAuth(h,{method:"POST",...e??{},headers:{...(e==null?void 0:e.headers)??{},"X-Customer-ID":i}})}async activateProduct(t,e){const{product_config_id:n,entitlement_id:s}=t,i=`${this.baseUrl}${r(m,g)}/${s}/products/${n}/activate`;return this.fetchWithAuth(i,{method:"POST",...e??{}})}async deactivateProduct(t,e){const{product_config_id:n,entitlement_id:s}=t,i=`${this.baseUrl}${r(m,g)}/${s}/products/${n}/deactivate`;return this.fetchWithAuth(i,{method:"POST",...e??{}})}async removeProductFromEntitlement(t,e){const{product_config_id:n,entitlement_id:s}=t,i=`${this.baseUrl}${r(m,g)}/${s}/products/${n}`;return this.fetchWithAuth(i,{method:"DELETE",...e??{}})}async getProductEligibility(t,e){const n=new URLSearchParams(t).toString(),s=`${this.baseUrl}${r(m,g)}/eligibility?${n}`;return this.fetchWithAuth(s,e)}};g=new WeakMap,y(m,g,"/v1/entitlements");let et=m;const X=class X extends ${constructor(t){super(t)}async getCreditAttributes(t){const e=`${this.baseUrl}${r(X,z)}`;return this.fetchWithAuth(e,t)}};z=new WeakMap,y(X,z,"/v1/credit/attributes");let nt=X;const B=class B extends ${constructor(t){super(t)}async getSimulations(t,e){const n={...t,...t!=null&&t.run_all?{run_all:t.run_all.toString()}:{}},s=new URLSearchParams(n).toString(),i=s?`?${s}`:"",h=`${this.baseUrl}${r(B,V)}${i}`;return this.fetchWithAuth(h,e)}async simulateScenario(t,e){const{product_config_id:n,...s}=t,i=new URLSearchParams({product_config_id:n}).toString(),h=i?`?${i}`:"";return this.fetchWithAuth(`${this.baseUrl}${r(B,V)}${h}`,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s),...e??{}})}};V=new WeakMap,y(B,V,"/v1/credit/tools/simulator");let st=B;const b=class b extends ${constructor(t){super(t)}async getCreditScorePlan(t,e){const n=new URLSearchParams(t).toString(),s=n?`?${n}`:"",i=`${this.baseUrl}${r(b,N)}${s}`;return this.fetchWithAuth(i,{...e??{}})}async createCreditScorePlan(t,e){const{product_config_id:n,...s}=t,i=new URLSearchParams({product_config_id:n}).toString(),h=i?`?${i}`:"",c=`${this.baseUrl}${r(b,N)}${h}`;return this.fetchWithAuth(c,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s),...e??{}})}async deleteCreditScorePlan(t,e){const n=new URLSearchParams(t).toString(),s=n?`?${n}`:"",i=`${this.baseUrl}${r(b,N)}${s}`;return this.fetchWithAuth(i,{method:"DELETE",...e??{}})}async getCreditScorePlanRevisions(t,e){const{product_config_id:n,...s}=t,i=new URLSearchParams({product_config_id:n}).toString(),h=i?`?${i}`:"",c=`${this.baseUrl}${r(b,N)}${r(b,Q)}${h}`;return this.fetchWithAuth(c,{method:"POST",body:JSON.stringify(s),headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},...e??{}})}};N=new WeakMap,Q=new WeakMap,y(b,N,"/v1/credit/tools/planners"),y(b,Q,"/revisions");let rt=b;const x=class x extends ${constructor(t){super(t)}async getAlerts(t,e){const n={page_limit:"10",next_page_token:"",...t??{}},s=new URLSearchParams(n).toString(),i=`${this.baseUrl}${r(x,W)}?${s}`;return this.fetchWithAuth(i,e)}async getAlertById({id:t},e){const n=`${this.baseUrl}${r(x,W)}/${t}`;return this.fetchWithAuth(n,e)}async markAlertAsRead({id:t},e){const n=`${this.baseUrl}${r(x,W)}/${t}/dispose`;return this.fetchWithAuth(n,{method:"PATCH",...e??{}})}async getAlertCounts(t){const e=`${this.baseUrl}${r(x,W)}/counts`;return this.fetchWithAuth(e,t)}};W=new WeakMap,y(x,W,"/v1/events-alerts");let it=x;const A=class A extends ${constructor(t){super(t)}async getReports(t,e){const n=new URLSearchParams(t).toString(),s=n?`?${n}`:"",i=`${this.baseUrl}${r(A,T)}${s}`;return this.fetchWithAuth(i,e)}async getReportById(t,e){const{id:n,...s}=t,i=new URLSearchParams(s).toString(),h=i?`?${i}`:"",c=`${this.baseUrl}${r(A,T)}/${t.id}${h}`;return this.fetchWithAuth(c,e)}async getReportsMeta(t,e){const{latest_only:n,report_read:s,...i}=t??{},h={...i??{},...n?{latest_only:n.toString()}:{},...s?{report_read:s.toString()}:{}},c=new URLSearchParams(h).toString(),p=c?`?${c}`:"",v=`${this.baseUrl}${r(A,T)}/meta${p}`;return this.fetchWithAuth(v,e)}async getReportMetaById(t,e){const{id:n,...s}=t,i=new URLSearchParams(s).toString(),h=i?`?${i}`:"",c=`${this.baseUrl}${r(A,T)}/${n}/meta${h}`;return this.fetchWithAuth(c,e)}async markReportAsRead(t,e){const n=`${this.baseUrl}${r(A,T)}/${t.id}/read`;return this.fetchWithAuth(n,{method:"PUT",...e??{}})}async orderReport(t,e){const n={...t.include_fields?{include_fields:t.include_fields.toString()}:{}},s=new URLSearchParams(n).toString(),i=s?`?${s}`:"",h=`${this.baseUrl}${r(A,T)}${i}`;return this.fetchWithAuth(h,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({product_config_id:t.product_config_id}),...e??{}})}};T=new WeakMap,y(A,T,"/v1/credit/reports");let ot=A;const E=class E extends ${constructor(t){super(t)}async getCustomerById(t,e){const n=`${this.baseUrl}${r(E,C)}/${t.customer_id}`;return this.fetchWithAuth(n,e)}async updateCustomer(t,e){const{customer_id:n,...s}=t,i=`${this.baseUrl}${r(E,C)}/${n}`;return this.fetchWithAuth(i,{method:"PATCH",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s??{}),...e??{}})}async deleteCustomer(t,e){const n=`${this.baseUrl}${r(E,C)}/${t.customer_id}`;return this.fetchWithAuth(n,{method:"DELETE",...e??{}})}async createCustomer(t,e){const n=`${this.baseUrl}${r(E,C)}`;return this.fetchWithAuth(n,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(t??{}),...e??{}})}async searchCustomers(t,e){const{next_cursor:n="",...s}=t,i=`${this.baseUrl}${r(E,C)}/search`;return this.fetchWithAuth(i,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({next_cursor:n,...s??{}}),...e??{}})}};C=new WeakMap,y(E,C,"/v1/customers");let at=E;const J=class J extends ${constructor(t){super(t)}async getAuthQuestions(t){const e=`${this.baseUrl}${r(J,F)}/questions`;return this.fetchWithAuth(e,t)}async submitAuthAnswers(t,e){const n=`${this.baseUrl}${r(J,F)}/questions`;return this.fetchWithAuth(n,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(t),...e??{}})}};F=new WeakMap,y(J,F,"/v1/authentication");let ct=J;const Z=class Z extends ${constructor(t){super(t)}async createRegistration(t,e){const n=`${this.baseUrl}${r(Z,Y)}`;return this.fetchWithAuth(n,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(t??{}),...e??{}})}};Y=new WeakMap,y(Z,Y,"/v1/registrations");let ut=Z;const M=class M extends ${constructor(t){super(t)}async getProductConfigs(t,e){const{fromEntries:n,entries:s}=Object,{isArray:i}=Array,h=n(s(t).filter(([k,R])=>R!=null).map(([k,R])=>[k,i(R)?R.join(","):R.toString()])),c=new URLSearchParams(h).toString(),p=c?`?${c}`:"",v=`${this.baseUrl}${r(M,q)}${p}`;return this.fetchWithAuth(v,{...e||{}})}async getProductConfigById(t,e){const n=`${this.baseUrl}${r(M,q)}/${t.product_config_id}`;return this.fetchWithAuth(n,{...e??{}})}};q=new WeakMap,y(M,q,"/v1/product-configs");let dt=M;const ht=Object.freeze(Object.defineProperty({__proto__:null,AlertsService:it,CreditAttributesService:nt,CreditReportsService:ot,CreditScorePlannerService:rt,CreditScoreSimulatorService:st,CreditScoresService:tt,CustomerAuthService:ct,CustomersService:at,EntitlementsService:et,ProductConfigsService:dt,RegistrationsService:ut},Symbol.toStringTag,{value:"Module"}));function wt(o){return`${o[0].toLowerCase()}${o.substring(1)}`.replace("Service","")}const Nt=typeof process<"u"&&process.versions&&process.versions.node&&typeof window>"u",G=class G{constructor(t){y(this,f);l(this,"config");y(this,S);y(this,L,null);l(this,"baseUrl","");this.config=t,this.baseUrl=bt[t.environment??"PRODUCTION"],H(this,S,new Map)}async getAccessToken(t){if(!Nt)throw d.generateError({type:"sdk_error",message:"getAccessToken is not supported in browser"});try{return{data:await P(this,f,Ct).call(this,t),errors:void 0,meta:{status:200,statusText:"OK"}}}catch(n){return this.clearCache(),{data:void 0,error:n,meta:{status:n.status,statusText:n.message}}}}getCacheLength(){return r(this,S).size}clearCache(){const t=`${this.baseUrl}${r(G,K)}`,e=Array.from(r(this,S).keys()).filter(n=>n.includes(t));for(const n of e)r(this,S).delete(n)}};S=new WeakMap,L=new WeakMap,K=new WeakMap,f=new WeakSet,Ct=async function({grantType:t,clientId:e,clientSecret:n,customerId:s}){var k;P(this,f,Et).call(this);const i=`${this.baseUrl}${r(G,K)}`,h={method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({grant_type:t,client_id:e,client_secret:n,...t==="trusted_partner"?{partner_customer_id:s??""}:{}})},c=await P(this,f,_t).call(this,i,h);if(c!=null&&c.ok){const O=await c.clone().json();return r(this,L)===null&&P(this,f,$t).call(this,O.expires_in),O}let p;const v={status:c==null?void 0:c.status,message:(c==null?void 0:c.statusText)||"",data:void 0};if((c==null?void 0:c.status)===401?p={type:"auth_error",...v}:p={type:"api_error",...v},(k=c==null?void 0:c.headers.get("content-type"))!=null&&k.includes("application/json")){const O=await c.clone().json();p.data=O.error}throw d.generateError(p)},$t=function(t){const e=new Date().getTime(),n=60*60*1e3,s=e+n,i=t===null?t:new Date(s).valueOf();H(this,L,i)},Et=function(){const t=new Date(Date.now()),e=new Date(r(this,L)??Number.NaN);Wt(t,e)&&(P(this,f,$t).call(this,null),r(this,S).clear())},_t=async function(t,e){const n=`${t}${JSON.stringify(e||{})}`;if(!r(this,S).has(n)){const s=fetch(t,e??{});r(this,S).set(n,s)}return await r(this,S).get(n)},y(G,K,"/v1/oauth2/token");let lt=G;function Wt(o,t){return o>t}const U=class U extends ${constructor(e){super(e);l(this,"alerts");l(this,"auth");l(this,"creditReports");l(this,"creditScores");l(this,"creditAttributes");l(this,"creditScorePlanner");l(this,"creditScoreSimulator");l(this,"customerAuth");l(this,"customers");l(this,"entitlements");l(this,"productConfigs");l(this,"registrations");for(const n in ht)typeof ht[n]=="function"&&(this[wt(n)]=new ht[n](e));this.auth=new lt({environment:e.environment})}static getInstance(e){return r(U,_)||H(U,_,new U(e)),r(U,_)}static clearInstance(){H(U,_,null)}};_=new WeakMap,y(U,_,null);let yt=U;function Tt(o){return yt.getInstance(o)}function At(o){return o.progress_status==="TARGET_NOT_MET"||o.progress_status==="COMPLETED"}function xt(o){return At(o)||o.progress_status==="TARGET_SCORE_AND_PLAN_SET"||o.progress_status==="ON_TRACK"||o.progress_status==="OFF_TRACK"}function vt(o){return o.score_model.includes("VANTAGE")}function kt(o){return o.score_model.includes("FICO")}function Lt(o){return o.target_score!==void 0}function jt(o){return o.max_actions_per_plan!==void 0}function Dt(o){return o.score_model.includes("FICO")}function It(o){return o.score_model.includes("VANTAGE")}function Vt(o){return!!(o&&"best_action"in o)}function Bt(o){return!!(o&&"simulated_score"in o)}function Ft(o){return!("simulated_score"in o)}function Jt(o){return!!(o&&"slider_min_value"in o&&"slider_max_value"in o)}function qt(o){return!!(o&&"value"in o&&"simulated_score"in o)}a.ConnectedSolutionsClientApiError=j,a.ConnectedSolutionsClientAuthError=pt,a.ConnectedSolutionsClientError=d,a.ConnectedSolutionsClientSDKError=ft,a.ConnectedSolutionsClientUnknownError=St,a.createSDK=Tt,a.default=Tt,a.isFicoPlan=kt,a.isFicoRevision=Dt,a.isFicoRevisionsRequest=Lt,a.isFicoScenario=Ft,a.isFicoScenarioVariation=Jt,a.isFicoSimulator=Vt,a.isPlanCompleted=At,a.isPlanSet=xt,a.isVantagePlan=vt,a.isVantageRevision=It,a.isVantageRevisionsRequest=jt,a.isVantageScenario=Bt,a.isVantageScenarioVariation=qt,Object.defineProperties(a,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
15
+ (function(i,l){typeof exports=="object"&&typeof module<"u"?l(exports):typeof define=="function"&&define.amd?define(["exports"],l):(i=typeof globalThis<"u"?globalThis:i||self,l(i["@experian-ecs/connected-api-sdk"]={}))})(this,function(i){"use strict";var ve=Object.defineProperty;var Yt=i=>{throw TypeError(i)};var we=(i,l,d)=>l in i?ve(i,l,{enumerable:!0,configurable:!0,writable:!0,value:d}):i[l]=d;var y=(i,l,d)=>we(i,typeof l!="symbol"?l+"":l,d),vt=(i,l,d)=>l.has(i)||Yt("Cannot "+d);var o=(i,l,d)=>(vt(i,l,"read from private field"),d?d.call(i):l.get(i)),g=(i,l,d)=>l.has(i)?Yt("Cannot add the same private member more than once"):l instanceof WeakSet?l.add(i):l.set(i,d),Y=(i,l,d,F)=>(vt(i,l,"write to private field"),F?F.call(i,d):l.set(i,d),d),$=(i,l,d)=>(vt(i,l,"access private method"),d);var j,wt,Zt,Z,J,Nt,b,O,tt,qt,x,I,rt,k,nt,R,B,N,K,it,H,E,T,P,D,z,U,Ot,Wt,te,ee,V;function l(r){switch(r.type){case"client_side_error":return new F(r);case"authentication_error":return new Vt(r);case"server_side_error":return new jt(r);case"rate_limit_error":return new kt(r);default:return new It(r)}}class d extends Error{constructor(t){var n;super(t.message);y(this,"message");y(this,"data");y(this,"status");this.message=((n=t.data)==null?void 0:n.message)||t.message||"",this.data=t.data,this.status=t.status}}y(d,"generateError",l);class F extends d{constructor(e){super(e),this.name="ConnectedSolutionsClientSideError"}}class Vt extends d{constructor(e){super(e),this.name="ConnectedSolutionsClientAuthenticationError"}}class jt extends d{constructor(e){super(e),this.name="ConnectedSolutionsClientServerSideError"}}class It extends d{constructor(e){super(e),this.name="ConnectedSolutionsClientSDKError"}}class kt extends d{constructor(e){super(e),this.name="ConnectedSolutionsClientRateLimitError"}}function ot(r){switch(r){case"CLIENT_SIDE_ERROR":return"client_side_error";case"AUTHENTICATION_ERROR":return"authentication_error";case"RATE_LIMIT_ERROR":return"rate_limit_error";case"SERVER_SIDE_ERROR":return"server_side_error";default:return"sdk_error"}}function at(r){return r===401?"authentication_error":r===429?"rate_limit_error":r&&r>=500?"server_side_error":r&&r>=400?"client_side_error":"sdk_error"}const Lt={PRODUCTION:"https://connected-api.experian.com",SANDBOX:"https://sandbox.connected-api.experian.com",UAT:"https://uat.connected-api.experian.com",INTEGRATION:"https://integration.connected-api.experian.com",DEVELOPMENT:"https://develop.connected-api.experian.com"},re={PRODUCTION:"https://unity-contentstack.integration.us-exp-api.experiancs.com",SANDBOX:"https://unity-contentstack.dev.us-exp-api.experiancs.com",UAT:"https://unity-contentstack.dev.us-exp-api.experiancs.com",INTEGRATION:"https://unity-contentstack.dev.us-exp-api.experiancs.com",DEVELOPMENT:"https://unity-contentstack.dev.us-exp-api.experiancs.com"};class _{constructor(e){g(this,j);y(this,"config");y(this,"baseUrl","");y(this,"contentstackUrl","");const n=e.environment??"PRODUCTION";this.config=e,this.baseUrl=Lt[n],this.contentstackUrl=re[n]}setConfig(e){"environment"in e&&(this.config.environment=e.environment),"token"in e&&(this.config.token=e.token)}async fetchWithAuth(e,t){try{$(this,j,wt).call(this);const n=typeof Headers<"u"&&new Headers(t==null?void 0:t.headers);n&&!n.Authorization&&n.set("Authorization",`Bearer ${this.config.token}`);const s={...t,headers:n||(t==null?void 0:t.headers)||{}};return await this.fetchRequest(e,s)}catch(n){const s=n;return{data:void 0,error:s,meta:{status:s.status??500,statusText:s.message??""}}}}async fetchRequest(e,t){var n;try{$(this,j,wt).call(this);const s=await fetch(e,t);if(!(s!=null&&s.ok)){let a;const h={type:"sdk_error",status:s==null?void 0:s.status,message:s==null?void 0:s.statusText};if((n=s==null?void 0:s.headers.get("content-type"))!=null&&n.includes("application/json")){const m=await s.clone().json();h.data=m.error,h.type=ot(m.error.type)}else h.type=at(s==null?void 0:s.status);throw d.generateError(h)}return $(this,j,Zt).call(this,s)?{data:await s.clone().json(),error:void 0,meta:{status:s.status,statusText:s.statusText}}:{data:void 0,error:void 0,meta:{status:s.status,statusText:s.statusText}}}catch(s){const c=s;return{data:void 0,error:c,meta:{status:c.status??500,statusText:c.message}}}}}j=new WeakSet,wt=function(){if(!this.config.token){const e={type:"sdk_error",message:"You must first obtain and set a token before using an SDK method"};throw d.generateError(e)}},Zt=function(e){var t,n;return((t=e==null?void 0:e.headers.get("content-type"))==null?void 0:t.includes("application/json"))||((n=e==null?void 0:e.headers.get("content-type"))==null?void 0:n.includes("application/octet-stream"))};const q=class q extends _{constructor(t){super(t);g(this,J)}async getCreditScores(t,n){const s=t==null?void 0:t.version,c=$(this,J,Nt).call(this,s),u={...t!=null&&t.product_config_id?{product_config_id:t.product_config_id}:{},...t!=null&&t.include_factors?{include_factors:t.include_factors.toString()}:{},...t!=null&&t.include_ingredients?{include_ingredients:t.include_ingredients.toString()}:{}},a=new URLSearchParams(u).toString(),h=a?`?${a}`:"",f=`${this.baseUrl}${c}${h}`;return this.fetchWithAuth(f,n)}async orderCreditScore(t,n){const s=t.version,c=$(this,J,Nt).call(this,s),u={...t!=null&&t.include_factors?{include_factors:t.include_factors.toString()}:{},...t!=null&&t.include_ingredients?{include_ingredients:t.include_ingredients.toString()}:{}},a=new URLSearchParams(u).toString(),h=a?`?${a}`:"",f=`${this.baseUrl}${c}${h}`;return this.fetchWithAuth(f,{method:"POST",headers:{...(n==null?void 0:n.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({product_config_id:t.product_config_id}),...n??{}})}};Z=new WeakMap,J=new WeakSet,Nt=function(t="v1"){return`/${t}${o(q,Z)}`},g(q,Z,"/credit/scores");let ut=q;const S=class S extends _{constructor(e){super(e)}async getEntitlements(e,t){return this.fetchWithAuth(`${this.baseUrl}${o(S,b)}?customer_id=${e.customer_id}`,t)}async getEntitlementById({entitlement_id:e},t){return this.fetchWithAuth(`${this.baseUrl}${o(S,b)}/${e}`,t)}async createEntitlement(e,t){return this.fetchWithAuth(`${this.baseUrl}${o(S,b)}`,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(e),...t??{}})}async updateEntitlement(e,t){const{entitlement_id:n,...s}=e;return this.fetchWithAuth(`${this.baseUrl}${o(S,b)}/${n}`,{method:"PUT",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s),...t??{}})}async deleteEntitlement({entitlement_id:e},t){return this.fetchWithAuth(`${this.baseUrl}${o(S,b)}/${e}`,{method:"DELETE",...t??{}})}async activateEntitlement({entitlement_id:e},t){const n=`${this.baseUrl}${o(S,b)}/${e}/activate`;return this.fetchWithAuth(n,{method:"POST",...t??{}})}async deactivateEntitlement({entitlement_id:e},t){const n=`${this.baseUrl}${o(S,b)}/${e}/deactivate`;return this.fetchWithAuth(n,{method:"POST",...t??{}})}async entitleCustomerToNewProduct(e,t){const{product_config_id:n,entitlement_id:s,customer_id:c}=e,u=`${this.baseUrl}${o(S,b)}/${s}/products/${n}/activate`;return this.fetchWithAuth(u,{method:"POST",...t??{},headers:{...(t==null?void 0:t.headers)??{},"X-Customer-ID":c}})}async activateProduct(e,t){const{product_config_id:n,entitlement_id:s}=e,c=`${this.baseUrl}${o(S,b)}/${s}/products/${n}/activate`;return this.fetchWithAuth(c,{method:"POST",...t??{}})}async deactivateProduct(e,t){const{product_config_id:n,entitlement_id:s}=e,c=`${this.baseUrl}${o(S,b)}/${s}/products/${n}/deactivate`;return this.fetchWithAuth(c,{method:"POST",...t??{}})}async removeProductFromEntitlement(e,t){const{product_config_id:n,entitlement_id:s}=e,c=`${this.baseUrl}${o(S,b)}/${s}/products/${n}`;return this.fetchWithAuth(c,{method:"DELETE",...t??{}})}async getProductEligibility(e,t){const n=new URLSearchParams(e).toString(),s=`${this.baseUrl}${o(S,b)}/eligibility?${n}`;return this.fetchWithAuth(s,t)}};b=new WeakMap,g(S,b,"/v1/entitlements");let dt=S;const et=class et extends _{constructor(t){super(t);g(this,tt)}async getCreditAttributes(t,n){const s=t==null?void 0:t.version,c=$(this,tt,qt).call(this,s),u=`${this.baseUrl}${c}`;return this.fetchWithAuth(u,n)}};O=new WeakMap,tt=new WeakSet,qt=function(t="v1"){return`/${t}${o(et,O)}`},g(et,O,"/credit/attributes");let ht=et;const G=class G extends _{constructor(e){super(e)}async getSimulations(e,t){const n={...e,...e!=null&&e.run_all?{run_all:e.run_all.toString()}:{}},s=new URLSearchParams(n).toString(),c=s?`?${s}`:"",u=`${this.baseUrl}${o(G,x)}${c}`;return this.fetchWithAuth(u,t)}async simulateScenario(e,t){const{product_config_id:n,...s}=e,c=new URLSearchParams({product_config_id:n}).toString(),u=c?`?${c}`:"";return this.fetchWithAuth(`${this.baseUrl}${o(G,x)}${u}`,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s),...t??{}})}};x=new WeakMap,g(G,x,"/v1/credit/tools/simulator");let lt=G;const p=class p extends _{constructor(e){super(e)}async getCreditScorePlan(e,t){const n=new URLSearchParams(e).toString(),s=n?`?${n}`:"",c=`${this.baseUrl}${o(p,I)}${s}`;return this.fetchWithAuth(c,{...t??{}})}async createCreditScorePlan(e,t){const{product_config_id:n,...s}=e,c=new URLSearchParams({product_config_id:n}).toString(),u=c?`?${c}`:"",a=`${this.baseUrl}${o(p,I)}${u}`;return this.fetchWithAuth(a,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s),...t??{}})}async deleteCreditScorePlan(e,t){const n=new URLSearchParams(e).toString(),s=n?`?${n}`:"",c=`${this.baseUrl}${o(p,I)}${s}`;return this.fetchWithAuth(c,{method:"DELETE",...t??{}})}async getCreditScorePlanRevisions(e,t){const{product_config_id:n,...s}=e,c=new URLSearchParams({product_config_id:n}).toString(),u=c?`?${c}`:"",a=`${this.baseUrl}${o(p,I)}${o(p,rt)}${u}`;return this.fetchWithAuth(a,{method:"POST",body:JSON.stringify(s),headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},...t??{}})}};I=new WeakMap,rt=new WeakMap,g(p,I,"/v1/credit/tools/planners"),g(p,rt,"/revisions");let yt=p;const L=class L extends _{constructor(e){super(e)}async getAlerts(e,t){const n={page_limit:"10",next_page_token:"",...e??{}},s=new URLSearchParams(n).toString(),c=`${this.baseUrl}${o(L,k)}?${s}`;return this.fetchWithAuth(c,t)}async getAlertById({id:e},t){const n=`${this.baseUrl}${o(L,k)}/${e}`;return this.fetchWithAuth(n,t)}async markAlertAsRead({id:e},t){const n=`${this.baseUrl}${o(L,k)}/${e}/dispose`;return this.fetchWithAuth(n,{method:"PATCH",...t??{}})}async getAlertCounts(e){const t=`${this.baseUrl}${o(L,k)}/counts`;return this.fetchWithAuth(t,e)}};k=new WeakMap,g(L,k,"/v1/events-alerts");let gt=L;function Bt(r){return!(r!=null&&r.version)||(r==null?void 0:r.version)==="v1"}function ne(r){return(r==null?void 0:r.version)==="v2"}function Dt(r){return r!==void 0&&Bt(r)&&"include_fields"in r&&typeof r.include_fields=="string"}function se(r){return r!==void 0&&Bt(r)&&("include_fields"in r&&typeof r.include_fields=="string"||"report_date"in r&&typeof r.report_date=="string"||"product_config_id"in r&&typeof r.product_config_id=="string"||"report_between"in r&&typeof r.report_between=="string")}function ie(r){return r!==void 0&&ne(r)&&("product_config_id"in r&&typeof r.product_config_id=="string"||"report_between"in r&&typeof r.report_between=="string")}const st=class st extends _{constructor(t){super(t);g(this,R)}async getReports(t,n){const s=t==null?void 0:t.version,c=$(this,R,B).call(this,s),u={};se(t)&&(t.report_between&&(u.report_between=t.report_between.toString()),t.include_fields&&(u.include_fields=t.include_fields.toString()),t.report_date&&(u.report_date=t.report_date.toString()),t.product_config_id&&(u.product_config_id=t.product_config_id.toString())),ie(t)&&(t.product_config_id&&(u.product_config_id=t.product_config_id.toString()),t.report_between&&(u.report_between=t.report_between.toString()));const a=new URLSearchParams(u).toString(),h=a?`?${a}`:"",f=`${this.baseUrl}${c}${h}`;return this.fetchWithAuth(f,n)}async getReportById(t,n){const{id:s,version:c}=t,u=$(this,R,B).call(this,c),a={};Dt(t)&&(a.include_fields=t.include_fields.toString());const h=new URLSearchParams(a).toString(),f=h?`?${h}`:"",m=`${this.baseUrl}${u}/${s}${f}`;return this.fetchWithAuth(m,n)}async getReportsMeta(t,n){const{version:s,latest_only:c,report_read:u,...a}=t??{},h=$(this,R,B).call(this,s),f={...a??{},...c?{latest_only:c.toString()}:{},...u?{report_read:u.toString()}:{}},m=new URLSearchParams(f).toString(),A=m?`?${m}`:"",Ee=`${this.baseUrl}${h}/meta${A}`;return this.fetchWithAuth(Ee,n)}async getReportMetaById(t,n){const{id:s,version:c,...u}=t,a=$(this,R,B).call(this,c),h=new URLSearchParams(u).toString(),f=h?`?${h}`:"",m=`${this.baseUrl}${a}/${s}/meta${f}`;return this.fetchWithAuth(m,n)}async markReportAsRead(t,n){const{id:s,version:c}=t,u=$(this,R,B).call(this,c),a=`${this.baseUrl}${u}`;if(c==="v2"){const f=`${a}/${s}/disposition`,m=t;return this.fetchWithAuth(f,{method:"PATCH",headers:{...(n==null?void 0:n.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({disposition:m.disposition}),...n??{}})}const h=`${a}/${s}/read`;return this.fetchWithAuth(h,{method:"PUT",...n??{}})}async orderReport(t,n){const s={},c=t==null?void 0:t.version,u=$(this,R,B).call(this,c);Dt(t)&&(s.include_fields=t.include_fields.toString());const a=new URLSearchParams(s).toString(),h=a?`?${a}`:"",f=`${this.baseUrl}${u}${h}`;return this.fetchWithAuth(f,{method:"POST",headers:{...(n==null?void 0:n.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({product_config_id:t.product_config_id}),...n??{}})}};nt=new WeakMap,R=new WeakSet,B=function(t="v1"){return`/${t}${o(st,nt)}`},g(st,nt,"/credit/reports");let ft=st;const W=class W extends _{constructor(e){super(e)}async getCustomerById(e,t){const n=`${this.baseUrl}${o(W,N)}/${e.customer_id}`;return this.fetchWithAuth(n,t)}async updateCustomer(e,t){const{customer_id:n,...s}=e,c=`${this.baseUrl}${o(W,N)}/${n}`;return this.fetchWithAuth(c,{method:"PATCH",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s??{}),...t??{}})}async deleteCustomer(e,t){const n=`${this.baseUrl}${o(W,N)}/${e.customer_id}`;return this.fetchWithAuth(n,{method:"DELETE",...t??{}})}async createCustomer(e,t){const n=`${this.baseUrl}${o(W,N)}`;return this.fetchWithAuth(n,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(e??{}),...t??{}})}async searchCustomers(e,t){const{next_cursor:n="",...s}=e,c=`${this.baseUrl}${o(W,N)}/search`;return this.fetchWithAuth(c,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({next_cursor:n,...s??{}}),...t??{}})}};N=new WeakMap,g(W,N,"/v1/customers");let $t=W;const M=class M extends _{constructor(e){super(e)}async getAuthQuestions(e){const t=`${this.baseUrl}${o(M,K)}/questions`;return this.fetchWithAuth(t,e)}async submitAuthAnswers(e,t){const n=`${this.baseUrl}${o(M,K)}/questions`;return this.fetchWithAuth(n,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(e),...t??{}})}};K=new WeakMap,g(M,K,"/v1/authentication");let mt=M;const ct=class ct extends _{constructor(e){super(e)}async createRegistration(e,t){const n=`${this.baseUrl}${o(ct,it)}`;return this.fetchWithAuth(n,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(e??{}),...t??{}})}};it=new WeakMap,g(ct,it,"/v1/registrations");let bt=ct;const X=class X extends _{constructor(e){super(e)}async getProductConfigs(e,t){const{fromEntries:n,entries:s}=Object,{isArray:c}=Array,u=n(s(e).filter(([m,A])=>A!=null).map(([m,A])=>[m,c(A)?A.join(","):A.toString()])),a=new URLSearchParams(u).toString(),h=a?`?${a}`:"",f=`${this.baseUrl}${o(X,H)}${h}`;return this.fetchWithAuth(f,{...t||{}})}async getProductConfigById(e,t){const n=`${this.baseUrl}${o(X,H)}/${e.product_config_id}`;return this.fetchWithAuth(n,{...t??{}})}};H=new WeakMap,g(X,H,"/v1/product-configs");let St=X;const v=class v extends _{constructor(e){super(e)}async getSurvey(e){const t=`${this.baseUrl}${o(v,E)}/surveys`;return this.fetchWithAuth(t,e)}async submitSurvey(e,t){const n=`${this.baseUrl}${o(v,E)}/surveys`;return this.fetchWithAuth(n,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(e),...t??{}})}async getScore(e){const t=`${this.baseUrl}${o(v,E)}/scores?latest=TRUE`;return this.fetchWithAuth(t,e)}async getPlan(e,t){const n={action_status:e.action_status,...e.cursor?{cursor:e.cursor}:{},...e.count?{count:e.count.toString()}:{}},s=new URLSearchParams(n).toString(),c=s?`?${s}`:"",u=`${this.baseUrl}${o(v,E)}/plans${c}`;return this.fetchWithAuth(u,t)}async createPlan(e){const t=`${this.baseUrl}${o(v,E)}/plans`;return this.fetchWithAuth(t,{method:"POST",headers:{...(e==null?void 0:e.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({}),...e??{}})}async updateAction(e,t){const{action_id:n,...s}=e,c=`${this.baseUrl}${o(v,E)}/plans/actions/${n}`;return this.fetchWithAuth(c,{method:"PUT",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify(s),...t??{}})}};E=new WeakMap,g(v,E,"/v1/ihs");let _t=v;const C=class C extends _{constructor(e){super(e)}async createScan(e,t){const n=`${this.baseUrl}${o(C,T)}/scans`;return this.fetchWithAuth(n,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},body:JSON.stringify({product_config_id:e.product_config_id}),...t??{}})}async getScans(e,t){const n={};e!=null&&e.product_config_id&&(n.product_config_id=e.product_config_id),e!=null&&e.scan_between&&(n.scan_between=e.scan_between),e!=null&&e.cursor&&(n.cursor=e.cursor),e!=null&&e.count&&(n.count=e.count.toString());const s=new URLSearchParams(n).toString(),c=s?`?${s}`:"",u=`${this.baseUrl}${o(C,T)}/scans${c}`;return this.fetchWithAuth(u,t)}async getScanById(e,t){const n=`${this.baseUrl}${o(C,T)}/scans/${e.scanId}`;return this.fetchWithAuth(n,t)}async getScansMetadata(e,t){const n={};e!=null&&e.product_config_id&&(n.product_config_id=e.product_config_id),e!=null&&e.scan_between&&(n.scan_between=e.scan_between),e!=null&&e.most_recent&&(n.most_recent="TRUE");const s=new URLSearchParams(n).toString(),c=s?`?${s}`:"",u=`${this.baseUrl}${o(C,T)}/scans/meta${c}`;return this.fetchWithAuth(u,t)}async getBrokers(e){const t=`${this.baseUrl}${o(C,T)}/brokers`;return this.fetchWithAuth(t,e)}async getBrokerById(e,t){const n=`${this.baseUrl}${o(C,T)}/brokers/${e.brokerId}`;return this.fetchWithAuth(n,t)}async getBrokersByScanId(e,t){const n=`${this.baseUrl}${o(C,T)}/scans/${e.scanId}/brokers`;return this.fetchWithAuth(n,t)}async getBrokersByGroupId(e,t){const n=`${this.baseUrl}${o(C,T)}/brokers/groups/${e.groupId}`;return this.fetchWithAuth(n,t)}async updateBrokerGroupAction(e,t){const n=`${this.baseUrl}${o(C,T)}/brokers/groups/${e.groupId}/action`;return this.fetchWithAuth(n,{method:"POST",headers:{...(t==null?void 0:t.headers)??{},"Content-Type":"application/json"},...t??{}})}};T=new WeakMap,g(C,T,"/v1/dim");let At=C;const Tt=Object.freeze(Object.defineProperty({__proto__:null,AlertsService:gt,CreditAttributesService:ht,CreditReportsService:ft,CreditScorePlannerService:yt,CreditScoreSimulatorService:lt,CreditScoresService:ut,CustomerAuthService:mt,CustomersService:$t,DigitalIdentityManagerService:At,EntitlementsService:dt,IdentityHealthScoreService:_t,ProductConfigsService:St,RegistrationsService:bt},Symbol.toStringTag,{value:"Module"}));function ce(r){return`${r[0].toLowerCase()}${r.substring(1)}`.replace("Service","")}const oe=typeof process<"u"&&process.versions&&process.versions.node&&typeof window>"u",Q=class Q{constructor(e){g(this,U);y(this,"config");g(this,P);g(this,D,null);y(this,"baseUrl","");this.config=e,this.baseUrl=Lt[e.environment??"PRODUCTION"],Y(this,P,new Map)}async getAccessToken(e){if(!oe)throw d.generateError({type:"sdk_error",message:"getAccessToken is not supported in browser"});try{return{data:await $(this,U,Ot).call(this,e),errors:void 0,meta:{status:200,statusText:"OK"}}}catch(n){return this.clearCache(),{data:void 0,error:n,meta:{status:n.status,statusText:n.message}}}}getCacheLength(){return o(this,P).size}clearCache(){const e=`${this.baseUrl}${o(Q,z)}`,t=Array.from(o(this,P).keys()).filter(n=>n.includes(e));for(const n of t)o(this,P).delete(n)}};P=new WeakMap,D=new WeakMap,z=new WeakMap,U=new WeakSet,Ot=async function({grantType:e,clientId:t,clientSecret:n,customerId:s}){var f;$(this,U,te).call(this);const c=`${this.baseUrl}${o(Q,z)}`,u={method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({grant_type:e,client_id:t,client_secret:n,...e==="trusted_partner"?{partner_customer_id:s??""}:{}})},a=await $(this,U,ee).call(this,c,u);if(a!=null&&a.ok){const A=await a.clone().json();return o(this,D)===null&&$(this,U,Wt).call(this,A.expires_in),A}const h={type:"sdk_error",status:a==null?void 0:a.status,message:(a==null?void 0:a.statusText)||"",data:void 0};if((f=a==null?void 0:a.headers.get("content-type"))!=null&&f.includes("application/json")){const A=await a.clone().json();h.data=A.error,h.type=ot(A.error.type)}else h.type=at(a==null?void 0:a.status);throw d.generateError(h)},Wt=function(e){const t=new Date().getTime(),n=60*60*1e3,s=t+n,c=e===null?e:new Date(s).valueOf();Y(this,D,c)},te=function(){const e=new Date(Date.now()),t=new Date(o(this,D)??Number.NaN);ae(e,t)&&($(this,U,Wt).call(this,null),o(this,P).clear())},ee=async function(e,t){const n=`${e}${JSON.stringify(t||{})}`;if(!o(this,P).has(n)){const s=fetch(e,t??{});o(this,P).set(n,s)}return await o(this,P).get(n)},g(Q,z,"/v1/oauth2/token");let Ct=Q;function ae(r,e){return r>e}const w=class w extends _{constructor(t){super(t);y(this,"alerts");y(this,"auth");y(this,"creditReports");y(this,"creditScores");y(this,"creditAttributes");y(this,"creditScorePlanner");y(this,"creditScoreSimulator");y(this,"customerAuth");y(this,"customers");y(this,"entitlements");y(this,"productConfigs");y(this,"registrations");y(this,"identityHealthScore");y(this,"digitalIdentityManager");for(const n in Tt)typeof Tt[n]=="function"&&(this[ce(n)]=new Tt[n](t));this.auth=new Ct({environment:t.environment})}static getInstance(t){return o(w,V)||Y(w,V,new w(t)),o(w,V)}static clearInstance(){Y(w,V,null)}};V=new WeakMap,g(w,V,null);let Pt=w;function Ft(r){return Pt.getInstance(r)}function Jt(r){return r.progress_status==="TARGET_NOT_MET"||r.progress_status==="COMPLETED"}function ue(r){return Jt(r)||r.progress_status==="TARGET_SCORE_AND_PLAN_SET"||r.progress_status==="ON_TRACK"||r.progress_status==="OFF_TRACK"}function de(r){return r.score_model.includes("VANTAGE")}function he(r){return r.score_model.includes("FICO")}function le(r){return r.target_score!==void 0}function ye(r){return r.max_actions_per_plan!==void 0}function ge(r){return r.score_model.includes("FICO")}function fe(r){return r.score_model.includes("VANTAGE")}function $e(r){return!!(r&&"best_action"in r)}function me(r){return!!(r&&"simulated_score"in r)}function be(r){return!("simulated_score"in r)}function Se(r){return!!(r&&"slider_min_value"in r&&"slider_max_value"in r)}function _e(r){return!!(r&&"value"in r&&"simulated_score"in r)}function Ae(r){return r==="v1"||r==="v2"}function Ut(r){if(typeof r!="object"||r===null)return!1;const e=r;return typeof e.score_id=="string"&&Rt(e.bureau)&&typeof e.score=="number"&&typeof e.score_date=="string"}function pt(r){if(typeof r!="object"||r===null)return!1;const e=r;return typeof e.id=="string"&&Array.isArray(e.bureau_scores)&&e.bureau_scores.every(t=>xt(t))}function xt(r){if(typeof r!="object"||r===null)return!1;const e=r;return Rt(e.bureau)&&typeof e.score=="number"&&typeof e.score_date=="string"}function Rt(r){return r==="EXPERIAN"||r==="EQUIFAX"||r==="TRANSUNION"}function Gt(r){return typeof r=="object"&&r!==null&&"items"in r&&Array.isArray(r.items)&&r.items.every(e=>pt(e))}function Kt(r){return Array.isArray(r)&&r.every(e=>Ut(e))}function Te(r){return Kt(r)}function Ce(r){return Gt(r)}function Pe(r){return Ut(r)}function Ue(r){return pt(r)}function Mt(r){if(typeof r!="object"||r===null)return!1;const e=r;return Et(e.bureau)&&typeof e.reported_at=="string"&&typeof e.categories=="object"&&typeof e.attributes=="object"}function Ht(r){if(typeof r!="object"||r===null)return!1;const e=r;return typeof e.id=="string"&&Array.isArray(e.bureau_attributes)&&e.bureau_attributes.every(t=>Xt(t))}function Xt(r){if(typeof r!="object"||r===null)return!1;const e=r;return Et(e.bureau)&&typeof e.reported_at=="string"&&typeof e.categories=="object"&&typeof e.attributes=="object"}function Et(r){return r==="EXPERIAN"||r==="EQUIFAX"||r==="TRANSUNION"}function zt(r){return typeof r=="object"&&r!==null&&"items"in r&&Array.isArray(r.items)&&r.items.every(e=>Ht(e))}function Qt(r){return Array.isArray(r)&&r.every(e=>Mt(e))}function pe(r){return Qt(r)}function Re(r){return zt(r)}i.ConnectedSolutionsClientAuthenticationError=Vt,i.ConnectedSolutionsClientError=d,i.ConnectedSolutionsClientRateLimitError=kt,i.ConnectedSolutionsClientSDKError=It,i.ConnectedSolutionsClientServerSideError=jt,i.ConnectedSolutionsClientSideError=F,i.createSDK=Ft,i.default=Ft,i.isBureauAttribute=Xt,i.isBureauScore=xt,i.isCreditAttribute=Mt,i.isCreditAttributeArray=Qt,i.isCreditAttributeV2=Ht,i.isCreditAttributesV2=zt,i.isCreditScore=Ut,i.isCreditScoreArray=Kt,i.isCreditScoreV2=pt,i.isCreditScoresV2=Gt,i.isFicoPlan=he,i.isFicoRevision=ge,i.isFicoRevisionsRequest=le,i.isFicoScenario=be,i.isFicoScenarioVariation=Se,i.isFicoSimulator=$e,i.isPlanCompleted=Jt,i.isPlanSet=ue,i.isV1GetCreditAttributesResponse=pe,i.isV1GetCreditScoresResponse=Te,i.isV1PostCreditScoresResponse=Pe,i.isV2GetCreditAttributesResponse=Re,i.isV2GetCreditScoresResponse=Ce,i.isV2PostCreditScoresResponse=Ue,i.isValidApiVersion=Ae,i.isValidBureau=Rt,i.isValidBureauAttribute=Et,i.isVantagePlan=de,i.isVantageRevision=fe,i.isVantageRevisionsRequest=ye,i.isVantageScenario=me,i.isVantageScenarioVariation=_e,i.mapApiErrorTypeToSDKErrorType=ot,i.mapHttpStatusToSDKErrorType=at,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
16
16
  //# sourceMappingURL=index.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../../src/lib/Error.ts","../../src/globals.ts","../../src/lib/ApiClient/ApiClient.ts","../../src/resources/CreditScores/CreditScores.ts","../../src/resources/Entitlements/Entitlements.ts","../../src/resources/CreditAttributes/CreditAttributes.ts","../../src/resources/CreditScoreSimulator/CreditScoreSimulator.ts","../../src/resources/CreditScorePlanner/CreditScorePlanner.ts","../../src/resources/Alerts/Alerts.ts","../../src/resources/CreditReports/CreditReports.ts","../../src/resources/Customers/Customers.ts","../../src/resources/CustomerAuth/CustomerAuth.ts","../../src/resources/Registrations/Registrations.ts","../../src/resources/ProductConfigs/ProductConfigs.ts","../../src/utils.ts","../../src/lib/AuthClient/AuthClient.ts","../../src/lib/SDKClient/SDKClient.ts","../../src/resources/CreditScorePlanner/typeGuards.ts","../../src/resources/CreditScoreSimulator/typeGuards.ts"],"sourcesContent":["export type ConnectedSolutionsAPIErrorData = {\n dev_url: string;\n code: string;\n message: string;\n};\n\nexport type ConnectedSolutionsSDKErrorTypes =\n | 'api_error'\n | 'auth_error'\n | 'sdk_error'\n | 'unknown_error';\n\nexport type ConnectedSolutionsClientRawError = {\n message: string;\n type: ConnectedSolutionsSDKErrorTypes;\n status?: number;\n data?: ConnectedSolutionsAPIErrorData;\n};\n\nfunction generateError(rawError: ConnectedSolutionsClientRawError) {\n switch (rawError.type) {\n case 'api_error':\n return new ConnectedSolutionsClientApiError(rawError);\n case 'auth_error':\n return new ConnectedSolutionsClientAuthError(rawError);\n case 'sdk_error':\n return new ConnectedSolutionsClientSDKError(rawError);\n default:\n return new ConnectedSolutionsClientUnknownError(rawError);\n }\n}\n\nexport class ConnectedSolutionsClientError extends Error {\n readonly message: string;\n readonly data?: ConnectedSolutionsAPIErrorData;\n readonly status?: number;\n\n constructor(raw: ConnectedSolutionsClientRawError) {\n super(raw.message);\n this.message = raw.data?.message || raw.message || '';\n this.data = raw.data;\n this.status = raw.status;\n }\n\n static generateError = generateError;\n}\n\nexport class ConnectedSolutionsClientApiError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientApiError';\n }\n}\n\nexport class ConnectedSolutionsClientAuthError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientAuthError';\n }\n}\n\nexport class ConnectedSolutionsClientUnknownError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientUnknownError';\n }\n}\n\nexport class ConnectedSolutionsClientSDKError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientSDKError';\n }\n}\n","export const ENVIRONMENT_URLS = {\n PRODUCTION: 'https://connected-api.experian.com',\n SANDBOX: 'https://sandbox.connected-api.experian.com',\n UAT: 'https://uat-api.ecs.experian.com',\n INTEGRATION: 'https://integration-api.ecs.experian.com',\n DEVELOPMENT: 'https://dev-api.ecs.experian.com'\n};\n\nexport const CONTENTSTACK_URLS = {\n PRODUCTION:\n 'https://unity-contentstack.integration.us-exp-api.experiancs.com',\n SANDBOX: 'https://unity-contentstack.dev.us-exp-api.experiancs.com',\n UAT: 'https://unity-contentstack.dev.us-exp-api.experiancs.com',\n INTEGRATION: 'https://unity-contentstack.dev.us-exp-api.experiancs.com',\n DEVELOPMENT: 'https://unity-contentstack.dev.us-exp-api.experiancs.com'\n};\n","import {\n type ConnectedSolutionsClientApiError,\n type ConnectedSolutionsClientAuthError,\n ConnectedSolutionsClientError,\n type ConnectedSolutionsClientRawError,\n type ConnectedSolutionsClientSDKError,\n type ConnectedSolutionsClientUnknownError,\n type ConnectedSolutionsAPIErrorData\n} from 'lib/Error';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport { CONTENTSTACK_URLS, ENVIRONMENT_URLS } from 'globals';\n\nexport type ConnectedSolutionsClientMeta = {\n status: number;\n statusText: string;\n};\n\nexport type ConnectedSolutionsClientErrors =\n | ConnectedSolutionsClientApiError\n | ConnectedSolutionsClientAuthError\n | ConnectedSolutionsClientUnknownError\n | ConnectedSolutionsClientSDKError;\n\nexport type ApiClientResponse<DataType = Record<string, unknown>> =\n | {\n data: DataType;\n error: undefined;\n meta: ConnectedSolutionsClientMeta;\n }\n | {\n data: undefined;\n error: ConnectedSolutionsClientErrors;\n meta: ConnectedSolutionsClientMeta;\n };\n\nexport class ApiClient {\n config: ConnectedSolutionsSDKConfig;\n baseUrl = '';\n contentstackUrl = '';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n const defaultEnvironement = 'PRODUCTION';\n const environment = config.environment ?? defaultEnvironement;\n\n this.config = config;\n this.baseUrl = ENVIRONMENT_URLS[environment];\n this.contentstackUrl = CONTENTSTACK_URLS[environment];\n }\n\n #validateConfig(): void {\n if (!this.config.token) {\n const error: ConnectedSolutionsClientRawError = {\n type: 'sdk_error',\n message:\n 'You must first obtain and set a token before using an SDK method'\n };\n\n throw ConnectedSolutionsClientError.generateError(error);\n }\n }\n\n #isJsonResponse(response: Response) {\n return (\n response?.headers.get('content-type')?.includes('application/json') ||\n response?.headers\n .get('content-type')\n ?.includes('application/octet-stream')\n );\n }\n\n public setConfig(partialConfig: Partial<ConnectedSolutionsSDKConfig>) {\n if ('environment' in partialConfig) {\n this.config.environment = partialConfig.environment;\n }\n\n if ('token' in partialConfig) {\n this.config.token = partialConfig.token;\n }\n }\n\n public async fetchWithAuth<DataType>(\n input: RequestInfo,\n init?: RequestInit\n ): Promise<ApiClientResponse<DataType>> {\n try {\n this.#validateConfig();\n const headers =\n typeof Headers !== 'undefined' && new Headers(init?.headers);\n\n // biome-ignore lint/complexity/useLiteralKeys: works\n if (headers && !headers['Authorization']) {\n headers.set('Authorization', `Bearer ${this.config.token}`);\n }\n\n const options = {\n ...init,\n headers: headers ? headers : init?.headers || {}\n };\n\n const response = await this.fetchRequest<DataType>(input, options);\n\n return response;\n } catch (error) {\n const e = error as ConnectedSolutionsClientErrors;\n return {\n data: undefined,\n error: e,\n meta: {\n status: e.status ?? 500,\n statusText: e.message ?? ''\n }\n };\n }\n }\n\n public async fetchRequest<DataType>(\n input: RequestInfo,\n init?: RequestInit\n ): Promise<ApiClientResponse<DataType>> {\n try {\n this.#validateConfig();\n\n const response = await fetch(input, init);\n\n if (!response?.ok) {\n let err: ConnectedSolutionsClientRawError;\n\n const apiError: ConnectedSolutionsClientRawError = {\n type: 'api_error',\n status: response?.status,\n message: response?.statusText\n };\n\n if (\n response?.headers.get('content-type')?.includes('application/json')\n ) {\n const errorResponseClone = response.clone();\n const errorJson = (await errorResponseClone.json()) as {\n error: ConnectedSolutionsAPIErrorData;\n };\n apiError.data = errorJson.error;\n }\n\n if (response?.status === 401) {\n err = {\n ...apiError,\n type: 'auth_error'\n };\n } else {\n err = {\n ...apiError,\n type: 'api_error'\n };\n }\n\n throw ConnectedSolutionsClientError.generateError(err);\n }\n\n if (!this.#isJsonResponse(response)) {\n return {\n data: undefined,\n error: undefined,\n meta: {\n status: response.status,\n statusText: response.statusText\n }\n } as ApiClientResponse<DataType>;\n }\n\n const responseClone = response.clone();\n const json = await responseClone.json();\n\n return {\n data: json,\n error: undefined,\n meta: {\n status: response.status,\n statusText: response.statusText\n }\n };\n } catch (error) {\n const e = error as ConnectedSolutionsClientErrors;\n return {\n data: undefined,\n error: e,\n meta: {\n status: e.status ?? 500,\n statusText: e.message\n }\n };\n }\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { CreditScore } from 'resources/CreditScores/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class CreditScoresService extends ApiClient {\n static #basePath = '/v1/credit/scores';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getCreditScores(\n options?: {\n product_config_id?: string;\n include_factors?: boolean;\n include_ingredients?: boolean;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScore[]>> {\n const searchOptions: {\n product_config_id?: string;\n include_factors?: string;\n include_ingredients?: string;\n } = {\n ...(options?.product_config_id\n ? { product_config_id: options.product_config_id }\n : {}),\n ...(options?.include_factors\n ? { include_factors: options.include_factors.toString() }\n : {}),\n ...(options?.include_ingredients\n ? { include_ingredients: options.include_ingredients.toString() }\n : {})\n };\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScoresService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async orderCreditScore(\n requestOptions: {\n product_config_id: string;\n include_factors?: boolean;\n include_ingredients?: boolean;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScore>> {\n const searchOptions: {\n include_factors?: string;\n include_ingredients?: string;\n } = {\n ...(requestOptions?.include_factors\n ? { include_factors: requestOptions.include_factors.toString() }\n : {}),\n ...(requestOptions?.include_ingredients\n ? { include_ingredients: requestOptions.include_ingredients.toString() }\n : {})\n };\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScoresService.#basePath}?${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n product_config_id: requestOptions.product_config_id\n }),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient/ApiClient';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport type {\n Entitlement,\n Entitlements,\n ProductEligibility,\n EntitleCustomerResponse\n} from 'resources/Entitlements/types';\n\nexport class EntitlementsService extends ApiClient {\n static #basePath = '/v1/entitlements';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getEntitlements(\n requestOptions: { customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlements>> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}?customer_id=${requestOptions.customer_id}`,\n fetchOptions\n );\n }\n\n async getEntitlementById(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}`,\n fetchOptions\n );\n }\n\n async createEntitlement(\n requestOptions: {\n name: string;\n description: string;\n product_config_ids: string[];\n customer_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}`,\n {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestOptions),\n ...(fetchOptions ?? {})\n }\n );\n }\n\n async updateEntitlement(\n requestOptions: {\n entitlement_id: string;\n product_config_ids: string[];\n customer_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { entitlement_id, ...body } = requestOptions;\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}`,\n {\n method: 'PUT',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(body),\n ...(fetchOptions ?? {})\n }\n );\n }\n\n async deleteEntitlement(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}`,\n {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n }\n );\n }\n\n async activateEntitlement(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/activate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async deactivateEntitlement(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/deactivate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async entitleCustomerToNewProduct(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n customer_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<EntitleCustomerResponse>> {\n const { product_config_id, entitlement_id, customer_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}/activate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {}),\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'X-Customer-ID': customer_id\n }\n });\n }\n\n async activateProduct(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { product_config_id, entitlement_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}/activate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async deactivateProduct(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { product_config_id, entitlement_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}/deactivate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async removeProductFromEntitlement(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { product_config_id, entitlement_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}`;\n return this.fetchWithAuth(endpoint, {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n });\n }\n\n async getProductEligibility(\n requestOptions: { product_config_id: string; customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ProductEligibility>> {\n const search = new URLSearchParams(requestOptions).toString();\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/eligibility?${search}`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { CreditAttributes } from 'resources/CreditAttributes/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class CreditAttributesService extends ApiClient {\n /**\n * Update the path below to the endpoint of the service you are adding\n */\n static #basePath = '/v1/credit/attributes';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getCreditAttributes(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditAttributes[]>> {\n const endpoint = `${this.baseUrl}${CreditAttributesService.#basePath}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type {\n CreditScoreSimulator,\n CreditScoreSimulatorPostRequest,\n CreditScoreSimulatorPostResponse,\n SimulationCategoryType\n} from 'resources/CreditScoreSimulator/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class CreditScoreSimulatorService extends ApiClient {\n static #basePath = '/v1/credit/tools/simulator';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getSimulations(\n requestOptions: {\n product_config_id: string;\n run_all?: boolean;\n cateogory?: SimulationCategoryType;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScoreSimulator>> {\n const searchOptions = {\n ...requestOptions,\n ...(requestOptions?.run_all\n ? { run_all: requestOptions.run_all.toString() }\n : {})\n } as Record<string, string>;\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScoreSimulatorService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async simulateScenario(\n requestOptions: CreditScoreSimulatorPostRequest & {\n product_config_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScoreSimulatorPostResponse>> {\n const { product_config_id, ...requestBody } = requestOptions;\n const query = new URLSearchParams({ product_config_id }).toString();\n const queryString = query ? `?${query}` : '';\n return this.fetchWithAuth(\n `${this.baseUrl}${CreditScoreSimulatorService.#basePath}${queryString}`,\n {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody),\n ...(fetchOptions ?? {})\n }\n );\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type {\n CreditScorePlan,\n ScorePlanCreateResponse,\n ScorePlanRevision,\n ScorePlanRevisionsRequest\n} from 'resources/CreditScorePlanner/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class CreditScorePlannerService extends ApiClient {\n static #basePath = '/v1/credit/tools/planners';\n static #revisionPath = '/revisions';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getCreditScorePlan(\n requestOptions: { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScorePlan>> {\n const query = new URLSearchParams(requestOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n ...(fetchOptions ?? {})\n });\n }\n\n async createCreditScorePlan(\n requestOptions: ScorePlanRevision & { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ScorePlanCreateResponse>> {\n const { product_config_id, ...requestBody } = requestOptions;\n const query = new URLSearchParams({ product_config_id }).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody),\n ...(fetchOptions ?? {})\n });\n }\n\n async deleteCreditScorePlan(\n requestOptions: { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<void>> {\n const query = new URLSearchParams(requestOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n });\n }\n\n async getCreditScorePlanRevisions(\n requestOptions: ScorePlanRevisionsRequest & { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ScorePlanRevision[]>> {\n const { product_config_id, ...requestBody } = requestOptions;\n const query = new URLSearchParams({ product_config_id }).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${CreditScorePlannerService.#revisionPath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n body: JSON.stringify(requestBody),\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { Alert, Alerts, TotalAlertCounts } from 'resources/Alerts/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class AlertsService extends ApiClient {\n static #basePath = '/v1/events-alerts';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getAlerts(\n requestOptions?: {\n page_limit: number;\n next_page_token: string | null;\n disposition_status?: 'READ' | 'UNREAD';\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Alerts>> {\n const options = {\n page_limit: '10',\n next_page_token: '',\n ...(requestOptions ?? {})\n } as Record<string, string>;\n\n const query = new URLSearchParams(options).toString();\n\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}?${query}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getAlertById(\n { id }: { id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Alert>> {\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}/${id}`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async markAlertAsRead(\n { id }: { id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Alert>> {\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}/${id}/dispose`;\n return this.fetchWithAuth(endpoint, {\n method: 'PATCH',\n ...(fetchOptions ?? {})\n });\n }\n\n async getAlertCounts(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<TotalAlertCounts>> {\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}/counts`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport type {\n CreditReportMeta,\n CreditReport\n} from 'resources/CreditReports/types';\n\nexport class CreditReportsService extends ApiClient {\n static #basePath = '/v1/credit/reports';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getReports(\n requestOptions?: {\n product_config_id?: string;\n include_fields?: string;\n report_date?: string;\n report_between?: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditReport[]>> {\n const query = new URLSearchParams(requestOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditReportsService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getReportById(\n requestOptions: {\n id: string;\n include_fields?: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditReport>> {\n const { id, ...searchOptions } = requestOptions;\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditReportsService.#basePath}/${requestOptions.id}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getReportsMeta(\n requestOptions?: {\n product_config_id?: string;\n report_date?: string;\n report_between?: string;\n latest_only?: boolean;\n report_read?: boolean;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditReportMeta[]>> {\n const { latest_only, report_read, ...options } = requestOptions ?? {};\n\n const searchOptions: {\n product_config_id?: string;\n report_date?: string;\n report_between?: string;\n latest_only?: string;\n report_read?: string;\n } = {\n ...(options ?? {}),\n ...(latest_only ? { latest_only: latest_only.toString() } : {}),\n ...(report_read ? { report_read: report_read.toString() } : {})\n };\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditReportsService.#basePath}/meta${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getReportMetaById(\n requestOptions: {\n id: string;\n product_config_id?: string;\n include_fields?: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditReportMeta>> {\n const { id, ...searchOptions } = requestOptions;\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditReportsService.#basePath}/${id}/meta${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async markReportAsRead(\n requestOptions: {\n id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n const endpoint = `${this.baseUrl}${CreditReportsService.#basePath}/${requestOptions.id}/read`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'PUT',\n ...(fetchOptions ?? {})\n });\n }\n\n async orderReport(\n requestOptions: {\n product_config_id: string;\n include_fields?: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditReport>> {\n const searchOptions = {\n ...(requestOptions.include_fields\n ? { include_fields: requestOptions.include_fields.toString() }\n : {})\n };\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditReportsService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n product_config_id: requestOptions.product_config_id\n }),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport type {\n CreateCustomerOptions,\n Customer,\n CustomerSearchOptions,\n CustomerSearchResults\n} from 'resources/Customers/types';\n\nexport class CustomersService extends ApiClient {\n static #basePath = '/v1/customers';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getCustomerById(\n requestOptions: { customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Customer>> {\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/${requestOptions.customer_id}`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async updateCustomer(\n requestOptions: Pick<Customer, 'customer_id'> &\n Partial<Omit<Customer, 'customer_id'>>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Customer>> {\n const { customer_id, ...updates } = requestOptions;\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/${customer_id}`;\n return this.fetchWithAuth(endpoint, {\n method: 'PATCH',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(updates ?? {}),\n ...(fetchOptions ?? {})\n });\n }\n\n async deleteCustomer(\n requestOptions: { customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/${requestOptions.customer_id}`;\n return this.fetchWithAuth(endpoint, {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n });\n }\n\n async createCustomer(\n requestOptions: CreateCustomerOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Customer>> {\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestOptions ?? {}),\n ...(fetchOptions ?? {})\n });\n }\n\n async searchCustomers(\n requestOptions: CustomerSearchOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CustomerSearchResults>> {\n const { next_cursor = '', ...searchOptions } = requestOptions;\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/search`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ next_cursor, ...(searchOptions ?? {}) }),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient } from 'lib/ApiClient';\nimport type {\n ApiClientResponse,\n ConnectedSolutionsSDKConfig\n} from 'lib/SDKClient/types';\nimport type {\n AuthAnswersRequest,\n AuthQuestions\n} from 'resources/CustomerAuth/types';\n\nexport class CustomerAuthService extends ApiClient {\n static #basePath = '/v1/authentication';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getAuthQuestions(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<AuthQuestions>> {\n const endpoint = `${this.baseUrl}${CustomerAuthService.#basePath}/questions`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async submitAuthAnswers(\n answers: AuthAnswersRequest,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n const endpoint = `${this.baseUrl}${CustomerAuthService.#basePath}/questions`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(answers),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nimport type {\n CreateRegistrationsRequest,\n CreateRegistrationsResponse\n} from 'resources/Registrations/types';\n\nexport class RegistrationsService extends ApiClient {\n static #basePath = '/v1/registrations';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async createRegistration(\n requestOptions: CreateRegistrationsRequest,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreateRegistrationsResponse>> {\n const endpoint = `${this.baseUrl}${RegistrationsService.#basePath}`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestOptions ?? {}),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type {\n ProductConfig,\n ProductConfigsSearchOptions,\n ProductConfigs\n} from 'resources/ProductConfigs/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class ProductConfigsService extends ApiClient {\n static #basePath = '/v1/product-configs';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getProductConfigs(\n searchOptions: ProductConfigsSearchOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ProductConfigs>> {\n const { fromEntries, entries } = Object;\n const { isArray } = Array;\n\n const options = fromEntries(\n entries(searchOptions)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => [\n key,\n isArray(value) ? value.join(',') : value.toString()\n ])\n );\n const query = new URLSearchParams(options).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${ProductConfigsService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n ...(fetchOptions ? fetchOptions : {})\n });\n }\n\n async getProductConfigById(\n requestOptions: { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ProductConfig>> {\n const endpoint = `${this.baseUrl}${ProductConfigsService.#basePath}/${requestOptions.product_config_id}`;\n\n return this.fetchWithAuth(endpoint, {\n ...(fetchOptions ?? {})\n });\n }\n}\n","export function pascalToCamelCase(name: string): string {\n const result = `${name[0].toLowerCase()}${name.substring(1)}`.replace(\n 'Service',\n ''\n );\n\n return result;\n}\n\nexport const isNode =\n typeof process !== 'undefined' &&\n process.versions &&\n process.versions.node &&\n typeof window === 'undefined';\n","import {\n ConnectedSolutionsClientError,\n type ConnectedSolutionsClientRawError,\n type ConnectedSolutionsAPIErrorData\n} from 'lib/Error';\nimport { ENVIRONMENT_URLS } from 'src/globals';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient';\nimport { isNode } from 'utils';\n\nexport type BearerToken = {\n access_token: string;\n token_type: string;\n expires_in: number;\n expires: string;\n};\n\nexport type AuthCredentials = {\n grantType: 'client_credentials' | 'trusted_partner';\n clientId: string;\n clientSecret: string;\n customerId?: string;\n};\n\nexport type AuthServiceConfig = Omit<ConnectedSolutionsSDKConfig, 'token'>;\n\nexport class AuthService {\n config: AuthServiceConfig;\n #cache: Map<string, Promise<Response>>;\n #ttl: number | null = null;\n baseUrl = '';\n\n static #basePath = '/v1/oauth2/token';\n\n constructor(config: AuthServiceConfig) {\n this.config = config;\n this.baseUrl = ENVIRONMENT_URLS[config.environment ?? 'PRODUCTION'];\n this.#cache = new Map();\n }\n\n public async getAccessToken(credentials: AuthCredentials) {\n const isBrowser = !isNode;\n\n if (isBrowser) {\n throw ConnectedSolutionsClientError.generateError({\n type: 'sdk_error',\n message: 'getAccessToken is not supported in browser'\n });\n }\n\n try {\n const response = await this.#fetchToken(credentials);\n\n return {\n data: response,\n errors: undefined,\n meta: {\n status: 200,\n statusText: 'OK'\n }\n };\n } catch (e) {\n // don't cache errors\n this.clearCache();\n return {\n data: undefined,\n error: e,\n meta: {\n status: e.status,\n statusText: e.message\n }\n };\n }\n }\n\n public getCacheLength() {\n return this.#cache.size;\n }\n\n public clearCache(): void {\n const endpoint = `${this.baseUrl}${AuthService.#basePath}`;\n\n const cacheKeys = Array.from(this.#cache.keys()).filter((key) =>\n key.includes(endpoint)\n );\n\n for (const key of cacheKeys) {\n this.#cache.delete(key);\n }\n }\n\n async #fetchToken({\n grantType,\n clientId,\n clientSecret,\n customerId\n }: AuthCredentials) {\n this.#checkTokenExpiry();\n\n const endpoint = `${this.baseUrl}${AuthService.#basePath}`;\n\n const options = {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n credentials: 'include' as RequestCredentials,\n body: JSON.stringify({\n grant_type: grantType,\n client_id: clientId,\n client_secret: clientSecret,\n ...(grantType === 'trusted_partner'\n ? { partner_customer_id: customerId ?? '' }\n : {})\n })\n };\n\n const tokenRequest = await this.#executeRequest(endpoint, options);\n\n if (tokenRequest?.ok) {\n const tokenRequestClone = tokenRequest.clone();\n const accessToken = (await tokenRequestClone.json()) as BearerToken;\n\n if (this.#ttl === null) {\n this.#setTTL(accessToken.expires_in);\n }\n\n return accessToken;\n }\n\n // response was not ok\n let err: ConnectedSolutionsClientRawError;\n\n const errorMeta = {\n status: tokenRequest?.status,\n message: tokenRequest?.statusText || '',\n data: undefined\n };\n\n if (tokenRequest?.status === 401) {\n err = {\n type: 'auth_error',\n ...errorMeta\n };\n } else {\n err = {\n type: 'api_error',\n ...errorMeta\n };\n }\n\n if (\n tokenRequest?.headers.get('content-type')?.includes('application/json')\n ) {\n const errorResponseClone = tokenRequest.clone();\n const errorJson = (await errorResponseClone.json()) as {\n error: ConnectedSolutionsAPIErrorData;\n };\n err.data = errorJson.error;\n }\n\n throw ConnectedSolutionsClientError.generateError(err);\n }\n\n #setTTL(value: number | null) {\n const now = new Date().getTime();\n const oneHourInMilliseconds = 60 * 60 * 1000;\n const nextTimestamp = now + oneHourInMilliseconds;\n const nextState =\n value === null ? value : new Date(nextTimestamp).valueOf();\n\n this.#ttl = nextState;\n }\n\n #checkTokenExpiry() {\n const now = new Date(Date.now());\n const expires = new Date(this.#ttl ?? Number.NaN);\n const isTokenExpired = isAfter(now, expires);\n\n if (isTokenExpired) {\n this.#setTTL(null);\n this.#cache.clear();\n }\n }\n\n async #executeRequest(\n input: RequestInfo,\n init?: RequestInit\n ): Promise<Response | undefined> {\n const cacheKey = `${input}${JSON.stringify(init || {})}`;\n\n if (!this.#cache.has(cacheKey)) {\n const promise = fetch(input, init ?? {});\n this.#cache.set(cacheKey, promise);\n }\n\n return await this.#cache.get(cacheKey);\n }\n}\n\nfunction isAfter(date1: Date, date2: Date) {\n return date1 > date2;\n}\n","import * as resources from 'resources';\nimport { pascalToCamelCase } from 'utils';\nimport type { CreditScoresService } from 'resources/CreditScores';\nimport type { EntitlementsService } from 'resources/Entitlements';\nimport type {\n ConnectedSolutionsSDK,\n ConnectedSolutionsSDKConfig\n} from 'lib/SDKClient/types';\nimport type { CreditScoreSimulatorService } from 'resources/CreditScoreSimulator/CreditScoreSimulator';\nimport type { CreditScorePlannerService } from 'resources/CreditScorePlanner';\nimport type { CreditAttributesService } from 'resources/CreditAttributes/CreditAttributes';\nimport { AuthService } from 'lib/AuthClient/AuthClient';\nimport { ApiClient } from 'lib/ApiClient';\nimport type { AlertsService } from 'resources/Alerts';\nimport type { CreditReportsService } from 'resources/CreditReports';\nimport type { CustomersService } from 'resources/Customers';\nimport type { CustomerAuthService } from 'resources/CustomerAuth';\nimport type { RegistrationsService } from 'resources/Registrations';\nimport type { ProductConfigsService } from 'resources/ProductConfigs';\n// new service imports go here\n\nexport class SDKClient extends ApiClient implements ConnectedSolutionsSDK {\n static #instance: SDKClient | null = null;\n alerts: AlertsService;\n auth: AuthService;\n creditReports: CreditReportsService;\n creditScores: CreditScoresService;\n creditAttributes: CreditAttributesService;\n creditScorePlanner: CreditScorePlannerService;\n creditScoreSimulator: CreditScoreSimulatorService;\n customerAuth: CustomerAuthService;\n customers: CustomersService;\n entitlements: EntitlementsService;\n productConfigs: ProductConfigsService;\n registrations: RegistrationsService;\n // new services go here\n\n // The method is static as we need to access the method only through the class here\n static getInstance(config: ConnectedSolutionsSDKConfig): SDKClient {\n // if instance is already created return that otherwise create it\n if (SDKClient.#instance) {\n return SDKClient.#instance;\n }\n\n SDKClient.#instance = new SDKClient(config);\n return SDKClient.#instance;\n }\n\n static clearInstance() {\n SDKClient.#instance = null;\n }\n\n // constructor is private so that no other class can access it.\n private constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n for (const name in resources) {\n if (typeof resources[name] === 'function') {\n this[pascalToCamelCase(name)] = new resources[name](config);\n }\n }\n\n this.auth = new AuthService({\n environment: config.environment\n });\n }\n}\n\nexport function createSDK(userConfig: ConnectedSolutionsSDKConfig) {\n return SDKClient.getInstance(userConfig);\n}\n","import type {\n CreditScorePlan,\n FicoCreditScorePlanCompleted,\n VantageCreditScorePlanCompleted,\n FicoCreditScorePlanSet,\n VantageCreditScorePlanSet,\n VantageCreditScorePlan,\n FicoCreditScorePlan,\n ScorePlanRevisionsRequest,\n FicoScorePlanRevisionsRequest,\n VantageScorePlanRevisionsRequest,\n ScorePlanRevision,\n FicoScorePlanRevision,\n VantageScorePlanRevision\n} from 'resources/CreditScorePlanner/types';\n\nexport function isPlanCompleted(\n plan: CreditScorePlan\n): plan is FicoCreditScorePlanCompleted | VantageCreditScorePlanCompleted {\n return (\n plan.progress_status === 'TARGET_NOT_MET' ||\n plan.progress_status === 'COMPLETED'\n );\n}\n\nexport function isPlanSet(\n plan: CreditScorePlan\n): plan is\n | FicoCreditScorePlanCompleted\n | FicoCreditScorePlanSet\n | VantageCreditScorePlanCompleted\n | VantageCreditScorePlanSet {\n return (\n isPlanCompleted(plan) ||\n plan.progress_status === 'TARGET_SCORE_AND_PLAN_SET' ||\n plan.progress_status === 'ON_TRACK' ||\n plan.progress_status === 'OFF_TRACK'\n );\n}\n\nexport function isVantagePlan(\n plan: CreditScorePlan\n): plan is VantageCreditScorePlan {\n return plan.score_model.includes('VANTAGE');\n}\n\nexport function isFicoPlan(plan: CreditScorePlan): plan is FicoCreditScorePlan {\n return plan.score_model.includes('FICO');\n}\n\nexport function isFicoRevisionsRequest(\n request: ScorePlanRevisionsRequest\n): request is FicoScorePlanRevisionsRequest {\n return (request as FicoScorePlanRevisionsRequest).target_score !== undefined;\n}\n\nexport function isVantageRevisionsRequest(\n request: ScorePlanRevisionsRequest\n): request is VantageScorePlanRevisionsRequest {\n return (\n (request as VantageScorePlanRevisionsRequest).max_actions_per_plan !==\n undefined\n );\n}\n\nexport function isFicoRevision(\n revision: ScorePlanRevision\n): revision is FicoScorePlanRevision {\n return revision.score_model.includes('FICO');\n}\n\nexport function isVantageRevision(\n revision: ScorePlanRevision\n): revision is VantageScorePlanRevision {\n return revision.score_model.includes('VANTAGE');\n}\n","import type {\n CreditScoreSimulator,\n FicoScenario,\n FicoScenarioVariation,\n FicoScoreSimulator,\n Scenario,\n ScenarioVariation,\n VantageScenario,\n VantageScenarioVariation\n} from 'resources/CreditScoreSimulator/types';\n\nexport function isFicoSimulator(\n data?: CreditScoreSimulator\n): data is FicoScoreSimulator {\n return Boolean(data && 'best_action' in data);\n}\n\nexport function isVantageScenario(\n scenario?: Scenario\n): scenario is VantageScenario {\n return Boolean(scenario && 'simulated_score' in scenario);\n}\n\nexport function isFicoScenario(scenario: Scenario): scenario is FicoScenario {\n return !('simulated_score' in scenario);\n}\n\nexport function isFicoScenarioVariation(\n variation?: ScenarioVariation\n): variation is FicoScenarioVariation {\n return Boolean(\n variation &&\n 'slider_min_value' in variation &&\n 'slider_max_value' in variation\n );\n}\n\nexport function isVantageScenarioVariation(\n variation?: ScenarioVariation\n): variation is VantageScenarioVariation {\n return Boolean(\n variation && 'value' in variation && 'simulated_score' in variation\n );\n}\n"],"names":["generateError","rawError","ConnectedSolutionsClientApiError","ConnectedSolutionsClientAuthError","ConnectedSolutionsClientSDKError","ConnectedSolutionsClientUnknownError","ConnectedSolutionsClientError","raw","__publicField","_a","args","ENVIRONMENT_URLS","CONTENTSTACK_URLS","ApiClient","config","__privateAdd","_ApiClient_instances","environment","partialConfig","input","init","__privateMethod","validateConfig_fn","headers","options","error","e","response","err","apiError","errorJson","isJsonResponse_fn","_b","_CreditScoresService","fetchOptions","searchOptions","query","queryString","endpoint","__privateGet","_basePath","requestOptions","CreditScoresService","_EntitlementsService","entitlement_id","body","product_config_id","customer_id","search","EntitlementsService","_CreditAttributesService","CreditAttributesService","_CreditScoreSimulatorService","requestBody","CreditScoreSimulatorService","_CreditScorePlannerService","_revisionPath","CreditScorePlannerService","_AlertsService","id","AlertsService","_CreditReportsService","latest_only","report_read","CreditReportsService","_CustomersService","updates","next_cursor","CustomersService","_CustomerAuthService","answers","CustomerAuthService","_RegistrationsService","RegistrationsService","_ProductConfigsService","fromEntries","entries","isArray","_","value","key","ProductConfigsService","pascalToCamelCase","name","isNode","_AuthService","_AuthService_instances","_cache","_ttl","__privateSet","credentials","fetchToken_fn","cacheKeys","grantType","clientId","clientSecret","customerId","checkTokenExpiry_fn","tokenRequest","executeRequest_fn","accessToken","setTTL_fn","errorMeta","now","oneHourInMilliseconds","nextTimestamp","nextState","expires","isAfter","cacheKey","promise","AuthService","date1","date2","_SDKClient","resources","_instance","SDKClient","createSDK","userConfig","isPlanCompleted","plan","isPlanSet","isVantagePlan","isFicoPlan","isFicoRevisionsRequest","request","isVantageRevisionsRequest","isFicoRevision","revision","isVantageRevision","isFicoSimulator","data","isVantageScenario","scenario","isFicoScenario","isFicoScenarioVariation","variation","isVantageScenarioVariation"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../../src/lib/Error.ts","../../src/globals.ts","../../src/lib/ApiClient/ApiClient.ts","../../src/resources/CreditScores/CreditScores.ts","../../src/resources/Entitlements/Entitlements.ts","../../src/resources/CreditAttributes/CreditAttributes.ts","../../src/resources/CreditScoreSimulator/CreditScoreSimulator.ts","../../src/resources/CreditScorePlanner/CreditScorePlanner.ts","../../src/resources/Alerts/Alerts.ts","../../src/resources/CreditReports/typeGuards.ts","../../src/resources/CreditReports/CreditReports.ts","../../src/resources/Customers/Customers.ts","../../src/resources/CustomerAuth/CustomerAuth.ts","../../src/resources/Registrations/Registrations.ts","../../src/resources/ProductConfigs/ProductConfigs.ts","../../src/resources/IdentityHealthScore/IdentityHealthScore.ts","../../src/resources/DigitalIdentityManager/DigitalIdentityManager.ts","../../src/utils.ts","../../src/lib/AuthClient/AuthClient.ts","../../src/lib/SDKClient/SDKClient.ts","../../src/resources/CreditScorePlanner/typeGuards.ts","../../src/resources/CreditScoreSimulator/typeGuards.ts","../../src/resources/CreditScores/typeGuards.ts","../../src/resources/CreditAttributes/typeGuards.ts"],"sourcesContent":["export type ConnectedSolutionsAPIErrorType =\n | 'CLIENT_SIDE_ERROR'\n | 'AUTHENTICATION_ERROR'\n | 'RATE_LIMIT_ERROR'\n | 'SERVER_SIDE_ERROR';\n\nexport type ConnectedSolutionsAPIErrorData = {\n type: ConnectedSolutionsAPIErrorType;\n dev_url: string;\n code: string;\n message: string;\n};\n\nexport type ConnectedSolutionsSDKErrorTypes =\n | 'client_side_error'\n | 'authentication_error'\n | 'rate_limit_error'\n | 'sdk_error'\n | 'server_side_error';\n\nexport type ConnectedSolutionsClientRawError = {\n message: string;\n type: ConnectedSolutionsSDKErrorTypes;\n status?: number;\n data?: ConnectedSolutionsAPIErrorData;\n};\n\nfunction generateError(rawError: ConnectedSolutionsClientRawError) {\n switch (rawError.type) {\n case 'client_side_error':\n return new ConnectedSolutionsClientSideError(rawError);\n case 'authentication_error':\n return new ConnectedSolutionsClientAuthenticationError(rawError);\n case 'server_side_error':\n return new ConnectedSolutionsClientServerSideError(rawError);\n case 'rate_limit_error':\n return new ConnectedSolutionsClientRateLimitError(rawError);\n default:\n return new ConnectedSolutionsClientSDKError(rawError);\n }\n}\n\nexport class ConnectedSolutionsClientError extends Error {\n readonly message: string;\n readonly data?: ConnectedSolutionsAPIErrorData;\n readonly status?: number;\n\n constructor(raw: ConnectedSolutionsClientRawError) {\n super(raw.message);\n this.message = raw.data?.message || raw.message || '';\n this.data = raw.data;\n this.status = raw.status;\n }\n\n static generateError = generateError;\n}\n\nexport class ConnectedSolutionsClientSideError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientSideError';\n }\n}\n\nexport class ConnectedSolutionsClientAuthenticationError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientAuthenticationError';\n }\n}\n\nexport class ConnectedSolutionsClientServerSideError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientServerSideError';\n }\n}\n\nexport class ConnectedSolutionsClientSDKError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientSDKError';\n }\n}\n\nexport class ConnectedSolutionsClientRateLimitError extends ConnectedSolutionsClientError {\n constructor(args: ConnectedSolutionsClientRawError) {\n super(args);\n this.name = 'ConnectedSolutionsClientRateLimitError';\n }\n}\n\nexport function mapApiErrorTypeToSDKErrorType(\n apiErrorType?: ConnectedSolutionsAPIErrorType\n): ConnectedSolutionsSDKErrorTypes {\n switch (apiErrorType) {\n case 'CLIENT_SIDE_ERROR':\n return 'client_side_error';\n case 'AUTHENTICATION_ERROR':\n return 'authentication_error';\n case 'RATE_LIMIT_ERROR':\n return 'rate_limit_error';\n case 'SERVER_SIDE_ERROR':\n return 'server_side_error';\n default:\n return 'sdk_error'; // fallback\n }\n}\n\nexport function mapHttpStatusToSDKErrorType(\n status?: number\n): ConnectedSolutionsSDKErrorTypes {\n if (status === 401) {\n return 'authentication_error';\n }\n if (status === 429) {\n return 'rate_limit_error';\n }\n if (status && status >= 500) {\n return 'server_side_error';\n }\n if (status && status >= 400) {\n return 'client_side_error';\n }\n return 'sdk_error'; // fallback\n}\n","export const ENVIRONMENT_URLS = {\n PRODUCTION: 'https://connected-api.experian.com',\n SANDBOX: 'https://sandbox.connected-api.experian.com',\n UAT: 'https://uat.connected-api.experian.com',\n INTEGRATION: 'https://integration.connected-api.experian.com',\n DEVELOPMENT: 'https://develop.connected-api.experian.com'\n};\n\nexport const CONTENTSTACK_URLS = {\n PRODUCTION:\n 'https://unity-contentstack.integration.us-exp-api.experiancs.com',\n SANDBOX: 'https://unity-contentstack.dev.us-exp-api.experiancs.com',\n UAT: 'https://unity-contentstack.dev.us-exp-api.experiancs.com',\n INTEGRATION: 'https://unity-contentstack.dev.us-exp-api.experiancs.com',\n DEVELOPMENT: 'https://unity-contentstack.dev.us-exp-api.experiancs.com'\n};\n","import {\n type ConnectedSolutionsClientSideError,\n type ConnectedSolutionsClientAuthenticationError,\n ConnectedSolutionsClientError,\n type ConnectedSolutionsClientRawError,\n type ConnectedSolutionsClientSDKError,\n type ConnectedSolutionsClientServerSideError,\n type ConnectedSolutionsClientRateLimitError,\n type ConnectedSolutionsAPIErrorData,\n mapApiErrorTypeToSDKErrorType,\n mapHttpStatusToSDKErrorType\n} from 'lib/Error';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport { CONTENTSTACK_URLS, ENVIRONMENT_URLS } from 'globals';\n\nexport type ConnectedSolutionsClientMeta = {\n status: number;\n statusText: string;\n};\n\nexport type ConnectedSolutionsClientErrors =\n | ConnectedSolutionsClientSideError\n | ConnectedSolutionsClientAuthenticationError\n | ConnectedSolutionsClientServerSideError\n | ConnectedSolutionsClientRateLimitError\n | ConnectedSolutionsClientSDKError;\n\nexport type ApiClientResponse<DataType = Record<string, unknown>> =\n | {\n data: DataType;\n error: undefined;\n meta: ConnectedSolutionsClientMeta;\n }\n | {\n data: undefined;\n error: ConnectedSolutionsClientErrors;\n meta: ConnectedSolutionsClientMeta;\n };\n\nexport class ApiClient {\n config: ConnectedSolutionsSDKConfig;\n baseUrl = '';\n contentstackUrl = '';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n const defaultEnvironement = 'PRODUCTION';\n const environment = config.environment ?? defaultEnvironement;\n\n this.config = config;\n this.baseUrl = ENVIRONMENT_URLS[environment];\n this.contentstackUrl = CONTENTSTACK_URLS[environment];\n }\n\n #validateConfig(): void {\n if (!this.config.token) {\n const error: ConnectedSolutionsClientRawError = {\n type: 'sdk_error',\n message:\n 'You must first obtain and set a token before using an SDK method'\n };\n\n throw ConnectedSolutionsClientError.generateError(error);\n }\n }\n\n #isJsonResponse(response: Response) {\n return (\n response?.headers.get('content-type')?.includes('application/json') ||\n response?.headers\n .get('content-type')\n ?.includes('application/octet-stream')\n );\n }\n\n public setConfig(partialConfig: Partial<ConnectedSolutionsSDKConfig>) {\n if ('environment' in partialConfig) {\n this.config.environment = partialConfig.environment;\n }\n\n if ('token' in partialConfig) {\n this.config.token = partialConfig.token;\n }\n }\n\n public async fetchWithAuth<DataType>(\n input: RequestInfo,\n init?: RequestInit\n ): Promise<ApiClientResponse<DataType>> {\n try {\n this.#validateConfig();\n const headers =\n typeof Headers !== 'undefined' && new Headers(init?.headers);\n\n // biome-ignore lint/complexity/useLiteralKeys: works\n if (headers && !headers['Authorization']) {\n headers.set('Authorization', `Bearer ${this.config.token}`);\n }\n\n const options = {\n ...init,\n headers: headers ? headers : init?.headers || {}\n };\n\n const response = await this.fetchRequest<DataType>(input, options);\n\n return response;\n } catch (error) {\n const e = error as ConnectedSolutionsClientErrors;\n return {\n data: undefined,\n error: e,\n meta: {\n status: e.status ?? 500,\n statusText: e.message ?? ''\n }\n };\n }\n }\n\n public async fetchRequest<DataType>(\n input: RequestInfo,\n init?: RequestInit\n ): Promise<ApiClientResponse<DataType>> {\n try {\n this.#validateConfig();\n\n const response = await fetch(input, init);\n\n if (!response?.ok) {\n let err: ConnectedSolutionsClientRawError;\n\n const apiError: ConnectedSolutionsClientRawError = {\n type: 'sdk_error',\n status: response?.status,\n message: response?.statusText\n };\n\n if (\n response?.headers.get('content-type')?.includes('application/json')\n ) {\n const errorResponseClone = response.clone();\n const errorJson = (await errorResponseClone.json()) as {\n error: ConnectedSolutionsAPIErrorData;\n };\n apiError.data = errorJson.error;\n\n // Map API error type to SDK error type\n apiError.type = mapApiErrorTypeToSDKErrorType(errorJson.error.type);\n } else {\n apiError.type = mapHttpStatusToSDKErrorType(response?.status);\n }\n\n throw ConnectedSolutionsClientError.generateError(apiError);\n }\n\n if (!this.#isJsonResponse(response)) {\n return {\n data: undefined,\n error: undefined,\n meta: {\n status: response.status,\n statusText: response.statusText\n }\n } as ApiClientResponse<DataType>;\n }\n\n const responseClone = response.clone();\n const json = await responseClone.json();\n\n return {\n data: json,\n error: undefined,\n meta: {\n status: response.status,\n statusText: response.statusText\n }\n };\n } catch (error) {\n const e = error as ConnectedSolutionsClientErrors;\n return {\n data: undefined,\n error: e,\n meta: {\n status: e.status ?? 500,\n statusText: e.message\n }\n };\n }\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\nimport type { ApiVersion } from 'lib/shared/types';\n\nimport type {\n GetCreditScoreResponse,\n PostCreditScoreResponse,\n BaseCreditScoreRequestOptions\n} from 'resources/CreditScores/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class CreditScoresService extends ApiClient {\n static #basePath = '/credit/scores';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n /**\n * Get the versioned API path for credit scores.\n * @param version The API version to use.\n * @returns The versioned API path.\n */\n #getVersionedPath<Version extends ApiVersion>(\n version: Version = 'v1' as Version\n ): string {\n return `/${version}${CreditScoresService.#basePath}`;\n }\n\n async getCreditScores<Version extends ApiVersion = 'v1'>(\n options?: BaseCreditScoreRequestOptions<Version> & {\n product_config_id?: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<GetCreditScoreResponse<Version>>> {\n // Determine version at runtime from options\n // Default to 'v1' if not specified\n const version = options?.version;\n const versionedPath = this.#getVersionedPath(version);\n\n const searchOptions: {\n product_config_id?: string;\n include_factors?: string;\n include_ingredients?: string;\n } = {\n ...(options?.product_config_id\n ? { product_config_id: options.product_config_id }\n : {}),\n ...(options?.include_factors\n ? { include_factors: options.include_factors.toString() }\n : {}),\n ...(options?.include_ingredients\n ? { include_ingredients: options.include_ingredients.toString() }\n : {})\n };\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${versionedPath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async orderCreditScore<Version extends ApiVersion = 'v1'>(\n requestOptions: BaseCreditScoreRequestOptions<Version> & {\n product_config_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<PostCreditScoreResponse<Version>>> {\n // Determine version at runtime\n const version = requestOptions.version;\n const versionedPath = this.#getVersionedPath(version);\n\n const searchOptions: {\n include_factors?: string;\n include_ingredients?: string;\n } = {\n ...(requestOptions?.include_factors\n ? { include_factors: requestOptions.include_factors.toString() }\n : {}),\n ...(requestOptions?.include_ingredients\n ? { include_ingredients: requestOptions.include_ingredients.toString() }\n : {})\n };\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${versionedPath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n product_config_id: requestOptions.product_config_id\n }),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient/ApiClient';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport type {\n Entitlement,\n Entitlements,\n ProductEligibility,\n EntitleCustomerResponse\n} from 'resources/Entitlements/types';\n\nexport class EntitlementsService extends ApiClient {\n static #basePath = '/v1/entitlements';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getEntitlements(\n requestOptions: { customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlements>> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}?customer_id=${requestOptions.customer_id}`,\n fetchOptions\n );\n }\n\n async getEntitlementById(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}`,\n fetchOptions\n );\n }\n\n async createEntitlement(\n requestOptions: {\n name: string;\n description: string;\n product_config_ids: string[];\n customer_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}`,\n {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestOptions),\n ...(fetchOptions ?? {})\n }\n );\n }\n\n async updateEntitlement(\n requestOptions: {\n entitlement_id: string;\n product_config_ids: string[];\n customer_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { entitlement_id, ...body } = requestOptions;\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}`,\n {\n method: 'PUT',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(body),\n ...(fetchOptions ?? {})\n }\n );\n }\n\n async deleteEntitlement(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n return this.fetchWithAuth(\n `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}`,\n {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n }\n );\n }\n\n async activateEntitlement(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/activate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async deactivateEntitlement(\n { entitlement_id }: { entitlement_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/deactivate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async entitleCustomerToNewProduct(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n customer_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<EntitleCustomerResponse>> {\n const { product_config_id, entitlement_id, customer_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}/activate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {}),\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'X-Customer-ID': customer_id\n }\n });\n }\n\n async activateProduct(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { product_config_id, entitlement_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}/activate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async deactivateProduct(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { product_config_id, entitlement_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}/deactivate`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n ...(fetchOptions ?? {})\n });\n }\n\n async removeProductFromEntitlement(\n requestOptions: {\n product_config_id: string;\n entitlement_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Entitlement>> {\n const { product_config_id, entitlement_id } = requestOptions;\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/${entitlement_id}/products/${product_config_id}`;\n return this.fetchWithAuth(endpoint, {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n });\n }\n\n async getProductEligibility(\n requestOptions: { product_config_id: string; customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ProductEligibility>> {\n const search = new URLSearchParams(requestOptions).toString();\n const endpoint = `${this.baseUrl}${EntitlementsService.#basePath}/eligibility?${search}`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\nimport type { ApiVersion } from 'lib/shared/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nimport type {\n BaseCreditAttributeRequestOptions,\n GetCreditAttributeResponse\n} from 'resources/CreditAttributes/types';\n\nexport class CreditAttributesService extends ApiClient {\n static #basePath = '/credit/attributes';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n /**\n * Get the versioned API path for credit attributes.\n * @param version The API version to use.\n * @returns The versioned API path.\n */\n #getVersionedPath<Version extends ApiVersion>(\n version: Version = 'v1' as Version\n ): string {\n return `/${version}${CreditAttributesService.#basePath}`;\n }\n\n async getCreditAttributes<Version extends ApiVersion = 'v1'>(\n options?: BaseCreditAttributeRequestOptions<Version> & {\n product_config_id?: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<GetCreditAttributeResponse<Version>>> {\n // Determine version at runtime from options\n // Default to 'v1' if not specified\n const version = options?.version;\n const versionedPath = this.#getVersionedPath(version);\n\n const endpoint = `${this.baseUrl}${versionedPath}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type {\n CreditScoreSimulator,\n CreditScoreSimulatorPostRequest,\n CreditScoreSimulatorPostResponse,\n SimulationCategoryType\n} from 'resources/CreditScoreSimulator/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class CreditScoreSimulatorService extends ApiClient {\n static #basePath = '/v1/credit/tools/simulator';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getSimulations(\n requestOptions: {\n product_config_id: string;\n run_all?: boolean;\n cateogory?: SimulationCategoryType;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScoreSimulator>> {\n const searchOptions = {\n ...requestOptions,\n ...(requestOptions?.run_all\n ? { run_all: requestOptions.run_all.toString() }\n : {})\n } as Record<string, string>;\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScoreSimulatorService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async simulateScenario(\n requestOptions: CreditScoreSimulatorPostRequest & {\n product_config_id: string;\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScoreSimulatorPostResponse>> {\n const { product_config_id, ...requestBody } = requestOptions;\n const query = new URLSearchParams({ product_config_id }).toString();\n const queryString = query ? `?${query}` : '';\n return this.fetchWithAuth(\n `${this.baseUrl}${CreditScoreSimulatorService.#basePath}${queryString}`,\n {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody),\n ...(fetchOptions ?? {})\n }\n );\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type {\n CreditScorePlan,\n ScorePlanCreateResponse,\n ScorePlanRevision,\n ScorePlanRevisionsRequest\n} from 'resources/CreditScorePlanner/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class CreditScorePlannerService extends ApiClient {\n static #basePath = '/v1/credit/tools/planners';\n static #revisionPath = '/revisions';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getCreditScorePlan(\n requestOptions: { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreditScorePlan>> {\n const query = new URLSearchParams(requestOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n ...(fetchOptions ?? {})\n });\n }\n\n async createCreditScorePlan(\n requestOptions: ScorePlanRevision & { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ScorePlanCreateResponse>> {\n const { product_config_id, ...requestBody } = requestOptions;\n const query = new URLSearchParams({ product_config_id }).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody),\n ...(fetchOptions ?? {})\n });\n }\n\n async deleteCreditScorePlan(\n requestOptions: { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<void>> {\n const query = new URLSearchParams(requestOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n });\n }\n\n async getCreditScorePlanRevisions(\n requestOptions: ScorePlanRevisionsRequest & { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ScorePlanRevision[]>> {\n const { product_config_id, ...requestBody } = requestOptions;\n const query = new URLSearchParams({ product_config_id }).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${CreditScorePlannerService.#basePath}${CreditScorePlannerService.#revisionPath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n body: JSON.stringify(requestBody),\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { Alert, Alerts, TotalAlertCounts } from 'resources/Alerts/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class AlertsService extends ApiClient {\n static #basePath = '/v1/events-alerts';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getAlerts(\n requestOptions?: {\n page_limit: number;\n next_page_token: string | null;\n disposition_status?: 'READ' | 'UNREAD';\n },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Alerts>> {\n const options = {\n page_limit: '10',\n next_page_token: '',\n ...(requestOptions ?? {})\n } as Record<string, string>;\n\n const query = new URLSearchParams(options).toString();\n\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}?${query}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getAlertById(\n { id }: { id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Alert>> {\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}/${id}`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async markAlertAsRead(\n { id }: { id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Alert>> {\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}/${id}/dispose`;\n return this.fetchWithAuth(endpoint, {\n method: 'PATCH',\n ...(fetchOptions ?? {})\n });\n }\n\n async getAlertCounts(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<TotalAlertCounts>> {\n const endpoint = `${this.baseUrl}${AlertsService.#basePath}/counts`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n}\n","import type { ApiVersion } from 'lib/shared/types';\nimport type {\n GetCreditReportRequestOptions,\n GetCreditReportByIdRequestOptions,\n PostCreditReportRequestOptions\n} from './types';\n\nexport function isV1Options<Version extends { version?: ApiVersion }>(\n options: Version | undefined\n): options is Version & { version?: 'v1' } {\n return !options?.version || options?.version === 'v1';\n}\n\nexport function isV2Options<Version extends { version?: ApiVersion }>(\n options: Version | undefined\n): options is Version & { version?: 'v2' } {\n return options?.version === 'v2';\n}\n\nexport function hasIncludeFields<\n RequestType extends\n | GetCreditReportRequestOptions<ApiVersion>\n | GetCreditReportByIdRequestOptions<ApiVersion>\n | PostCreditReportRequestOptions<ApiVersion>\n>(\n options: RequestType | undefined\n): options is RequestType & { include_fields?: string } {\n return (\n options !== undefined &&\n isV1Options(options) &&\n 'include_fields' in options &&\n typeof options.include_fields === 'string'\n );\n}\n\nexport function hasGetReportsFields_V1<\n RequestType extends GetCreditReportRequestOptions<ApiVersion>\n>(\n options: RequestType | undefined\n): options is RequestType & {\n include_fields?: string;\n report_date?: string;\n product_config_id?: string;\n report_between?: string;\n} {\n return (\n options !== undefined &&\n isV1Options(options) &&\n (('include_fields' in options &&\n typeof options.include_fields === 'string') ||\n ('report_date' in options && typeof options.report_date === 'string') ||\n ('product_config_id' in options &&\n typeof options.product_config_id === 'string') ||\n ('report_between' in options &&\n typeof options.report_between === 'string'))\n );\n}\n\nexport function hasGetReportsFields_V2<\n RequestType extends GetCreditReportRequestOptions<ApiVersion>\n>(\n options: RequestType | undefined\n): options is RequestType & {\n product_config_id?: string;\n report_between?: string;\n} {\n return (\n options !== undefined &&\n isV2Options(options) &&\n (('product_config_id' in options &&\n typeof options.product_config_id === 'string') ||\n ('report_between' in options &&\n typeof options.report_between === 'string'))\n );\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport type { ApiVersion } from 'lib/shared/types';\nimport type {\n GetCreditReportResponse,\n GetCreditReportRequestOptions,\n GetCreditReportByIdRequestOptions,\n GetCreditReportMetaRequestOptions,\n GetCreditReportMetaResponse,\n GetCreditReportMetaByIdResponse,\n GetCreditReportMetaByIdRequestOptions,\n PostCreditReportResponse,\n PostCreditReportRequestOptions,\n MarkCreditReportAsRead,\n MarkCreditReportReadRequestOptions_V2,\n GetCreditReportByIdResponse\n} from 'resources/CreditReports/types';\n\nimport {\n hasIncludeFields,\n hasGetReportsFields_V1,\n hasGetReportsFields_V2\n} from 'resources/CreditReports/typeGuards';\n\nexport class CreditReportsService extends ApiClient {\n static #basePath = '/credit/reports';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n /**\n * Get the versioned API path for credit reports.\n * @param version The API version to use.\n * @returns The versioned API path.\n */\n #getVersionedPath<Version extends ApiVersion>(\n version: Version = 'v1' as Version\n ): string {\n return `/${version}${CreditReportsService.#basePath}`;\n }\n\n async getReports<Version extends ApiVersion = 'v1'>(\n requestOptions?: GetCreditReportRequestOptions<Version>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<GetCreditReportResponse<Version>>> {\n // Determine version at runtime from options\n // Default to 'v1' if not specified\n const version = requestOptions?.version;\n const versionedPath = this.#getVersionedPath(version);\n const searchOptions: Record<string, string> = {};\n\n // Check v1 options\n if (hasGetReportsFields_V1(requestOptions)) {\n if (requestOptions.report_between) {\n searchOptions.report_between = requestOptions.report_between.toString();\n }\n if (requestOptions.include_fields) {\n searchOptions.include_fields = requestOptions.include_fields.toString();\n }\n if (requestOptions.report_date) {\n searchOptions.report_date = requestOptions.report_date.toString();\n }\n if (requestOptions.product_config_id) {\n searchOptions.product_config_id =\n requestOptions.product_config_id.toString();\n }\n }\n\n // Check v2 options\n if (hasGetReportsFields_V2(requestOptions)) {\n if (requestOptions.product_config_id) {\n searchOptions.product_config_id =\n requestOptions.product_config_id.toString();\n }\n if (requestOptions.report_between) {\n searchOptions.report_between = requestOptions.report_between.toString();\n }\n }\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${versionedPath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getReportById<Version extends ApiVersion = 'v1'>(\n requestOptions: GetCreditReportByIdRequestOptions<Version>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<GetCreditReportMetaByIdResponse<Version>>> {\n const { id, version } = requestOptions;\n const versionedPath = this.#getVersionedPath(version);\n\n const searchOptions: Record<string, string> = {};\n\n // Check if include_fields exists if v1 is called\n if (hasIncludeFields(requestOptions)) {\n searchOptions.include_fields = requestOptions.include_fields.toString();\n }\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${versionedPath}/${id}${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getReportsMeta<Version extends ApiVersion>(\n requestOptions?: GetCreditReportMetaRequestOptions<Version>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<GetCreditReportMetaResponse<Version>>> {\n const { version, latest_only, report_read, ...options } =\n requestOptions ?? {};\n const versionedPath = this.#getVersionedPath(version);\n\n const searchOptions: {\n product_config_id?: string;\n report_date?: string;\n report_between?: string;\n latest_only?: string;\n report_read?: string;\n } = {\n ...(options ?? {}),\n ...(latest_only ? { latest_only: latest_only.toString() } : {}),\n ...(report_read ? { report_read: report_read.toString() } : {})\n };\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${versionedPath}/meta${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getReportMetaById<Version extends ApiVersion = 'v1'>(\n requestOptions: GetCreditReportMetaByIdRequestOptions<Version>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<GetCreditReportMetaByIdResponse<Version>>> {\n const { id, version, ...searchOptions } = requestOptions;\n const versionedPath = this.#getVersionedPath(version);\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${versionedPath}/${id}/meta${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async markReportAsRead<Version extends ApiVersion = 'v1'>(\n requestOptions: MarkCreditReportAsRead<Version>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n const { id, version } = requestOptions;\n const versionedPath = this.#getVersionedPath(version);\n const baseEndpoint = `${this.baseUrl}${versionedPath}`;\n\n if (version === 'v2') {\n const endpoint = `${baseEndpoint}/${id}/disposition`;\n const dispositionRequestOptions =\n requestOptions as MarkCreditReportReadRequestOptions_V2<Version>;\n\n return this.fetchWithAuth(endpoint, {\n method: 'PATCH',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n disposition: dispositionRequestOptions.disposition\n }),\n ...(fetchOptions ?? {})\n });\n }\n const endpoint = `${baseEndpoint}/${id}/read`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'PUT',\n ...(fetchOptions ?? {})\n });\n }\n\n async orderReport<Version extends ApiVersion = 'v1'>(\n requestOptions: PostCreditReportRequestOptions<Version>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<PostCreditReportResponse<Version>>> {\n const searchOptions: Record<string, string> = {};\n const version = requestOptions?.version;\n const versionedPath = this.#getVersionedPath(version);\n\n // Check if include_fields exists if v1 is called\n if (hasIncludeFields(requestOptions)) {\n searchOptions.include_fields = requestOptions.include_fields.toString();\n }\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${versionedPath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n product_config_id: requestOptions.product_config_id\n }),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\nimport type {\n CreateCustomerOptions,\n Customer,\n CustomerSearchOptions,\n CustomerSearchResults\n} from 'resources/Customers/types';\n\nexport class CustomersService extends ApiClient {\n static #basePath = '/v1/customers';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getCustomerById(\n requestOptions: { customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Customer>> {\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/${requestOptions.customer_id}`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async updateCustomer(\n requestOptions: Pick<Customer, 'customer_id'> &\n Partial<Omit<Customer, 'customer_id'>>,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Customer>> {\n const { customer_id, ...updates } = requestOptions;\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/${customer_id}`;\n return this.fetchWithAuth(endpoint, {\n method: 'PATCH',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(updates ?? {}),\n ...(fetchOptions ?? {})\n });\n }\n\n async deleteCustomer(\n requestOptions: { customer_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/${requestOptions.customer_id}`;\n return this.fetchWithAuth(endpoint, {\n method: 'DELETE',\n ...(fetchOptions ?? {})\n });\n }\n\n async createCustomer(\n requestOptions: CreateCustomerOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<Customer>> {\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestOptions ?? {}),\n ...(fetchOptions ?? {})\n });\n }\n\n async searchCustomers(\n requestOptions: CustomerSearchOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CustomerSearchResults>> {\n const { next_cursor = '', ...searchOptions } = requestOptions;\n const endpoint = `${this.baseUrl}${CustomersService.#basePath}/search`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ next_cursor, ...(searchOptions ?? {}) }),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient } from 'lib/ApiClient';\nimport type {\n ApiClientResponse,\n ConnectedSolutionsSDKConfig\n} from 'lib/SDKClient/types';\nimport type {\n AuthAnswersRequest,\n AuthQuestions\n} from 'resources/CustomerAuth/types';\n\nexport class CustomerAuthService extends ApiClient {\n static #basePath = '/v1/authentication';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getAuthQuestions(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<AuthQuestions>> {\n const endpoint = `${this.baseUrl}${CustomerAuthService.#basePath}/questions`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async submitAuthAnswers(\n answers: AuthAnswersRequest,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse> {\n const endpoint = `${this.baseUrl}${CustomerAuthService.#basePath}/questions`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(answers),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nimport type {\n CreateRegistrationsRequest,\n CreateRegistrationsResponse\n} from 'resources/Registrations/types';\n\nexport class RegistrationsService extends ApiClient {\n static #basePath = '/v1/registrations';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async createRegistration(\n requestOptions: CreateRegistrationsRequest,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<CreateRegistrationsResponse>> {\n const endpoint = `${this.baseUrl}${RegistrationsService.#basePath}`;\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestOptions ?? {}),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\n\nimport type {\n ProductConfig,\n ProductConfigsSearchOptions,\n ProductConfigs\n} from 'resources/ProductConfigs/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class ProductConfigsService extends ApiClient {\n static #basePath = '/v1/product-configs';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getProductConfigs(\n searchOptions: ProductConfigsSearchOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ProductConfigs>> {\n const { fromEntries, entries } = Object;\n const { isArray } = Array;\n\n const options = fromEntries(\n entries(searchOptions)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => [\n key,\n isArray(value) ? value.join(',') : value.toString()\n ])\n );\n const query = new URLSearchParams(options).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${ProductConfigsService.#basePath}${queryString}`;\n\n return this.fetchWithAuth(endpoint, {\n ...(fetchOptions ? fetchOptions : {})\n });\n }\n\n async getProductConfigById(\n requestOptions: { product_config_id: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<ProductConfig>> {\n const endpoint = `${this.baseUrl}${ProductConfigsService.#basePath}/${requestOptions.product_config_id}`;\n\n return this.fetchWithAuth(endpoint, {\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient/ApiClient';\n\nimport type {\n IHSSurvey,\n IHSSubmitSurveyRequest,\n IHSSubmitSurveyResponse,\n IHSScoreDetails,\n IHSPlan,\n IHSCreatePlanResponse,\n IHSUpdateActionRequest,\n IHSUpdateActionResponse,\n IHSGetPlanRequest\n} from 'resources/IdentityHealthScore/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class IdentityHealthScoreService extends ApiClient {\n static #basePath = '/v1/ihs';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n async getSurvey(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<IHSSurvey>> {\n const endpoint = `${this.baseUrl}${IdentityHealthScoreService.#basePath}/surveys`;\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async submitSurvey(\n requestOptions: IHSSubmitSurveyRequest,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<IHSSubmitSurveyResponse>> {\n const endpoint = `${this.baseUrl}${IdentityHealthScoreService.#basePath}/surveys`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestOptions),\n ...(fetchOptions ?? {})\n });\n }\n\n async getScore(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<IHSScoreDetails>> {\n const endpoint = `${this.baseUrl}${IdentityHealthScoreService.#basePath}/scores?latest=TRUE`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async getPlan(\n requestOptions: IHSGetPlanRequest,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<IHSPlan>> {\n const searchOptions: {\n cursor?: string;\n action_status: string;\n count?: string;\n } = {\n action_status: requestOptions.action_status,\n ...(requestOptions.cursor ? { cursor: requestOptions.cursor } : {}),\n ...(requestOptions.count\n ? { count: requestOptions.count.toString() }\n : {})\n };\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${IdentityHealthScoreService.#basePath}/plans${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n async createPlan(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<IHSCreatePlanResponse>> {\n const endpoint = `${this.baseUrl}${IdentityHealthScoreService.#basePath}/plans`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({}),\n ...(fetchOptions ?? {})\n });\n }\n\n async updateAction(\n requestOptions: { action_id: string } & IHSUpdateActionRequest,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<IHSUpdateActionResponse>> {\n const { action_id, ...body } = requestOptions;\n const endpoint = `${this.baseUrl}${IdentityHealthScoreService.#basePath}/plans/actions/${action_id}`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'PUT',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(body),\n ...(fetchOptions ?? {})\n });\n }\n}\n","import { ApiClient, type ApiClientResponse } from 'lib/ApiClient';\nimport type {\n DIMGetScansResponse,\n DIMScanDetail,\n DIMGetScansMetaResponse,\n DIMGetBrokersResponse,\n DIMGetBrokerByIdResponse,\n DIMBrokerGroupDetail,\n DIMPostScanResponse,\n DIMBrokerGroupActionResponse,\n DIMGetScansOptions,\n DIMGetScansMetaOptions,\n DIMPostScanOptions\n} from 'resources/DigitalIdentityManager/types';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient/types';\n\nexport class DigitalIdentityManagerService extends ApiClient {\n static #basePath = '/v1/dim';\n\n constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n }\n\n /**\n * Create a new discovery scan\n * POST /v1/dim/scans\n */\n async createScan(\n options: DIMPostScanOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMPostScanResponse>> {\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/scans`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n product_config_id: options.product_config_id\n }),\n ...(fetchOptions ?? {})\n });\n }\n\n /**\n * Get scan results\n * GET /v1/dim/scans\n */\n async getScans(\n options?: DIMGetScansOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMGetScansResponse>> {\n const searchOptions: Record<string, string> = {};\n\n if (options?.product_config_id) {\n searchOptions.product_config_id = options.product_config_id;\n }\n if (options?.scan_between) {\n searchOptions.scan_between = options.scan_between;\n }\n if (options?.cursor) {\n searchOptions.cursor = options.cursor;\n }\n if (options?.count) {\n searchOptions.count = options.count.toString();\n }\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/scans${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n /**\n * Get scan by ID\n * GET /v1/dim/scans/{scan_id}\n */\n async getScanById(\n requestOptions: { scanId: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMScanDetail>> {\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/scans/${requestOptions.scanId}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n /**\n * Get scan meta data details\n * GET /v1/dim/scans/meta\n */\n async getScansMetadata(\n options?: DIMGetScansMetaOptions,\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMGetScansMetaResponse>> {\n const searchOptions: Record<string, string> = {};\n\n if (options?.product_config_id) {\n searchOptions.product_config_id = options.product_config_id;\n }\n if (options?.scan_between) {\n searchOptions.scan_between = options.scan_between;\n }\n if (options?.most_recent) {\n searchOptions.most_recent = 'TRUE';\n }\n\n const query = new URLSearchParams(searchOptions).toString();\n const queryString = query ? `?${query}` : '';\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/scans/meta${queryString}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n /**\n * Get brokers details\n * GET /v1/dim/brokers\n */\n async getBrokers(\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMGetBrokersResponse>> {\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/brokers`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n /**\n * Get a broker detail\n * GET /v1/dim/brokers/{broker_id}\n */\n async getBrokerById(\n requestOptions: { brokerId: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMGetBrokerByIdResponse>> {\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/brokers/${requestOptions.brokerId}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n /**\n * Get brokers details for a scan\n * GET /v1/dim/scans/{scan_id}/brokers\n */\n async getBrokersByScanId(\n requestOptions: { scanId: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMGetBrokersResponse>> {\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/scans/${requestOptions.scanId}/brokers`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n /**\n * Get brokers group detail\n * GET /v1/dim/brokers/groups/{group_id}\n */\n async getBrokersByGroupId(\n requestOptions: { groupId: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMBrokerGroupDetail>> {\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/brokers/groups/${requestOptions.groupId}`;\n\n return this.fetchWithAuth(endpoint, fetchOptions);\n }\n\n /**\n * Update user action for removal (disposition a scan removal)\n * POST /v1/dim/brokers/groups/{group_id}/action\n * Returns 202 Accepted with group_id in response body\n * Note: Per OAS 1.0.29, this endpoint doesn't accept a request body\n */\n async updateBrokerGroupAction(\n requestOptions: { groupId: string },\n fetchOptions?: RequestInit\n ): Promise<ApiClientResponse<DIMBrokerGroupActionResponse>> {\n const endpoint = `${this.baseUrl}${DigitalIdentityManagerService.#basePath}/brokers/groups/${requestOptions.groupId}/action`;\n\n return this.fetchWithAuth(endpoint, {\n method: 'POST',\n headers: {\n ...(fetchOptions?.headers ?? {}),\n 'Content-Type': 'application/json'\n },\n ...(fetchOptions ?? {})\n });\n }\n}\n","export function pascalToCamelCase(name: string): string {\n const result = `${name[0].toLowerCase()}${name.substring(1)}`.replace(\n 'Service',\n ''\n );\n\n return result;\n}\n\nexport const isNode =\n typeof process !== 'undefined' &&\n process.versions &&\n process.versions.node &&\n typeof window === 'undefined';\n","import {\n ConnectedSolutionsClientError,\n type ConnectedSolutionsClientRawError,\n type ConnectedSolutionsAPIErrorData,\n mapApiErrorTypeToSDKErrorType,\n mapHttpStatusToSDKErrorType\n} from 'lib/Error';\nimport { ENVIRONMENT_URLS } from 'src/globals';\nimport type { ConnectedSolutionsSDKConfig } from 'lib/SDKClient';\nimport { isNode } from 'utils';\n\nexport type BearerToken = {\n access_token: string;\n token_type: string;\n expires_in: number;\n expires: string;\n};\n\nexport type AuthCredentials = {\n grantType: 'client_credentials' | 'trusted_partner';\n clientId: string;\n clientSecret: string;\n customerId?: string;\n};\n\nexport type AuthServiceConfig = Omit<ConnectedSolutionsSDKConfig, 'token'>;\n\nexport class AuthService {\n config: AuthServiceConfig;\n #cache: Map<string, Promise<Response>>;\n #ttl: number | null = null;\n baseUrl = '';\n\n static #basePath = '/v1/oauth2/token';\n\n constructor(config: AuthServiceConfig) {\n this.config = config;\n this.baseUrl = ENVIRONMENT_URLS[config.environment ?? 'PRODUCTION'];\n this.#cache = new Map();\n }\n\n public async getAccessToken(credentials: AuthCredentials) {\n const isBrowser = !isNode;\n\n if (isBrowser) {\n throw ConnectedSolutionsClientError.generateError({\n type: 'sdk_error',\n message: 'getAccessToken is not supported in browser'\n });\n }\n\n try {\n const response = await this.#fetchToken(credentials);\n\n return {\n data: response,\n errors: undefined,\n meta: {\n status: 200,\n statusText: 'OK'\n }\n };\n } catch (e) {\n // don't cache errors\n this.clearCache();\n return {\n data: undefined,\n error: e,\n meta: {\n status: e.status,\n statusText: e.message\n }\n };\n }\n }\n\n public getCacheLength() {\n return this.#cache.size;\n }\n\n public clearCache(): void {\n const endpoint = `${this.baseUrl}${AuthService.#basePath}`;\n\n const cacheKeys = Array.from(this.#cache.keys()).filter((key) =>\n key.includes(endpoint)\n );\n\n for (const key of cacheKeys) {\n this.#cache.delete(key);\n }\n }\n\n async #fetchToken({\n grantType,\n clientId,\n clientSecret,\n customerId\n }: AuthCredentials) {\n this.#checkTokenExpiry();\n\n const endpoint = `${this.baseUrl}${AuthService.#basePath}`;\n\n const options = {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n credentials: 'include' as RequestCredentials,\n body: JSON.stringify({\n grant_type: grantType,\n client_id: clientId,\n client_secret: clientSecret,\n ...(grantType === 'trusted_partner'\n ? { partner_customer_id: customerId ?? '' }\n : {})\n })\n };\n\n const tokenRequest = await this.#executeRequest(endpoint, options);\n\n if (tokenRequest?.ok) {\n const tokenRequestClone = tokenRequest.clone();\n const accessToken = (await tokenRequestClone.json()) as BearerToken;\n\n if (this.#ttl === null) {\n this.#setTTL(accessToken.expires_in);\n }\n\n return accessToken;\n }\n\n // response was not ok\n const err: ConnectedSolutionsClientRawError = {\n type: 'sdk_error', // fallback\n status: tokenRequest?.status,\n message: tokenRequest?.statusText || '',\n data: undefined\n };\n\n if (\n tokenRequest?.headers.get('content-type')?.includes('application/json')\n ) {\n const errorResponseClone = tokenRequest.clone();\n const errorJson = (await errorResponseClone.json()) as {\n error: ConnectedSolutionsAPIErrorData;\n };\n err.data = errorJson.error;\n\n // Map API error type to SDK error type\n err.type = mapApiErrorTypeToSDKErrorType(errorJson.error.type);\n } else {\n // Map HTTP status code to SDK error type\n err.type = mapHttpStatusToSDKErrorType(tokenRequest?.status);\n }\n\n throw ConnectedSolutionsClientError.generateError(err);\n }\n\n #setTTL(value: number | null) {\n const now = new Date().getTime();\n const oneHourInMilliseconds = 60 * 60 * 1000;\n const nextTimestamp = now + oneHourInMilliseconds;\n const nextState =\n value === null ? value : new Date(nextTimestamp).valueOf();\n\n this.#ttl = nextState;\n }\n\n #checkTokenExpiry() {\n const now = new Date(Date.now());\n const expires = new Date(this.#ttl ?? Number.NaN);\n const isTokenExpired = isAfter(now, expires);\n\n if (isTokenExpired) {\n this.#setTTL(null);\n this.#cache.clear();\n }\n }\n\n async #executeRequest(\n input: RequestInfo,\n init?: RequestInit\n ): Promise<Response | undefined> {\n const cacheKey = `${input}${JSON.stringify(init || {})}`;\n\n if (!this.#cache.has(cacheKey)) {\n const promise = fetch(input, init ?? {});\n this.#cache.set(cacheKey, promise);\n }\n\n return await this.#cache.get(cacheKey);\n }\n}\n\nfunction isAfter(date1: Date, date2: Date) {\n return date1 > date2;\n}\n","import * as resources from 'resources';\nimport { pascalToCamelCase } from 'utils';\nimport type { CreditScoresService } from 'resources/CreditScores';\nimport type { EntitlementsService } from 'resources/Entitlements';\nimport type {\n ConnectedSolutionsSDK,\n ConnectedSolutionsSDKConfig\n} from 'lib/SDKClient/types';\nimport type { CreditScoreSimulatorService } from 'resources/CreditScoreSimulator/CreditScoreSimulator';\nimport type { CreditScorePlannerService } from 'resources/CreditScorePlanner';\nimport type { CreditAttributesService } from 'resources/CreditAttributes/CreditAttributes';\nimport { AuthService } from 'lib/AuthClient/AuthClient';\nimport { ApiClient } from 'lib/ApiClient';\nimport type { AlertsService } from 'resources/Alerts';\nimport type { CreditReportsService } from 'resources/CreditReports';\nimport type { CustomersService } from 'resources/Customers';\nimport type { CustomerAuthService } from 'resources/CustomerAuth';\nimport type { RegistrationsService } from 'resources/Registrations';\nimport type { ProductConfigsService } from 'resources/ProductConfigs';\nimport type { IdentityHealthScoreService } from 'resources/IdentityHealthScore';\nimport type { DigitalIdentityManagerService } from 'resources/DigitalIdentityManager';\n\n// new service imports go here\n\nexport class SDKClient extends ApiClient implements ConnectedSolutionsSDK {\n static #instance: SDKClient | null = null;\n alerts: AlertsService;\n auth: AuthService;\n creditReports: CreditReportsService;\n creditScores: CreditScoresService;\n creditAttributes: CreditAttributesService;\n creditScorePlanner: CreditScorePlannerService;\n creditScoreSimulator: CreditScoreSimulatorService;\n customerAuth: CustomerAuthService;\n customers: CustomersService;\n entitlements: EntitlementsService;\n productConfigs: ProductConfigsService;\n registrations: RegistrationsService;\n identityHealthScore: IdentityHealthScoreService;\n digitalIdentityManager: DigitalIdentityManagerService;\n\n // new services go here\n\n // The method is static as we need to access the method only through the class here\n static getInstance(config: ConnectedSolutionsSDKConfig): SDKClient {\n // if instance is already created return that otherwise create it\n if (SDKClient.#instance) {\n return SDKClient.#instance;\n }\n\n SDKClient.#instance = new SDKClient(config);\n return SDKClient.#instance;\n }\n\n static clearInstance() {\n SDKClient.#instance = null;\n }\n\n // constructor is private so that no other class can access it.\n private constructor(config: ConnectedSolutionsSDKConfig) {\n super(config);\n for (const name in resources) {\n if (typeof resources[name] === 'function') {\n this[pascalToCamelCase(name)] = new resources[name](config);\n }\n }\n\n this.auth = new AuthService({\n environment: config.environment\n });\n }\n}\n\nexport function createSDK(userConfig: ConnectedSolutionsSDKConfig) {\n return SDKClient.getInstance(userConfig);\n}\n","import type {\n CreditScorePlan,\n FicoCreditScorePlanCompleted,\n VantageCreditScorePlanCompleted,\n FicoCreditScorePlanSet,\n VantageCreditScorePlanSet,\n VantageCreditScorePlan,\n FicoCreditScorePlan,\n ScorePlanRevisionsRequest,\n FicoScorePlanRevisionsRequest,\n VantageScorePlanRevisionsRequest,\n ScorePlanRevision,\n FicoScorePlanRevision,\n VantageScorePlanRevision\n} from 'resources/CreditScorePlanner/types';\n\nexport function isPlanCompleted(\n plan: CreditScorePlan\n): plan is FicoCreditScorePlanCompleted | VantageCreditScorePlanCompleted {\n return (\n plan.progress_status === 'TARGET_NOT_MET' ||\n plan.progress_status === 'COMPLETED'\n );\n}\n\nexport function isPlanSet(\n plan: CreditScorePlan\n): plan is\n | FicoCreditScorePlanCompleted\n | FicoCreditScorePlanSet\n | VantageCreditScorePlanCompleted\n | VantageCreditScorePlanSet {\n return (\n isPlanCompleted(plan) ||\n plan.progress_status === 'TARGET_SCORE_AND_PLAN_SET' ||\n plan.progress_status === 'ON_TRACK' ||\n plan.progress_status === 'OFF_TRACK'\n );\n}\n\nexport function isVantagePlan(\n plan: CreditScorePlan\n): plan is VantageCreditScorePlan {\n return plan.score_model.includes('VANTAGE');\n}\n\nexport function isFicoPlan(plan: CreditScorePlan): plan is FicoCreditScorePlan {\n return plan.score_model.includes('FICO');\n}\n\nexport function isFicoRevisionsRequest(\n request: ScorePlanRevisionsRequest\n): request is FicoScorePlanRevisionsRequest {\n return (request as FicoScorePlanRevisionsRequest).target_score !== undefined;\n}\n\nexport function isVantageRevisionsRequest(\n request: ScorePlanRevisionsRequest\n): request is VantageScorePlanRevisionsRequest {\n return (\n (request as VantageScorePlanRevisionsRequest).max_actions_per_plan !==\n undefined\n );\n}\n\nexport function isFicoRevision(\n revision: ScorePlanRevision\n): revision is FicoScorePlanRevision {\n return revision.score_model.includes('FICO');\n}\n\nexport function isVantageRevision(\n revision: ScorePlanRevision\n): revision is VantageScorePlanRevision {\n return revision.score_model.includes('VANTAGE');\n}\n","import type {\n CreditScoreSimulator,\n FicoScenario,\n FicoScenarioVariation,\n FicoScoreSimulator,\n Scenario,\n ScenarioVariation,\n VantageScenario,\n VantageScenarioVariation\n} from 'resources/CreditScoreSimulator/types';\n\nexport function isFicoSimulator(\n data?: CreditScoreSimulator\n): data is FicoScoreSimulator {\n return Boolean(data && 'best_action' in data);\n}\n\nexport function isVantageScenario(\n scenario?: Scenario\n): scenario is VantageScenario {\n return Boolean(scenario && 'simulated_score' in scenario);\n}\n\nexport function isFicoScenario(scenario: Scenario): scenario is FicoScenario {\n return !('simulated_score' in scenario);\n}\n\nexport function isFicoScenarioVariation(\n variation?: ScenarioVariation\n): variation is FicoScenarioVariation {\n return Boolean(\n variation &&\n 'slider_min_value' in variation &&\n 'slider_max_value' in variation\n );\n}\n\nexport function isVantageScenarioVariation(\n variation?: ScenarioVariation\n): variation is VantageScenarioVariation {\n return Boolean(\n variation && 'value' in variation && 'simulated_score' in variation\n );\n}\n","import type { ApiVersion, Bureau } from 'lib/shared/types';\n\nimport type {\n CreditScore,\n CreditScores_V2,\n CreditScore_V2,\n GetCreditScoreResponse,\n PostCreditScoreResponse,\n BureauScore\n} from './types';\n\nexport function isValidApiVersion(version: string): version is ApiVersion {\n return version === 'v1' || version === 'v2';\n}\n\nexport function isCreditScore(data: unknown): data is CreditScore {\n if (typeof data !== 'object' || data === null) return false;\n\n const score = data as CreditScore;\n return (\n typeof score.score_id === 'string' &&\n isValidBureau(score.bureau) &&\n typeof score.score === 'number' &&\n typeof score.score_date === 'string'\n );\n}\n\nexport function isCreditScoreV2(data: unknown): data is CreditScore_V2 {\n if (typeof data !== 'object' || data === null) return false;\n\n const item = data as CreditScore_V2;\n return (\n typeof item.id === 'string' &&\n Array.isArray(item.bureau_scores) &&\n item.bureau_scores.every((score: unknown) => isBureauScore(score))\n );\n}\n\nexport function isBureauScore(data: unknown): data is BureauScore {\n if (typeof data !== 'object' || data === null) return false;\n\n const score = data as BureauScore;\n return (\n isValidBureau(score.bureau) &&\n typeof score.score === 'number' &&\n typeof score.score_date === 'string'\n );\n}\n\n// Enum/Union type guards\nexport function isValidBureau(bureau: unknown): bureau is Bureau {\n return (\n bureau === 'EXPERIAN' || bureau === 'EQUIFAX' || bureau === 'TRANSUNION'\n );\n}\n\nexport function isCreditScoresV2(data: unknown): data is CreditScores_V2 {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'items' in data &&\n Array.isArray((data as CreditScores_V2).items) &&\n (data as CreditScores_V2).items.every((item: unknown) =>\n isCreditScoreV2(item)\n )\n );\n}\n\nexport function isCreditScoreArray(data: unknown): data is CreditScore[] {\n return Array.isArray(data) && data.every((item) => isCreditScore(item));\n}\n\nexport function isV1GetCreditScoresResponse(\n data: unknown\n): data is GetCreditScoreResponse<'v1'> {\n return isCreditScoreArray(data);\n}\n\nexport function isV2GetCreditScoresResponse(\n data: unknown\n): data is GetCreditScoreResponse<'v2'> {\n return isCreditScoresV2(data);\n}\n\nexport function isV1PostCreditScoresResponse(\n data: unknown\n): data is PostCreditScoreResponse<'v1'> {\n return isCreditScore(data);\n}\n\nexport function isV2PostCreditScoresResponse(\n data: unknown\n): data is PostCreditScoreResponse<'v2'> {\n return isCreditScoreV2(data);\n}\n","import type { Bureau } from 'lib/shared/types';\n\nimport type {\n CreditAttributes,\n CreditAttributes_V2,\n CreditAttribute_V2,\n GetCreditAttributeResponse,\n CreditAttribute,\n BureauAttribute\n} from './types';\n\nexport function isCreditAttribute(data: unknown): data is CreditAttributes {\n if (typeof data !== 'object' || data === null) return false;\n\n const attribute = data as CreditAttributes;\n return (\n isValidBureauAttribute(attribute.bureau) &&\n typeof attribute.reported_at === 'string' &&\n typeof attribute.categories === 'object' &&\n typeof attribute.attributes === 'object'\n );\n}\n\nexport function isCreditAttributeV2(data: unknown): data is CreditAttribute_V2 {\n if (typeof data !== 'object' || data === null) return false;\n\n const item = data as CreditAttribute_V2;\n return (\n typeof item.id === 'string' &&\n Array.isArray(item.bureau_attributes) &&\n item.bureau_attributes.every((attribute: unknown) =>\n isBureauAttribute(attribute)\n )\n );\n}\n\nexport function isBureauAttribute(data: unknown): data is BureauAttribute {\n if (typeof data !== 'object' || data === null) return false;\n\n const attribute = data as BureauAttribute;\n return (\n isValidBureauAttribute(attribute.bureau) &&\n typeof attribute.reported_at === 'string' &&\n typeof attribute.categories === 'object' &&\n typeof attribute.attributes === 'object'\n );\n}\n\n// Enum/Union type guards\nexport function isValidBureauAttribute(bureau: unknown): bureau is Bureau {\n return (\n bureau === 'EXPERIAN' || bureau === 'EQUIFAX' || bureau === 'TRANSUNION'\n );\n}\n\nexport function isCreditAttributesV2(\n data: unknown\n): data is CreditAttribute_V2 {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'items' in data &&\n Array.isArray((data as CreditAttributes_V2).items) &&\n (data as CreditAttributes_V2).items.every((item: unknown) =>\n isCreditAttributeV2(item)\n )\n );\n}\n\nexport function isCreditAttributeArray(\n data: unknown\n): data is CreditAttribute[] {\n return Array.isArray(data) && data.every((item) => isCreditAttribute(item));\n}\n\nexport function isV1GetCreditAttributesResponse(\n data: unknown\n): data is GetCreditAttributeResponse<'v1'> {\n return isCreditAttributeArray(data);\n}\n\nexport function isV2GetCreditAttributesResponse(\n data: unknown\n): data is GetCreditAttributeResponse<'v2'> {\n return isCreditAttributesV2(data);\n}\n"],"names":["generateError","rawError","ConnectedSolutionsClientSideError","ConnectedSolutionsClientAuthenticationError","ConnectedSolutionsClientServerSideError","ConnectedSolutionsClientRateLimitError","ConnectedSolutionsClientSDKError","ConnectedSolutionsClientError","raw","__publicField","_a","args","mapApiErrorTypeToSDKErrorType","apiErrorType","mapHttpStatusToSDKErrorType","status","ENVIRONMENT_URLS","CONTENTSTACK_URLS","ApiClient","config","__privateAdd","_ApiClient_instances","environment","partialConfig","input","init","__privateMethod","validateConfig_fn","headers","options","error","e","response","err","apiError","errorJson","isJsonResponse_fn","_b","_CreditScoresService","_CreditScoresService_instances","fetchOptions","version","versionedPath","getVersionedPath_fn","searchOptions","query","queryString","endpoint","requestOptions","_basePath","__privateGet","CreditScoresService","_EntitlementsService","entitlement_id","body","product_config_id","customer_id","search","EntitlementsService","_CreditAttributesService","_CreditAttributesService_instances","CreditAttributesService","_CreditScoreSimulatorService","requestBody","CreditScoreSimulatorService","_CreditScorePlannerService","_revisionPath","CreditScorePlannerService","_AlertsService","id","AlertsService","isV1Options","isV2Options","hasIncludeFields","hasGetReportsFields_V1","hasGetReportsFields_V2","_CreditReportsService","_CreditReportsService_instances","latest_only","report_read","baseEndpoint","dispositionRequestOptions","CreditReportsService","_CustomersService","updates","next_cursor","CustomersService","_CustomerAuthService","answers","CustomerAuthService","_RegistrationsService","RegistrationsService","_ProductConfigsService","fromEntries","entries","isArray","_","value","key","ProductConfigsService","_IdentityHealthScoreService","action_id","IdentityHealthScoreService","_DigitalIdentityManagerService","DigitalIdentityManagerService","pascalToCamelCase","name","isNode","_AuthService","_AuthService_instances","_cache","_ttl","__privateSet","credentials","fetchToken_fn","cacheKeys","grantType","clientId","clientSecret","customerId","checkTokenExpiry_fn","tokenRequest","executeRequest_fn","accessToken","setTTL_fn","now","oneHourInMilliseconds","nextTimestamp","nextState","expires","isAfter","cacheKey","promise","AuthService","date1","date2","_SDKClient","resources","_instance","SDKClient","createSDK","userConfig","isPlanCompleted","plan","isPlanSet","isVantagePlan","isFicoPlan","isFicoRevisionsRequest","request","isVantageRevisionsRequest","isFicoRevision","revision","isVantageRevision","isFicoSimulator","data","isVantageScenario","scenario","isFicoScenario","isFicoScenarioVariation","variation","isVantageScenarioVariation","isValidApiVersion","isCreditScore","score","isValidBureau","isCreditScoreV2","item","isBureauScore","bureau","isCreditScoresV2","isCreditScoreArray","isV1GetCreditScoresResponse","isV2GetCreditScoresResponse","isV1PostCreditScoresResponse","isV2PostCreditScoresResponse","isCreditAttribute","attribute","isValidBureauAttribute","isCreditAttributeV2","isBureauAttribute","isCreditAttributesV2","isCreditAttributeArray","isV1GetCreditAttributesResponse","isV2GetCreditAttributesResponse"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@experian-ecs/connected-api-sdk",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Connected Experience API SDK ",
5
5
  "author": "Experian",
6
6
  "license": "SEE LICENSE IN LICENSE.md",