PageSourceSearch

https://willowcommerce.com/assets/useSEOHead-DdAms1Lp.js

js willowcommerce.com collected 2026-10-04 03:00:29 UTC 3,647 bytes, 1 lines download raw bytes

1import{bh as g,bj as y,H as D,r as U,dz as W,dA as b,dB as M,dC as B}from"./index-Cz3wH2jj.js";const v=62,w=158;function m(t,o){if(t.length<=o)return t;const e=t.slice(0,o-1),r=e.lastIndexOf(" ");return`${(r>o*.6?e.slice(0,r):e).replace(/[\s,.;:—-]+$/,"")}…`}function P(t,o){const e=t.toLowerCase();return e.includes(o.name.toLowerCase())||e.includes(`(${o.code})`)||e.includes(` ${o.code.toUpperCase()} `)}function H(t,o){const e=g(o);if(e.code===y||P(t,e))return t;const r=` in ${e.name}`,s=t.split("|");if(s.length>1){const i=s.pop().trim(),l=s.join("|").trim(),f=Math.max(24,v-i.length-r.length-3);return`${m(l,f)}${r} | ${i}`}return`${m(t,Math.max(24,v-r.length))}${r}`}function N(t,o){const e=g(o);if(e.code===y)return t;if(P(t,e))return m(t,w);const r=e.marketplaces.slice(0,2).join(", "),s=e.carriers.slice(0,2).join(", "),i=` Built for ${e.name} sellers — ${r} and ${s}.`,l=w-i.length;return l<40?m(`${t} For ${e.name} sellers.`,w):`${m(t,l)}${i}`}function I(t,o){const e=g(o);if(e.code===y)return null;const r=e.marketplaces.slice(0,3).join(", "),s=e.carriers.slice(0,3).join(", ");return{title:m(`${t} Alternative in ${e.name}`,v-18)+" | Willowcommerce",description:m(`Compare Willowcommerce with ${t} for ${e.name} sellers: ${r} integrations, ${s} shipping, inventory and warehouse management in one platform.`,w)}}const O="https://willowcommerce.com";function J({title:t,description:o,canonical:e,ogImage:r=`${O}/og-image.png`,ogType:s="website",jsonLd:i,jsonLdExtra:l,noindex:f=!1,localizeForCountry:j=!0}){const C=D().pathname;U.useEffect(()=>{var q;const T=typeof window<"u"?`${window.location.pathname}${window.location.search||""}`:"/",S=e??T,z=typeof window<"u"?(q=W(window.location.hostname))==null?void 0:q.code:void 0,h=b(C).code||z||y,_=j&&M(b(C).rest),A=_?H(t,h):t,E=_?N(o,h):o;document.title=A;let $;if(S.startsWith("http"))$=S;else{const[n,u=""]=S.split("?"),{rest:a}=b(n||"/"),d=M(a)?B(a,h):a;$=`${O}${d}${u?`?${u}`:""}`}const c=(n,u,a)=>{let d=document.querySelector(`meta[${n}="${u}"]`);d||(d=document.createElement("meta"),d.setAttribute(n,u),document.head.appendChild(d)),d.setAttribute("content",a)};c("name","description",E),c("name","robots",f?"noindex, nofollow":"index, follow"),c("property","og:title",A),c("property","og:description",E),c("property","og:type",s),c("property","og:url",$),c("property","og:image",r),c("property","og:site_name","Willowcommerce"),c("name","twitter:card","summary_large_image"),c("name","twitter:title",A),c("name","twitter:description",E),c("name","twitter:image",r);let p=document.querySelector('link[rel="canonical"]');p||(p=document.createElement("link"),p.setAttribute("rel","canonical"),document.head.appendChild(p)),p.setAttribute("href",$);const x=g(h);document.documentElement.dataset.siteLang||document.documentElement.setAttribute("lang",x.locale),c("property","og:locale",x.locale.replace("-","_"));const k=document.querySelector("script[data-seo-jsonld]");if(k&&k.remove(),i){const n=document.createElement("script");n.type="application/ld+json",n.setAttribute("data-seo-jsonld","true"),n.textContent=JSON.stringify(i),document.head.appendChild(n)}return document.querySelectorAll("script[data-seo-jsonld-extra]").forEach(n=>n.remove()),l&&l.length>0&&l.forEach((n,u)=>{const a=document.createElement("script");a.type="application/ld+json",a.setAttribute("data-seo-jsonld-extra",String(u)),a.textContent=JSON.stringify(n),document.head.appendChild(a)}),()=>{const n=document.querySelector("script[data-seo-jsonld]");n&&n.remove(),document.querySelectorAll("script[data-seo-jsonld-extra]").forEach(u=>u.remove())}},[C,t,o,e,r,s,i,l,f,j])}export{I as l,J as u};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.