@financial-times/cmp-client 5.9.1 → 6.0.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.
package/dist/index.cjs CHANGED
@@ -175,6 +175,42 @@ const SP_FT_LOCATIONS = {
175
175
  consentProxyHost: "https://consent.ftlocations.com"
176
176
  }
177
177
  };
178
+ const SP_FTA_SERVICE_AWARDS = {
179
+ ...defaults,
180
+ accountId: 1906,
181
+ baseEndpoint: "https://consent-manager.financialadviserserviceawards.com",
182
+ propertyId: 38297,
183
+ _clientOptions: {
184
+ rootDomain: "financialadviserserviceawards.com"
185
+ }
186
+ };
187
+ const SP_CELEBRATION_OF_INVESTMENT = {
188
+ ...defaults,
189
+ accountId: 1906,
190
+ baseEndpoint: "https://consent-manager.celebrationofinvestment.co.uk",
191
+ propertyId: 38296,
192
+ _clientOptions: {
193
+ rootDomain: "celebrationofinvestment.co.uk"
194
+ }
195
+ };
196
+ const SP_GLOBAL_PRIVATE_BANKING_AWARDS = {
197
+ ...defaults,
198
+ accountId: 1906,
199
+ baseEndpoint: "https://consent-manager.globalprivatebankingawards.com",
200
+ propertyId: 38295,
201
+ _clientOptions: {
202
+ rootDomain: "globalprivatebankingawards.com"
203
+ }
204
+ };
205
+ const TNW = {
206
+ ...defaults,
207
+ accountId: 1906,
208
+ baseEndpoint: "https://consent-manager.thenextweb.com",
209
+ propertyId: 37672,
210
+ _clientOptions: {
211
+ rootDomain: "thenextweb.com"
212
+ }
213
+ };
178
214
  const properties = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
179
215
  __proto__: null,
180
216
  FT_DOTCOM_PROD,
@@ -182,14 +218,18 @@ const properties = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
182
218
  MM_IGNITES_ASIA,
183
219
  MM_IGNITES_EUROPE,
184
220
  SP_BANKING_RR,
221
+ SP_CELEBRATION_OF_INVESTMENT,
185
222
  SP_FDI_INTELLIGENCE,
223
+ SP_FTA_SERVICE_AWARDS,
186
224
  SP_FT_ADVISER,
187
225
  SP_FT_LOCATIONS,
226
+ SP_GLOBAL_PRIVATE_BANKING_AWARDS,
188
227
  SP_INVESTORS_CHRONICLE,
189
228
  SP_MANDATE_WIRE,
190
229
  SP_PWMNET,
191
230
  SP_SUSTAINABLE_VIEWS,
192
- SP_THE_BANKER
231
+ SP_THE_BANKER,
232
+ TNW
193
233
  }, Symbol.toStringTag, { value: "Module" }));
194
234
  function findAndUpdateLinks(fallback, regionId, regionApplies, regionConfig, linkMap, manageCookiesLinkOverride) {
195
235
  const { text, onClick } = regionConfig[regionId];
@@ -586,8 +626,7 @@ function getConsentCookieValue() {
586
626
  document.cookie.split("; ").map((cookie) => cookie.split("="))
587
627
  );
588
628
  const encodedValue = cookies[CONSENT_COOKIE_NAME];
589
- if (!encodedValue)
590
- return {};
629
+ if (!encodedValue) return {};
591
630
  const decodedValue = decodeURIComponent(encodedValue);
592
631
  return Object.fromEntries(
593
632
  decodedValue.split(",").map((consent) => {
@@ -757,8 +796,7 @@ function extractRelevantFlags(flags) {
757
796
  return output;
758
797
  }
759
798
  function track(payload) {
760
- if (!payload)
761
- return;
799
+ if (!payload) return;
762
800
  const rootEl = document.body;
763
801
  const event = new CustomEvent("oTracking.event", {
764
802
  bubbles: true,
@@ -850,24 +888,21 @@ function setupPmTracking(trackingProps, cmpBaseEndpoint) {
850
888
  window.addEventListener(
851
889
  "message",
852
890
  function(event) {
853
- if (event.origin !== cmpBaseEndpoint)
854
- return;
891
+ if (event.origin !== cmpBaseEndpoint) return;
855
892
  const actionTypeMap = {
856
893
  1: "save_and_close",
857
894
  11: "accept_all",
858
895
  13: "reject_all"
859
896
  };
860
897
  const { data: { fromPM, actionType, messageId = "0" } = {} } = event;
861
- if (!fromPM)
862
- return;
898
+ if (!fromPM) return;
863
899
  if (+messageId) {
864
900
  setState({
865
901
  activeComponent: PRIVACY_MANAGER,
866
902
  privacyManagerId: +messageId
867
903
  });
868
904
  }
869
- if (!actionType || !actionTypeMap[actionType])
870
- return;
905
+ if (!actionType || !actionTypeMap[actionType]) return;
871
906
  dispatchComponentEvent({
872
907
  trackingProps,
873
908
  action: "click",
@@ -877,7 +912,7 @@ function setupPmTracking(trackingProps, cmpBaseEndpoint) {
877
912
  false
878
913
  );
879
914
  }
880
- const version = "5.9.1";
915
+ const version = "6.0.0";
881
916
  async function initSourcepointCmp(options) {
882
917
  const {
883
918
  useFTSession = true,
package/dist/index.js CHANGED
@@ -173,6 +173,42 @@ const SP_FT_LOCATIONS = {
173
173
  consentProxyHost: "https://consent.ftlocations.com"
174
174
  }
175
175
  };
176
+ const SP_FTA_SERVICE_AWARDS = {
177
+ ...defaults,
178
+ accountId: 1906,
179
+ baseEndpoint: "https://consent-manager.financialadviserserviceawards.com",
180
+ propertyId: 38297,
181
+ _clientOptions: {
182
+ rootDomain: "financialadviserserviceawards.com"
183
+ }
184
+ };
185
+ const SP_CELEBRATION_OF_INVESTMENT = {
186
+ ...defaults,
187
+ accountId: 1906,
188
+ baseEndpoint: "https://consent-manager.celebrationofinvestment.co.uk",
189
+ propertyId: 38296,
190
+ _clientOptions: {
191
+ rootDomain: "celebrationofinvestment.co.uk"
192
+ }
193
+ };
194
+ const SP_GLOBAL_PRIVATE_BANKING_AWARDS = {
195
+ ...defaults,
196
+ accountId: 1906,
197
+ baseEndpoint: "https://consent-manager.globalprivatebankingawards.com",
198
+ propertyId: 38295,
199
+ _clientOptions: {
200
+ rootDomain: "globalprivatebankingawards.com"
201
+ }
202
+ };
203
+ const TNW = {
204
+ ...defaults,
205
+ accountId: 1906,
206
+ baseEndpoint: "https://consent-manager.thenextweb.com",
207
+ propertyId: 37672,
208
+ _clientOptions: {
209
+ rootDomain: "thenextweb.com"
210
+ }
211
+ };
176
212
  const properties = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
177
213
  __proto__: null,
178
214
  FT_DOTCOM_PROD,
@@ -180,14 +216,18 @@ const properties = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
180
216
  MM_IGNITES_ASIA,
181
217
  MM_IGNITES_EUROPE,
182
218
  SP_BANKING_RR,
219
+ SP_CELEBRATION_OF_INVESTMENT,
183
220
  SP_FDI_INTELLIGENCE,
221
+ SP_FTA_SERVICE_AWARDS,
184
222
  SP_FT_ADVISER,
185
223
  SP_FT_LOCATIONS,
224
+ SP_GLOBAL_PRIVATE_BANKING_AWARDS,
186
225
  SP_INVESTORS_CHRONICLE,
187
226
  SP_MANDATE_WIRE,
188
227
  SP_PWMNET,
189
228
  SP_SUSTAINABLE_VIEWS,
190
- SP_THE_BANKER
229
+ SP_THE_BANKER,
230
+ TNW
191
231
  }, Symbol.toStringTag, { value: "Module" }));
192
232
  function findAndUpdateLinks(fallback, regionId, regionApplies, regionConfig, linkMap, manageCookiesLinkOverride) {
193
233
  const { text, onClick } = regionConfig[regionId];
@@ -584,8 +624,7 @@ function getConsentCookieValue() {
584
624
  document.cookie.split("; ").map((cookie) => cookie.split("="))
585
625
  );
586
626
  const encodedValue = cookies[CONSENT_COOKIE_NAME];
587
- if (!encodedValue)
588
- return {};
627
+ if (!encodedValue) return {};
589
628
  const decodedValue = decodeURIComponent(encodedValue);
590
629
  return Object.fromEntries(
591
630
  decodedValue.split(",").map((consent) => {
@@ -755,8 +794,7 @@ function extractRelevantFlags(flags) {
755
794
  return output;
756
795
  }
757
796
  function track(payload) {
758
- if (!payload)
759
- return;
797
+ if (!payload) return;
760
798
  const rootEl = document.body;
761
799
  const event = new CustomEvent("oTracking.event", {
762
800
  bubbles: true,
@@ -848,24 +886,21 @@ function setupPmTracking(trackingProps, cmpBaseEndpoint) {
848
886
  window.addEventListener(
849
887
  "message",
850
888
  function(event) {
851
- if (event.origin !== cmpBaseEndpoint)
852
- return;
889
+ if (event.origin !== cmpBaseEndpoint) return;
853
890
  const actionTypeMap = {
854
891
  1: "save_and_close",
855
892
  11: "accept_all",
856
893
  13: "reject_all"
857
894
  };
858
895
  const { data: { fromPM, actionType, messageId = "0" } = {} } = event;
859
- if (!fromPM)
860
- return;
896
+ if (!fromPM) return;
861
897
  if (+messageId) {
862
898
  setState({
863
899
  activeComponent: PRIVACY_MANAGER,
864
900
  privacyManagerId: +messageId
865
901
  });
866
902
  }
867
- if (!actionType || !actionTypeMap[actionType])
868
- return;
903
+ if (!actionType || !actionTypeMap[actionType]) return;
869
904
  dispatchComponentEvent({
870
905
  trackingProps,
871
906
  action: "click",
@@ -875,7 +910,7 @@ function setupPmTracking(trackingProps, cmpBaseEndpoint) {
875
910
  false
876
911
  );
877
912
  }
878
- const version = "5.9.1";
913
+ const version = "6.0.0";
879
914
  async function initSourcepointCmp(options) {
880
915
  const {
881
916
  useFTSession = true,
@@ -1,2 +1,2 @@
1
- (function(){"use strict";const V=(t,{credentials:e="omit"}={})=>fetch(`https://session-next.ft.com${t}`,{credentials:e,useCorsProxy:!0}).then(n=>n.ok?n.json():n.text().then(o=>{throw new Error(`Next session responded with "${o}" (${n.status})`)})).catch(n=>{document.body.dispatchEvent(new CustomEvent("oErrors.log",{bubbles:!0,detail:{error:n,info:{component:"next-session-client"}}}))});let _={};const S=(t,e)=>{if(typeof t=="object"){_=t;return}if(typeof t=="string"&&typeof e=="string"){_[t]=e;return}if(typeof t=="string"&&typeof e>"u")return _[t]||null;if(typeof t>"u"&&typeof e>"u")return _;throw new Error("Invalid arguments")};S.clear=()=>{_={}};const y={},x=()=>{const[,t]=/FTSession_s=([^;]+)/.exec(document.cookie)||[];return t},j=()=>{const t=S("uuid");if(t)return Promise.resolve({uuid:t});const e=x();return e?(y.uuid||(y.uuid=V(`/sessions/s/${e}`).then(({uuid:n}={})=>(delete y.uuid,n&&S("uuid",n),{uuid:n}))),y.uuid):Promise.resolve({uuid:void 0})},T="sourcepoint-cmp",H="FTPINK",q="FTConsent",G="sourcepointCmp/VngD.XycZut.595cp9fWdp5XYP9vlFvk",$=".ft.com",W="https://consent.ft.com",k={permutiveAds:{purposes:[2,4,8,9],iabVendors:[361],customVendors:[],specialFeatures:[]},demographicAds:{purposes:[7,9,10],iabVendors:[],customVendors:[],specialFeatures:[]},behaviouralAds:{purposes:[2,4,8,9],iabVendors:[],customVendors:[],specialFeatures:[]},programmaticAds:{purposes:[2],iabVendors:[],customVendors:[],specialFeatures:[]},personalisedMarketing:{purposes:[2,7,8,9,10],iabVendors:[],customVendors:[],specialFeatures:[]}},v=Object.keys(k),d={joinHref:!0,gdpr:{}},P={...d,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyHref:"https://local.ft.com",_clientOptions:{privacyManagerId:827767,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com",includeUsNat:!0}},w={...d,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyId:31642,_clientOptions:{privacyManagerId:827767,usnatPrivacyManagerId:1143274,ccpaPrivacyManagerId:944882,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com",includeUsNat:!0}},K={...d,accountId:1906,baseEndpoint:"https://consent-manager.pwmnet.com",propertyId:33414,_clientOptions:{rootDomain:"pwmnet.com"}},J={...d,accountId:1906,baseEndpoint:"https://consent-manager.fdiintelligence.com",propertyId:34061,_clientOptions:{rootDomain:"fdiintelligence.com"}},B={...d,accountId:1906,baseEndpoint:"https://consent-manager.thebanker.com",propertyId:34060,_clientOptions:{rootDomain:"thebanker.com"}},X={...d,accountId:1906,baseEndpoint:"https://consent-manager.bankingriskandregulation.com",propertyId:34059,_clientOptions:{rootDomain:"bankingriskandregulation.com"}},Y={...d,accountId:1906,baseEndpoint:"https://consent-manager.sustainableviews.com",propertyId:34058,_clientOptions:{rootDomain:"sustainableviews.com"}},z={...d,accountId:1906,baseEndpoint:"https://consent-manager.ftadviser.com",propertyId:33416,_clientOptions:{rootDomain:"ftadviser.com"}},Z={...d,accountId:1906,baseEndpoint:"https://consent-manager.investorschronicle.co.uk",propertyId:33415,_clientOptions:{rootDomain:"investorschronicle.co.uk"}},Q={...d,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33947,_clientOptions:{rootDomain:"ignitesasia.com"}},tt={...d,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33946,_clientOptions:{rootDomain:"igniteseurope.com"}},et={...d,accountId:1906,baseEndpoint:"https://consent-manager.mandatewire.com",propertyId:35490,_clientOptions:{rootDomain:"mandatewire.com"}},nt={...d,accountId:1906,baseEndpoint:"https://consent-manager.ftlocations.com",propertyId:37407,_clientOptions:{rootDomain:"ftlocations.com",cookieDomain:".ftlocations.com",consentProxyHost:"https://consent.ftlocations.com"}},ot=Object.freeze(Object.defineProperty({__proto__:null,FT_DOTCOM_PROD:w,FT_DOTCOM_TEST:P,MM_IGNITES_ASIA:Q,MM_IGNITES_EUROPE:tt,SP_BANKING_RR:X,SP_FDI_INTELLIGENCE:J,SP_FT_ADVISER:z,SP_FT_LOCATIONS:nt,SP_INVESTORS_CHRONICLE:Z,SP_MANDATE_WIRE:et,SP_PWMNET:K,SP_SUSTAINABLE_VIEWS:Y,SP_THE_BANKER:B},Symbol.toStringTag,{value:"Module"}));function N(t,e){const n=document.createElement("script");return n.dataset.cmpScript=t,n.innerHTML=e,n}function st(t){const e=document.createElement("script");return e.src=t,e}const it={cmpFrames:"https://consent-manager.ft.com/unified/wrapperMessagingWithoutDetection.js"},A={tcfStub:'"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",r.title = "__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();',gppStub:`window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,10,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
2
- `};function at(t){const e=document.createDocumentFragment();return e.appendChild(N("tcf",A.tcfStub)),t.includeUsNat&&e.appendChild(N("gpp",A.gppStub)),e.appendChild(st(it.cmpFrames)),e}function rt(t,e){const{userId:n,includeUsNat:o}=e;return n&&(t.authId=n),o&&(t.usnat=t.usnat||{}),t}function ct(t,e){const{_clientOptions:n,...o}=t,s=rt(o,e);window._sp_={config:s},window._sp_queue??(window._sp_queue=[]),document.head.appendChild(at(e))}function pt(t,e,n,{formOfWordsId:o,cookieDomain:s}){const r=Object.keys(t).reduce((c,a)=>(c[a]={onsite:{status:t[a],lbi:!1,source:T,fow:o}},c),{});return e?{setConsentCookie:!0,formOfWordsId:o,consentSource:T,cookieDomain:s,skipDuplicateUpdates:!n,data:r}:{data:r,cookieDomain:s}}const m={CALIFORNIA:"uscav1",US_NATIONAL:"usnat"},D={[m.CALIFORNIA]:{excludedCategories:{personalisedMarketing:!0}},[m.US_NATIONAL]:{excludedCategories:{personalisedMarketing:!0}}};function ut(t){const{applicableSections:e,supportedAPIs:n}=t,o=e[0];if(o===-1||typeof o>"u")return;const s=n.find(r=>r.startsWith(`${o}:`));return s==null?void 0:s.split(":")[1]}function dt(t){const{SaleOptOut:e,SharingOptOut:n,Gpc:o}=t,{excludedCategories:s}=D[m.CALIFORNIA],i=e!==1&&n!==1&&!o,r={};for(const c of v){if(c in s){r[c]=!0;continue}r[c]=i}return r}function lt(t){const{SaleOptOut:e,SharingOptOut:n,TargetedAdvertisingOptOut:o}=t,{excludedCategories:s}=D[m.US_NATIONAL],i=JSON.parse(localStorage.getItem("ft_sp_marketing_optout")||"{}"),r=e!==1&&n!==1&&o!==1,c={};for(const a of v){if(a in s){c[a]=!0;continue}c[a]=r}if(i.usnat)for(const a of v)c[a]=!1;return c}const ft={[m.CALIFORNIA]:dt,[m.US_NATIONAL]:lt};async function M(){return new Promise((t,e)=>{try{window.__gpp?window.__gpp("ping",t):e(new Error("GPP API is not available on page"))}catch(n){e(n)}})}async function gt(){const t=await M(),{parsedSections:e}=t,n=ut(t);if(!n||!e[n])throw new Error("GPP parser was called without an applicable section");const o=e[n],s=ft[n];if(!s||typeof s!="function")throw new Error(`No parser found for applicable GPP section: ${n}`);return s(o)}function mt(t,{purpose:e,vendor:n,specialFeatureOptins:o}){const s=k[t],i=s.purposes.every(a=>(e==null?void 0:e.consents[a])||(e==null?void 0:e.legitimateInterests[a])),r=s.iabVendors.every(a=>(n==null?void 0:n.consents[a])||(n==null?void 0:n.legitimateInterests[a])),c=s.specialFeatures.every(a=>(o==null?void 0:o[a])===!0);return i&&r&&c}async function L(){return new Promise((t,e)=>{try{window.__tcfapi?window.__tcfapi("addEventListener",2,t):e(new Error("TCF API is not available on page"))}catch(n){e(n)}})}async function _t(){const t=await L(),e={};for(const n of v)e[n]=mt(n,t);return e}async function yt(t){const n={gdpr:_t,usnat:gt}[t];if(!n)throw new Error("Unable to update user consent. Unsupported consent legislation.");return n()}function vt(){const e=Object.fromEntries(document.cookie.split("; ").map(o=>o.split("=")))[q];if(!e)return{};const n=decodeURIComponent(e);return Object.fromEntries(n.split(",").map(o=>{const[s,i]=o.split(":");return[s,i==="on"]}))}function wt(t,e){return Object.keys(t).some(o=>{const s=`${o.toLowerCase()}Onsite`;return t[o]!==e[s]})}function It({userId:t,useConsentStore:e}){return!!t&&e===!0}function Ct(t,e){return t?`${e.consentProxyHost}/__consent/consent-record/${H}/${e.userId}?updateFtConsentCookie=true`:`${e.consentProxyHost}/__consent/consent-record-cookie?cookieDomain=${e.cookieDomain}`}const F={gdpr:!1,usnat:!1},b=Object.assign({},F);function R(t){b[t]=!0}function St(t){return b[t]}function bt(){Object.assign(b,F)}async function ht(t){return St(t)?t==="gdpr"?(await L()).eventStatus==="useractioncomplete":t==="usnat"?(await M()).cmpDisplayStatus==="hidden":!1:!1}function Ot(){window.__tcfapi&&window.__tcfapi("addEventListener",2,t=>{t.eventStatus==="cmpuishown"&&R("gdpr")}),window.__gpp&&window.__gpp("addEventListener",({pingData:t})=>{t.cmpDisplayStatus==="visible"&&R("usnat")})}async function Et(t,e){try{const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),credentials:"include"});n.ok||console.error("Unable to save consent preferences",n.status)}catch(n){console.error("An error occurred while saving consent",n)}}const Tt=()=>{document.dispatchEvent(new CustomEvent("onCmpConsentReady",{bubbles:!0}))};function kt(t){return async function(n,o,s,i){if(Tt(),t.disableFTCookies||!t.includeUsNat&&n==="usnat")return;const r=i.applies?n:"gdpr";if(r!==n||!s)return;let c;try{c=await yt(r)}catch(C){console.error(C)}if(!c||!wt(c,vt()))return;const p=await ht(r),f=It(t),u=Ct(f,t),g=pt(c,f,p,t);await Et(u,g),p&&bt(),document.dispatchEvent(new CustomEvent("oCookieMessage.act",{bubbles:!0}))}}const h="cookie-message",Pt="manage-cookies";let O=Object.freeze({activeComponent:h,messageId:0,privacyManagerId:0});function Nt(t){return typeof t=="object"&&t!==null&&t.constructor===Object&&Object.prototype.toString.call(t)==="[object Object]"}const At=()=>({...O}),E=t=>{if(!Nt(t)){console.error("Invalid state changes");return}O={...O,...t}},Dt=["adsDisableInternalCMP","pwm.cmp","messageSlotBottom"];function Mt(t,e){const n=Lt(t.flags);window._sp_queue=window._sp_queue??[],window._sp_queue.push(()=>{var o,s;for(const[i,r]of Object.entries(Rt))(s=(o=window._sp_).addEventListener)==null||s.call(o,i,r({...t,flags:n}))}),Ut({...t,flags:n},e)}function Lt(t){const e={};return typeof t=="object"&&Dt.forEach(n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}),e}function Ft(t){if(!t)return;const e=document.body,n=new CustomEvent("oTracking.event",{bubbles:!0,cancelable:!0,detail:t.detail});e.dispatchEvent(n)}function I({trackingProps:t,action:e,triggerAction:n}){let o;const s=At(),{product:i,app:r,flags:c}=t;s.activeComponent===h?o=s.messageId:o=s.privacyManagerId;const a={detail:{component:{id:o,name:s.activeComponent,type:"overlay",subtype:"cmp"},category:"component",action:e,...n&&{trigger_action:n},...i&&{product:i},...r&&{app:r},custom:[{cookie_toggle_flag:c}],url:window.document.location.href||null}};Ft(a)}const Rt={onMessageChoiceSelect:t=>(e,n,o)=>{const i={11:"accept_all",12:"manage_cookies",13:"reject_all"}[o];i&&I({trackingProps:t,action:"click",triggerAction:i})},onMessageReady:t=>()=>{I({trackingProps:t,action:"view"})},onMessageReceiveData:()=>(t,e)=>{const{messageId:n}=e;n&&E({messageId:n})},onError:t=>(e,n)=>{I({trackingProps:t,action:"error",triggerAction:n})},onPMCancel:()=>()=>{E({activeComponent:h})}};function Ut(t,e){window.addEventListener("message",function(n){if(n.origin!==e)return;const o={1:"save_and_close",11:"accept_all",13:"reject_all"},{data:{fromPM:s,actionType:i,messageId:r="0"}={}}=n;s&&(+r&&E({activeComponent:Pt,privacyManagerId:+r}),!(!i||!o[i])&&I({trackingProps:t,action:"click",triggerAction:o[i]}))},!1)}const Vt="5.9.1";async function xt(t){const{useFTSession:e=!0,consentProxyHost:n=W,cookieDomain:o=$,formOfWordsId:s=G,useConsentStore:i=!0,trackingContext:r={},disableFTCookies:c=!1,includeUsNat:a=!1}=t||{};let{propertyConfig:p=w,userId:f}=t||{};if(typeof window>"u"){console.error("The CMP client can only be initialised in a browser context");return}if(window.FT_CMP_CLIENT_VERSION=Vt,!f&&e)try{const u=await j();f=u==null?void 0:u.uuid}catch(u){console.error(u)}p=jt(p),ct(p,{userId:f,includeUsNat:a}),Ot(),window._sp_queue.push(()=>{var u,g;(g=(u=window._sp_)==null?void 0:u.addEventListener)==null||g.call(u,"onConsentReady",kt({userId:f,consentProxyHost:n,cookieDomain:o,formOfWordsId:s,useConsentStore:i,disableFTCookies:c,includeUsNat:a}))}),Mt(r,p.baseEndpoint)}function jt(t){if(!(t!=null&&t.accountId))throw new Error("Please pass a valid property config");return t.events&&(console.warn("[cmp-client] Passing an events map in the config is not supported and will be ignored. Please use window._sp_.addEventListener() to listen for events"),delete t.events),t}function U(t,e,n,o,s,i){const{text:r,onClick:c}=o[e],a=document.querySelectorAll(`a[href*="${i}"]`);for(const p of a)(n||t)&&(s.has(p)&&p.removeEventListener("click",s.get(p)),p.innerText=r,p.addEventListener("click",c),s.set(p,c))}function Ht({_clientOptions:t}=w){const{privacyManagerId:e,ccpaPrivacyManagerId:n,usnatPrivacyManagerId:o,manageCookiesLinkOverride:s}=t??w._clientOptions,i={usnat:{text:"Do Not Sell My Personal Information",onClick:a=>{var p;a.preventDefault(),(p=window._sp_.usnat)==null||p.loadPrivacyManagerModal(o)}},ccpa:{text:"Do Not Sell My Personal Information",onClick:a=>{var p;a.preventDefault(),(p=window._sp_.ccpa)==null||p.loadPrivacyManagerModal(n)}},gdpr:{text:"Manage Cookies",onClick:a=>{var p;a.preventDefault(),(p=window._sp_.gdpr)==null||p.loadPrivacyManagerModal(e)}}},r=new Map,c=function(a,p,f,u){U(!1,a,u.applies,i,r,s),u.applies&&window._sp_queue.push(()=>{var g,C;(C=(g=window._sp_).removeEventListener)==null||C.call(g,"onConsentReady",c)})};U(!0,"gdpr",!1,i,r,s),window._sp_queue??(window._sp_queue=[]),window._sp_queue.push(()=>{var a,p;(p=(a=window._sp_).addEventListener)==null||p.call(a,"onConsentReady",c)})}function qt(t){return t._clientOptions??{}}const Gt={"ft.com":qt};function $t(t){return new Promise((e,n)=>{const{rootDomain:o}=t._clientOptions||{};if(!o)return e({});const s=Gt[o];if(!s||typeof s!="function")return e({...t._clientOptions});const i=()=>{try{e(s(t))}catch(r){n(r)}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",i):i()})}function Wt(t,e){if(!e||Number.isFinite(parseFloat(e))||!t.endsWith(e))return!1;const n=t.indexOf(e),o=t[n-1];return o==="."||o===void 0}function Kt(t){if(!t)throw new Error("Invalid hostname provided");let n=Object.values(ot).find(o=>{var i;if(o.propertyHref)return!1;const s=(i=o._clientOptions)==null?void 0:i.rootDomain;return s&&Wt(t,s)});return n??(n=P),n}const Jt=new URL(window.location.href).hostname,l=Kt(Jt);(async()=>{var t,e;try{const n=await $t(l);xt({propertyConfig:l,...n}),(t=l==null?void 0:l._clientOptions)!=null&&t.privacyManagerId&&((e=l==null?void 0:l._clientOptions)!=null&&e.manageCookiesLinkOverride)&&Ht(l)}catch(n){console.error("Error: CMP package configure + initialise Sourcepoint failed.",n)}})()})();
1
+ (function(){"use strict";const V=(t,{credentials:e="omit"}={})=>fetch(`https://session-next.ft.com${t}`,{credentials:e,useCorsProxy:!0}).then(n=>n.ok?n.json():n.text().then(o=>{throw new Error(`Next session responded with "${o}" (${n.status})`)})).catch(n=>{document.body.dispatchEvent(new CustomEvent("oErrors.log",{bubbles:!0,detail:{error:n,info:{component:"next-session-client"}}}))});let _={};const S=(t,e)=>{if(typeof t=="object"){_=t;return}if(typeof t=="string"&&typeof e=="string"){_[t]=e;return}if(typeof t=="string"&&typeof e>"u")return _[t]||null;if(typeof t>"u"&&typeof e>"u")return _;throw new Error("Invalid arguments")};S.clear=()=>{_={}};const y={},x=()=>{const[,t]=/FTSession_s=([^;]+)/.exec(document.cookie)||[];return t},j=()=>{const t=S("uuid");if(t)return Promise.resolve({uuid:t});const e=x();return e?(y.uuid||(y.uuid=V(`/sessions/s/${e}`).then(({uuid:n}={})=>(delete y.uuid,n&&S("uuid",n),{uuid:n}))),y.uuid):Promise.resolve({uuid:void 0})},T="sourcepoint-cmp",H="FTPINK",q="FTConsent",G="sourcepointCmp/VngD.XycZut.595cp9fWdp5XYP9vlFvk",W=".ft.com",$="https://consent.ft.com",k={permutiveAds:{purposes:[2,4,8,9],iabVendors:[361],customVendors:[],specialFeatures:[]},demographicAds:{purposes:[7,9,10],iabVendors:[],customVendors:[],specialFeatures:[]},behaviouralAds:{purposes:[2,4,8,9],iabVendors:[],customVendors:[],specialFeatures:[]},programmaticAds:{purposes:[2],iabVendors:[],customVendors:[],specialFeatures:[]},personalisedMarketing:{purposes:[2,7,8,9,10],iabVendors:[],customVendors:[],specialFeatures:[]}},v=Object.keys(k),u={joinHref:!0,gdpr:{}},N={...u,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyHref:"https://local.ft.com",_clientOptions:{privacyManagerId:827767,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com",includeUsNat:!0}},w={...u,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyId:31642,_clientOptions:{privacyManagerId:827767,usnatPrivacyManagerId:1143274,ccpaPrivacyManagerId:944882,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com",includeUsNat:!0}},K={...u,accountId:1906,baseEndpoint:"https://consent-manager.pwmnet.com",propertyId:33414,_clientOptions:{rootDomain:"pwmnet.com"}},B={...u,accountId:1906,baseEndpoint:"https://consent-manager.fdiintelligence.com",propertyId:34061,_clientOptions:{rootDomain:"fdiintelligence.com"}},J={...u,accountId:1906,baseEndpoint:"https://consent-manager.thebanker.com",propertyId:34060,_clientOptions:{rootDomain:"thebanker.com"}},X={...u,accountId:1906,baseEndpoint:"https://consent-manager.bankingriskandregulation.com",propertyId:34059,_clientOptions:{rootDomain:"bankingriskandregulation.com"}},Y={...u,accountId:1906,baseEndpoint:"https://consent-manager.sustainableviews.com",propertyId:34058,_clientOptions:{rootDomain:"sustainableviews.com"}},z={...u,accountId:1906,baseEndpoint:"https://consent-manager.ftadviser.com",propertyId:33416,_clientOptions:{rootDomain:"ftadviser.com"}},Z={...u,accountId:1906,baseEndpoint:"https://consent-manager.investorschronicle.co.uk",propertyId:33415,_clientOptions:{rootDomain:"investorschronicle.co.uk"}},Q={...u,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33947,_clientOptions:{rootDomain:"ignitesasia.com"}},tt={...u,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33946,_clientOptions:{rootDomain:"igniteseurope.com"}},et={...u,accountId:1906,baseEndpoint:"https://consent-manager.mandatewire.com",propertyId:35490,_clientOptions:{rootDomain:"mandatewire.com"}},nt={...u,accountId:1906,baseEndpoint:"https://consent-manager.ftlocations.com",propertyId:37407,_clientOptions:{rootDomain:"ftlocations.com",cookieDomain:".ftlocations.com",consentProxyHost:"https://consent.ftlocations.com"}},ot={...u,accountId:1906,baseEndpoint:"https://consent-manager.financialadviserserviceawards.com",propertyId:38297,_clientOptions:{rootDomain:"financialadviserserviceawards.com"}},st={...u,accountId:1906,baseEndpoint:"https://consent-manager.celebrationofinvestment.co.uk",propertyId:38296,_clientOptions:{rootDomain:"celebrationofinvestment.co.uk"}},at={...u,accountId:1906,baseEndpoint:"https://consent-manager.globalprivatebankingawards.com",propertyId:38295,_clientOptions:{rootDomain:"globalprivatebankingawards.com"}},it={...u,accountId:1906,baseEndpoint:"https://consent-manager.thenextweb.com",propertyId:37672,_clientOptions:{rootDomain:"thenextweb.com"}},rt=Object.freeze(Object.defineProperty({__proto__:null,FT_DOTCOM_PROD:w,FT_DOTCOM_TEST:N,MM_IGNITES_ASIA:Q,MM_IGNITES_EUROPE:tt,SP_BANKING_RR:X,SP_CELEBRATION_OF_INVESTMENT:st,SP_FDI_INTELLIGENCE:B,SP_FTA_SERVICE_AWARDS:ot,SP_FT_ADVISER:z,SP_FT_LOCATIONS:nt,SP_GLOBAL_PRIVATE_BANKING_AWARDS:at,SP_INVESTORS_CHRONICLE:Z,SP_MANDATE_WIRE:et,SP_PWMNET:K,SP_SUSTAINABLE_VIEWS:Y,SP_THE_BANKER:J,TNW:it},Symbol.toStringTag,{value:"Module"}));function P(t,e){const n=document.createElement("script");return n.dataset.cmpScript=t,n.innerHTML=e,n}function ct(t){const e=document.createElement("script");return e.src=t,e}const pt={cmpFrames:"https://consent-manager.ft.com/unified/wrapperMessagingWithoutDetection.js"},A={tcfStub:'"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",r.title = "__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();',gppStub:`window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,10,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
2
+ `};function ut(t){const e=document.createDocumentFragment();return e.appendChild(P("tcf",A.tcfStub)),t.includeUsNat&&e.appendChild(P("gpp",A.gppStub)),e.appendChild(ct(pt.cmpFrames)),e}function dt(t,e){const{userId:n,includeUsNat:o}=e;return n&&(t.authId=n),o&&(t.usnat=t.usnat||{}),t}function lt(t,e){const{_clientOptions:n,...o}=t,s=dt(o,e);window._sp_={config:s},window._sp_queue??(window._sp_queue=[]),document.head.appendChild(ut(e))}function ft(t,e,n,{formOfWordsId:o,cookieDomain:s}){const r=Object.keys(t).reduce((c,i)=>(c[i]={onsite:{status:t[i],lbi:!1,source:T,fow:o}},c),{});return e?{setConsentCookie:!0,formOfWordsId:o,consentSource:T,cookieDomain:s,skipDuplicateUpdates:!n,data:r}:{data:r,cookieDomain:s}}const m={CALIFORNIA:"uscav1",US_NATIONAL:"usnat"},D={[m.CALIFORNIA]:{excludedCategories:{personalisedMarketing:!0}},[m.US_NATIONAL]:{excludedCategories:{personalisedMarketing:!0}}};function gt(t){const{applicableSections:e,supportedAPIs:n}=t,o=e[0];if(o===-1||typeof o>"u")return;const s=n.find(r=>r.startsWith(`${o}:`));return s==null?void 0:s.split(":")[1]}function mt(t){const{SaleOptOut:e,SharingOptOut:n,Gpc:o}=t,{excludedCategories:s}=D[m.CALIFORNIA],a=e!==1&&n!==1&&!o,r={};for(const c of v){if(c in s){r[c]=!0;continue}r[c]=a}return r}function _t(t){const{SaleOptOut:e,SharingOptOut:n,TargetedAdvertisingOptOut:o}=t,{excludedCategories:s}=D[m.US_NATIONAL],a=JSON.parse(localStorage.getItem("ft_sp_marketing_optout")||"{}"),r=e!==1&&n!==1&&o!==1,c={};for(const i of v){if(i in s){c[i]=!0;continue}c[i]=r}if(a.usnat)for(const i of v)c[i]=!1;return c}const yt={[m.CALIFORNIA]:mt,[m.US_NATIONAL]:_t};async function M(){return new Promise((t,e)=>{try{window.__gpp?window.__gpp("ping",t):e(new Error("GPP API is not available on page"))}catch(n){e(n)}})}async function vt(){const t=await M(),{parsedSections:e}=t,n=gt(t);if(!n||!e[n])throw new Error("GPP parser was called without an applicable section");const o=e[n],s=yt[n];if(!s||typeof s!="function")throw new Error(`No parser found for applicable GPP section: ${n}`);return s(o)}function wt(t,{purpose:e,vendor:n,specialFeatureOptins:o}){const s=k[t],a=s.purposes.every(i=>(e==null?void 0:e.consents[i])||(e==null?void 0:e.legitimateInterests[i])),r=s.iabVendors.every(i=>(n==null?void 0:n.consents[i])||(n==null?void 0:n.legitimateInterests[i])),c=s.specialFeatures.every(i=>(o==null?void 0:o[i])===!0);return a&&r&&c}async function L(){return new Promise((t,e)=>{try{window.__tcfapi?window.__tcfapi("addEventListener",2,t):e(new Error("TCF API is not available on page"))}catch(n){e(n)}})}async function It(){const t=await L(),e={};for(const n of v)e[n]=wt(n,t);return e}async function bt(t){const n={gdpr:It,usnat:vt}[t];if(!n)throw new Error("Unable to update user consent. Unsupported consent legislation.");return n()}function St(){const e=Object.fromEntries(document.cookie.split("; ").map(o=>o.split("=")))[q];if(!e)return{};const n=decodeURIComponent(e);return Object.fromEntries(n.split(",").map(o=>{const[s,a]=o.split(":");return[s,a==="on"]}))}function Ct(t,e){return Object.keys(t).some(o=>{const s=`${o.toLowerCase()}Onsite`;return t[o]!==e[s]})}function ht({userId:t,useConsentStore:e}){return!!t&&e===!0}function Ot(t,e){return t?`${e.consentProxyHost}/__consent/consent-record/${H}/${e.userId}?updateFtConsentCookie=true`:`${e.consentProxyHost}/__consent/consent-record-cookie?cookieDomain=${e.cookieDomain}`}const F={gdpr:!1,usnat:!1},C=Object.assign({},F);function R(t){C[t]=!0}function Et(t){return C[t]}function Tt(){Object.assign(C,F)}async function kt(t){return Et(t)?t==="gdpr"?(await L()).eventStatus==="useractioncomplete":t==="usnat"?(await M()).cmpDisplayStatus==="hidden":!1:!1}function Nt(){window.__tcfapi&&window.__tcfapi("addEventListener",2,t=>{t.eventStatus==="cmpuishown"&&R("gdpr")}),window.__gpp&&window.__gpp("addEventListener",({pingData:t})=>{t.cmpDisplayStatus==="visible"&&R("usnat")})}async function Pt(t,e){try{const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),credentials:"include"});n.ok||console.error("Unable to save consent preferences",n.status)}catch(n){console.error("An error occurred while saving consent",n)}}const At=()=>{document.dispatchEvent(new CustomEvent("onCmpConsentReady",{bubbles:!0}))};function Dt(t){return async function(n,o,s,a){if(At(),t.disableFTCookies||!t.includeUsNat&&n==="usnat")return;const r=a.applies?n:"gdpr";if(r!==n||!s)return;let c;try{c=await bt(r)}catch(b){console.error(b)}if(!c||!Ct(c,St()))return;const p=await kt(r),f=ht(t),d=Ot(f,t),g=ft(c,f,p,t);await Pt(d,g),p&&Tt(),document.dispatchEvent(new CustomEvent("oCookieMessage.act",{bubbles:!0}))}}const h="cookie-message",Mt="manage-cookies";let O=Object.freeze({activeComponent:h,messageId:0,privacyManagerId:0});function Lt(t){return typeof t=="object"&&t!==null&&t.constructor===Object&&Object.prototype.toString.call(t)==="[object Object]"}const Ft=()=>({...O}),E=t=>{if(!Lt(t)){console.error("Invalid state changes");return}O={...O,...t}},Rt=["adsDisableInternalCMP","pwm.cmp","messageSlotBottom"];function Ut(t,e){const n=Vt(t.flags);window._sp_queue=window._sp_queue??[],window._sp_queue.push(()=>{var o,s;for(const[a,r]of Object.entries(jt))(s=(o=window._sp_).addEventListener)==null||s.call(o,a,r({...t,flags:n}))}),Ht({...t,flags:n},e)}function Vt(t){const e={};return typeof t=="object"&&Rt.forEach(n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}),e}function xt(t){if(!t)return;const e=document.body,n=new CustomEvent("oTracking.event",{bubbles:!0,cancelable:!0,detail:t.detail});e.dispatchEvent(n)}function I({trackingProps:t,action:e,triggerAction:n}){let o;const s=Ft(),{product:a,app:r,flags:c}=t;s.activeComponent===h?o=s.messageId:o=s.privacyManagerId;const i={detail:{component:{id:o,name:s.activeComponent,type:"overlay",subtype:"cmp"},category:"component",action:e,...n&&{trigger_action:n},...a&&{product:a},...r&&{app:r},custom:[{cookie_toggle_flag:c}],url:window.document.location.href||null}};xt(i)}const jt={onMessageChoiceSelect:t=>(e,n,o)=>{const a={11:"accept_all",12:"manage_cookies",13:"reject_all"}[o];a&&I({trackingProps:t,action:"click",triggerAction:a})},onMessageReady:t=>()=>{I({trackingProps:t,action:"view"})},onMessageReceiveData:()=>(t,e)=>{const{messageId:n}=e;n&&E({messageId:n})},onError:t=>(e,n)=>{I({trackingProps:t,action:"error",triggerAction:n})},onPMCancel:()=>()=>{E({activeComponent:h})}};function Ht(t,e){window.addEventListener("message",function(n){if(n.origin!==e)return;const o={1:"save_and_close",11:"accept_all",13:"reject_all"},{data:{fromPM:s,actionType:a,messageId:r="0"}={}}=n;s&&(+r&&E({activeComponent:Mt,privacyManagerId:+r}),!(!a||!o[a])&&I({trackingProps:t,action:"click",triggerAction:o[a]}))},!1)}const qt="6.0.0";async function Gt(t){const{useFTSession:e=!0,consentProxyHost:n=$,cookieDomain:o=W,formOfWordsId:s=G,useConsentStore:a=!0,trackingContext:r={},disableFTCookies:c=!1,includeUsNat:i=!1}=t||{};let{propertyConfig:p=w,userId:f}=t||{};if(typeof window>"u"){console.error("The CMP client can only be initialised in a browser context");return}if(window.FT_CMP_CLIENT_VERSION=qt,!f&&e)try{const d=await j();f=d==null?void 0:d.uuid}catch(d){console.error(d)}p=Wt(p),lt(p,{userId:f,includeUsNat:i}),Nt(),window._sp_queue.push(()=>{var d,g;(g=(d=window._sp_)==null?void 0:d.addEventListener)==null||g.call(d,"onConsentReady",Dt({userId:f,consentProxyHost:n,cookieDomain:o,formOfWordsId:s,useConsentStore:a,disableFTCookies:c,includeUsNat:i}))}),Ut(r,p.baseEndpoint)}function Wt(t){if(!(t!=null&&t.accountId))throw new Error("Please pass a valid property config");return t.events&&(console.warn("[cmp-client] Passing an events map in the config is not supported and will be ignored. Please use window._sp_.addEventListener() to listen for events"),delete t.events),t}function U(t,e,n,o,s,a){const{text:r,onClick:c}=o[e],i=document.querySelectorAll(`a[href*="${a}"]`);for(const p of i)(n||t)&&(s.has(p)&&p.removeEventListener("click",s.get(p)),p.innerText=r,p.addEventListener("click",c),s.set(p,c))}function $t({_clientOptions:t}=w){const{privacyManagerId:e,ccpaPrivacyManagerId:n,usnatPrivacyManagerId:o,manageCookiesLinkOverride:s}=t??w._clientOptions,a={usnat:{text:"Do Not Sell My Personal Information",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.usnat)==null||p.loadPrivacyManagerModal(o)}},ccpa:{text:"Do Not Sell My Personal Information",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.ccpa)==null||p.loadPrivacyManagerModal(n)}},gdpr:{text:"Manage Cookies",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.gdpr)==null||p.loadPrivacyManagerModal(e)}}},r=new Map,c=function(i,p,f,d){U(!1,i,d.applies,a,r,s),d.applies&&window._sp_queue.push(()=>{var g,b;(b=(g=window._sp_).removeEventListener)==null||b.call(g,"onConsentReady",c)})};U(!0,"gdpr",!1,a,r,s),window._sp_queue??(window._sp_queue=[]),window._sp_queue.push(()=>{var i,p;(p=(i=window._sp_).addEventListener)==null||p.call(i,"onConsentReady",c)})}function Kt(t){return t._clientOptions??{}}const Bt={"ft.com":Kt};function Jt(t){return new Promise((e,n)=>{const{rootDomain:o}=t._clientOptions||{};if(!o)return e({});const s=Bt[o];if(!s||typeof s!="function")return e({...t._clientOptions});const a=()=>{try{e(s(t))}catch(r){n(r)}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a):a()})}function Xt(t,e){if(!e||Number.isFinite(parseFloat(e))||!t.endsWith(e))return!1;const n=t.indexOf(e),o=t[n-1];return o==="."||o===void 0}function Yt(t){if(!t)throw new Error("Invalid hostname provided");let n=Object.values(rt).find(o=>{var a;if(o.propertyHref)return!1;const s=(a=o._clientOptions)==null?void 0:a.rootDomain;return s&&Xt(t,s)});return n??(n=N),n}const zt=new URL(window.location.href).hostname,l=Yt(zt);(async()=>{var t,e;try{const n=await Jt(l);Gt({propertyConfig:l,...n}),(t=l==null?void 0:l._clientOptions)!=null&&t.privacyManagerId&&((e=l==null?void 0:l._clientOptions)!=null&&e.manageCookiesLinkOverride)&&$t(l)}catch(n){console.error("Error: CMP package configure + initialise Sourcepoint failed.",n)}})()})();
@@ -1,8 +1,4 @@
1
1
  import type { SPConfig, regionConfig } from "../../typings/types";
2
- declare function findAndUpdateLinks(fallback: boolean, regionId: string, regionApplies: boolean, regionConfig: regionConfig, linkMap: Map<HTMLElement, (this: HTMLElement, ev: MouseEvent) => void>, manageCookiesLinkOverride?: string): void;
2
+ export declare function findAndUpdateLinks(fallback: boolean, regionId: string, regionApplies: boolean, regionConfig: regionConfig, linkMap: Map<HTMLElement, (this: HTMLElement, ev: MouseEvent) => void>, manageCookiesLinkOverride?: string): void;
3
3
  export declare function interceptManageCookiesLinks({ _clientOptions }?: SPConfig): void;
4
- export declare const exportedForTesting: {
5
- findAndUpdateLinks: typeof findAndUpdateLinks;
6
- };
7
- export {};
8
4
  //# sourceMappingURL=cmp-manage-cookies-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cmp-manage-cookies-link.d.ts","sourceRoot":"","sources":["../../../src/html/cmp-manage-cookies-link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIlE,iBAAS,kBAAkB,CACzB,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC,EACtE,yBAAyB,CAAC,EAAE,MAAM,QAenC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,cAAc,EAAE,GAAE,QAAyB,QA+DxF;AAED,eAAO,MAAM,kBAAkB;;CAE9B,CAAC"}
1
+ {"version":3,"file":"cmp-manage-cookies-link.d.ts","sourceRoot":"","sources":["../../../src/html/cmp-manage-cookies-link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIlE,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EACjB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC,EACtE,yBAAyB,CAAC,EAAE,MAAM,QAenC;AAED,wBAAgB,2BAA2B,CAAC,EAAE,cAAc,EAAE,GAAE,QAAyB,QA+DxF"}
@@ -1,3 +1,4 @@
1
+ import type { IabCustomCategoryName } from "../../typings/types.d.ts";
1
2
  export declare const SOURCEPOINT_CONSENT_SOURCE = "sourcepoint-cmp";
2
3
  export declare const SOURCEPOINT_FOW_SCOPE = "FTPINK";
3
4
  export declare const CONSENT_COOKIE_NAME = "FTConsent";
@@ -36,5 +37,5 @@ export declare const iabCustomCategories: {
36
37
  readonly specialFeatures: readonly [];
37
38
  };
38
39
  };
39
- export declare const iabCategoryNames: ("permutiveAds" | "demographicAds" | "behaviouralAds" | "programmaticAds" | "personalisedMarketing")[];
40
+ export declare const iabCategoryNames: IabCustomCategoryName[];
40
41
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,eAAO,MAAM,kBAAkB,oDAAoD,CAAC;AACpF,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BtB,CAAC;AAEX,eAAO,MAAM,gBAAgB,wGAA8D,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,eAAO,MAAM,kBAAkB,oDAAoD,CAAC;AACpF,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BtB,CAAC;AAEX,eAAO,MAAM,gBAAgB,EAAuC,qBAAqB,EAAE,CAAC"}
@@ -143,4 +143,44 @@ export declare const SP_FT_LOCATIONS: {
143
143
  joinHref: boolean;
144
144
  gdpr: {};
145
145
  };
146
+ export declare const SP_FTA_SERVICE_AWARDS: {
147
+ accountId: number;
148
+ baseEndpoint: string;
149
+ propertyId: number;
150
+ _clientOptions: {
151
+ rootDomain: string;
152
+ };
153
+ joinHref: boolean;
154
+ gdpr: {};
155
+ };
156
+ export declare const SP_CELEBRATION_OF_INVESTMENT: {
157
+ accountId: number;
158
+ baseEndpoint: string;
159
+ propertyId: number;
160
+ _clientOptions: {
161
+ rootDomain: string;
162
+ };
163
+ joinHref: boolean;
164
+ gdpr: {};
165
+ };
166
+ export declare const SP_GLOBAL_PRIVATE_BANKING_AWARDS: {
167
+ accountId: number;
168
+ baseEndpoint: string;
169
+ propertyId: number;
170
+ _clientOptions: {
171
+ rootDomain: string;
172
+ };
173
+ joinHref: boolean;
174
+ gdpr: {};
175
+ };
176
+ export declare const TNW: {
177
+ accountId: number;
178
+ baseEndpoint: string;
179
+ propertyId: number;
180
+ _clientOptions: {
181
+ rootDomain: string;
182
+ };
183
+ joinHref: boolean;
184
+ gdpr: {};
185
+ };
146
186
  //# sourceMappingURL=properties.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/lib/properties.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;CAW1B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAa1B,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;CAQrB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;CAQ/B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;CAQzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;CAQzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;CAQhC,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;CAQzB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;CAQlC,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;CAQ3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAQ7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;CAQ3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;CAU3B,CAAC"}
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/lib/properties.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;CAW1B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;CAa1B,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;CAQrB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;CAQ/B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;CAQzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;CAQzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;CAQhC,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;CAQzB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;CAQlC,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;CAQ3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAQ7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;CAQ3B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;CAQjC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;CAQxC,CAAC;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;CAQ5C,CAAC;AAEF,eAAO,MAAM,GAAG;;;;;;;;;CAQf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/tracking/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AASjE,eAAO,MAAM,aAAa;;;;EAIxB,CAAC;AAIH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAOzD;AAGD,eAAO,MAAM,QAAQ;;qBAvBF,qBAAqB,GAAG,sBAAsB;eACpD,MAAM;sBACC,MAAM;CAqByB,CAAC;AAEpD,eAAO,MAAM,QAAQ,aAAc,OAAO,SAOzC,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/tracking/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AASjE,eAAO,MAAM,aAAa;;;;EAIxB,CAAC;AAIH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAOzD;AAGD,eAAO,MAAM,QAAQ;;qBAvBF,OAAO,cAAc,GAAG,OAAO,eAAe;eACpD,MAAM;sBACC,MAAM;CAqByB,CAAC;AAEpD,eAAO,MAAM,QAAQ,aAAc,OAAO,SAOzC,CAAC"}
@@ -136,5 +136,41 @@ export declare function getPropertyConfigByHostname(hostname: string): {
136
136
  };
137
137
  joinHref: boolean;
138
138
  gdpr: {};
139
+ } | {
140
+ accountId: number;
141
+ baseEndpoint: string;
142
+ propertyId: number;
143
+ _clientOptions: {
144
+ rootDomain: string;
145
+ };
146
+ joinHref: boolean;
147
+ gdpr: {};
148
+ } | {
149
+ accountId: number;
150
+ baseEndpoint: string;
151
+ propertyId: number;
152
+ _clientOptions: {
153
+ rootDomain: string;
154
+ };
155
+ joinHref: boolean;
156
+ gdpr: {};
157
+ } | {
158
+ accountId: number;
159
+ baseEndpoint: string;
160
+ propertyId: number;
161
+ _clientOptions: {
162
+ rootDomain: string;
163
+ };
164
+ joinHref: boolean;
165
+ gdpr: {};
166
+ } | {
167
+ accountId: number;
168
+ baseEndpoint: string;
169
+ propertyId: number;
170
+ _clientOptions: {
171
+ rootDomain: string;
172
+ };
173
+ joinHref: boolean;
174
+ gdpr: {};
139
175
  };
140
176
  //# sourceMappingURL=url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAWtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3D"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/url.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAWtE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/cmp-client",
3
- "version": "5.9.1",
3
+ "version": "6.0.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [
@@ -20,12 +20,10 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/uuid": "^9.0.8",
23
- "eslint": "^8.56.0",
24
23
  "npm-run-all": "^4.1.5",
25
- "rimraf": "^5.0.5",
26
- "typescript": "^5.3.3",
27
- "vite": "^5.1.1",
28
- "vitest": "^1.2.2"
24
+ "typescript": "^5.7.3",
25
+ "vite": "^6.1.1",
26
+ "vitest": "^3.0.6"
29
27
  },
30
28
  "scripts": {
31
29
  "lint": "eslint ./src ./typings --ext .ts",
@@ -33,10 +31,11 @@
33
31
  "checks:unit": "npm t -- --run",
34
32
  "checks:types": "tsc",
35
33
  "checks": "run-s checks:*",
34
+ "build:clean": "rm -rf ./dist",
36
35
  "build:lib": "vite build --config vite.config.lib.ts",
37
36
  "build:static": "vite build --config vite.config.static.ts",
38
37
  "build:types": "tsc",
39
- "build": "rimraf ./dist && run-s build:*",
38
+ "build": "run-s build:*",
40
39
  "test": "vitest"
41
40
  }
42
41
  }