@dub/utils 0.0.48 → 0.0.49

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 _}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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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-5RWCY2T3.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-5RWCY2T3.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-5RWCY2T3.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-5RWCY2T3.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-5RWCY2T3.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-5RWCY2T3.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.49",
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",