@dub/utils 0.0.49 → 0.0.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-CBKNYPTZ.mjs +1 -0
- package/dist/chunk-OIJ7WXXY.mjs +1 -0
- package/dist/chunk-R3PJAF54.mjs +1 -0
- package/dist/chunk-UXDNVOIH.mjs +1 -0
- package/dist/constants/index.d.ts +30 -30
- package/dist/constants/index.mjs +1 -1
- package/dist/functions/construct-metadata.mjs +1 -1
- package/dist/functions/domains.mjs +1 -1
- package/dist/functions/index.mjs +1 -1
- package/dist/functions/link-constructor.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as x}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as f}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var w=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&p.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((r,i)=>r.length<i.length?r:i)}.to`},S=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&p.has(o[o.length-1])||f.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},M=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:o,searchParams:s}){if(!e)return"";let r=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);r+=`?${i.toString()}`}return o?r.replace(/^https?:\/\//,""):r}var m=({name:e="Business",monthly:t=59,yearly:o=49,links:s=5e3,clicks:r=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:E},limits:{links:s,clicks:r,domains:i,tags:c,users:l,ai:1e3},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${u(s,{full:!0})} new links/mo`},{text:`${u(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:`${u(c,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black hover:bg-gray-800 hover:ring-gray-200"},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 hover:bg-blue-800 hover:ring-blue-200"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],b=n.find(e=>e.name==="Free"),k=n.find(e=>e.name==="Pro"),y=n.find(e=>e.name==="Business"),N=n.find(e=>e.name==="Enterprise"),pe=[b,k,y,N],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var fe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,xe=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),_e=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",Pe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),Ae=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",be=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),ke="https://assets.dub.co/logo.png",ye="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ne="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],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:o="https://assets.dub.co/thumbnail.jpg",icons:s=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:r=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...o&&{images:[{url:o}]}},twitter:{title:e,description:t,...o&&{card:"summary_large_image",images:[o]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...r&&{robots:{index:!1,follow:!1}}}}export{ze as a,w as b,S as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,b as l,k as m,y as n,N as o,pe as p,L as q,ue as r,me as s,de as t,he as u,fe as v,_ as w,P as x,xe as y,_e as z,Pe as A,Ee as B,Ae as C,be as D,ke as E,ye as F,a as G,Ne as H,Le as I,h as J,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 x}from"./chunk-ZBU4VJM4.mjs";import{a as p}from"./chunk-YUMUNL66.mjs";import{a as g,b as f}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var w=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&p.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((r,i)=>r.length<i.length?r:i)}.to`},S=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&p.has(o[o.length-1])||f.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},M=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:o,searchParams:s}){if(!e)return"";let r=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);r+=`?${i.toString()}`}return o?r.replace(/^https?:\/\//,""):r}var m=({name:e="Business",monthly:t=59,yearly:o=49,links:s=5e3,clicks:r=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:E},limits:{links:s,clicks:r,domains:i,tags:c,users:l,ai:1e3},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${u(s,{full:!0})} new links/mo`},{text:`${u(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:`${u(c,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"10 AI credits/mo"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5,ai:1e3},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],b=n.find(e=>e.name==="Free"),k=n.find(e=>e.name==="Pro"),y=n.find(e=>e.name==="Business"),N=n.find(e=>e.name==="Enterprise"),pe=[b,k,y,N],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var fe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,xe=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),_e=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",Pe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),Ae=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",be=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),ke="https://assets.dub.co/logo.png",ye="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ne="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function ze({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:s=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:r=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...o&&{images:[{url:o}]}},twitter:{title:e,description:t,...o&&{card:"summary_large_image",images:[o]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...r&&{robots:{index:!1,follow:!1}}}}export{ze as a,w as b,S as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,b as l,k as m,y as n,N as o,pe as p,L as q,ue as r,me as s,de as t,he as u,fe as v,_ as w,P as x,xe as y,_e as z,Pe as A,Ee as B,Ae as C,be as D,ke as E,ye as F,a as G,Ne as H,Le as I,h as J,Ie as K,ve as L};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as u}from"./chunk-I5Y5DKPK.mjs";import{a as d}from"./chunk-IHX4EDUF.mjs";import{a as 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 hover:bg-sky-800 hover:ring-sky-100"},featureTitle:"Everything in Pro, plus:",features:[{text:`${u(s,{full:!0})} new links/mo`},{text:`${u(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:`${u(c,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black hover:bg-gray-800 hover:ring-gray-200"},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 hover:bg-blue-600 hover:ring-blue-200"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],b=n.find(e=>e.name==="Free"),k=n.find(e=>e.name==="Pro"),y=n.find(e=>e.name==="Business"),N=n.find(e=>e.name==="Enterprise"),pe=[b,k,y,N],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var fe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,xe=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),_e=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",Pe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),Ae=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",be=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),ke="https://assets.dub.co/logo.png",ye="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ne="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],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:o="https://assets.dub.co/thumbnail.jpg",icons:s=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:r=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...o&&{images:[{url:o}]}},twitter:{title:e,description:t,...o&&{card:"summary_large_image",images:[o]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...r&&{robots:{index:!1,follow:!1}}}}export{ze as a,w as b,S as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,b as l,k as m,y as n,N as o,pe as p,L as q,ue as r,me as s,de as t,he as u,fe as v,_ as w,P as x,xe as y,_e as z,Pe as A,Ee as B,Ae as C,be as D,ke as E,ye as F,a as G,Ne as H,Le as I,h as J,ve as K,Ie as L};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as g,b as f}from"./chunk-SYT2IXG6.mjs";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 from"@sindresorhus/slugify";var w=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(p.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&p.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((r,i)=>r.length<i.length?r:i)}.to`},S=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),J=new RegExp(/^[a-zA-Z0-9\-]+$/),D=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),B=e=>{let t;try{t=new URL(e.replace(/^[a-zA-Z]+:\/\//,"https://")).hostname}catch{return""}if(t==="youtu.be")return"youtube.com";if(t==="raw.githubusercontent.com")return"github.com";if(t.endsWith(".vercel.app"))return"vercel.app";let o=t.split(".");return o.length>2?g.has(o[o.length-2])&&p.has(o[o.length-1])||f.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},M=e=>{if(x(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},U=e=>h.some(t=>t.slug===e);function V({domain:e,key:t,pretty:o,searchParams:s}){if(!e)return"";let r=`https://${d(e)}${t&&t!=="_root"?`/${d(t)}`:""}`;if(s){let i=new URLSearchParams;for(let[c,l]of Object.entries(s))i.set(c,l);r+=`?${i.toString()}`}return o?r.replace(/^https?:\/\//,""):r}var m=({name:e="Business",monthly:t=59,yearly:o=49,links:s=5e3,clicks:r=15e4,domains:i=40,tags:c=150,users:l=15,ids:E=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:o,ids:E},limits:{links:s,clicks:r,domains:i,tags:c,users:l,ai:1e3},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${u(s,{full:!0})} new links/mo`},{text:`${u(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:`${u(c,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),n=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1,ai:10},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"10 AI credits/mo"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5,ai:1e3},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Unlimited AI credits",footnote:{title:"Subject to fair use policy \u2013 you will be notified if you exceed the limit, which are high enough for frequent usage.",cta:"Learn more.",href:"https://dub.co/blog/introducing-dub-ai"}},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},m({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),m({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),m({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),m({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],b=n.find(e=>e.name==="Free"),k=n.find(e=>e.name==="Pro"),y=n.find(e=>e.name==="Business"),N=n.find(e=>e.name==="Enterprise"),pe=[b,k,y,N],L=n.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>n.find(t=>{var o;return(o=t.price.ids)==null?void 0:o.includes(e)})||null,de=e=>L.find(t=>t.name.toLowerCase()===e.toLowerCase()),he=e=>n[n.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var fe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",_=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,xe=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),_e=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",Pe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${_}`,"api.localhost:8888"]),Ae=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",be=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),ke="https://assets.dub.co/logo.png",ye="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",Ne="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",h=[{id:"clce1z7ch00j0rbstbjufva4j",slug:_,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],Ie=h.map(e=>e.slug),ve=[{id:"clqo10sum0006js08vutzfxt3",domain:"dub.sh",key:"try"},{id:"clot0z5rg000djp08ue98hxkn",domain:"chatg.pt",key:"domains"},{id:"clp4jh9av0001l308ormavtlu",domain:"spti.fi",key:"hans"},{id:"cltgtsex40003ck8z444hum5u",domain:"git.new",key:"dub"},{id:"clp3k3yoi0001ju0874nz899q",domain:"amzn.id",key:"tv"}];function ze({title:e=`${process.env.NEXT_PUBLIC_APP_NAME} - Link Management for Modern Marketing Teams`,description:t=`${process.env.NEXT_PUBLIC_APP_NAME} is the open-source link management infrastructure for modern marketing teams to create, share, and track short links.`,image:o="https://assets.dub.co/thumbnail.jpg",icons:s=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:r=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...o&&{images:[{url:o}]}},twitter:{title:e,description:t,...o&&{card:"summary_large_image",images:[o]},creator:"@dubdotco"},icons:s,metadataBase:new URL(P),...r&&{robots:{index:!1,follow:!1}}}}export{ze as a,w as b,S as c,C as d,J as e,D as f,B as g,M as h,U as i,V as j,n as k,b as l,k as m,y as n,N as o,pe as p,L as q,ue as r,me as s,de as t,he as u,fe as v,_ as w,P as x,xe as y,_e as z,Pe as A,Ee as B,Ae as C,be as D,ke as E,ye as F,a as G,Ne as H,Le as I,h as J,Ie as K,ve as L};
|
|
@@ -81,9 +81,6 @@ declare const PLANS: ({
|
|
|
81
81
|
features: ({
|
|
82
82
|
text: string;
|
|
83
83
|
footnote?: undefined;
|
|
84
|
-
} | {
|
|
85
|
-
text: string;
|
|
86
|
-
footnote: string;
|
|
87
84
|
} | {
|
|
88
85
|
text: string;
|
|
89
86
|
footnote: {
|
|
@@ -91,6 +88,9 @@ declare const PLANS: ({
|
|
|
91
88
|
cta: string;
|
|
92
89
|
href: string;
|
|
93
90
|
};
|
|
91
|
+
} | {
|
|
92
|
+
text: string;
|
|
93
|
+
footnote: string;
|
|
94
94
|
})[];
|
|
95
95
|
} | {
|
|
96
96
|
name: string;
|
|
@@ -197,9 +197,6 @@ declare const FREE_PLAN: {
|
|
|
197
197
|
features: ({
|
|
198
198
|
text: string;
|
|
199
199
|
footnote?: undefined;
|
|
200
|
-
} | {
|
|
201
|
-
text: string;
|
|
202
|
-
footnote: string;
|
|
203
200
|
} | {
|
|
204
201
|
text: string;
|
|
205
202
|
footnote: {
|
|
@@ -207,6 +204,9 @@ declare const FREE_PLAN: {
|
|
|
207
204
|
cta: string;
|
|
208
205
|
href: string;
|
|
209
206
|
};
|
|
207
|
+
} | {
|
|
208
|
+
text: string;
|
|
209
|
+
footnote: string;
|
|
210
210
|
})[];
|
|
211
211
|
} | {
|
|
212
212
|
name: string;
|
|
@@ -313,9 +313,6 @@ declare const PRO_PLAN: {
|
|
|
313
313
|
features: ({
|
|
314
314
|
text: string;
|
|
315
315
|
footnote?: undefined;
|
|
316
|
-
} | {
|
|
317
|
-
text: string;
|
|
318
|
-
footnote: string;
|
|
319
316
|
} | {
|
|
320
317
|
text: string;
|
|
321
318
|
footnote: {
|
|
@@ -323,6 +320,9 @@ declare const PRO_PLAN: {
|
|
|
323
320
|
cta: string;
|
|
324
321
|
href: string;
|
|
325
322
|
};
|
|
323
|
+
} | {
|
|
324
|
+
text: string;
|
|
325
|
+
footnote: string;
|
|
326
326
|
})[];
|
|
327
327
|
} | {
|
|
328
328
|
name: string;
|
|
@@ -429,9 +429,6 @@ declare const BUSINESS_PLAN: {
|
|
|
429
429
|
features: ({
|
|
430
430
|
text: string;
|
|
431
431
|
footnote?: undefined;
|
|
432
|
-
} | {
|
|
433
|
-
text: string;
|
|
434
|
-
footnote: string;
|
|
435
432
|
} | {
|
|
436
433
|
text: string;
|
|
437
434
|
footnote: {
|
|
@@ -439,6 +436,9 @@ declare const BUSINESS_PLAN: {
|
|
|
439
436
|
cta: string;
|
|
440
437
|
href: string;
|
|
441
438
|
};
|
|
439
|
+
} | {
|
|
440
|
+
text: string;
|
|
441
|
+
footnote: string;
|
|
442
442
|
})[];
|
|
443
443
|
} | {
|
|
444
444
|
name: string;
|
|
@@ -545,9 +545,6 @@ declare const ENTERPRISE_PLAN: {
|
|
|
545
545
|
features: ({
|
|
546
546
|
text: string;
|
|
547
547
|
footnote?: undefined;
|
|
548
|
-
} | {
|
|
549
|
-
text: string;
|
|
550
|
-
footnote: string;
|
|
551
548
|
} | {
|
|
552
549
|
text: string;
|
|
553
550
|
footnote: {
|
|
@@ -555,6 +552,9 @@ declare const ENTERPRISE_PLAN: {
|
|
|
555
552
|
cta: string;
|
|
556
553
|
href: string;
|
|
557
554
|
};
|
|
555
|
+
} | {
|
|
556
|
+
text: string;
|
|
557
|
+
footnote: string;
|
|
558
558
|
})[];
|
|
559
559
|
} | {
|
|
560
560
|
name: string;
|
|
@@ -661,9 +661,6 @@ declare const PUBLIC_PLANS: ({
|
|
|
661
661
|
features: ({
|
|
662
662
|
text: string;
|
|
663
663
|
footnote?: undefined;
|
|
664
|
-
} | {
|
|
665
|
-
text: string;
|
|
666
|
-
footnote: string;
|
|
667
664
|
} | {
|
|
668
665
|
text: string;
|
|
669
666
|
footnote: {
|
|
@@ -671,6 +668,9 @@ declare const PUBLIC_PLANS: ({
|
|
|
671
668
|
cta: string;
|
|
672
669
|
href: string;
|
|
673
670
|
};
|
|
671
|
+
} | {
|
|
672
|
+
text: string;
|
|
673
|
+
footnote: string;
|
|
674
674
|
})[];
|
|
675
675
|
} | {
|
|
676
676
|
name: string;
|
|
@@ -777,9 +777,6 @@ declare const SELF_SERVE_PAID_PLANS: ({
|
|
|
777
777
|
features: ({
|
|
778
778
|
text: string;
|
|
779
779
|
footnote?: undefined;
|
|
780
|
-
} | {
|
|
781
|
-
text: string;
|
|
782
|
-
footnote: string;
|
|
783
780
|
} | {
|
|
784
781
|
text: string;
|
|
785
782
|
footnote: {
|
|
@@ -787,6 +784,9 @@ declare const SELF_SERVE_PAID_PLANS: ({
|
|
|
787
784
|
cta: string;
|
|
788
785
|
href: string;
|
|
789
786
|
};
|
|
787
|
+
} | {
|
|
788
|
+
text: string;
|
|
789
|
+
footnote: string;
|
|
790
790
|
})[];
|
|
791
791
|
} | {
|
|
792
792
|
name: string;
|
|
@@ -894,9 +894,6 @@ declare const getPlanFromPriceId: (priceId: string) => {
|
|
|
894
894
|
features: ({
|
|
895
895
|
text: string;
|
|
896
896
|
footnote?: undefined;
|
|
897
|
-
} | {
|
|
898
|
-
text: string;
|
|
899
|
-
footnote: string;
|
|
900
897
|
} | {
|
|
901
898
|
text: string;
|
|
902
899
|
footnote: {
|
|
@@ -904,6 +901,9 @@ declare const getPlanFromPriceId: (priceId: string) => {
|
|
|
904
901
|
cta: string;
|
|
905
902
|
href: string;
|
|
906
903
|
};
|
|
904
|
+
} | {
|
|
905
|
+
text: string;
|
|
906
|
+
footnote: string;
|
|
907
907
|
})[];
|
|
908
908
|
} | {
|
|
909
909
|
name: string;
|
|
@@ -1010,9 +1010,6 @@ declare const getPlanDetails: (plan: string) => {
|
|
|
1010
1010
|
features: ({
|
|
1011
1011
|
text: string;
|
|
1012
1012
|
footnote?: undefined;
|
|
1013
|
-
} | {
|
|
1014
|
-
text: string;
|
|
1015
|
-
footnote: string;
|
|
1016
1013
|
} | {
|
|
1017
1014
|
text: string;
|
|
1018
1015
|
footnote: {
|
|
@@ -1020,6 +1017,9 @@ declare const getPlanDetails: (plan: string) => {
|
|
|
1020
1017
|
cta: string;
|
|
1021
1018
|
href: string;
|
|
1022
1019
|
};
|
|
1020
|
+
} | {
|
|
1021
|
+
text: string;
|
|
1022
|
+
footnote: string;
|
|
1023
1023
|
})[];
|
|
1024
1024
|
} | {
|
|
1025
1025
|
name: string;
|
|
@@ -1126,9 +1126,6 @@ declare const getNextPlan: (plan: string) => {
|
|
|
1126
1126
|
features: ({
|
|
1127
1127
|
text: string;
|
|
1128
1128
|
footnote?: undefined;
|
|
1129
|
-
} | {
|
|
1130
|
-
text: string;
|
|
1131
|
-
footnote: string;
|
|
1132
1129
|
} | {
|
|
1133
1130
|
text: string;
|
|
1134
1131
|
footnote: {
|
|
@@ -1136,6 +1133,9 @@ declare const getNextPlan: (plan: string) => {
|
|
|
1136
1133
|
cta: string;
|
|
1137
1134
|
href: string;
|
|
1138
1135
|
};
|
|
1136
|
+
} | {
|
|
1137
|
+
text: string;
|
|
1138
|
+
footnote: string;
|
|
1139
1139
|
})[];
|
|
1140
1140
|
} | {
|
|
1141
1141
|
name: string;
|
package/dist/constants/index.mjs
CHANGED
|
@@ -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-
|
|
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-R3PJAF54.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-
|
|
1
|
+
import{a}from"../chunk-R3PJAF54.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{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-
|
|
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-R3PJAF54.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};
|
package/dist/functions/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-R3PJAF54.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-
|
|
1
|
+
import{j as a}from"../chunk-R3PJAF54.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};
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-R3PJAF54.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};
|