@dub/utils 0.0.40 → 0.0.41

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.
@@ -0,0 +1 @@
1
+ var o=async({url:n,requestDomain:a})=>{let e=await fetch(n,{headers:{"User-Agent":"Dub.co Bot"}});if(!e.ok)return!1;let s=e.headers.get("X-Frame-Options");if(s&&s!=="ALLOWALL")return!1;let r=e.headers.get("content-security-policy");if(!r)return!0;let t=r.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(t&&t[1].split(/\s+/).includes(a))};export{o as a};
@@ -0,0 +1 @@
1
+ import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as x}from"./chunk-7REZWZDA.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as h}from"./chunk-SYT2IXG6.mjs";import E from"@sindresorhus/slugify";var O=e=>{let t=E(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((s,i)=>s.length<i.length?s:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/u),C=new RegExp(/^[a-zA-Z0-9\-]+$/),B=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),D=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&c.has(o[o.length-1])||h.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},J=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},M=e=>u.some(t=>t.slug===e);var p=({name:e="Business",monthly:t=49,yearly:o=39,links:n=5e3,clicks:s=15e4,domains:i=40,tags:m=150,users:d=15,ids:P=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:P},limits:{links:n,clicks:s,domains:i,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(n,{full:!0})} new links/mo`},{text:`${l(s)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),r=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:49,yearly:39,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPVJdwv5zrG","price_1LoyrCAlJJEpqkPVZ32BV3wm","price_1LodLoAlJJEpqkPV9rD0rlNL","price_1OTcRzAlJJEpqkPV6G9iP0Tb","price_1OZgmnAlJJEpqkPVOj4kV64R"]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OnaK3AlJJEpqkPVnKU97wxJ"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OnaKJAlJJEpqkPVcfQ5Rm06"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OnaKOAlJJEpqkPVijIbAivj"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],A=r.find(e=>e.name==="Free"),k=r.find(e=>e.name==="Pro"),b=r.find(e=>e.name==="Business"),L=r.find(e=>e.name==="Enterprise"),ne=[A,k,b,L],N=r.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ie=2,ae=e=>r.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,ce=e=>N.find(t=>t.name.toLowerCase()===e.toLowerCase()),le=e=>r[r.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var ue=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",f=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,me=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),de=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",ge=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",he=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),xe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",_e=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),fe="https://assets.dub.co/logo.png",Pe="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ee="clrflia0j0000vs7sqfhz9c7q",Ae="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a}]:[]],ke=u.map(e=>e.slug),be=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function Me({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:s=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,images:[{url:o}]},twitter:{card:"summary_large_image",title:e,description:t,images:[o],creator:"@dubdotco"},icons:n,metadataBase:new URL(f),...s&&{robots:{index:!1,follow:!1}}}}export{Me as a,O as b,w as c,S as d,C as e,B as f,D as g,J as h,M as i,r as j,A as k,k as l,b as m,L as n,ne as o,N as p,ie as q,ae as r,ce as s,le as t,ue as u,_ as v,f as w,me as x,de as y,ge as z,he as A,xe as B,_e as C,fe as D,Pe as E,a as F,Ee as G,Ae as H,u as I,ke as J,be as K};
@@ -0,0 +1 @@
1
+ var o=async({url:n,requestDomain:a})=>{let e=await fetch(n);if(console.log(e.headers.get("content-security-policy"),e.headers.get("X-Frame-Options")),!e.ok)return!1;let s=e.headers.get("X-Frame-Options");if(s==="DENY"||s==="SAMEORIGIN")return!1;let t=e.headers.get("content-security-policy");if(!t)return!0;let r=t.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(r&&r[1].split(/\s+/).includes(a))};export{o as a};
@@ -0,0 +1 @@
1
+ var n=e=>{try{return new URL(e),!0}catch{return!1}},c=e=>{if(n(e))return e;try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).toString()}catch{return""}},i=e=>{let r={};return new URL(e).searchParams.forEach(function(t,a){r[a]=t}),r},m=e=>{if(!e)return{};try{let r=new URL(e).searchParams,t={};for(let[a,s]of r.entries())s&&s!==""&&(t[a]=s);return t}catch{return{}}},u=(e,r)=>{if(!e)return"";try{let t=new URL(e);for(let[a,s]of Object.entries(r))s===""?t.searchParams.delete(a):t.searchParams.set(a,s);return t.toString()}catch{return""}},o=[{display:"Referral (ref)",key:"ref",examples:"twitter, facebook"},{display:"UTM Source",key:"utm_source",examples:"twitter, facebook"},{display:"UTM Medium",key:"utm_medium",examples:"social, email"},{display:"UTM Campaign",key:"utm_campaign",examples:"summer_sale"},{display:"UTM Term",key:"utm_term",examples:"blue_shoes"},{display:"UTM Content",key:"utm_content",examples:"logolink"}],l=e=>{try{let r=new URL(e);return o.forEach(t=>r.searchParams.delete(t.key)),r.toString()}catch{return e}};export{n as a,c as b,i as c,m as d,u as e,o as f,l as g};
@@ -0,0 +1 @@
1
+ var n=e=>{try{return new URL(e),!0}catch{return!1}},c=e=>{if(n(e))return e;try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).toString()}catch{}return""},i=e=>{let r={};return new URL(e).searchParams.forEach(function(t,a){r[a]=t}),r},m=e=>{if(!e)return{};try{let r=new URL(e).searchParams,t={};for(let[a,s]of r.entries())s&&s!==""&&(t[a]=s);return t}catch{return{}}},u=(e,r)=>{if(!e)return"";try{let t=new URL(e);for(let[a,s]of Object.entries(r))s===""?t.searchParams.delete(a):t.searchParams.set(a,s);return t.toString()}catch{return""}},o=[{display:"Referral (ref)",key:"ref",examples:"twitter, facebook"},{display:"UTM Source",key:"utm_source",examples:"twitter, facebook"},{display:"UTM Medium",key:"utm_medium",examples:"social, email"},{display:"UTM Campaign",key:"utm_campaign",examples:"summer_sale"},{display:"UTM Term",key:"utm_term",examples:"blue_shoes"},{display:"UTM Content",key:"utm_content",examples:"logolink"}],l=e=>{try{let r=new URL(e);return o.forEach(t=>r.searchParams.delete(t.key)),r.toString()}catch{return e}};export{n as a,c as b,i as c,m as d,u as e,o as f,l as g};
@@ -0,0 +1 @@
1
+ var o=async({url:n,requestDomain:a})=>{let e=await fetch(n,{headers:{"User-Agent":"Dub.co Bot"}});if(!e.ok)return!1;let s=e.headers.get("X-Frame-Options");if(s==="DENY"||s==="SAMEORIGIN")return!1;let r=e.headers.get("content-security-policy");if(!r)return!0;let t=r.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(t&&t[1].split(/\s+/).includes(a))};export{o as a};
@@ -0,0 +1 @@
1
+ import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as x}from"./chunk-7REZWZDA.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as h}from"./chunk-SYT2IXG6.mjs";import E from"@sindresorhus/slugify";var O=e=>{let t=E(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((s,i)=>s.length<i.length?s:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/u),C=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),J=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&c.has(o[o.length-1])||h.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},B=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},M=e=>u.some(t=>t.slug===e);var p=({name:e="Business",monthly:t=59,yearly:o=49,links:n=5e3,clicks:s=15e4,domains:i=40,tags:m=150,users:d=15,ids:P=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:P},limits:{links:n,clicks:s,domains:i,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(n,{full:!0})} new links/mo`},{text:`${l(s)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),r=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","",""]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OnaK3AlJJEpqkPVnKU97wxJ"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OnaKJAlJJEpqkPVcfQ5Rm06"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OnaKOAlJJEpqkPVijIbAivj"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],A=r.find(e=>e.name==="Free"),k=r.find(e=>e.name==="Pro"),b=r.find(e=>e.name==="Business"),N=r.find(e=>e.name==="Enterprise"),ne=[A,k,b,N],L=r.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ie=2,ae=e=>r.find(t=>t.price.ids.includes(e))||null,ce=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),le=e=>r[r.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var ue=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",f=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,me=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),de=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",ge=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",he=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),xe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",_e=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),fe="https://assets.dub.co/logo.png",Pe="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ee="clrflia0j0000vs7sqfhz9c7q",Ae="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a}]:[]],ke=u.map(e=>e.slug),be=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function Me({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:s=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,images:[{url:o}]},twitter:{card:"summary_large_image",title:e,description:t,images:[o],creator:"@dubdotco"},icons:n,metadataBase:new URL(f),...s&&{robots:{index:!1,follow:!1}}}}export{Me as a,O as b,w as c,S as d,C as e,D as f,J as g,B as h,M as i,r as j,A as k,k as l,b as m,N as n,ne as o,L as p,ie as q,ae as r,ce as s,le as t,ue as u,_ as v,f as w,me as x,de as y,ge as z,he as A,xe as B,_e as C,fe as D,Pe as E,a as F,Ee as G,Ae as H,u as I,ke as J,be as K};
@@ -0,0 +1 @@
1
+ var i=async({url:r,requestDomain:n})=>{let e=await fetch(r,{headers:{"User-Agent":"Dub.co Bot"}});if(!e.ok||(console.log(e.headers.get("content-security-policy"),e.headers.get("X-Frame-Options")),e.headers.get("X-Frame-Options")))return!1;let s=e.headers.get("content-security-policy");if(!s)return!0;let t=s.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(t&&t[1].split(/\s+/).includes(n))};export{i as a};
@@ -0,0 +1 @@
1
+ var o=async({url:n,requestDomain:a})=>{let e=await fetch(n);if(console.log(await e.text(),e.headers.get("content-security-policy"),e.headers.get("X-Frame-Options")),!e.ok)return!0;let t=e.headers.get("X-Frame-Options");if(t==="DENY"||t==="SAMEORIGIN")return!1;let r=e.headers.get("content-security-policy");if(!r)return!0;let s=r.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(s&&s[1].split(/\s+/).includes(a))};export{o as a};
@@ -0,0 +1 @@
1
+ var i=async({url:n,requestDomain:a})=>{let e=await fetch(n,{headers:{"User-Agent":"Dub.co Bot"}});if(console.log(e.headers.get("content-security-policy"),e.headers.get("X-Frame-Options")),!e.ok)return!1;let s=e.headers.get("X-Frame-Options");if(s==="DENY"||s==="SAMEORIGIN")return!1;let t=e.headers.get("content-security-policy");if(!t)return!0;let r=t.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(r&&r[1].split(/\s+/).includes(a))};export{i as a};
@@ -0,0 +1 @@
1
+ var n=e=>{if(!e)return!1;try{return new URL(e),!0}catch{return!1}},c=e=>{if(n(e))return e;try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).toString()}catch{return null}},i=e=>{let r={};return new URL(e).searchParams.forEach(function(t,a){r[a]=t}),r},m=e=>{if(!e)return{};try{let r=new URL(e).searchParams,t={};for(let[a,s]of r.entries())s&&s!==""&&(t[a]=s);return t}catch{return{}}},l=(e,r)=>{if(!e)return"";try{let t=new URL(e);for(let[a,s]of Object.entries(r))s===""?t.searchParams.delete(a):t.searchParams.set(a,s);return t.toString()}catch{return""}},o=[{display:"Referral (ref)",key:"ref",examples:"twitter, facebook"},{display:"UTM Source",key:"utm_source",examples:"twitter, facebook"},{display:"UTM Medium",key:"utm_medium",examples:"social, email"},{display:"UTM Campaign",key:"utm_campaign",examples:"summer_sale"},{display:"UTM Term",key:"utm_term",examples:"blue_shoes"},{display:"UTM Content",key:"utm_content",examples:"logolink"}],u=e=>{try{let r=new URL(e);return o.forEach(t=>r.searchParams.delete(t.key)),r.toString()}catch{return e}};export{n as a,c as b,i as c,m as d,l as e,o as f,u as g};
@@ -0,0 +1 @@
1
+ import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as x}from"./chunk-5LVKLKIV.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as h}from"./chunk-SYT2IXG6.mjs";import E from"@sindresorhus/slugify";var O=e=>{let t=E(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((s,i)=>s.length<i.length?s:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/u),C=new RegExp(/^[a-zA-Z0-9\-]+$/),B=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),D=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&c.has(o[o.length-1])||h.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},J=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},M=e=>u.some(t=>t.slug===e);var p=({name:e="Business",monthly:t=49,yearly:o=39,links:n=5e3,clicks:s=15e4,domains:i=40,tags:m=150,users:d=15,ids:P=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:P},limits:{links:n,clicks:s,domains:i,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(n,{full:!0})} new links/mo`},{text:`${l(s)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),r=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:49,yearly:39,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPVJdwv5zrG","price_1LoyrCAlJJEpqkPVZ32BV3wm","price_1LodLoAlJJEpqkPV9rD0rlNL","price_1OTcRzAlJJEpqkPV6G9iP0Tb","price_1OZgmnAlJJEpqkPVOj4kV64R"]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OnaK3AlJJEpqkPVnKU97wxJ"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OnaKJAlJJEpqkPVcfQ5Rm06"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OnaKOAlJJEpqkPVijIbAivj"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],A=r.find(e=>e.name==="Free"),k=r.find(e=>e.name==="Pro"),b=r.find(e=>e.name==="Business"),L=r.find(e=>e.name==="Enterprise"),ne=[A,k,b,L],N=r.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ie=2,ae=e=>r.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,ce=e=>N.find(t=>t.name.toLowerCase()===e.toLowerCase()),le=e=>r[r.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var ue=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",f=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,me=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),de=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",ge=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",he=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),xe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",_e=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),fe="https://assets.dub.co/logo.png",Pe="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ee="clrflia0j0000vs7sqfhz9c7q",Ae="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com","raw.githubusercontent.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a}]:[]],ke=u.map(e=>e.slug),be=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function Me({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:s=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,images:[{url:o}]},twitter:{card:"summary_large_image",title:e,description:t,images:[o],creator:"@dubdotco"},icons:n,metadataBase:new URL(f),...s&&{robots:{index:!1,follow:!1}}}}export{Me as a,O as b,w as c,S as d,C as e,B as f,D as g,J as h,M as i,r as j,A as k,k as l,b as m,L as n,ne as o,N as p,ie as q,ae as r,ce as s,le as t,ue as u,_ as v,f as w,me as x,de as y,ge as z,he as A,xe as B,_e as C,fe as D,Pe as E,a as F,Ee as G,Ae as H,u as I,ke as J,be as K};
@@ -0,0 +1 @@
1
+ import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as x}from"./chunk-7REZWZDA.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as h}from"./chunk-SYT2IXG6.mjs";import E from"@sindresorhus/slugify";var O=e=>{let t=E(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((s,i)=>s.length<i.length?s:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),J=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/u),S=new RegExp(/^[a-zA-Z0-9\-]+$/),C=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),D=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&c.has(o[o.length-1])||h.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},B=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},M=e=>u.some(t=>t.slug===e);var p=({name:e="Business",monthly:t=59,yearly:o=49,links:n=5e3,clicks:s=15e4,domains:i=40,tags:m=150,users:d=15,ids:P=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:P},limits:{links:n,clicks:s,domains:i,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(n,{full:!0})} new links/mo`},{text:`${l(s)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),r=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOFIAlJJEpqkPVagHUG70D"]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OnaK3AlJJEpqkPVnKU97wxJ"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OnaKJAlJJEpqkPVcfQ5Rm06"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OnaKOAlJJEpqkPVijIbAivj"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],A=r.find(e=>e.name==="Free"),k=r.find(e=>e.name==="Pro"),b=r.find(e=>e.name==="Business"),N=r.find(e=>e.name==="Enterprise"),ne=[A,k,b,N],L=r.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ie=2,ae=e=>r.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,ce=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),le=e=>r[r.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var ue=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",f=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,me=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),de=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",ge=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",he=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),xe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",_e=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),fe="https://assets.dub.co/logo.png",Pe="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ee="clrflia0j0000vs7sqfhz9c7q",Ae="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a}]:[]],ke=u.map(e=>e.slug),be=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function Me({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:s=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,images:[{url:o}]},twitter:{card:"summary_large_image",title:e,description:t,images:[o],creator:"@dubdotco"},icons:n,metadataBase:new URL(f),...s&&{robots:{index:!1,follow:!1}}}}export{Me as a,O as b,w as c,J as d,S as e,C as f,D as g,B as h,M as i,r as j,A as k,k as l,b as m,N as n,ne as o,L as p,ie as q,ae as r,ce as s,le as t,ue as u,_ as v,f as w,me as x,de as y,ge as z,he as A,xe as B,_e as C,fe as D,Pe as E,a as F,Ee as G,Ae as H,u as I,ke as J,be as K};
@@ -0,0 +1 @@
1
+ import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as x}from"./chunk-PDFNNMWJ.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as h}from"./chunk-SYT2IXG6.mjs";import E from"@sindresorhus/slugify";var O=e=>{let t=E(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((s,i)=>s.length<i.length?s:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/u),C=new RegExp(/^[a-zA-Z0-9\-]+$/),B=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),D=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&c.has(o[o.length-1])||h.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},J=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},M=e=>u.some(t=>t.slug===e);var p=({name:e="Business",monthly:t=49,yearly:o=39,links:n=5e3,clicks:s=15e4,domains:i=40,tags:m=150,users:d=15,ids:P=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:P},limits:{links:n,clicks:s,domains:i,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(n,{full:!0})} new links/mo`},{text:`${l(s)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),r=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:49,yearly:39,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPVJdwv5zrG","price_1LoyrCAlJJEpqkPVZ32BV3wm","price_1LodLoAlJJEpqkPV9rD0rlNL","price_1OTcRzAlJJEpqkPV6G9iP0Tb","price_1OZgmnAlJJEpqkPVOj4kV64R"]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OnaK3AlJJEpqkPVnKU97wxJ"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OnaKJAlJJEpqkPVcfQ5Rm06"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OnaKOAlJJEpqkPVijIbAivj"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],A=r.find(e=>e.name==="Free"),k=r.find(e=>e.name==="Pro"),b=r.find(e=>e.name==="Business"),L=r.find(e=>e.name==="Enterprise"),ne=[A,k,b,L],N=r.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ie=2,ae=e=>r.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,ce=e=>N.find(t=>t.name.toLowerCase()===e.toLowerCase()),le=e=>r[r.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var ue=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",f=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,me=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),de=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",ge=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",he=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),xe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",_e=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),fe="https://assets.dub.co/logo.png",Pe="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ee="clrflia0j0000vs7sqfhz9c7q",Ae="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a}]:[]],ke=u.map(e=>e.slug),be=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function Me({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:s=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,images:[{url:o}]},twitter:{card:"summary_large_image",title:e,description:t,images:[o],creator:"@dubdotco"},icons:n,metadataBase:new URL(f),...s&&{robots:{index:!1,follow:!1}}}}export{Me as a,O as b,w as c,S as d,C as e,B as f,D as g,J as h,M as i,r as j,A as k,k as l,b as m,L as n,ne as o,N as p,ie as q,ae as r,ce as s,le as t,ue as u,_ as v,f as w,me as x,de as y,ge as z,he as A,xe as B,_e as C,fe as D,Pe as E,a as F,Ee as G,Ae as H,u as I,ke as J,be as K};
@@ -0,0 +1 @@
1
+ import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as x}from"./chunk-5STTY72A.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as h}from"./chunk-SYT2IXG6.mjs";import E from"@sindresorhus/slugify";var O=e=>{let t=E(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((s,i)=>s.length<i.length?s:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/u),C=new RegExp(/^[a-zA-Z0-9\-]+$/),B=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),D=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&c.has(o[o.length-1])||h.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},J=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},M=e=>u.some(t=>t.slug===e);var p=({name:e="Business",monthly:t=49,yearly:o=39,links:n=5e3,clicks:s=15e4,domains:i=40,tags:m=150,users:d=15,ids:P=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:P},limits:{links:n,clicks:s,domains:i,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(n,{full:!0})} new links/mo`},{text:`${l(s)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),r=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:49,yearly:39,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPVJdwv5zrG","price_1LoyrCAlJJEpqkPVZ32BV3wm","price_1LodLoAlJJEpqkPV9rD0rlNL","price_1OTcRzAlJJEpqkPV6G9iP0Tb","price_1OZgmnAlJJEpqkPVOj4kV64R"]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OnaK3AlJJEpqkPVnKU97wxJ"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OnaKJAlJJEpqkPVcfQ5Rm06"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OnaKOAlJJEpqkPVijIbAivj"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],A=r.find(e=>e.name==="Free"),k=r.find(e=>e.name==="Pro"),b=r.find(e=>e.name==="Business"),L=r.find(e=>e.name==="Enterprise"),ne=[A,k,b,L],N=r.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ie=2,ae=e=>r.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,ce=e=>N.find(t=>t.name.toLowerCase()===e.toLowerCase()),le=e=>r[r.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var ue=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",f=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,me=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),de=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",ge=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",he=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),xe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",_e=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),fe="https://assets.dub.co/logo.png",Pe="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ee="clrflia0j0000vs7sqfhz9c7q",Ae="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a}]:[]],ke=u.map(e=>e.slug),be=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function Me({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:s=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,images:[{url:o}]},twitter:{card:"summary_large_image",title:e,description:t,images:[o],creator:"@dubdotco"},icons:n,metadataBase:new URL(f),...s&&{robots:{index:!1,follow:!1}}}}export{Me as a,O as b,w as c,S as d,C as e,B as f,D as g,J as h,M as i,r as j,A as k,k as l,b as m,L as n,ne as o,N as p,ie as q,ae as r,ce as s,le as t,ue as u,_ as v,f as w,me as x,de as y,ge as z,he as A,xe as B,_e as C,fe as D,Pe as E,a as F,Ee as G,Ae as H,u as I,ke as J,be as K};
@@ -0,0 +1 @@
1
+ import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as x}from"./chunk-7REZWZDA.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as h}from"./chunk-SYT2IXG6.mjs";import E from"@sindresorhus/slugify";var O=e=>{let t=E(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((s,i)=>s.length<i.length?s:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/u),C=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),J=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&c.has(o[o.length-1])||h.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},B=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},M=e=>u.some(t=>t.slug===e);var p=({name:e="Business",monthly:t=59,yearly:o=49,links:n=5e3,clicks:s=15e4,domains:i=40,tags:m=150,users:d=15,ids:P=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:P},limits:{links:n,clicks:s,domains:i,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(n,{full:!0})} new links/mo`},{text:`${l(s)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),r=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","",""]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OnaK3AlJJEpqkPVnKU97wxJ"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OnaKJAlJJEpqkPVcfQ5Rm06"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OnaKOAlJJEpqkPVijIbAivj"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],A=r.find(e=>e.name==="Free"),k=r.find(e=>e.name==="Pro"),b=r.find(e=>e.name==="Business"),N=r.find(e=>e.name==="Enterprise"),ne=[A,k,b,N],L=r.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ie=2,ae=e=>r.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,ce=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),le=e=>r[r.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var ue=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",f=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,me=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),de=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",ge=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",he=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),xe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",_e=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),fe="https://assets.dub.co/logo.png",Pe="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ee="clrflia0j0000vs7sqfhz9c7q",Ae="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a}]:[]],ke=u.map(e=>e.slug),be=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function Me({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:s=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,images:[{url:o}]},twitter:{card:"summary_large_image",title:e,description:t,images:[o],creator:"@dubdotco"},icons:n,metadataBase:new URL(f),...s&&{robots:{index:!1,follow:!1}}}}export{Me as a,O as b,w as c,S as d,C as e,D as f,J as g,B as h,M as i,r as j,A as k,k as l,b as m,N as n,ne as o,L as p,ie as q,ae as r,ce as s,le as t,ue as u,_ as v,f as w,me as x,de as y,ge as z,he as A,xe as B,_e as C,fe as D,Pe as E,a as F,Ee as G,Ae as H,u as I,ke as J,be as K};
@@ -0,0 +1 @@
1
+ var i=async({url:n,requestDomain:a})=>{let e=await fetch(n,{headers:{"User-Agent":"Dub.co Bot"}});if(!e.ok)return!1;console.log(e.headers.get("content-security-policy"),e.headers.get("X-Frame-Options"));let s=e.headers.get("X-Frame-Options");if(s==="DENY"||s==="SAMEORIGIN")return!1;let t=e.headers.get("content-security-policy");if(!t)return!0;let r=t.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(r&&r[1].split(/\s+/).includes(a))};export{i as a};
@@ -0,0 +1 @@
1
+ var o=async({url:n,requestDomain:a})=>{let e=await fetch(n);if(console.log(await e.text(),e.headers.get("content-security-policy"),e.headers.get("X-Frame-Options")),!e.ok)return!1;let t=e.headers.get("X-Frame-Options");if(t==="DENY"||t==="SAMEORIGIN")return!1;let s=e.headers.get("content-security-policy");if(!s)return!0;let r=s.match(/frame-ancestors\s+([\s\S]+?)(?=;|$)/i);return!!(r&&r[1].split(/\s+/).includes(a))};export{o as a};
@@ -1 +1 @@
1
- import{A as N,B as O,C as P,D as Q,E as R,F as S,G as T,H as U,I as V,J as W,K as X,j as v,k as w,l as x,m as y,n as z,o as A,p as B,q as C,r as D,s as E,t as F,u as H,v as I,w as J,x as K,y as L,z as M}from"../chunk-V4CK2LIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-ZJKRLIJQ.mjs";import"../chunk-5LVKLKIV.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-3BUV2ANI.mjs";import"../chunk-5PD4TPH7.mjs";import{a as o,b as p}from"../chunk-5VUO5P2B.mjs";import{a as q,b as r,c as s,d as t,e as u}from"../chunk-5XTNLJRY.mjs";import{a as G}from"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-RGJGS4AZ.mjs";import{a}from"../chunk-YUMUNL66.mjs";import{a as b,b as c}from"../chunk-5NKPICDX.mjs";import{a as d,b as e}from"../chunk-SYT2IXG6.mjs";import{a as f,b as g,c as h,d as i}from"../chunk-2SICE2ZS.mjs";import{a as j,b as k,c as l}from"../chunk-IAODNORF.mjs";import{a as m,b as n}from"../chunk-FYXE2IZT.mjs";export{P as ADMIN_HOSTNAMES,k as ALL_TOOLS,O as API_DOMAIN,N as API_HOSTNAMES,L as APP_DOMAIN,M as APP_DOMAIN_WITH_NGROK,K as APP_HOSTNAMES,H as APP_NAME,y as BUSINESS_PLAN,l as COMPARE_PAGES,b as COUNTRIES,c as COUNTRY_CODES,q as DEFAULT_LINK_PROPS,o as DEFAULT_REDIRECTS,s as DICEBEAR_AVATAR_URL,X as DUB_DEMO_LINKS,V as DUB_DOMAINS,W as DUB_DOMAINS_ARRAY,p as DUB_HEADERS,Q as DUB_LOGO,R as DUB_THUMBNAIL,S as DUB_WORKSPACE_ID,z as ENTERPRISE_PLAN,i as FADE_IN_ANIMATION_SETTINGS,f as FRAMER_MOTION_LIST_ITEM_VARIANTS,w as FREE_PLAN,C as FREE_WORKSPACES_LIMIT,r as GOOGLE_FAVICON_URL,j as HIDE_BACKGROUND_SEGMENTS,J as HOME_DOMAIN,U as LEGAL_USER_ID,T as LEGAL_WORKSPACE_ID,m as LOCALHOST_GEO_DATA,n as LOCALHOST_IP,t as PAGINATION_LIMIT,v as PLANS,x as PRO_PLAN,A as PUBLIC_PLANS,G as SAML_PROVIDERS,d as SECOND_LEVEL_DOMAINS,B as SELF_SERVE_PAID_PLANS,I as SHORT_DOMAIN,e as SPECIAL_APEX_DOMAINS,g as STAGGER_CHILD_VARIANTS,h as SWIPE_REVEAL_ANIMATION_SETTINGS,u as TWO_WEEKS_IN_SECONDS,a as ccTLDs,F as getNextPlan,E as getPlanDetails,D as getPlanFromPriceId};
1
+ import{A as N,B as O,C as P,D as Q,E as R,F as S,G as T,H as U,I as V,J as W,K as X,j as v,k as w,l as x,m as y,n as z,o as A,p as B,q as C,r as D,s as E,t as F,u as H,v as I,w as J,x as K,y as L,z as M}from"../chunk-SV3RKM7M.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-ZJKRLIJQ.mjs";import"../chunk-7REZWZDA.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import"../chunk-5PD4TPH7.mjs";import{a as o,b as p}from"../chunk-5VUO5P2B.mjs";import{a as q,b as r,c as s,d as t,e as u}from"../chunk-5XTNLJRY.mjs";import{a as G}from"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-RGJGS4AZ.mjs";import{a}from"../chunk-YUMUNL66.mjs";import{a as b,b as c}from"../chunk-5NKPICDX.mjs";import{a as d,b as e}from"../chunk-SYT2IXG6.mjs";import{a as f,b as g,c as h,d as i}from"../chunk-2SICE2ZS.mjs";import{a as j,b as k,c as l}from"../chunk-IAODNORF.mjs";import{a as m,b as n}from"../chunk-FYXE2IZT.mjs";export{P as ADMIN_HOSTNAMES,k as ALL_TOOLS,O as API_DOMAIN,N as API_HOSTNAMES,L as APP_DOMAIN,M as APP_DOMAIN_WITH_NGROK,K as APP_HOSTNAMES,H as APP_NAME,y as BUSINESS_PLAN,l as COMPARE_PAGES,b as COUNTRIES,c as COUNTRY_CODES,q as DEFAULT_LINK_PROPS,o as DEFAULT_REDIRECTS,s as DICEBEAR_AVATAR_URL,X as DUB_DEMO_LINKS,V as DUB_DOMAINS,W as DUB_DOMAINS_ARRAY,p as DUB_HEADERS,Q as DUB_LOGO,R as DUB_THUMBNAIL,S as DUB_WORKSPACE_ID,z as ENTERPRISE_PLAN,i as FADE_IN_ANIMATION_SETTINGS,f as FRAMER_MOTION_LIST_ITEM_VARIANTS,w as FREE_PLAN,C as FREE_WORKSPACES_LIMIT,r as GOOGLE_FAVICON_URL,j as HIDE_BACKGROUND_SEGMENTS,J as HOME_DOMAIN,U as LEGAL_USER_ID,T as LEGAL_WORKSPACE_ID,m as LOCALHOST_GEO_DATA,n as LOCALHOST_IP,t as PAGINATION_LIMIT,v as PLANS,x as PRO_PLAN,A as PUBLIC_PLANS,G as SAML_PROVIDERS,d as SECOND_LEVEL_DOMAINS,B as SELF_SERVE_PAID_PLANS,I as SHORT_DOMAIN,e as SPECIAL_APEX_DOMAINS,g as STAGGER_CHILD_VARIANTS,h as SWIPE_REVEAL_ANIMATION_SETTINGS,u as TWO_WEEKS_IN_SECONDS,a as ccTLDs,F as getNextPlan,E as getPlanDetails,D as getPlanFromPriceId};
@@ -1 +1 @@
1
- import{a}from"../chunk-V4CK2LIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-ZJKRLIJQ.mjs";import"../chunk-5LVKLKIV.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-3BUV2ANI.mjs";import"../chunk-5PD4TPH7.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-RGJGS4AZ.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-IAODNORF.mjs";import"../chunk-FYXE2IZT.mjs";export{a as constructMetadata};
1
+ import{a}from"../chunk-SV3RKM7M.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-ZJKRLIJQ.mjs";import"../chunk-7REZWZDA.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import"../chunk-5PD4TPH7.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-RGJGS4AZ.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-IAODNORF.mjs";import"../chunk-FYXE2IZT.mjs";export{a as constructMetadata};
@@ -1 +1 @@
1
- import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h}from"../chunk-V4CK2LIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-ZJKRLIJQ.mjs";import"../chunk-5LVKLKIV.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-3BUV2ANI.mjs";import"../chunk-5PD4TPH7.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-RGJGS4AZ.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-IAODNORF.mjs";import"../chunk-FYXE2IZT.mjs";export{a as generateDomainFromName,f as getApexDomain,g as getDomainWithoutWWW,e as getSubdomain,h as isDubDomain,b as validDomainRegex,c as validKeyRegex,d as validSlugRegex};
1
+ import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h}from"../chunk-SV3RKM7M.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-ZJKRLIJQ.mjs";import"../chunk-7REZWZDA.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import"../chunk-5PD4TPH7.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-RGJGS4AZ.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-IAODNORF.mjs";import"../chunk-FYXE2IZT.mjs";export{a as generateDomainFromName,f as getApexDomain,g as getDomainWithoutWWW,e as getSubdomain,h as isDubDomain,b as validDomainRegex,c as validKeyRegex,d as validSlugRegex};
@@ -1 +1 @@
1
- import{a as d,b as s,c as t,d as u,e as v,f as w,g as x,h as y,i as z}from"../chunk-V4CK2LIR.mjs";import{a as G}from"../chunk-GGIZK3EO.mjs";import{a as H}from"../chunk-OWYWG4M6.mjs";import{a as I}from"../chunk-I5Y5DKPK.mjs";import{a as J}from"../chunk-MPU6JRPV.mjs";import{a as K}from"../chunk-E3EM6ARH.mjs";import{a as L}from"../chunk-ZJKRLIJQ.mjs";import{a as l,b as m,c as n,d as o,e as p,f as q,g as r}from"../chunk-5LVKLKIV.mjs";import{a as k}from"../chunk-ZECUYKGD.mjs";import{a as A}from"../chunk-EMO4MGOU.mjs";import{a as B}from"../chunk-6XPTKHZD.mjs";import{a as C,b as D}from"../chunk-AHSNWOXV.mjs";import{a as E}from"../chunk-3BUV2ANI.mjs";import{a as F}from"../chunk-5PD4TPH7.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import{a}from"../chunk-GTQBILTE.mjs";import{a as b}from"../chunk-2OJAP233.mjs";import{a as c}from"../chunk-NEIHTFSW.mjs";import{a as e,b as f,c as g,d as h,e as i,f as j}from"../chunk-RGJGS4AZ.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-IAODNORF.mjs";import"../chunk-FYXE2IZT.mjs";export{a as capitalize,b as chunk,c as cn,d as constructMetadata,p as constructURLFromUTMParams,k as deepEqual,A as fetchWithTimeout,B as fetcher,f as formatDate,s as generateDomainFromName,C as generateMD5Hash,i as getAdjustedBillingCycleStart,x as getApexDomain,j as getBillingStartDate,e as getDateTimeLocal,y as getDomainWithoutWWW,g as getFirstAndLastDay,h as getLastDayOfMonth,o as getParamsFromURL,n as getSearchParams,w as getSubdomain,m as getUrlFromString,r as getUrlWithoutUTMParams,D as hashStringSHA256,z as isDubDomain,E as isIframeable,l as isValidUrl,F as linkConstructor,G as log,I as nFormatter,H as nanoid,q as paramsMetadata,J as timeAgo,K as trim,L as truncate,t as validDomainRegex,u as validKeyRegex,v as validSlugRegex};
1
+ import{a as d,b as s,c as t,d as u,e as v,f as w,g as x,h as y,i as z}from"../chunk-SV3RKM7M.mjs";import{a as G}from"../chunk-GGIZK3EO.mjs";import{a as H}from"../chunk-OWYWG4M6.mjs";import{a as I}from"../chunk-I5Y5DKPK.mjs";import{a as J}from"../chunk-MPU6JRPV.mjs";import{a as K}from"../chunk-E3EM6ARH.mjs";import{a as L}from"../chunk-ZJKRLIJQ.mjs";import{a as l,b as m,c as n,d as o,e as p,f as q,g as r}from"../chunk-7REZWZDA.mjs";import{a as k}from"../chunk-ZECUYKGD.mjs";import{a as A}from"../chunk-EMO4MGOU.mjs";import{a as B}from"../chunk-6XPTKHZD.mjs";import{a as C,b as D}from"../chunk-AHSNWOXV.mjs";import{a as E}from"../chunk-AZGTG7GS.mjs";import{a as F}from"../chunk-5PD4TPH7.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import{a}from"../chunk-GTQBILTE.mjs";import{a as b}from"../chunk-2OJAP233.mjs";import{a as c}from"../chunk-NEIHTFSW.mjs";import{a as e,b as f,c as g,d as h,e as i,f as j}from"../chunk-RGJGS4AZ.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-IAODNORF.mjs";import"../chunk-FYXE2IZT.mjs";export{a as capitalize,b as chunk,c as cn,d as constructMetadata,p as constructURLFromUTMParams,k as deepEqual,A as fetchWithTimeout,B as fetcher,f as formatDate,s as generateDomainFromName,C as generateMD5Hash,i as getAdjustedBillingCycleStart,x as getApexDomain,j as getBillingStartDate,e as getDateTimeLocal,y as getDomainWithoutWWW,g as getFirstAndLastDay,h as getLastDayOfMonth,o as getParamsFromURL,n as getSearchParams,w as getSubdomain,m as getUrlFromString,r as getUrlWithoutUTMParams,D as hashStringSHA256,z as isDubDomain,E as isIframeable,l as isValidUrl,F as linkConstructor,G as log,I as nFormatter,H as nanoid,q as paramsMetadata,J as timeAgo,K as trim,L as truncate,t as validDomainRegex,u as validKeyRegex,v as validSlugRegex};
@@ -1 +1 @@
1
- import{a}from"../chunk-3BUV2ANI.mjs";export{a as isIframeable};
1
+ import{a}from"../chunk-AZGTG7GS.mjs";export{a as isIframeable};
@@ -1,5 +1,5 @@
1
1
  declare const isValidUrl: (url: string) => boolean;
2
- declare const getUrlFromString: (str: string) => string | null | undefined;
2
+ declare const getUrlFromString: (str: string) => string;
3
3
  declare const getSearchParams: (url: string) => Record<string, string>;
4
4
  declare const getParamsFromURL: (url: string) => Record<string, string>;
5
5
  declare const constructURLFromUTMParams: (url: string, utmParams: Record<string, string>) => string;
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g}from"../chunk-5LVKLKIV.mjs";export{e as constructURLFromUTMParams,d as getParamsFromURL,c as getSearchParams,b as getUrlFromString,g as getUrlWithoutUTMParams,a as isValidUrl,f as paramsMetadata};
1
+ import{a,b,c,d,e,f,g}from"../chunk-7REZWZDA.mjs";export{e as constructURLFromUTMParams,d as getParamsFromURL,c as getSearchParams,b as getUrlFromString,g as getUrlWithoutUTMParams,a as isValidUrl,f as paramsMetadata};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{A as yo,B as zo,C as Ao,D as Bo,E as Co,F as Do,G as Eo,H as Fo,I as Go,J as Ho,K as Io,a as y,b as N,c as O,d as P,e as Q,f as R,g as S,h as T,i as U,j as po,k as to,l as xo,m as ao,n as bo,o as co,p as go,q as ho,r as io,s as jo,t as ko,u as no,v as qo,w as so,x as uo,y as vo,z as wo}from"./chunk-V4CK2LIR.mjs";import{a as $}from"./chunk-GGIZK3EO.mjs";import{a as oo}from"./chunk-OWYWG4M6.mjs";import{a as ro}from"./chunk-I5Y5DKPK.mjs";import{a as eo}from"./chunk-MPU6JRPV.mjs";import{a as fo}from"./chunk-E3EM6ARH.mjs";import{a as mo}from"./chunk-ZJKRLIJQ.mjs";import{a as G,b as H,c as I,d as J,e as K,f as L,g as M}from"./chunk-5LVKLKIV.mjs";import{a as F}from"./chunk-ZECUYKGD.mjs";import{a as V}from"./chunk-EMO4MGOU.mjs";import{a as W}from"./chunk-6XPTKHZD.mjs";import{a as X,b as Y}from"./chunk-AHSNWOXV.mjs";import{a as Z}from"./chunk-3BUV2ANI.mjs";import{a as _}from"./chunk-5PD4TPH7.mjs";import{a as i,b as j}from"./chunk-5VUO5P2B.mjs";import{a as k,b as l,c as n,d as q,e as s}from"./chunk-5XTNLJRY.mjs";import{a as lo}from"./chunk-PUFZASP4.mjs";import{a as u}from"./chunk-GTQBILTE.mjs";import{a as v}from"./chunk-2OJAP233.mjs";import{a as w}from"./chunk-NEIHTFSW.mjs";import{a as z,b as A,c as B,d as C,e as D,f as E}from"./chunk-RGJGS4AZ.mjs";import{a as o}from"./chunk-YUMUNL66.mjs";import{a as r,b as e}from"./chunk-5NKPICDX.mjs";import{a as f,b as m}from"./chunk-SYT2IXG6.mjs";import{a as p,b as t,c as x,d as a}from"./chunk-2SICE2ZS.mjs";import{a as b,b as c,c as d}from"./chunk-IAODNORF.mjs";import{a as g,b as h}from"./chunk-FYXE2IZT.mjs";export{Ao as ADMIN_HOSTNAMES,c as ALL_TOOLS,zo as API_DOMAIN,yo as API_HOSTNAMES,vo as APP_DOMAIN,wo as APP_DOMAIN_WITH_NGROK,uo as APP_HOSTNAMES,no as APP_NAME,ao as BUSINESS_PLAN,d as COMPARE_PAGES,r as COUNTRIES,e as COUNTRY_CODES,k as DEFAULT_LINK_PROPS,i as DEFAULT_REDIRECTS,n as DICEBEAR_AVATAR_URL,Io as DUB_DEMO_LINKS,Go as DUB_DOMAINS,Ho as DUB_DOMAINS_ARRAY,j as DUB_HEADERS,Bo as DUB_LOGO,Co as DUB_THUMBNAIL,Do as DUB_WORKSPACE_ID,bo as ENTERPRISE_PLAN,a as FADE_IN_ANIMATION_SETTINGS,p as FRAMER_MOTION_LIST_ITEM_VARIANTS,to as FREE_PLAN,ho as FREE_WORKSPACES_LIMIT,l as GOOGLE_FAVICON_URL,b as HIDE_BACKGROUND_SEGMENTS,so as HOME_DOMAIN,Fo as LEGAL_USER_ID,Eo as LEGAL_WORKSPACE_ID,g as LOCALHOST_GEO_DATA,h as LOCALHOST_IP,q as PAGINATION_LIMIT,po as PLANS,xo as PRO_PLAN,co as PUBLIC_PLANS,lo as SAML_PROVIDERS,f as SECOND_LEVEL_DOMAINS,go as SELF_SERVE_PAID_PLANS,qo as SHORT_DOMAIN,m as SPECIAL_APEX_DOMAINS,t as STAGGER_CHILD_VARIANTS,x as SWIPE_REVEAL_ANIMATION_SETTINGS,s as TWO_WEEKS_IN_SECONDS,u as capitalize,o as ccTLDs,v as chunk,w as cn,y as constructMetadata,K as constructURLFromUTMParams,F as deepEqual,V as fetchWithTimeout,W as fetcher,A as formatDate,N as generateDomainFromName,X as generateMD5Hash,D as getAdjustedBillingCycleStart,S as getApexDomain,E as getBillingStartDate,z as getDateTimeLocal,T as getDomainWithoutWWW,B as getFirstAndLastDay,C as getLastDayOfMonth,ko as getNextPlan,J as getParamsFromURL,jo as getPlanDetails,io as getPlanFromPriceId,I as getSearchParams,R as getSubdomain,H as getUrlFromString,M as getUrlWithoutUTMParams,Y as hashStringSHA256,U as isDubDomain,Z as isIframeable,G as isValidUrl,_ as linkConstructor,$ as log,ro as nFormatter,oo as nanoid,L as paramsMetadata,eo as timeAgo,fo as trim,mo as truncate,O as validDomainRegex,P as validKeyRegex,Q as validSlugRegex};
1
+ import{A as yo,B as zo,C as Ao,D as Bo,E as Co,F as Do,G as Eo,H as Fo,I as Go,J as Ho,K as Io,a as y,b as N,c as O,d as P,e as Q,f as R,g as S,h as T,i as U,j as po,k as to,l as xo,m as ao,n as bo,o as co,p as go,q as ho,r as io,s as jo,t as ko,u as no,v as qo,w as so,x as uo,y as vo,z as wo}from"./chunk-SV3RKM7M.mjs";import{a as $}from"./chunk-GGIZK3EO.mjs";import{a as oo}from"./chunk-OWYWG4M6.mjs";import{a as ro}from"./chunk-I5Y5DKPK.mjs";import{a as eo}from"./chunk-MPU6JRPV.mjs";import{a as fo}from"./chunk-E3EM6ARH.mjs";import{a as mo}from"./chunk-ZJKRLIJQ.mjs";import{a as G,b as H,c as I,d as J,e as K,f as L,g as M}from"./chunk-7REZWZDA.mjs";import{a as F}from"./chunk-ZECUYKGD.mjs";import{a as V}from"./chunk-EMO4MGOU.mjs";import{a as W}from"./chunk-6XPTKHZD.mjs";import{a as X,b as Y}from"./chunk-AHSNWOXV.mjs";import{a as Z}from"./chunk-AZGTG7GS.mjs";import{a as _}from"./chunk-5PD4TPH7.mjs";import{a as i,b as j}from"./chunk-5VUO5P2B.mjs";import{a as k,b as l,c as n,d as q,e as s}from"./chunk-5XTNLJRY.mjs";import{a as lo}from"./chunk-PUFZASP4.mjs";import{a as u}from"./chunk-GTQBILTE.mjs";import{a as v}from"./chunk-2OJAP233.mjs";import{a as w}from"./chunk-NEIHTFSW.mjs";import{a as z,b as A,c as B,d as C,e as D,f as E}from"./chunk-RGJGS4AZ.mjs";import{a as o}from"./chunk-YUMUNL66.mjs";import{a as r,b as e}from"./chunk-5NKPICDX.mjs";import{a as f,b as m}from"./chunk-SYT2IXG6.mjs";import{a as p,b as t,c as x,d as a}from"./chunk-2SICE2ZS.mjs";import{a as b,b as c,c as d}from"./chunk-IAODNORF.mjs";import{a as g,b as h}from"./chunk-FYXE2IZT.mjs";export{Ao as ADMIN_HOSTNAMES,c as ALL_TOOLS,zo as API_DOMAIN,yo as API_HOSTNAMES,vo as APP_DOMAIN,wo as APP_DOMAIN_WITH_NGROK,uo as APP_HOSTNAMES,no as APP_NAME,ao as BUSINESS_PLAN,d as COMPARE_PAGES,r as COUNTRIES,e as COUNTRY_CODES,k as DEFAULT_LINK_PROPS,i as DEFAULT_REDIRECTS,n as DICEBEAR_AVATAR_URL,Io as DUB_DEMO_LINKS,Go as DUB_DOMAINS,Ho as DUB_DOMAINS_ARRAY,j as DUB_HEADERS,Bo as DUB_LOGO,Co as DUB_THUMBNAIL,Do as DUB_WORKSPACE_ID,bo as ENTERPRISE_PLAN,a as FADE_IN_ANIMATION_SETTINGS,p as FRAMER_MOTION_LIST_ITEM_VARIANTS,to as FREE_PLAN,ho as FREE_WORKSPACES_LIMIT,l as GOOGLE_FAVICON_URL,b as HIDE_BACKGROUND_SEGMENTS,so as HOME_DOMAIN,Fo as LEGAL_USER_ID,Eo as LEGAL_WORKSPACE_ID,g as LOCALHOST_GEO_DATA,h as LOCALHOST_IP,q as PAGINATION_LIMIT,po as PLANS,xo as PRO_PLAN,co as PUBLIC_PLANS,lo as SAML_PROVIDERS,f as SECOND_LEVEL_DOMAINS,go as SELF_SERVE_PAID_PLANS,qo as SHORT_DOMAIN,m as SPECIAL_APEX_DOMAINS,t as STAGGER_CHILD_VARIANTS,x as SWIPE_REVEAL_ANIMATION_SETTINGS,s as TWO_WEEKS_IN_SECONDS,u as capitalize,o as ccTLDs,v as chunk,w as cn,y as constructMetadata,K as constructURLFromUTMParams,F as deepEqual,V as fetchWithTimeout,W as fetcher,A as formatDate,N as generateDomainFromName,X as generateMD5Hash,D as getAdjustedBillingCycleStart,S as getApexDomain,E as getBillingStartDate,z as getDateTimeLocal,T as getDomainWithoutWWW,B as getFirstAndLastDay,C as getLastDayOfMonth,ko as getNextPlan,J as getParamsFromURL,jo as getPlanDetails,io as getPlanFromPriceId,I as getSearchParams,R as getSubdomain,H as getUrlFromString,M as getUrlWithoutUTMParams,Y as hashStringSHA256,U as isDubDomain,Z as isIframeable,G as isValidUrl,_ as linkConstructor,$ as log,ro as nFormatter,oo as nanoid,L as paramsMetadata,eo as timeAgo,fo as trim,mo as truncate,O as validDomainRegex,P as validKeyRegex,Q as validSlugRegex};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dub/utils",
3
3
  "description": "Utility functions and constants for Dub.co",
4
- "version": "0.0.40",
4
+ "version": "0.0.41",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.mjs",
7
7
  "module": "./dist/index.mjs",