@dub/utils 0.0.48 → 0.0.50

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
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e7},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e3},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:"100 AI credits/mo"},{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as x}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as f}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var w=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&p.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((r,i)=>r.length<i.length?r:i)}.to`},S=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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])&&p.has(o[o.length-1])||f.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},M=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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:o,searchParams:s}){if(!e)return"";let r=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);r+=`?${i.toString()}`}return o?r.replace(/^https?:\/\//,""):r}var m=({name:e="Business",monthly:t=59,yearly:o=49,links:s=5e3,clicks:r=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:E},limits:{links:s,clicks:r,domains:i,tags:c,users:l,ai:1e3},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits",footnote:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage."},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e3},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:"Unlimited AI credits",footnote:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage."},{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),y=n.find(e=>e.name==="Business"),N=n.find(e=>e.name==="Enterprise"),pe=[k,b,y,N],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var fe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,xe=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),_e=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",ye="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ne="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:s=[{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:r=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...o&&{images:[{url:o}]}},twitter:{title:e,description:t,...o&&{card:"summary_large_image",images:[o]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...r&&{robots:{index:!1,follow:!1}}}}export{ze as a,w as b,S as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,y as n,N as o,pe as p,L as q,ue as r,me as s,de as t,he as u,fe as v,_ as w,P as x,xe as y,_e as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,ye as F,a as G,Ne as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import*as c from"chrono-node";var l=t=>{let e=t?new Date(t):new Date;return e.toString()==="Invalid Date"?"":new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().split(":").slice(0,2).join(":")},g=t=>t instanceof Date?t:c.parseDate(t),m=t=>t.toString()==="Invalid Date"?"":new Date(t).toLocaleDateString("en-US",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"}),f=t=>t.toString()==="Invalid Date"?"":new Date(t).toLocaleTimeString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0}),h=t=>{let e=new Date,o=e.getDate(),n=e.getMonth(),r=e.getFullYear();if(o>=t)return{firstDay:new Date(r,n,t),lastDay:new Date(r,n+1,t-1)};{let a=n===0?r-1:r,s=n===0?11:n-1;return{firstDay:new Date(a,s,t),lastDay:new Date(r,n,t-1)}}},i=()=>{let t=new Date;return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()},u=t=>{let e=i();return t>e?e:t},w=t=>{let e=new Date,o=e.getDate(),n=e.getMonth(),r=e.getFullYear(),a=u(t);if(o<=a){let s=n===0?11:n-1,D=n===0?r-1:r;return new Date(D,s,a)}else return new Date(r,n,a)};export{l as a,g as b,m as c,f as d,h as e,i as f,u as g,w as h};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import k from"@sindresorhus/slugify";var w=e=>{let t=k(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},C=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\/\-\p{Emoji}]*$/u),D=new RegExp(/^[a-zA-Z0-9\-]+$/),B=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),M=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},T=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function z({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ai:E=1e4,ids:A=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:A},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:E},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"\u221E AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits"},{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,ai:1e3},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:"1,000 AI credits"},{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."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ai:1e4,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ai:1e4,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ai:1e4,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ai:1e4,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],b=n.find(e=>e.name==="Free"),N=n.find(e=>e.name==="Pro"),y=n.find(e=>e.name==="Business"),L=n.find(e=>e.name==="Enterprise"),ue=[b,N,y,L],I=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),me=2,de=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,he=e=>I.find(t=>t.name.toLowerCase()===e.toLowerCase()),ge=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var _e=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,fe=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),Pe=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",Ee=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",Ae=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),ke=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",be=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),Ne="https://assets.dub.co/logo.png",ye="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Le="clrflia0j0000vs7sqfhz9c7q",Ie="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],ve=h.map(e=>e.slug),Oe=[{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 qe({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{qe as a,w as b,C as c,J as d,D as e,B as f,M as g,T as h,U as i,z as j,n as k,b as l,N as m,y as n,L as o,ue as p,I as q,me as r,de as s,he as t,ge as u,_e as v,f as w,P as x,fe as y,Pe as z,Ee as A,Ae as B,ke as C,be as D,Ne as E,ye as F,a as G,Le as H,Ie as I,h as J,ve as K,Oe as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e7},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e3},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:"100 AI credits/mo"},{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."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ai:1e4,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ai:1e4,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ai:1e4,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ai:1e4,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-7REZWZDA.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,n)=>o.length<n.length?o:n)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},T=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let n=new URLSearchParams;for(let[c,l]of Object.entries(s))n.set(c,l);o+=`?${n.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:n=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:n,tags:c,users:l},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${n} custom domains`},{text:`${l} users`},{text:`${u(c,{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"}}]}),i=[{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=i.find(e=>e.name==="Free"),b=i.find(e=>e.name==="Pro"),N=i.find(e=>e.name==="Business"),y=i.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=i.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>i.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>i[i.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],ve=h.map(e=>e.slug),Ie=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,T as i,V as j,i as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,ve as K,Ie as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e3},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e3},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:"Unlimited AI credits"},{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e7},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits"},{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,ai:1e3},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:"1,000 AI credits"},{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."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ai:1e4,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ai:1e4,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ai:1e4,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ai:1e4,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import*as c from"chrono-node";var l=t=>{let e=t?new Date(t):new Date;return e.toString()==="Invalid Date"?"":new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().split(":").slice(0,2).join(":")},g=t=>t instanceof Date?t:c.parseDate(t),m=t=>new Date(t).toLocaleDateString("en-US",{day:"numeric",month:"long",year:"numeric",timeZone:"UTC"}),f=t=>t.toString()==="Invalid Date"?"":new Date(t).toLocaleTimeString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0}),h=t=>{let e=new Date,o=e.getDate(),n=e.getMonth(),r=e.getFullYear();if(o>=t)return{firstDay:new Date(r,n,t),lastDay:new Date(r,n+1,t-1)};{let a=n===0?r-1:r,s=n===0?11:n-1;return{firstDay:new Date(a,s,t),lastDay:new Date(r,n,t-1)}}},i=()=>{let t=new Date;return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()},u=t=>{let e=i();return t>e?e:t},w=t=>{let e=new Date,o=e.getDate(),n=e.getMonth(),r=e.getFullYear(),a=u(t);if(o<=a){let s=n===0?11:n-1,D=n===0?r-1:r;return new Date(D,s,a)}else return new Date(r,n,a)};export{l as a,g as b,m as c,f as d,h as e,i as f,u as g,w as h};
@@ -0,0 +1 @@
1
+ import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e3},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e3},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:"Unlimited AI credits"},{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as x}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as f}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var w=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&p.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((r,i)=>r.length<i.length?r:i)}.to`},S=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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])&&p.has(o[o.length-1])||f.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},M=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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:o,searchParams:s}){if(!e)return"";let r=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);r+=`?${i.toString()}`}return o?r.replace(/^https?:\/\//,""):r}var m=({name:e="Business",monthly:t=59,yearly:o=49,links:s=5e3,clicks:r=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:E},limits:{links:s,clicks:r,domains:i,tags:c,users:l,ai:1e3},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e3},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:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],b=n.find(e=>e.name==="Free"),k=n.find(e=>e.name==="Pro"),y=n.find(e=>e.name==="Business"),N=n.find(e=>e.name==="Enterprise"),pe=[b,k,y,N],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var fe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,xe=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),_e=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),Ae=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",be=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),ke="https://assets.dub.co/logo.png",ye="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ne="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:s=[{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:r=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...o&&{images:[{url:o}]}},twitter:{title:e,description:t,...o&&{card:"summary_large_image",images:[o]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...r&&{robots:{index:!1,follow:!1}}}}export{ze as a,w as b,S as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,b as l,k as m,y as n,N as o,pe as p,L as q,ue as r,me as s,de as t,he as u,fe as v,_ as w,P as x,xe as y,_e as z,Pe as A,Ee as B,Ae as C,be as D,ke as E,ye as F,a as G,Ne as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e7},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e3},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:"1,000 AI credits"},{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."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ai:1e4,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ai:1e4,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ai:1e4,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ai:1e4,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e7},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:1e7},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:"Unlimited AI credits"},{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,i)=>o.length<i.length?o:i)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);o+=`?${i.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:i,tags:c,users:l,ai:1e7},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits"},{text:`${u(c,{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"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},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:"10 AI credits/mo"},{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,ai:100},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:"100 AI credits/mo"},{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=n.find(e=>e.name==="Free"),b=n.find(e=>e.name==="Pro"),N=n.find(e=>e.name==="Business"),y=n.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,Ie as K,ve as L};
@@ -0,0 +1 @@
1
+ import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as _}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&p.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((o,n)=>o.length<n.length?o:n)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=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 r=t.split(".");return r.length>2?g.has(r[r.length-2])&&p.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},M=e=>{if(_(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}},T=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:r,searchParams:s}){if(!e)return"";let o=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let n=new URLSearchParams;for(let[c,l]of Object.entries(s))n.set(c,l);o+=`?${n.toString()}`}return r?o.replace(/^https?:\/\//,""):o}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:s=5e3,clicks:o=15e4,domains:n=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:E},limits:{links:s,clicks:o,domains:n,tags:c,users:l},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:`${u(s,{full:!0})} new links/mo`},{text:`${u(o)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${n} custom domains`},{text:`${l} users`},{text:`${u(c,{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"}}]}),i=[{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."}]},m({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_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({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_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({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_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({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_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{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"}]}],k=i.find(e=>e.name==="Free"),b=i.find(e=>e.name==="Pro"),N=i.find(e=>e.name==="Business"),y=i.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=i.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>i.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>i[i.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=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",Pe=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",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=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",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,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},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],ve=h.map(e=>e.slug),Ie=[{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 ze({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:r="https://assets.dub.co/thumbnail.jpg",icons:s=[{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:o=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:[{url:r}]}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...o&&{robots:{index:!1,follow:!1}}}}export{ze as a,S as b,w as c,C as d,J as e,D as f,B as g,M as h,T as i,V as j,i as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,h as J,ve as K,Ie as L};
@@ -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=>{let r={};return new URL(e).searchParams.forEach(function(t,a){if(a in r){let s=r[a];Array.isArray(s)?s.push(t):r[a]=[s,t]}else r[a]=t}),r},u=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{}}},p=(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,p as f,o as g,l as h};
@@ -22,6 +22,7 @@ declare const PLANS: ({
22
22
  domains: number;
23
23
  tags: number;
24
24
  users: number;
25
+ ai: number;
25
26
  };
26
27
  colors: {
27
28
  bg: string;
@@ -64,6 +65,7 @@ declare const PLANS: ({
64
65
  domains: number;
65
66
  tags: number;
66
67
  users: number;
68
+ ai: number;
67
69
  };
68
70
  colors: {
69
71
  bg: string;
@@ -79,9 +81,6 @@ declare const PLANS: ({
79
81
  features: ({
80
82
  text: string;
81
83
  footnote?: undefined;
82
- } | {
83
- text: string;
84
- footnote: string;
85
84
  } | {
86
85
  text: string;
87
86
  footnote: {
@@ -89,6 +88,9 @@ declare const PLANS: ({
89
88
  cta: string;
90
89
  href: string;
91
90
  };
91
+ } | {
92
+ text: string;
93
+ footnote: string;
92
94
  })[];
93
95
  } | {
94
96
  name: string;
@@ -105,6 +107,7 @@ declare const PLANS: ({
105
107
  domains: null;
106
108
  tags?: undefined;
107
109
  users?: undefined;
110
+ ai?: undefined;
108
111
  };
109
112
  colors: {
110
113
  bg: string;
@@ -135,6 +138,7 @@ declare const FREE_PLAN: {
135
138
  domains: number;
136
139
  tags: number;
137
140
  users: number;
141
+ ai: number;
138
142
  };
139
143
  colors: {
140
144
  bg: string;
@@ -177,6 +181,7 @@ declare const FREE_PLAN: {
177
181
  domains: number;
178
182
  tags: number;
179
183
  users: number;
184
+ ai: number;
180
185
  };
181
186
  colors: {
182
187
  bg: string;
@@ -192,9 +197,6 @@ declare const FREE_PLAN: {
192
197
  features: ({
193
198
  text: string;
194
199
  footnote?: undefined;
195
- } | {
196
- text: string;
197
- footnote: string;
198
200
  } | {
199
201
  text: string;
200
202
  footnote: {
@@ -202,6 +204,9 @@ declare const FREE_PLAN: {
202
204
  cta: string;
203
205
  href: string;
204
206
  };
207
+ } | {
208
+ text: string;
209
+ footnote: string;
205
210
  })[];
206
211
  } | {
207
212
  name: string;
@@ -218,6 +223,7 @@ declare const FREE_PLAN: {
218
223
  domains: null;
219
224
  tags?: undefined;
220
225
  users?: undefined;
226
+ ai?: undefined;
221
227
  };
222
228
  colors: {
223
229
  bg: string;
@@ -248,6 +254,7 @@ declare const PRO_PLAN: {
248
254
  domains: number;
249
255
  tags: number;
250
256
  users: number;
257
+ ai: number;
251
258
  };
252
259
  colors: {
253
260
  bg: string;
@@ -290,6 +297,7 @@ declare const PRO_PLAN: {
290
297
  domains: number;
291
298
  tags: number;
292
299
  users: number;
300
+ ai: number;
293
301
  };
294
302
  colors: {
295
303
  bg: string;
@@ -305,9 +313,6 @@ declare const PRO_PLAN: {
305
313
  features: ({
306
314
  text: string;
307
315
  footnote?: undefined;
308
- } | {
309
- text: string;
310
- footnote: string;
311
316
  } | {
312
317
  text: string;
313
318
  footnote: {
@@ -315,6 +320,9 @@ declare const PRO_PLAN: {
315
320
  cta: string;
316
321
  href: string;
317
322
  };
323
+ } | {
324
+ text: string;
325
+ footnote: string;
318
326
  })[];
319
327
  } | {
320
328
  name: string;
@@ -331,6 +339,7 @@ declare const PRO_PLAN: {
331
339
  domains: null;
332
340
  tags?: undefined;
333
341
  users?: undefined;
342
+ ai?: undefined;
334
343
  };
335
344
  colors: {
336
345
  bg: string;
@@ -361,6 +370,7 @@ declare const BUSINESS_PLAN: {
361
370
  domains: number;
362
371
  tags: number;
363
372
  users: number;
373
+ ai: number;
364
374
  };
365
375
  colors: {
366
376
  bg: string;
@@ -403,6 +413,7 @@ declare const BUSINESS_PLAN: {
403
413
  domains: number;
404
414
  tags: number;
405
415
  users: number;
416
+ ai: number;
406
417
  };
407
418
  colors: {
408
419
  bg: string;
@@ -418,9 +429,6 @@ declare const BUSINESS_PLAN: {
418
429
  features: ({
419
430
  text: string;
420
431
  footnote?: undefined;
421
- } | {
422
- text: string;
423
- footnote: string;
424
432
  } | {
425
433
  text: string;
426
434
  footnote: {
@@ -428,6 +436,9 @@ declare const BUSINESS_PLAN: {
428
436
  cta: string;
429
437
  href: string;
430
438
  };
439
+ } | {
440
+ text: string;
441
+ footnote: string;
431
442
  })[];
432
443
  } | {
433
444
  name: string;
@@ -444,6 +455,7 @@ declare const BUSINESS_PLAN: {
444
455
  domains: null;
445
456
  tags?: undefined;
446
457
  users?: undefined;
458
+ ai?: undefined;
447
459
  };
448
460
  colors: {
449
461
  bg: string;
@@ -474,6 +486,7 @@ declare const ENTERPRISE_PLAN: {
474
486
  domains: number;
475
487
  tags: number;
476
488
  users: number;
489
+ ai: number;
477
490
  };
478
491
  colors: {
479
492
  bg: string;
@@ -516,6 +529,7 @@ declare const ENTERPRISE_PLAN: {
516
529
  domains: number;
517
530
  tags: number;
518
531
  users: number;
532
+ ai: number;
519
533
  };
520
534
  colors: {
521
535
  bg: string;
@@ -531,9 +545,6 @@ declare const ENTERPRISE_PLAN: {
531
545
  features: ({
532
546
  text: string;
533
547
  footnote?: undefined;
534
- } | {
535
- text: string;
536
- footnote: string;
537
548
  } | {
538
549
  text: string;
539
550
  footnote: {
@@ -541,6 +552,9 @@ declare const ENTERPRISE_PLAN: {
541
552
  cta: string;
542
553
  href: string;
543
554
  };
555
+ } | {
556
+ text: string;
557
+ footnote: string;
544
558
  })[];
545
559
  } | {
546
560
  name: string;
@@ -557,6 +571,7 @@ declare const ENTERPRISE_PLAN: {
557
571
  domains: null;
558
572
  tags?: undefined;
559
573
  users?: undefined;
574
+ ai?: undefined;
560
575
  };
561
576
  colors: {
562
577
  bg: string;
@@ -587,6 +602,7 @@ declare const PUBLIC_PLANS: ({
587
602
  domains: number;
588
603
  tags: number;
589
604
  users: number;
605
+ ai: number;
590
606
  };
591
607
  colors: {
592
608
  bg: string;
@@ -629,6 +645,7 @@ declare const PUBLIC_PLANS: ({
629
645
  domains: number;
630
646
  tags: number;
631
647
  users: number;
648
+ ai: number;
632
649
  };
633
650
  colors: {
634
651
  bg: string;
@@ -644,9 +661,6 @@ declare const PUBLIC_PLANS: ({
644
661
  features: ({
645
662
  text: string;
646
663
  footnote?: undefined;
647
- } | {
648
- text: string;
649
- footnote: string;
650
664
  } | {
651
665
  text: string;
652
666
  footnote: {
@@ -654,6 +668,9 @@ declare const PUBLIC_PLANS: ({
654
668
  cta: string;
655
669
  href: string;
656
670
  };
671
+ } | {
672
+ text: string;
673
+ footnote: string;
657
674
  })[];
658
675
  } | {
659
676
  name: string;
@@ -670,6 +687,7 @@ declare const PUBLIC_PLANS: ({
670
687
  domains: null;
671
688
  tags?: undefined;
672
689
  users?: undefined;
690
+ ai?: undefined;
673
691
  };
674
692
  colors: {
675
693
  bg: string;
@@ -700,6 +718,7 @@ declare const SELF_SERVE_PAID_PLANS: ({
700
718
  domains: number;
701
719
  tags: number;
702
720
  users: number;
721
+ ai: number;
703
722
  };
704
723
  colors: {
705
724
  bg: string;
@@ -742,6 +761,7 @@ declare const SELF_SERVE_PAID_PLANS: ({
742
761
  domains: number;
743
762
  tags: number;
744
763
  users: number;
764
+ ai: number;
745
765
  };
746
766
  colors: {
747
767
  bg: string;
@@ -757,9 +777,6 @@ declare const SELF_SERVE_PAID_PLANS: ({
757
777
  features: ({
758
778
  text: string;
759
779
  footnote?: undefined;
760
- } | {
761
- text: string;
762
- footnote: string;
763
780
  } | {
764
781
  text: string;
765
782
  footnote: {
@@ -767,6 +784,9 @@ declare const SELF_SERVE_PAID_PLANS: ({
767
784
  cta: string;
768
785
  href: string;
769
786
  };
787
+ } | {
788
+ text: string;
789
+ footnote: string;
770
790
  })[];
771
791
  } | {
772
792
  name: string;
@@ -783,6 +803,7 @@ declare const SELF_SERVE_PAID_PLANS: ({
783
803
  domains: null;
784
804
  tags?: undefined;
785
805
  users?: undefined;
806
+ ai?: undefined;
786
807
  };
787
808
  colors: {
788
809
  bg: string;
@@ -814,6 +835,7 @@ declare const getPlanFromPriceId: (priceId: string) => {
814
835
  domains: number;
815
836
  tags: number;
816
837
  users: number;
838
+ ai: number;
817
839
  };
818
840
  colors: {
819
841
  bg: string;
@@ -856,6 +878,7 @@ declare const getPlanFromPriceId: (priceId: string) => {
856
878
  domains: number;
857
879
  tags: number;
858
880
  users: number;
881
+ ai: number;
859
882
  };
860
883
  colors: {
861
884
  bg: string;
@@ -871,9 +894,6 @@ declare const getPlanFromPriceId: (priceId: string) => {
871
894
  features: ({
872
895
  text: string;
873
896
  footnote?: undefined;
874
- } | {
875
- text: string;
876
- footnote: string;
877
897
  } | {
878
898
  text: string;
879
899
  footnote: {
@@ -881,6 +901,9 @@ declare const getPlanFromPriceId: (priceId: string) => {
881
901
  cta: string;
882
902
  href: string;
883
903
  };
904
+ } | {
905
+ text: string;
906
+ footnote: string;
884
907
  })[];
885
908
  } | {
886
909
  name: string;
@@ -897,6 +920,7 @@ declare const getPlanFromPriceId: (priceId: string) => {
897
920
  domains: null;
898
921
  tags?: undefined;
899
922
  users?: undefined;
923
+ ai?: undefined;
900
924
  };
901
925
  colors: {
902
926
  bg: string;
@@ -927,6 +951,7 @@ declare const getPlanDetails: (plan: string) => {
927
951
  domains: number;
928
952
  tags: number;
929
953
  users: number;
954
+ ai: number;
930
955
  };
931
956
  colors: {
932
957
  bg: string;
@@ -969,6 +994,7 @@ declare const getPlanDetails: (plan: string) => {
969
994
  domains: number;
970
995
  tags: number;
971
996
  users: number;
997
+ ai: number;
972
998
  };
973
999
  colors: {
974
1000
  bg: string;
@@ -984,9 +1010,6 @@ declare const getPlanDetails: (plan: string) => {
984
1010
  features: ({
985
1011
  text: string;
986
1012
  footnote?: undefined;
987
- } | {
988
- text: string;
989
- footnote: string;
990
1013
  } | {
991
1014
  text: string;
992
1015
  footnote: {
@@ -994,6 +1017,9 @@ declare const getPlanDetails: (plan: string) => {
994
1017
  cta: string;
995
1018
  href: string;
996
1019
  };
1020
+ } | {
1021
+ text: string;
1022
+ footnote: string;
997
1023
  })[];
998
1024
  } | {
999
1025
  name: string;
@@ -1010,6 +1036,7 @@ declare const getPlanDetails: (plan: string) => {
1010
1036
  domains: null;
1011
1037
  tags?: undefined;
1012
1038
  users?: undefined;
1039
+ ai?: undefined;
1013
1040
  };
1014
1041
  colors: {
1015
1042
  bg: string;
@@ -1040,6 +1067,7 @@ declare const getNextPlan: (plan: string) => {
1040
1067
  domains: number;
1041
1068
  tags: number;
1042
1069
  users: number;
1070
+ ai: number;
1043
1071
  };
1044
1072
  colors: {
1045
1073
  bg: string;
@@ -1082,6 +1110,7 @@ declare const getNextPlan: (plan: string) => {
1082
1110
  domains: number;
1083
1111
  tags: number;
1084
1112
  users: number;
1113
+ ai: number;
1085
1114
  };
1086
1115
  colors: {
1087
1116
  bg: string;
@@ -1097,9 +1126,6 @@ declare const getNextPlan: (plan: string) => {
1097
1126
  features: ({
1098
1127
  text: string;
1099
1128
  footnote?: undefined;
1100
- } | {
1101
- text: string;
1102
- footnote: string;
1103
1129
  } | {
1104
1130
  text: string;
1105
1131
  footnote: {
@@ -1107,6 +1133,9 @@ declare const getNextPlan: (plan: string) => {
1107
1133
  cta: string;
1108
1134
  href: string;
1109
1135
  };
1136
+ } | {
1137
+ text: string;
1138
+ footnote: string;
1110
1139
  })[];
1111
1140
  } | {
1112
1141
  name: string;
@@ -1123,6 +1152,7 @@ declare const getNextPlan: (plan: string) => {
1123
1152
  domains: null;
1124
1153
  tags?: undefined;
1125
1154
  users?: undefined;
1155
+ ai?: undefined;
1126
1156
  };
1127
1157
  colors: {
1128
1158
  bg: string;
@@ -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,L as Y,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 G,v as I,w as J,x as K,y as L,z as M}from"../chunk-AL75Y3IJ.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.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{a as p,b as q}from"../chunk-5VUO5P2B.mjs";import{a as r,b as s,c as t,d as u,e as v}from"../chunk-5XTNLJRY.mjs";import{a as H}from"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-I5T4HQGY.mjs";import{a}from"../chunk-YUMUNL66.mjs";import{a as b,b as c,c as d}from"../chunk-N2HN6AOA.mjs";import{a as e,b as f}from"../chunk-SYT2IXG6.mjs";import{a as g,b as h,c as i,d as j}from"../chunk-2SICE2ZS.mjs";import{a as k,b as l,c as m}from"../chunk-OLZMF4V2.mjs";import{a as n,b as o}from"../chunk-FYXE2IZT.mjs";export{Q as ADMIN_HOSTNAMES,l as ALL_TOOLS,P as API_DOMAIN,O as API_HOSTNAMES,M as APP_DOMAIN,N as APP_DOMAIN_WITH_NGROK,L as APP_HOSTNAMES,I as APP_NAME,z as BUSINESS_PLAN,m as COMPARE_PAGES,b as COUNTRIES,c as COUNTRY_CODES,r as DEFAULT_LINK_PROPS,p as DEFAULT_REDIRECTS,t as DICEBEAR_AVATAR_URL,Y as DUB_DEMO_LINKS,W as DUB_DOMAINS,X as DUB_DOMAINS_ARRAY,q as DUB_HEADERS,R as DUB_LOGO,S as DUB_THUMBNAIL,T as DUB_WORKSPACE_ID,A as ENTERPRISE_PLAN,d as EU_COUNTRY_CODES,j as FADE_IN_ANIMATION_SETTINGS,g as FRAMER_MOTION_LIST_ITEM_VARIANTS,x as FREE_PLAN,D as FREE_WORKSPACES_LIMIT,s as GOOGLE_FAVICON_URL,k as HIDE_BACKGROUND_SEGMENTS,K as HOME_DOMAIN,V as LEGAL_USER_ID,U as LEGAL_WORKSPACE_ID,n as LOCALHOST_GEO_DATA,o as LOCALHOST_IP,u as PAGINATION_LIMIT,w as PLANS,y as PRO_PLAN,B as PUBLIC_PLANS,H as SAML_PROVIDERS,e as SECOND_LEVEL_DOMAINS,C as SELF_SERVE_PAID_PLANS,J as SHORT_DOMAIN,f as SPECIAL_APEX_DOMAINS,h as STAGGER_CHILD_VARIANTS,i as SWIPE_REVEAL_ANIMATION_SETTINGS,v as TWO_WEEKS_IN_SECONDS,a as ccTLDs,G as getNextPlan,F as getPlanDetails,E 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,L as Y,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 G,v as I,w as J,x as K,y as L,z as M}from"../chunk-OIJ7WXXY.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import{a as p,b as q}from"../chunk-5VUO5P2B.mjs";import{a as r,b as s,c as t,d as u,e as v}from"../chunk-5XTNLJRY.mjs";import{a as H}from"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-7DGKYGEY.mjs";import{a}from"../chunk-YUMUNL66.mjs";import{a as b,b as c,c as d}from"../chunk-N2HN6AOA.mjs";import{a as e,b as f}from"../chunk-SYT2IXG6.mjs";import{a as g,b as h,c as i,d as j}from"../chunk-2SICE2ZS.mjs";import{a as k,b as l,c as m}from"../chunk-OLZMF4V2.mjs";import{a as n,b as o}from"../chunk-FYXE2IZT.mjs";export{Q as ADMIN_HOSTNAMES,l as ALL_TOOLS,P as API_DOMAIN,O as API_HOSTNAMES,M as APP_DOMAIN,N as APP_DOMAIN_WITH_NGROK,L as APP_HOSTNAMES,I as APP_NAME,z as BUSINESS_PLAN,m as COMPARE_PAGES,b as COUNTRIES,c as COUNTRY_CODES,r as DEFAULT_LINK_PROPS,p as DEFAULT_REDIRECTS,t as DICEBEAR_AVATAR_URL,Y as DUB_DEMO_LINKS,W as DUB_DOMAINS,X as DUB_DOMAINS_ARRAY,q as DUB_HEADERS,R as DUB_LOGO,S as DUB_THUMBNAIL,T as DUB_WORKSPACE_ID,A as ENTERPRISE_PLAN,d as EU_COUNTRY_CODES,j as FADE_IN_ANIMATION_SETTINGS,g as FRAMER_MOTION_LIST_ITEM_VARIANTS,x as FREE_PLAN,D as FREE_WORKSPACES_LIMIT,s as GOOGLE_FAVICON_URL,k as HIDE_BACKGROUND_SEGMENTS,K as HOME_DOMAIN,V as LEGAL_USER_ID,U as LEGAL_WORKSPACE_ID,n as LOCALHOST_GEO_DATA,o as LOCALHOST_IP,u as PAGINATION_LIMIT,w as PLANS,y as PRO_PLAN,B as PUBLIC_PLANS,H as SAML_PROVIDERS,e as SECOND_LEVEL_DOMAINS,C as SELF_SERVE_PAID_PLANS,J as SHORT_DOMAIN,f as SPECIAL_APEX_DOMAINS,h as STAGGER_CHILD_VARIANTS,i as SWIPE_REVEAL_ANIMATION_SETTINGS,v as TWO_WEEKS_IN_SECONDS,a as ccTLDs,G as getNextPlan,F as getPlanDetails,E as getPlanFromPriceId};
@@ -1 +1 @@
1
- import{a}from"../chunk-AL75Y3IJ.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.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-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-I5T4HQGY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as constructMetadata};
1
+ import{a}from"../chunk-OIJ7WXXY.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.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-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as constructMetadata};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h}from"../chunk-I5T4HQGY.mjs";export{c as formatDate,d as formatDateTime,g as getAdjustedBillingCycleStart,h as getBillingStartDate,a as getDateTimeLocal,e as getFirstAndLastDay,f as getLastDayOfMonth,b as parseDateTime};
1
+ import{a,b,c,d,e,f,g,h}from"../chunk-7DGKYGEY.mjs";export{c as formatDate,d as formatDateTime,g as getAdjustedBillingCycleStart,h as getBillingStartDate,a as getDateTimeLocal,e as getFirstAndLastDay,f as getLastDayOfMonth,b as parseDateTime};
@@ -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-AL75Y3IJ.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.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-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-I5T4HQGY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.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-OIJ7WXXY.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.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-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.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};
@@ -17,6 +17,6 @@ export { punyEncode, punycode } from './punycode.js';
17
17
  export { timeAgo } from './time-ago.js';
18
18
  export { trim } from './trim.js';
19
19
  export { truncate } from './truncate.js';
20
- export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './urls.js';
20
+ export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './urls.js';
21
21
  import 'clsx';
22
22
  import 'next';
@@ -1 +1 @@
1
- import{a as d,b as u,c as v,d as w,e as x,f as y,g as z,h as A,i as B,j as H}from"../chunk-AL75Y3IJ.mjs";import{a as I}from"../chunk-GGIZK3EO.mjs";import{a as J}from"../chunk-OWYWG4M6.mjs";import{a as K}from"../chunk-I5Y5DKPK.mjs";import{a as L,b as M}from"../chunk-IHX4EDUF.mjs";import{a as N}from"../chunk-MPU6JRPV.mjs";import{a as O}from"../chunk-E3EM6ARH.mjs";import{a as P}from"../chunk-ZJKRLIJQ.mjs";import{a as n,b as o,c as p,d as q,e as r,f as s,g as t}from"../chunk-7REZWZDA.mjs";import{a as m}from"../chunk-ZECUYKGD.mjs";import{a as C}from"../chunk-EMO4MGOU.mjs";import{a as D}from"../chunk-6XPTKHZD.mjs";import{a as E,b as F}from"../chunk-AHSNWOXV.mjs";import{a as G}from"../chunk-AZGTG7GS.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,g as k,h as l}from"../chunk-I5T4HQGY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as capitalize,b as chunk,c as cn,d as constructMetadata,r as constructURLFromUTMParams,m as deepEqual,C as fetchWithTimeout,D as fetcher,g as formatDate,h as formatDateTime,u as generateDomainFromName,E as generateMD5Hash,k as getAdjustedBillingCycleStart,z as getApexDomain,l as getBillingStartDate,e as getDateTimeLocal,A as getDomainWithoutWWW,i as getFirstAndLastDay,j as getLastDayOfMonth,q as getParamsFromURL,p as getSearchParams,y as getSubdomain,o as getUrlFromString,t as getUrlWithoutUTMParams,F as hashStringSHA256,B as isDubDomain,G as isIframeable,n as isValidUrl,H as linkConstructor,I as log,K as nFormatter,J as nanoid,s as paramsMetadata,f as parseDateTime,M as punyEncode,L as punycode,N as timeAgo,O as trim,P as truncate,v as validDomainRegex,w as validKeyRegex,x as validSlugRegex};
1
+ import{a as d,b as v,c as w,d as x,e as y,f as z,g as A,h as B,i as C,j as I}from"../chunk-OIJ7WXXY.mjs";import{a as J}from"../chunk-GGIZK3EO.mjs";import{a as K}from"../chunk-OWYWG4M6.mjs";import{a as L}from"../chunk-I5Y5DKPK.mjs";import{a as M,b as N}from"../chunk-IHX4EDUF.mjs";import{a as O}from"../chunk-MPU6JRPV.mjs";import{a as P}from"../chunk-E3EM6ARH.mjs";import{a as Q}from"../chunk-FKLXONKR.mjs";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}from"../chunk-ZBU4VJM4.mjs";import{a as m}from"../chunk-ZECUYKGD.mjs";import{a as D}from"../chunk-EMO4MGOU.mjs";import{a as E}from"../chunk-6XPTKHZD.mjs";import{a as F,b as G}from"../chunk-AHSNWOXV.mjs";import{a as H}from"../chunk-AZGTG7GS.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,g as k,h as l}from"../chunk-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as capitalize,b as chunk,c as cn,d as constructMetadata,s as constructURLFromUTMParams,m as deepEqual,D as fetchWithTimeout,E as fetcher,g as formatDate,h as formatDateTime,v as generateDomainFromName,F as generateMD5Hash,k as getAdjustedBillingCycleStart,A as getApexDomain,l as getBillingStartDate,e as getDateTimeLocal,B as getDomainWithoutWWW,i as getFirstAndLastDay,j as getLastDayOfMonth,r as getParamsFromURL,p as getSearchParams,q as getSearchParamsWithArray,z as getSubdomain,o as getUrlFromString,u as getUrlWithoutUTMParams,G as hashStringSHA256,C as isDubDomain,H as isIframeable,n as isValidUrl,I as linkConstructor,J as log,L as nFormatter,K as nanoid,t as paramsMetadata,f as parseDateTime,N as punyEncode,M as punycode,O as timeAgo,P as trim,Q as truncate,w as validDomainRegex,x as validKeyRegex,y as validSlugRegex};
@@ -1 +1 @@
1
- import{j as a}from"../chunk-AL75Y3IJ.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.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-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-I5T4HQGY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as linkConstructor};
1
+ import{j as a}from"../chunk-OIJ7WXXY.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.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-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as linkConstructor};
@@ -1,3 +1,3 @@
1
- declare const truncate: (str: string | null, length: number) => string | null;
1
+ declare const truncate: (str: string | null | undefined, length: number) => string | null;
2
2
 
3
3
  export { truncate };
@@ -1 +1 @@
1
- import{a}from"../chunk-ZJKRLIJQ.mjs";export{a as truncate};
1
+ import{a}from"../chunk-FKLXONKR.mjs";export{a as truncate};
@@ -1,6 +1,7 @@
1
1
  declare const isValidUrl: (url: string) => boolean;
2
2
  declare const getUrlFromString: (str: string) => string;
3
3
  declare const getSearchParams: (url: string) => Record<string, string>;
4
+ declare const getSearchParamsWithArray: (url: string) => Record<string, string | string[]>;
4
5
  declare const getParamsFromURL: (url: string) => Record<string, string>;
5
6
  declare const constructURLFromUTMParams: (url: string, utmParams: Record<string, string>) => string;
6
7
  declare const paramsMetadata: {
@@ -10,4 +11,4 @@ declare const paramsMetadata: {
10
11
  }[];
11
12
  declare const getUrlWithoutUTMParams: (url: string) => string;
12
13
 
13
- export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata };
14
+ export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata };
@@ -1 +1 @@
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};
1
+ import{a,b,c,d,e,f,g,h}from"../chunk-ZBU4VJM4.mjs";export{f as constructURLFromUTMParams,e as getParamsFromURL,c as getSearchParams,d as getSearchParamsWithArray,b as getUrlFromString,h as getUrlWithoutUTMParams,a as isValidUrl,g as paramsMetadata};
package/dist/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export { punyEncode, punycode } from './functions/punycode.js';
18
18
  export { timeAgo } from './functions/time-ago.js';
19
19
  export { trim } from './functions/trim.js';
20
20
  export { truncate } from './functions/truncate.js';
21
- export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './functions/urls.js';
21
+ export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './functions/urls.js';
22
22
  export { ccTLDs } from './constants/cctlds.js';
23
23
  export { COUNTRIES, COUNTRY_CODES, EU_COUNTRY_CODES } from './constants/countries.js';
24
24
  export { SECOND_LEVEL_DOMAINS, SPECIAL_APEX_DOMAINS } from './constants/domains.js';
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{A as Co,B as Do,C as Eo,D as Fo,E as Go,F as Ho,G as Io,H as Jo,I as Ko,J as Lo,K as Mo,L as No,a as z,b as Q,c as R,d as S,e as T,f as U,g as V,h as W,i as X,j as ro,k as co,l as go,m as ho,n as io,o as jo,p as ko,q as lo,r as no,s as qo,t as so,u as uo,v as wo,w as yo,x as zo,y as Ao,z as Bo}from"./chunk-AL75Y3IJ.mjs";import{a as eo}from"./chunk-GGIZK3EO.mjs";import{a as fo}from"./chunk-OWYWG4M6.mjs";import{a as mo}from"./chunk-I5Y5DKPK.mjs";import{a as po,b as to}from"./chunk-IHX4EDUF.mjs";import{a as xo}from"./chunk-MPU6JRPV.mjs";import{a as ao}from"./chunk-E3EM6ARH.mjs";import{a as bo}from"./chunk-ZJKRLIJQ.mjs";import{a as J,b as K,c as L,d as M,e as N,f as O,g as P}from"./chunk-7REZWZDA.mjs";import{a as I}from"./chunk-ZECUYKGD.mjs";import{a as Y}from"./chunk-EMO4MGOU.mjs";import{a as Z}from"./chunk-6XPTKHZD.mjs";import{a as _,b as $}from"./chunk-AHSNWOXV.mjs";import{a as oo}from"./chunk-AZGTG7GS.mjs";import{a as j,b as k}from"./chunk-5VUO5P2B.mjs";import{a as l,b as n,c as q,d as s,e as u}from"./chunk-5XTNLJRY.mjs";import{a as vo}from"./chunk-PUFZASP4.mjs";import{a as v}from"./chunk-GTQBILTE.mjs";import{a as w}from"./chunk-2OJAP233.mjs";import{a as y}from"./chunk-NEIHTFSW.mjs";import{a as A,b as B,c as C,d as D,e as E,f as F,g as G,h as H}from"./chunk-I5T4HQGY.mjs";import{a as o}from"./chunk-YUMUNL66.mjs";import{a as r,b as e,c as f}from"./chunk-N2HN6AOA.mjs";import{a as m,b as p}from"./chunk-SYT2IXG6.mjs";import{a as t,b as x,c as a,d as b}from"./chunk-2SICE2ZS.mjs";import{a as c,b as d,c as g}from"./chunk-OLZMF4V2.mjs";import{a as h,b as i}from"./chunk-FYXE2IZT.mjs";export{Fo as ADMIN_HOSTNAMES,d as ALL_TOOLS,Eo as API_DOMAIN,Do as API_HOSTNAMES,Bo as APP_DOMAIN,Co as APP_DOMAIN_WITH_NGROK,Ao as APP_HOSTNAMES,wo as APP_NAME,io as BUSINESS_PLAN,g as COMPARE_PAGES,r as COUNTRIES,e as COUNTRY_CODES,l as DEFAULT_LINK_PROPS,j as DEFAULT_REDIRECTS,q as DICEBEAR_AVATAR_URL,No as DUB_DEMO_LINKS,Lo as DUB_DOMAINS,Mo as DUB_DOMAINS_ARRAY,k as DUB_HEADERS,Go as DUB_LOGO,Ho as DUB_THUMBNAIL,Io as DUB_WORKSPACE_ID,jo as ENTERPRISE_PLAN,f as EU_COUNTRY_CODES,b as FADE_IN_ANIMATION_SETTINGS,t as FRAMER_MOTION_LIST_ITEM_VARIANTS,go as FREE_PLAN,no as FREE_WORKSPACES_LIMIT,n as GOOGLE_FAVICON_URL,c as HIDE_BACKGROUND_SEGMENTS,zo as HOME_DOMAIN,Ko as LEGAL_USER_ID,Jo as LEGAL_WORKSPACE_ID,h as LOCALHOST_GEO_DATA,i as LOCALHOST_IP,s as PAGINATION_LIMIT,co as PLANS,ho as PRO_PLAN,ko as PUBLIC_PLANS,vo as SAML_PROVIDERS,m as SECOND_LEVEL_DOMAINS,lo as SELF_SERVE_PAID_PLANS,yo as SHORT_DOMAIN,p as SPECIAL_APEX_DOMAINS,x as STAGGER_CHILD_VARIANTS,a as SWIPE_REVEAL_ANIMATION_SETTINGS,u as TWO_WEEKS_IN_SECONDS,v as capitalize,o as ccTLDs,w as chunk,y as cn,z as constructMetadata,N as constructURLFromUTMParams,I as deepEqual,Y as fetchWithTimeout,Z as fetcher,C as formatDate,D as formatDateTime,Q as generateDomainFromName,_ as generateMD5Hash,G as getAdjustedBillingCycleStart,V as getApexDomain,H as getBillingStartDate,A as getDateTimeLocal,W as getDomainWithoutWWW,E as getFirstAndLastDay,F as getLastDayOfMonth,uo as getNextPlan,M as getParamsFromURL,so as getPlanDetails,qo as getPlanFromPriceId,L as getSearchParams,U as getSubdomain,K as getUrlFromString,P as getUrlWithoutUTMParams,$ as hashStringSHA256,X as isDubDomain,oo as isIframeable,J as isValidUrl,ro as linkConstructor,eo as log,mo as nFormatter,fo as nanoid,O as paramsMetadata,B as parseDateTime,to as punyEncode,po as punycode,xo as timeAgo,ao as trim,bo as truncate,R as validDomainRegex,S as validKeyRegex,T as validSlugRegex};
1
+ import{A as Do,B as Eo,C as Fo,D as Go,E as Ho,F as Io,G as Jo,H as Ko,I as Lo,J as Mo,K as No,L as Oo,a as z,b as R,c as S,d as T,e as U,f as V,g as W,h as X,i as Y,j as eo,k as go,l as ho,m as io,n as jo,o as ko,p as lo,q as no,r as qo,s as so,t as uo,u as vo,v as yo,w as zo,x as Ao,y as Bo,z as Co}from"./chunk-OIJ7WXXY.mjs";import{a as fo}from"./chunk-GGIZK3EO.mjs";import{a as mo}from"./chunk-OWYWG4M6.mjs";import{a as po}from"./chunk-I5Y5DKPK.mjs";import{a as to,b as xo}from"./chunk-IHX4EDUF.mjs";import{a as ao}from"./chunk-MPU6JRPV.mjs";import{a as bo}from"./chunk-E3EM6ARH.mjs";import{a as co}from"./chunk-FKLXONKR.mjs";import{a as J,b as K,c as L,d as M,e as N,f as O,g as P,h as Q}from"./chunk-ZBU4VJM4.mjs";import{a as I}from"./chunk-ZECUYKGD.mjs";import{a as Z}from"./chunk-EMO4MGOU.mjs";import{a as _}from"./chunk-6XPTKHZD.mjs";import{a as $,b as oo}from"./chunk-AHSNWOXV.mjs";import{a as ro}from"./chunk-AZGTG7GS.mjs";import{a as j,b as k}from"./chunk-5VUO5P2B.mjs";import{a as l,b as n,c as q,d as s,e as u}from"./chunk-5XTNLJRY.mjs";import{a as wo}from"./chunk-PUFZASP4.mjs";import{a as v}from"./chunk-GTQBILTE.mjs";import{a as w}from"./chunk-2OJAP233.mjs";import{a as y}from"./chunk-NEIHTFSW.mjs";import{a as A,b as B,c as C,d as D,e as E,f as F,g as G,h as H}from"./chunk-7DGKYGEY.mjs";import{a as o}from"./chunk-YUMUNL66.mjs";import{a as r,b as e,c as f}from"./chunk-N2HN6AOA.mjs";import{a as m,b as p}from"./chunk-SYT2IXG6.mjs";import{a as t,b as x,c as a,d as b}from"./chunk-2SICE2ZS.mjs";import{a as c,b as d,c as g}from"./chunk-OLZMF4V2.mjs";import{a as h,b as i}from"./chunk-FYXE2IZT.mjs";export{Go as ADMIN_HOSTNAMES,d as ALL_TOOLS,Fo as API_DOMAIN,Eo as API_HOSTNAMES,Co as APP_DOMAIN,Do as APP_DOMAIN_WITH_NGROK,Bo as APP_HOSTNAMES,yo as APP_NAME,jo as BUSINESS_PLAN,g as COMPARE_PAGES,r as COUNTRIES,e as COUNTRY_CODES,l as DEFAULT_LINK_PROPS,j as DEFAULT_REDIRECTS,q as DICEBEAR_AVATAR_URL,Oo as DUB_DEMO_LINKS,Mo as DUB_DOMAINS,No as DUB_DOMAINS_ARRAY,k as DUB_HEADERS,Ho as DUB_LOGO,Io as DUB_THUMBNAIL,Jo as DUB_WORKSPACE_ID,ko as ENTERPRISE_PLAN,f as EU_COUNTRY_CODES,b as FADE_IN_ANIMATION_SETTINGS,t as FRAMER_MOTION_LIST_ITEM_VARIANTS,ho as FREE_PLAN,qo as FREE_WORKSPACES_LIMIT,n as GOOGLE_FAVICON_URL,c as HIDE_BACKGROUND_SEGMENTS,Ao as HOME_DOMAIN,Lo as LEGAL_USER_ID,Ko as LEGAL_WORKSPACE_ID,h as LOCALHOST_GEO_DATA,i as LOCALHOST_IP,s as PAGINATION_LIMIT,go as PLANS,io as PRO_PLAN,lo as PUBLIC_PLANS,wo as SAML_PROVIDERS,m as SECOND_LEVEL_DOMAINS,no as SELF_SERVE_PAID_PLANS,zo as SHORT_DOMAIN,p as SPECIAL_APEX_DOMAINS,x as STAGGER_CHILD_VARIANTS,a as SWIPE_REVEAL_ANIMATION_SETTINGS,u as TWO_WEEKS_IN_SECONDS,v as capitalize,o as ccTLDs,w as chunk,y as cn,z as constructMetadata,O as constructURLFromUTMParams,I as deepEqual,Z as fetchWithTimeout,_ as fetcher,C as formatDate,D as formatDateTime,R as generateDomainFromName,$ as generateMD5Hash,G as getAdjustedBillingCycleStart,W as getApexDomain,H as getBillingStartDate,A as getDateTimeLocal,X as getDomainWithoutWWW,E as getFirstAndLastDay,F as getLastDayOfMonth,vo as getNextPlan,N as getParamsFromURL,uo as getPlanDetails,so as getPlanFromPriceId,L as getSearchParams,M as getSearchParamsWithArray,V as getSubdomain,K as getUrlFromString,Q as getUrlWithoutUTMParams,oo as hashStringSHA256,Y as isDubDomain,ro as isIframeable,J as isValidUrl,eo as linkConstructor,fo as log,po as nFormatter,mo as nanoid,P as paramsMetadata,B as parseDateTime,xo as punyEncode,to as punycode,ao as timeAgo,bo as trim,co as truncate,S as validDomainRegex,T as validKeyRegex,U 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.48",
4
+ "version": "0.0.50",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.mjs",
7
7
  "module": "./dist/index.mjs",
@@ -24,7 +24,7 @@
24
24
  "@types/node": "18.11.9",
25
25
  "@types/punycode": "^2.1.4",
26
26
  "@types/react": "^18.2.5",
27
- "next": "14.2.0-canary.47",
27
+ "next": "14.2.0-canary.67",
28
28
  "react": "^18.2.0",
29
29
  "tsconfig": "workspace:*",
30
30
  "tsup": "^6.1.3",