@dub/utils 0.0.59 → 0.0.61

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.
Files changed (90) hide show
  1. package/dist/chunk-2OGPCKQX.mjs +1 -0
  2. package/dist/chunk-3FXVSAFG.mjs +1 -0
  3. package/dist/chunk-4G4IXMUK.mjs +1 -0
  4. package/dist/chunk-4Z5DDZCA.mjs +1 -0
  5. package/dist/chunk-4ZN4QUZI.mjs +1 -0
  6. package/dist/chunk-5LNVHW2D.mjs +1 -0
  7. package/dist/chunk-5NKPICDX.mjs +1 -0
  8. package/dist/chunk-5OWGC7JI.mjs +1 -0
  9. package/dist/chunk-75AAXS4U.mjs +1 -0
  10. package/dist/chunk-77AAOAE5.mjs +1 -0
  11. package/dist/chunk-7JXBARIU.mjs +1 -0
  12. package/dist/chunk-7UDI7OJ5.mjs +1 -0
  13. package/dist/chunk-7XH7DP6N.mjs +1 -0
  14. package/dist/chunk-AJKSXVKN.mjs +1 -0
  15. package/dist/chunk-AOG5JJD3.mjs +1 -0
  16. package/dist/chunk-C55AN4OY.mjs +1 -0
  17. package/dist/chunk-CA4D4SHC.mjs +1 -0
  18. package/dist/chunk-DE7J7J4C.mjs +1 -0
  19. package/dist/chunk-DOFRTJ5J.mjs +1 -0
  20. package/dist/chunk-DX32AJDR.mjs +1 -0
  21. package/dist/chunk-EMTVBCNH.mjs +1 -0
  22. package/dist/chunk-EP7SP4VG.mjs +1 -0
  23. package/dist/chunk-ERISNOFQ.mjs +1 -0
  24. package/dist/chunk-FJIMSFOG.mjs +1 -0
  25. package/dist/chunk-GJYQLS6P.mjs +1 -0
  26. package/dist/chunk-GVYNYTQM.mjs +1 -0
  27. package/dist/chunk-IKN3DO2T.mjs +1 -0
  28. package/dist/chunk-IQMCTMN4.mjs +1 -0
  29. package/dist/chunk-JCKIPXMW.mjs +1 -0
  30. package/dist/chunk-JHYPE5ZD.mjs +1 -0
  31. package/dist/chunk-JOMDB22B.mjs +1 -0
  32. package/dist/chunk-JZ4P53NN.mjs +1 -0
  33. package/dist/chunk-KHLIRP6F.mjs +1 -0
  34. package/dist/chunk-MA2YLKTT.mjs +1 -0
  35. package/dist/chunk-MH5LZNIE.mjs +1 -0
  36. package/dist/chunk-NMFKYDWN.mjs +1 -0
  37. package/dist/chunk-NQP6WK7A.mjs +1 -0
  38. package/dist/chunk-NSGYDOTI.mjs +1 -0
  39. package/dist/chunk-NSMGFR2B.mjs +1 -0
  40. package/dist/chunk-PID6DP4I.mjs +1 -0
  41. package/dist/chunk-PNNWFB6N.mjs +1 -0
  42. package/dist/chunk-PQ2TR4XH.mjs +1 -0
  43. package/dist/chunk-PSUAQKZF.mjs +1 -0
  44. package/dist/chunk-PVTNMC3M.mjs +1 -0
  45. package/dist/chunk-Q52NAHFA.mjs +1 -0
  46. package/dist/chunk-QIE7HWS7.mjs +1 -0
  47. package/dist/chunk-QMRIAEX6.mjs +1 -0
  48. package/dist/chunk-QULJZ4LU.mjs +1 -0
  49. package/dist/chunk-RHBD3VAY.mjs +1 -0
  50. package/dist/chunk-ROP7GE4A.mjs +1 -0
  51. package/dist/chunk-SLPGZBZW.mjs +1 -0
  52. package/dist/chunk-TZ6M4K3Z.mjs +1 -0
  53. package/dist/chunk-U6US7TOG.mjs +1 -0
  54. package/dist/chunk-UR3EDOUU.mjs +1 -0
  55. package/dist/chunk-V3TVE3NY.mjs +1 -0
  56. package/dist/chunk-VLWADHW2.mjs +1 -0
  57. package/dist/chunk-XVLLEQDZ.mjs +1 -0
  58. package/dist/chunk-YBBAAUFL.mjs +1 -0
  59. package/dist/chunk-ZGDEYKW6.mjs +1 -0
  60. package/dist/chunk-ZIFPCTQ2.mjs +1 -0
  61. package/dist/constants/continents.d.ts +6 -0
  62. package/dist/constants/continents.mjs +1 -0
  63. package/dist/constants/countries.d.ts +1 -2
  64. package/dist/constants/countries.mjs +1 -1
  65. package/dist/constants/dub-domains.mjs +1 -1
  66. package/dist/constants/index.d.ts +3 -2
  67. package/dist/constants/index.mjs +1 -1
  68. package/dist/constants/layout.mjs +1 -1
  69. package/dist/constants/localhost.d.ts +2 -1
  70. package/dist/constants/localhost.mjs +1 -1
  71. package/dist/constants/main.d.ts +2 -1
  72. package/dist/constants/main.mjs +1 -1
  73. package/dist/constants/misc.mjs +1 -1
  74. package/dist/functions/construct-metadata.d.ts +2 -1
  75. package/dist/functions/construct-metadata.mjs +1 -1
  76. package/dist/functions/datetime.d.ts +1 -1
  77. package/dist/functions/datetime.mjs +1 -1
  78. package/dist/functions/domains.mjs +1 -1
  79. package/dist/functions/index.d.ts +2 -1
  80. package/dist/functions/index.mjs +1 -1
  81. package/dist/functions/link-constructor.mjs +1 -1
  82. package/dist/functions/stable-sort.d.ts +7 -0
  83. package/dist/functions/stable-sort.mjs +1 -0
  84. package/dist/functions/urls.d.ts +2 -1
  85. package/dist/functions/urls.mjs +1 -1
  86. package/dist/index.d.ts +5 -3
  87. package/dist/index.mjs +1 -1
  88. package/dist/pricing-bd7e9c37.d.ts +1284 -0
  89. package/dist/stable-sort-2cdeb84e.d.ts +7 -0
  90. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ import{a as h}from"./chunk-LRYNEA4G.mjs";import{a as p}from"./chunk-I5Y5DKPK.mjs";import{a as u}from"./chunk-IHX4EDUF.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import{a as f}from"./chunk-QIE7HWS7.mjs";import{c as d}from"./chunk-AOG5JJD3.mjs";import P from"@sindresorhus/slugify";var w=e=>{let t=P(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&c.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((n,i)=>n.length<i.length?n:i)}.link`},v=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),V=new RegExp(/^[a-zA-Z0-9\-]+$/),q=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),C=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])&&c.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},N=e=>{if(h(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}},R=e=>f.some(t=>t.slug===e);function D({domain:e,key:t,pretty:r,searchParams:o}){if(!e)return"";let n=`https://${u(e)}${t&&t!=="_root"?`/${u(t)}`:""}`;if(o){let i=new URLSearchParams;for(let[a,l]of Object.entries(o))i.set(a,l);n+=`?${i.toString()}`}return r?n.replace(/^https?:\/\//,""):n}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:o=5e3,clicks:n=15e4,domains:i=40,tags:a=150,users:l=15,ids:y=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:y},limits:{links:o,clicks:n,domains:i,tags:a,users:l,ai:1e3,api:6e3},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:`${p(o,{full:!0})} new links/mo`},{text:`${p(n)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:`${p(a,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Priority support"}]}),s=[{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,api:600},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:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}},{text:"Basic support"}]},{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,api:3e3},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-100"},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:"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."},{text:"Elevated support"}]},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:25e4,clicks:5e6,domains:1e3,tags:1e3,users:500,ai:1e4,api:1e4},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 hover:bg-violet-700 hover:ring-violet-100"},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=s.find(e=>e.name==="Free"),b=s.find(e=>e.name==="Pro"),E=s.find(e=>e.name==="Business"),A=s.find(e=>e.name==="Enterprise"),pe=[k,b,E,A],J=s.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),me=2,ue=e=>s.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,ge=e=>J.find(t=>t.name.toLowerCase()===e.toLowerCase()),xe=e=>s.find(t=>t.name.toLowerCase()===e.toLowerCase())||k,de=e=>e?s[s.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1]:b;function Ve({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 platform for modern marketing teams to create marketing campaigns, link sharing features, and referral programs.`,image:r="https://assets.dub.co/thumbnail.jpg",video:o,icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:i=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:r},...o&&{videos:o}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},...o&&{player:o},creator:"@dubdotco"},icons:n,metadataBase:new URL(d),...i&&{robots:{index:!1,follow:!1}}}}export{Ve as a,w as b,v as c,S as d,V as e,q as f,C as g,N as h,R as i,D as j,s as k,k as l,b as m,E as n,A as o,pe as p,J as q,me as r,ue as s,ge as t,xe as u,de as v};
@@ -0,0 +1 @@
1
+ import{b as e,n as o}from"./chunk-77AAOAE5.mjs";var a=[{id:"clce1z7ch00j0rbstbjufva4j",slug:e,verified:!0,primary:!0,archived:!1,placeholder:"https://dub.co/help/article/what-is-dub",allowedHostnames:[],description:"The default domain for all new accounts.",projectId:o},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clxp3lfsb00011na8tfs7t0lx",slug:"dub.link",verified:!0,primary:!0,archived:!1,placeholder:"https://dub.co/help/article/what-is-dub",allowedHostnames:[],description:"Premium short domain on Dub \u2013 only available on our Pro plan and above.",projectId:o},{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",allowedHostnames:["chat.openai.com","chatgpt.com"],description:"Branded domain for ChatGPT links (convos, custom GPTs).",projectId:o},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",allowedHostnames:["open.spotify.com"],description:"Branded domain for Spotify links (songs, playlists, etc.).",projectId:o},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,placeholder:"https://github.com/dubinc/dub",allowedHostnames:["github.com","gist.github.com"],description:"Branded domain for GitHub links (repositories, gists, etc.).",projectId:o},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es","amazon.fr"],description:"Branded domain for Amazon links (products, wishlists, etc.).",projectId:o},{id:"clymd6zkc0001elilr1215tj9",slug:"ggl.link",verified:!0,primary:!1,archived:!1,placeholder:"https://docs.google.com/document/d/15-GOZA12SXGEh8lNwU5QI1jBi04TCPgY2-LChTbXVpA",allowedHostnames:["google.com","google.co.uk","google.ca","google.es","google.fr","docs.google.com","drive.google.com","maps.google.com","googleblog.com","developers.googleblog.com","blog.google"],description:"Branded domain for Google links (Search, Docs, Sheets, Slides, Drive, Maps, etc.).",projectId:o},{id:"clymczttm0001jgkore3ltr37",slug:"fig.page",verified:!0,primary:!1,archived:!1,placeholder:"https://www.figma.com/design/YAfTk6SGV2HcSvL2415oED/Dub.co-Brand-Assets-(Public)?node-id=1-36593&t=QMKQNtUzxSSzG3hX-1",allowedHostnames:["figma.com"],description:"Branded domain for Figma links (portfolios, prototypes, presentations, etc.).",projectId:o},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,placeholder:"https://d.to/long",description:"Branded domain for lengthening links instead of shortening them (April Fool's Prank).",projectId:o}]:[]],d=a.map(i=>i.slug),s=[{id:"clqo10sum0006js08vutzfxt3",domain:"d.to",key:"try"},{id:"cltshzzpd0005126z3rd2lvo4",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"}];export{a,d as b,s as c};
@@ -0,0 +1 @@
1
+ import{b as o,n as e}from"./chunk-77AAOAE5.mjs";var a=[{id:"clce1z7ch00j0rbstbjufva4j",slug:o,verified:!0,primary:!0,archived:!1,placeholder:"https://dub.co/help/article/what-is-dub",allowedHostnames:[],description:"The default domain for all new accounts.",projectId:e},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clxp3lfsb00011na8tfs7t0lx",slug:"dub.link",verified:!0,primary:!0,archived:!1,placeholder:"https://dub.co/help/article/what-is-dub",allowedHostnames:[],description:"Premium short domain on Dub \u2013 only available on our Pro plan and above.",projectId:e},{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",allowedHostnames:["chat.openai.com","chatgpt.com"],description:"Branded domain for ChatGPT links (convos, custom GPTs).",projectId:e},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",allowedHostnames:["open.spotify.com"],description:"Branded domain for Spotify links (songs, playlists, etc.).",projectId:e},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,placeholder:"https://github.com/dubinc/dub",allowedHostnames:["github.com","gist.github.com"],description:"Branded domain for GitHub links (repositories, gists, etc.).",projectId:e},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es","amazon.fr"],description:"Branded domain for Amazon links (products, wishlists, etc.).",projectId:e},{id:"clymd6zkc0001elilr1215tj9",slug:"ggl.link",verified:!0,primary:!1,archived:!1,placeholder:"https://docs.google.com/document/d/15-GOZA12SXGEh8lNwU5QI1jBi04TCPgY2-LChTbXVpA",allowedHostnames:["google.com","google.co.uk","google.ca","google.es","google.fr","docs.google.com","drive.google.com","maps.google.com"],description:"Branded domain for Google links (Search, Docs, Sheets, Slides, Drive, Maps, etc.).",projectId:e},{id:"clymczttm0001jgkore3ltr37",slug:"fig.page",verified:!0,primary:!1,archived:!1,placeholder:"https://www.figma.com/design/YAfTk6SGV2HcSvL2415oED/Dub.co-Brand-Assets-(Public)?node-id=1-36593&t=QMKQNtUzxSSzG3hX-1",allowedHostnames:["figma.com"],description:"Branded domain for Figma links (portfolios, prototypes, presentations, etc.).",projectId:e},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,placeholder:"https://d.to/long",description:"Branded domain for lengthening links instead of shortening them (April Fool's Prank).",projectId:e}]:[]],d=a.map(i=>i.slug),s=[{id:"clqo10sum0006js08vutzfxt3",domain:"d.to",key:"try"},{id:"cltshzzpd0005126z3rd2lvo4",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"}];export{a,d as b,s as c};
@@ -0,0 +1 @@
1
+ import{a as h}from"./chunk-LRYNEA4G.mjs";import{a as p}from"./chunk-I5Y5DKPK.mjs";import{a as u}from"./chunk-IHX4EDUF.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import{a as f}from"./chunk-3FXVSAFG.mjs";import{d}from"./chunk-77AAOAE5.mjs";import P from"@sindresorhus/slugify";var O=e=>{let t=P(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let r=t.replace(/[aeiou]/g,"");return r.length>=3&&c.has(r.slice(-2))?`${r.slice(0,-2)}.${r.slice(-2)}`:`${[t,r].reduce((n,i)=>n.length<i.length?n:i)}.link`},v=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),S=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-\p{Emoji}]*$/u),V=new RegExp(/^[a-zA-Z0-9\-]+$/),q=(e,t)=>e===t?null:e.slice(0,e.length-t.length-1),C=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])&&c.has(r[r.length-1])||x.has(r.slice(-2).join("."))?r.slice(-3).join("."):r.slice(-2).join("."):t},N=e=>{if(h(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}},R=e=>f.some(t=>t.slug===e);function D({domain:e,key:t,pretty:r,searchParams:o}){if(!e)return"";let n=`https://${u(e)}${t&&t!=="_root"?`/${u(t)}`:""}`;if(o){let i=new URLSearchParams;for(let[a,l]of Object.entries(o))i.set(a,l);n+=`?${i.toString()}`}return r?n.replace(/^https?:\/\//,""):n}var m=({name:e="Business",monthly:t=59,yearly:r=49,links:o=5e3,clicks:n=15e4,domains:i=40,tags:a=150,users:l=15,ids:y=[]})=>({name:e,tagline:"For larger teams with increased usage",link:"https://dub.co/help/article/business-plan",price:{monthly:t,yearly:r,ids:y},limits:{links:o,clicks:n,domains:i,tags:a,users:l,ai:1e3,api:6e3},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:`${p(o,{full:!0})} new links/mo`},{text:`${p(n)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${i} custom domains`},{text:`${l} users`},{text:`${p(a,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Priority support"}]}),s=[{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,api:600},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:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}},{text:"Basic support"}]},{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,api:3e3},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-100"},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:"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."},{text:"Elevated support"}]},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:25e4,clicks:5e6,domains:1e3,tags:1e3,users:500,ai:1e4,api:1e4},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 hover:bg-violet-700 hover:ring-violet-100"},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=s.find(e=>e.name==="Free"),b=s.find(e=>e.name==="Pro"),E=s.find(e=>e.name==="Business"),A=s.find(e=>e.name==="Enterprise"),pe=[k,b,E,A],J=s.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),me=2,ue=e=>s.find(t=>{var r;return(r=t.price.ids)==null?void 0:r.includes(e)})||null,ge=e=>J.find(t=>t.name.toLowerCase()===e.toLowerCase()),xe=e=>s.find(t=>t.name.toLowerCase()===e.toLowerCase())||k,de=e=>e?s[s.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1]:b;function Ve({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 platform for modern marketing teams to create marketing campaigns, link sharing features, and referral programs.`,image:r="https://assets.dub.co/thumbnail.jpg",video:o,icons:n=[{rel:"apple-touch-icon",sizes:"32x32",url:"/apple-touch-icon.png"},{rel:"icon",type:"image/png",sizes:"32x32",url:"/favicon-32x32.png"},{rel:"icon",type:"image/png",sizes:"16x16",url:"/favicon-16x16.png"}],noIndex:i=!1}={}){return{title:e,description:t,openGraph:{title:e,description:t,...r&&{images:{url:r,width:1200,height:630}},...o&&{videos:{url:o,width:1200,height:630}}},twitter:{title:e,description:t,...r&&{card:"summary_large_image",images:[r]},...o&&{player:o},creator:"@dubdotco"},icons:n,metadataBase:new URL(d),...i&&{robots:{index:!1,follow:!1}}}}export{Ve as a,O as b,v as c,S as d,V as e,q as f,C as g,N as h,R as i,D as j,s as k,k as l,b as m,E as n,A as o,pe as p,J as q,me as r,ue as s,ge as t,xe as u,de as v};
@@ -0,0 +1 @@
1
+ var _=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",s=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",o="dub.link",e=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,t=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),p=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",P=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.NEXT_PUBLIC_NGROK_URL||"http://localhost:8888",c=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${s}`,"api.localhost:8888"]),n=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",N=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),r="https://assets.dub.co/logo.png",A="https://assets.dub.co/wordmark.png",E="https://assets.dub.co/thumbnail.jpg",I="cl7pj5kq4006835rbjlt2ofka",L="clrflia0j0000vs7sqfhz9c7q",O="clqei1lgc0000vsnzi01pbf47",U=process.env.STORAGE_BASE_URL;export{_ as a,s as b,o as c,e as d,t as e,p as f,P as g,c as h,n as i,N as j,r as k,A as l,E as m,I as n,L as o,O as p,U as q};
@@ -0,0 +1,6 @@
1
+ declare const CONTINENTS: {
2
+ [key: string]: string;
3
+ };
4
+ declare const CONTINENT_CODES: [string, ...string[]];
5
+
6
+ export { CONTINENTS, CONTINENT_CODES };
@@ -0,0 +1 @@
1
+ import{a,b}from"../chunk-MH5LZNIE.mjs";export{a as CONTINENTS,b as CONTINENT_CODES};
@@ -2,6 +2,5 @@ declare const COUNTRIES: {
2
2
  [key: string]: string;
3
3
  };
4
4
  declare const COUNTRY_CODES: [string, ...string[]];
5
- declare const EU_COUNTRY_CODES: string[];
6
5
 
7
- export { COUNTRIES, COUNTRY_CODES, EU_COUNTRY_CODES };
6
+ export { COUNTRIES, COUNTRY_CODES };
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-N2HN6AOA.mjs";export{a as COUNTRIES,b as COUNTRY_CODES,c as EU_COUNTRY_CODES};
1
+ import{a,b}from"../chunk-5NKPICDX.mjs";export{a as COUNTRIES,b as COUNTRY_CODES};
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-MTVCVT7B.mjs";import"../chunk-SMGTYYEE.mjs";export{c as DUB_DEMO_LINKS,a as DUB_DOMAINS,b as DUB_DOMAINS_ARRAY};
1
+ import{a,b,c}from"../chunk-QIE7HWS7.mjs";import"../chunk-AOG5JJD3.mjs";export{c as DUB_DEMO_LINKS,a as DUB_DOMAINS,b as DUB_DOMAINS_ARRAY};
@@ -1,11 +1,12 @@
1
1
  export { ccTLDs } from './cctlds.js';
2
- export { COUNTRIES, COUNTRY_CODES, EU_COUNTRY_CODES } from './countries.js';
2
+ export { CONTINENTS, CONTINENT_CODES } from './continents.js';
3
+ export { COUNTRIES, COUNTRY_CODES } from './countries.js';
3
4
  export { SECOND_LEVEL_DOMAINS, SPECIAL_APEX_DOMAINS } from './domains.js';
4
5
  export { DUB_DEMO_LINKS, DUB_DOMAINS, DUB_DOMAINS_ARRAY } from './dub-domains.js';
5
6
  export { FADE_IN_ANIMATION_SETTINGS, FRAMER_MOTION_LIST_ITEM_VARIANTS, STAGGER_CHILD_VARIANTS, SWIPE_REVEAL_ANIMATION_SETTINGS } from './framer-motion.js';
6
7
  export { ALL_TOOLS, COMPARE_PAGES, HIDE_BACKGROUND_SEGMENTS } from './layout.js';
7
8
  export { LOCALHOST_GEO_DATA, LOCALHOST_IP } from './localhost.js';
8
- export { ADMIN_HOSTNAMES, API_DOMAIN, API_HOSTNAMES, APP_DOMAIN, APP_DOMAIN_WITH_NGROK, APP_HOSTNAMES, APP_NAME, DUB_LOGO, DUB_THUMBNAIL, DUB_WORDMARK, DUB_WORKSPACE_ID, HOME_DOMAIN, LEGAL_USER_ID, LEGAL_WORKSPACE_ID, SHORT_DOMAIN } from './main.js';
9
+ export { ADMIN_HOSTNAMES, API_DOMAIN, API_HOSTNAMES, APP_DOMAIN, APP_DOMAIN_WITH_NGROK, APP_HOSTNAMES, APP_NAME, DUB_LOGO, DUB_THUMBNAIL, DUB_WORDMARK, DUB_WORKSPACE_ID, HOME_DOMAIN, LEGAL_USER_ID, LEGAL_WORKSPACE_ID, R2_URL, SHORT_DOMAIN } from './main.js';
9
10
  export { DEFAULT_REDIRECTS, DUB_HEADERS } from './middleware.js';
10
11
  export { DEFAULT_LINK_PROPS, DICEBEAR_AVATAR_URL, DUB_FOUNDING_DATE, GOOGLE_FAVICON_URL, PAGINATION_LIMIT, TWO_WEEKS_IN_SECONDS } from './misc.js';
11
12
  export { B as BUSINESS_PLAN, E as ENTERPRISE_PLAN, F as FREE_PLAN, c as FREE_WORKSPACES_LIMIT, P as PLANS, a as PRO_PLAN, b as PUBLIC_PLANS, S as SELF_SERVE_PAID_PLANS, e as getCurrentPlan, f as getNextPlan, d as getPlanDetails, g as getPlanFromPriceId } from '../pricing-ad2f41cb.js';
@@ -1 +1 @@
1
- import{k as P,l as Q,m as R,n as S,o as T,p as U,q as V,r as W,s as X,t as Y,u as Z,v as _}from"../chunk-CCXRQ2SD.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-LRYNEA4G.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-IS7ER5CY.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-F4P6WJV7.mjs";import{a as F,b as G}from"../chunk-FYXE2IZT.mjs";import{a as H,b as I}from"../chunk-OKHUN43N.mjs";import{a as J,b as K,c as L,d as M,e as N,f as O}from"../chunk-DPAABCZN.mjs";import{a as $}from"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.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 v,b as w,c as x}from"../chunk-MTVCVT7B.mjs";import{a as g,b as h,c as i,d as j,e as k,f as l,g as m,h as n,i as o,j as p,k as q,l as r,m as s,n as t,o as u}from"../chunk-SMGTYYEE.mjs";import{a as y,b as z,c as A,d as B}from"../chunk-2SICE2ZS.mjs";import{a as C,b as D,c as E}from"../chunk-75YRV5XL.mjs";export{o as ADMIN_HOSTNAMES,D as ALL_TOOLS,n as API_DOMAIN,m as API_HOSTNAMES,k as APP_DOMAIN,l as APP_DOMAIN_WITH_NGROK,j as APP_HOSTNAMES,g as APP_NAME,S as BUSINESS_PLAN,E as COMPARE_PAGES,b as COUNTRIES,c as COUNTRY_CODES,J as DEFAULT_LINK_PROPS,H as DEFAULT_REDIRECTS,L as DICEBEAR_AVATAR_URL,x as DUB_DEMO_LINKS,v as DUB_DOMAINS,w as DUB_DOMAINS_ARRAY,O as DUB_FOUNDING_DATE,I as DUB_HEADERS,p as DUB_LOGO,r as DUB_THUMBNAIL,q as DUB_WORDMARK,s as DUB_WORKSPACE_ID,T as ENTERPRISE_PLAN,d as EU_COUNTRY_CODES,B as FADE_IN_ANIMATION_SETTINGS,y as FRAMER_MOTION_LIST_ITEM_VARIANTS,Q as FREE_PLAN,W as FREE_WORKSPACES_LIMIT,K as GOOGLE_FAVICON_URL,C as HIDE_BACKGROUND_SEGMENTS,i as HOME_DOMAIN,u as LEGAL_USER_ID,t as LEGAL_WORKSPACE_ID,F as LOCALHOST_GEO_DATA,G as LOCALHOST_IP,M as PAGINATION_LIMIT,P as PLANS,R as PRO_PLAN,U as PUBLIC_PLANS,$ as SAML_PROVIDERS,e as SECOND_LEVEL_DOMAINS,V as SELF_SERVE_PAID_PLANS,h as SHORT_DOMAIN,f as SPECIAL_APEX_DOMAINS,z as STAGGER_CHILD_VARIANTS,A as SWIPE_REVEAL_ANIMATION_SETTINGS,N as TWO_WEEKS_IN_SECONDS,a as ccTLDs,Z as getCurrentPlan,_ as getNextPlan,Y as getPlanDetails,X as getPlanFromPriceId};
1
+ import{k as R,l as S,m as T,n as U,o as V,p as W,q as X,r as Y,s as Z,t as _,u as $,v as aa}from"../chunk-FJIMSFOG.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-NQP6WK7A.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-DOFRTJ5J.mjs";import"../chunk-F4P6WJV7.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-GJYQLS6P.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import{a as E,b as F,c as G}from"../chunk-3UGYGAAY.mjs";import{a as H,b as I}from"../chunk-2OGPCKQX.mjs";import{a as J,b as K}from"../chunk-OKHUN43N.mjs";import{a as L,b as M,c as N,d as O,e as P,f as Q}from"../chunk-4G4IXMUK.mjs";import{a as ba}from"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import{a}from"../chunk-YUMUNL66.mjs";import{a as b,b as c}from"../chunk-MH5LZNIE.mjs";import{a as d,b as e}from"../chunk-5NKPICDX.mjs";import{a as f,b as g}from"../chunk-SYT2IXG6.mjs";import{a as x,b as y,c as z}from"../chunk-QIE7HWS7.mjs";import{a as h,b as i,c as j,d as k,e as l,f as m,g as n,h as o,i as p,j as q,k as r,l as s,m as t,n as u,o as v,p as w}from"../chunk-AOG5JJD3.mjs";import{a as A,b as B,c as C,d as D}from"../chunk-2SICE2ZS.mjs";export{p as ADMIN_HOSTNAMES,F as ALL_TOOLS,o as API_DOMAIN,n as API_HOSTNAMES,l as APP_DOMAIN,m as APP_DOMAIN_WITH_NGROK,k as APP_HOSTNAMES,h as APP_NAME,U as BUSINESS_PLAN,G as COMPARE_PAGES,b as CONTINENTS,c as CONTINENT_CODES,d as COUNTRIES,e as COUNTRY_CODES,L as DEFAULT_LINK_PROPS,J as DEFAULT_REDIRECTS,N as DICEBEAR_AVATAR_URL,z as DUB_DEMO_LINKS,x as DUB_DOMAINS,y as DUB_DOMAINS_ARRAY,Q as DUB_FOUNDING_DATE,K as DUB_HEADERS,q as DUB_LOGO,s as DUB_THUMBNAIL,r as DUB_WORDMARK,t as DUB_WORKSPACE_ID,V as ENTERPRISE_PLAN,D as FADE_IN_ANIMATION_SETTINGS,A as FRAMER_MOTION_LIST_ITEM_VARIANTS,S as FREE_PLAN,Y as FREE_WORKSPACES_LIMIT,M as GOOGLE_FAVICON_URL,E as HIDE_BACKGROUND_SEGMENTS,j as HOME_DOMAIN,v as LEGAL_USER_ID,u as LEGAL_WORKSPACE_ID,H as LOCALHOST_GEO_DATA,I as LOCALHOST_IP,O as PAGINATION_LIMIT,R as PLANS,T as PRO_PLAN,W as PUBLIC_PLANS,w as R2_URL,ba as SAML_PROVIDERS,f as SECOND_LEVEL_DOMAINS,X as SELF_SERVE_PAID_PLANS,i as SHORT_DOMAIN,g as SPECIAL_APEX_DOMAINS,B as STAGGER_CHILD_VARIANTS,C as SWIPE_REVEAL_ANIMATION_SETTINGS,P as TWO_WEEKS_IN_SECONDS,a as ccTLDs,$ as getCurrentPlan,aa as getNextPlan,_ as getPlanDetails,Z as getPlanFromPriceId};
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-75YRV5XL.mjs";export{b as ALL_TOOLS,c as COMPARE_PAGES,a as HIDE_BACKGROUND_SEGMENTS};
1
+ import{a,b,c}from"../chunk-3UGYGAAY.mjs";export{b as ALL_TOOLS,c as COMPARE_PAGES,a as HIDE_BACKGROUND_SEGMENTS};
@@ -1,7 +1,8 @@
1
1
  declare const LOCALHOST_GEO_DATA: {
2
+ continent: string;
3
+ country: string;
2
4
  city: string;
3
5
  region: string;
4
- country: string;
5
6
  latitude: string;
6
7
  longitude: string;
7
8
  };
@@ -1 +1 @@
1
- import{a,b}from"../chunk-FYXE2IZT.mjs";export{a as LOCALHOST_GEO_DATA,b as LOCALHOST_IP};
1
+ import{a,b}from"../chunk-2OGPCKQX.mjs";export{a as LOCALHOST_GEO_DATA,b as LOCALHOST_IP};
@@ -13,5 +13,6 @@ declare const DUB_THUMBNAIL = "https://assets.dub.co/thumbnail.jpg";
13
13
  declare const DUB_WORKSPACE_ID = "cl7pj5kq4006835rbjlt2ofka";
14
14
  declare const LEGAL_WORKSPACE_ID = "clrflia0j0000vs7sqfhz9c7q";
15
15
  declare const LEGAL_USER_ID = "clqei1lgc0000vsnzi01pbf47";
16
+ declare const R2_URL: string;
16
17
 
17
- export { ADMIN_HOSTNAMES, API_DOMAIN, API_HOSTNAMES, APP_DOMAIN, APP_DOMAIN_WITH_NGROK, APP_HOSTNAMES, APP_NAME, DUB_LOGO, DUB_THUMBNAIL, DUB_WORDMARK, DUB_WORKSPACE_ID, HOME_DOMAIN, LEGAL_USER_ID, LEGAL_WORKSPACE_ID, SHORT_DOMAIN };
18
+ export { ADMIN_HOSTNAMES, API_DOMAIN, API_HOSTNAMES, APP_DOMAIN, APP_DOMAIN_WITH_NGROK, APP_HOSTNAMES, APP_NAME, DUB_LOGO, DUB_THUMBNAIL, DUB_WORDMARK, DUB_WORKSPACE_ID, HOME_DOMAIN, LEGAL_USER_ID, LEGAL_WORKSPACE_ID, R2_URL, SHORT_DOMAIN };
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o}from"../chunk-SMGTYYEE.mjs";export{i as ADMIN_HOSTNAMES,h as API_DOMAIN,g as API_HOSTNAMES,e as APP_DOMAIN,f as APP_DOMAIN_WITH_NGROK,d as APP_HOSTNAMES,a as APP_NAME,j as DUB_LOGO,l as DUB_THUMBNAIL,k as DUB_WORDMARK,m as DUB_WORKSPACE_ID,c as HOME_DOMAIN,o as LEGAL_USER_ID,n as LEGAL_WORKSPACE_ID,b as SHORT_DOMAIN};
1
+ import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p}from"../chunk-AOG5JJD3.mjs";export{i as ADMIN_HOSTNAMES,h as API_DOMAIN,g as API_HOSTNAMES,e as APP_DOMAIN,f as APP_DOMAIN_WITH_NGROK,d as APP_HOSTNAMES,a as APP_NAME,j as DUB_LOGO,l as DUB_THUMBNAIL,k as DUB_WORDMARK,m as DUB_WORKSPACE_ID,c as HOME_DOMAIN,o as LEGAL_USER_ID,n as LEGAL_WORKSPACE_ID,p as R2_URL,b as SHORT_DOMAIN};
@@ -1 +1 @@
1
- import{a,b,c,d,e,f}from"../chunk-DPAABCZN.mjs";export{a as DEFAULT_LINK_PROPS,c as DICEBEAR_AVATAR_URL,f as DUB_FOUNDING_DATE,b as GOOGLE_FAVICON_URL,d as PAGINATION_LIMIT,e as TWO_WEEKS_IN_SECONDS};
1
+ import{a,b,c,d,e,f}from"../chunk-4G4IXMUK.mjs";export{a as DEFAULT_LINK_PROPS,c as DICEBEAR_AVATAR_URL,f as DUB_FOUNDING_DATE,b as GOOGLE_FAVICON_URL,d as PAGINATION_LIMIT,e as TWO_WEEKS_IN_SECONDS};
@@ -1,9 +1,10 @@
1
1
  import { Metadata } from 'next';
2
2
 
3
- declare function constructMetadata({ title, description, image, icons, noIndex, }?: {
3
+ declare function constructMetadata({ title, description, image, video, icons, noIndex, }?: {
4
4
  title?: string;
5
5
  description?: string;
6
6
  image?: string | null;
7
+ video?: string | null;
7
8
  icons?: Metadata["icons"];
8
9
  noIndex?: boolean;
9
10
  }): Metadata;
@@ -1 +1 @@
1
- import{a}from"../chunk-CCXRQ2SD.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-LRYNEA4G.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-IS7ER5CY.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-F4P6WJV7.mjs";import"../chunk-FYXE2IZT.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-DPAABCZN.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-MTVCVT7B.mjs";import"../chunk-SMGTYYEE.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-75YRV5XL.mjs";export{a as constructMetadata};
1
+ import{a}from"../chunk-FJIMSFOG.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-NQP6WK7A.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-DOFRTJ5J.mjs";import"../chunk-F4P6WJV7.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-GJYQLS6P.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-3UGYGAAY.mjs";import"../chunk-2OGPCKQX.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-4G4IXMUK.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-MH5LZNIE.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-QIE7HWS7.mjs";import"../chunk-AOG5JJD3.mjs";import"../chunk-2SICE2ZS.mjs";export{a as constructMetadata};
@@ -1,6 +1,6 @@
1
1
  declare const getDateTimeLocal: (timestamp?: Date) => string;
2
2
  declare const parseDateTime: (str: Date | string) => Date | null;
3
- declare const formatDate: (datetime: Date | string) => string;
3
+ declare const formatDate: (datetime: Date | string, options?: Intl.DateTimeFormatOptions) => string;
4
4
  declare const formatDateTime: (datetime: Date | string) => string;
5
5
  declare const getDaysDifference: (startDate: Date, endDate: Date) => number;
6
6
  declare const getFirstAndLastDay: (day: number) => {
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i}from"../chunk-IS7ER5CY.mjs";export{c as formatDate,d as formatDateTime,h as getAdjustedBillingCycleStart,i as getBillingStartDate,a as getDateTimeLocal,e as getDaysDifference,f as getFirstAndLastDay,g as getLastDayOfMonth,b as parseDateTime};
1
+ import{a,b,c,d,e,f,g,h,i}from"../chunk-GJYQLS6P.mjs";export{c as formatDate,d as formatDateTime,h as getAdjustedBillingCycleStart,i as getBillingStartDate,a as getDateTimeLocal,e as getDaysDifference,f as getFirstAndLastDay,g 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-CCXRQ2SD.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-LRYNEA4G.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-IS7ER5CY.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-F4P6WJV7.mjs";import"../chunk-FYXE2IZT.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-DPAABCZN.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-MTVCVT7B.mjs";import"../chunk-SMGTYYEE.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-75YRV5XL.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-FJIMSFOG.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-NQP6WK7A.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-DOFRTJ5J.mjs";import"../chunk-F4P6WJV7.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-GJYQLS6P.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-3UGYGAAY.mjs";import"../chunk-2OGPCKQX.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-4G4IXMUK.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-MH5LZNIE.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-QIE7HWS7.mjs";import"../chunk-AOG5JJD3.mjs";import"../chunk-2SICE2ZS.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};
@@ -16,9 +16,10 @@ export { log } from './log.js';
16
16
  export { nanoid } from './nanoid.js';
17
17
  export { nFormatter } from './nformatter.js';
18
18
  export { punyEncode, punycode } from './punycode.js';
19
+ export { stableSort } from './stable-sort.js';
19
20
  export { timeAgo } from './time-ago.js';
20
21
  export { trim } from './trim.js';
21
22
  export { truncate } from './truncate.js';
22
- export { constructURLFromUTMParams, getParamsFromURL, getPrettyUrl, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './urls.js';
23
+ export { UTMTags, constructURLFromUTMParams, getParamsFromURL, getPrettyUrl, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './urls.js';
23
24
  import 'clsx';
24
25
  import 'next';
@@ -1 +1 @@
1
- import{a as e,b as y,c as z,d as A,e as B,f as C,g as D,h as E,i as F,j as L}from"../chunk-CCXRQ2SD.mjs";import{a as R}from"../chunk-MPU6JRPV.mjs";import{a as S}from"../chunk-E3EM6ARH.mjs";import{a as T}from"../chunk-FKLXONKR.mjs";import{a as p,b as q,c as r,d as s,e as t,f as u,g as v,h as w,i as x}from"../chunk-LRYNEA4G.mjs";import{a as J}from"../chunk-C4JMLACD.mjs";import{a as K}from"../chunk-ZOUWCTIR.mjs";import{a as M}from"../chunk-GGIZK3EO.mjs";import{a as N}from"../chunk-OWYWG4M6.mjs";import{a as O}from"../chunk-I5Y5DKPK.mjs";import{a as P,b as Q}from"../chunk-IHX4EDUF.mjs";import{a as d}from"../chunk-HJD7AJT4.mjs";import{a as f,b as g,c as h,d as i,e as j,f as k,g as l,h as m,i as n}from"../chunk-IS7ER5CY.mjs";import{a as o}from"../chunk-ZECUYKGD.mjs";import{a as G}from"../chunk-EMO4MGOU.mjs";import{a as H}from"../chunk-6XPTKHZD.mjs";import{a as I}from"../chunk-F4P6WJV7.mjs";import"../chunk-FYXE2IZT.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-DPAABCZN.mjs";import"../chunk-PUFZASP4.mjs";import{a}from"../chunk-PMOQSSOL.mjs";import{a as b}from"../chunk-2OJAP233.mjs";import{a as c}from"../chunk-NEIHTFSW.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-MTVCVT7B.mjs";import"../chunk-SMGTYYEE.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-75YRV5XL.mjs";export{a as capitalize,b as chunk,c as cn,d as combineWords,e as constructMetadata,u as constructURLFromUTMParams,o as deepEqual,G as fetchWithTimeout,H as fetcher,h as formatDate,i as formatDateTime,y as generateDomainFromName,m as getAdjustedBillingCycleStart,D as getApexDomain,n as getBillingStartDate,f as getDateTimeLocal,j as getDaysDifference,E as getDomainWithoutWWW,k as getFirstAndLastDay,l as getLastDayOfMonth,t as getParamsFromURL,x as getPrettyUrl,r as getSearchParams,s as getSearchParamsWithArray,C as getSubdomain,q as getUrlFromString,w as getUrlWithoutUTMParams,I as hashStringSHA256,F as isDubDomain,K as isIframeable,p as isValidUrl,L as linkConstructor,M as log,O as nFormatter,N as nanoid,v as paramsMetadata,g as parseDateTime,Q as punyEncode,P as punycode,J as resizeImage,R as timeAgo,S as trim,T as truncate,z as validDomainRegex,A as validKeyRegex,B as validSlugRegex};
1
+ import{a as e,b as z,c as A,d as B,e as C,f as D,g as E,h as F,i as G,j as M}from"../chunk-FJIMSFOG.mjs";import{a as Q,b as R}from"../chunk-IHX4EDUF.mjs";import{a as S}from"../chunk-NQP6WK7A.mjs";import{a as T}from"../chunk-MPU6JRPV.mjs";import{a as U}from"../chunk-E3EM6ARH.mjs";import{a as V}from"../chunk-FKLXONKR.mjs";import{a as p,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 y}from"../chunk-DOFRTJ5J.mjs";import{a as J}from"../chunk-F4P6WJV7.mjs";import{a as K}from"../chunk-C4JMLACD.mjs";import{a as L}from"../chunk-ZOUWCTIR.mjs";import{a as N}from"../chunk-GGIZK3EO.mjs";import{a as O}from"../chunk-OWYWG4M6.mjs";import{a as P}from"../chunk-I5Y5DKPK.mjs";import{a as c}from"../chunk-NEIHTFSW.mjs";import{a as d}from"../chunk-HJD7AJT4.mjs";import{a as f,b as g,c as h,d as i,e as j,f as k,g as l,h as m,i as n}from"../chunk-GJYQLS6P.mjs";import{a as o}from"../chunk-ZECUYKGD.mjs";import{a as H}from"../chunk-EMO4MGOU.mjs";import{a as I}from"../chunk-6XPTKHZD.mjs";import"../chunk-3UGYGAAY.mjs";import"../chunk-2OGPCKQX.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-4G4IXMUK.mjs";import"../chunk-PUFZASP4.mjs";import{a}from"../chunk-PMOQSSOL.mjs";import{a as b}from"../chunk-2OJAP233.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-MH5LZNIE.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-QIE7HWS7.mjs";import"../chunk-AOG5JJD3.mjs";import"../chunk-2SICE2ZS.mjs";export{u as UTMTags,a as capitalize,b as chunk,c as cn,d as combineWords,e as constructMetadata,v as constructURLFromUTMParams,o as deepEqual,H as fetchWithTimeout,I as fetcher,h as formatDate,i as formatDateTime,z as generateDomainFromName,m as getAdjustedBillingCycleStart,E as getApexDomain,n as getBillingStartDate,f as getDateTimeLocal,j as getDaysDifference,F as getDomainWithoutWWW,k as getFirstAndLastDay,l as getLastDayOfMonth,t as getParamsFromURL,y as getPrettyUrl,r as getSearchParams,s as getSearchParamsWithArray,D as getSubdomain,q as getUrlFromString,x as getUrlWithoutUTMParams,J as hashStringSHA256,G as isDubDomain,L as isIframeable,p as isValidUrl,M as linkConstructor,N as log,P as nFormatter,O as nanoid,w as paramsMetadata,g as parseDateTime,R as punyEncode,Q as punycode,K as resizeImage,S as stableSort,T as timeAgo,U as trim,V as truncate,A as validDomainRegex,B as validKeyRegex,C as validSlugRegex};
@@ -1 +1 @@
1
- import{j as a}from"../chunk-CCXRQ2SD.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-LRYNEA4G.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-IS7ER5CY.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-F4P6WJV7.mjs";import"../chunk-FYXE2IZT.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-DPAABCZN.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-MTVCVT7B.mjs";import"../chunk-SMGTYYEE.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-75YRV5XL.mjs";export{a as linkConstructor};
1
+ import{j as a}from"../chunk-FJIMSFOG.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-NQP6WK7A.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-DOFRTJ5J.mjs";import"../chunk-F4P6WJV7.mjs";import"../chunk-C4JMLACD.mjs";import"../chunk-ZOUWCTIR.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-HJD7AJT4.mjs";import"../chunk-GJYQLS6P.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-3UGYGAAY.mjs";import"../chunk-2OGPCKQX.mjs";import"../chunk-OKHUN43N.mjs";import"../chunk-4G4IXMUK.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-PMOQSSOL.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-MH5LZNIE.mjs";import"../chunk-5NKPICDX.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-QIE7HWS7.mjs";import"../chunk-AOG5JJD3.mjs";import"../chunk-2SICE2ZS.mjs";export{a as linkConstructor};
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Sorts an array using the specified compare function, preserving the order
3
+ * of elements that compare equally.
4
+ */
5
+ declare const stableSort: <T>(arr: T[], compare: (a: T, b: T) => number) => T[];
6
+
7
+ export { stableSort };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-NQP6WK7A.mjs";export{a as stableSort};
@@ -3,6 +3,7 @@ declare const getUrlFromString: (str: string) => string;
3
3
  declare const getSearchParams: (url: string) => Record<string, string>;
4
4
  declare const getSearchParamsWithArray: (url: string) => Record<string, string | string[]>;
5
5
  declare const getParamsFromURL: (url: string) => Record<string, string>;
6
+ declare const UTMTags: string[];
6
7
  declare const constructURLFromUTMParams: (url: string, utmParams: Record<string, string>) => string;
7
8
  declare const paramsMetadata: {
8
9
  display: string;
@@ -12,4 +13,4 @@ declare const paramsMetadata: {
12
13
  declare const getUrlWithoutUTMParams: (url: string) => string;
13
14
  declare const getPrettyUrl: (url: string) => string;
14
15
 
15
- export { constructURLFromUTMParams, getParamsFromURL, getPrettyUrl, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata };
16
+ export { UTMTags, constructURLFromUTMParams, getParamsFromURL, getPrettyUrl, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata };
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i}from"../chunk-LRYNEA4G.mjs";export{f as constructURLFromUTMParams,e as getParamsFromURL,i as getPrettyUrl,c as getSearchParams,d as getSearchParamsWithArray,b as getUrlFromString,h as getUrlWithoutUTMParams,a as isValidUrl,g as paramsMetadata};
1
+ import{a,b,c,d,e,f,g,h,i,j}from"../chunk-DOFRTJ5J.mjs";export{f as UTMTags,g as constructURLFromUTMParams,e as getParamsFromURL,j as getPrettyUrl,c as getSearchParams,d as getSearchParamsWithArray,b as getUrlFromString,i as getUrlWithoutUTMParams,a as isValidUrl,h as paramsMetadata};
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  export { ccTLDs } from './constants/cctlds.js';
2
- export { COUNTRIES, COUNTRY_CODES, EU_COUNTRY_CODES } from './constants/countries.js';
2
+ export { CONTINENTS, CONTINENT_CODES } from './constants/continents.js';
3
+ export { COUNTRIES, COUNTRY_CODES } from './constants/countries.js';
3
4
  export { SECOND_LEVEL_DOMAINS, SPECIAL_APEX_DOMAINS } from './constants/domains.js';
4
5
  export { DUB_DEMO_LINKS, DUB_DOMAINS, DUB_DOMAINS_ARRAY } from './constants/dub-domains.js';
5
6
  export { FADE_IN_ANIMATION_SETTINGS, FRAMER_MOTION_LIST_ITEM_VARIANTS, STAGGER_CHILD_VARIANTS, SWIPE_REVEAL_ANIMATION_SETTINGS } from './constants/framer-motion.js';
6
7
  export { ALL_TOOLS, COMPARE_PAGES, HIDE_BACKGROUND_SEGMENTS } from './constants/layout.js';
7
8
  export { LOCALHOST_GEO_DATA, LOCALHOST_IP } from './constants/localhost.js';
8
- export { ADMIN_HOSTNAMES, API_DOMAIN, API_HOSTNAMES, APP_DOMAIN, APP_DOMAIN_WITH_NGROK, APP_HOSTNAMES, APP_NAME, DUB_LOGO, DUB_THUMBNAIL, DUB_WORDMARK, DUB_WORKSPACE_ID, HOME_DOMAIN, LEGAL_USER_ID, LEGAL_WORKSPACE_ID, SHORT_DOMAIN } from './constants/main.js';
9
+ export { ADMIN_HOSTNAMES, API_DOMAIN, API_HOSTNAMES, APP_DOMAIN, APP_DOMAIN_WITH_NGROK, APP_HOSTNAMES, APP_NAME, DUB_LOGO, DUB_THUMBNAIL, DUB_WORDMARK, DUB_WORKSPACE_ID, HOME_DOMAIN, LEGAL_USER_ID, LEGAL_WORKSPACE_ID, R2_URL, SHORT_DOMAIN } from './constants/main.js';
9
10
  export { DEFAULT_REDIRECTS, DUB_HEADERS } from './constants/middleware.js';
10
11
  export { DEFAULT_LINK_PROPS, DICEBEAR_AVATAR_URL, DUB_FOUNDING_DATE, GOOGLE_FAVICON_URL, PAGINATION_LIMIT, TWO_WEEKS_IN_SECONDS } from './constants/misc.js';
11
12
  export { B as BUSINESS_PLAN, E as ENTERPRISE_PLAN, F as FREE_PLAN, c as FREE_WORKSPACES_LIMIT, P as PLANS, a as PRO_PLAN, b as PUBLIC_PLANS, S as SELF_SERVE_PAID_PLANS, e as getCurrentPlan, f as getNextPlan, d as getPlanDetails, g as getPlanFromPriceId } from './pricing-ad2f41cb.js';
@@ -28,9 +29,10 @@ export { log } from './functions/log.js';
28
29
  export { nanoid } from './functions/nanoid.js';
29
30
  export { nFormatter } from './functions/nformatter.js';
30
31
  export { punyEncode, punycode } from './functions/punycode.js';
32
+ export { stableSort } from './functions/stable-sort.js';
31
33
  export { timeAgo } from './functions/time-ago.js';
32
34
  export { trim } from './functions/trim.js';
33
35
  export { truncate } from './functions/truncate.js';
34
- export { constructURLFromUTMParams, getParamsFromURL, getPrettyUrl, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './functions/urls.js';
36
+ export { UTMTags, constructURLFromUTMParams, getParamsFromURL, getPrettyUrl, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './functions/urls.js';
35
37
  import 'clsx';
36
38
  import 'next';
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{a as T,b as go,c as ho,d as io,e as jo,f as ko,g as lo,h as no,i as qo,j as zo,k as Io,l as Jo,m as Ko,n as Lo,o as Mo,p as No,q as Oo,r as Po,s as Qo,t as Ro,u as So,v as To}from"./chunk-CCXRQ2SD.mjs";import{a as Fo}from"./chunk-MPU6JRPV.mjs";import{a as Go}from"./chunk-E3EM6ARH.mjs";import{a as Ho}from"./chunk-FKLXONKR.mjs";import{a as eo,b as fo,c as mo,d as po,e as to,f as xo,g as ao,h as bo,i as co}from"./chunk-LRYNEA4G.mjs";import{a as wo}from"./chunk-C4JMLACD.mjs";import{a as yo}from"./chunk-ZOUWCTIR.mjs";import{a as Ao}from"./chunk-GGIZK3EO.mjs";import{a as Bo}from"./chunk-OWYWG4M6.mjs";import{a as Co}from"./chunk-I5Y5DKPK.mjs";import{a as Do,b as Eo}from"./chunk-IHX4EDUF.mjs";import{a as S}from"./chunk-HJD7AJT4.mjs";import{a as U,b as V,c as W,d as X,e as Y,f as Z,g as _,h as $,i as oo}from"./chunk-IS7ER5CY.mjs";import{a as ro}from"./chunk-ZECUYKGD.mjs";import{a as so}from"./chunk-EMO4MGOU.mjs";import{a as uo}from"./chunk-6XPTKHZD.mjs";import{a as vo}from"./chunk-F4P6WJV7.mjs";import{a as F,b as G}from"./chunk-FYXE2IZT.mjs";import{a as H,b as I}from"./chunk-OKHUN43N.mjs";import{a as J,b as K,c as L,d as M,e as N,f as O}from"./chunk-DPAABCZN.mjs";import{a as Uo}from"./chunk-PUFZASP4.mjs";import{a as P}from"./chunk-PMOQSSOL.mjs";import{a as Q}from"./chunk-2OJAP233.mjs";import{a as R}from"./chunk-NEIHTFSW.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 u,b as v,c as w}from"./chunk-MTVCVT7B.mjs";import{a as t,b as x,c as a,d as b,e as c,f as d,g,h,i,j,k,l,m as n,n as q,o as s}from"./chunk-SMGTYYEE.mjs";import{a as y,b as z,c as A,d as B}from"./chunk-2SICE2ZS.mjs";import{a as C,b as D,c as E}from"./chunk-75YRV5XL.mjs";export{i as ADMIN_HOSTNAMES,D as ALL_TOOLS,h as API_DOMAIN,g as API_HOSTNAMES,c as APP_DOMAIN,d as APP_DOMAIN_WITH_NGROK,b as APP_HOSTNAMES,t as APP_NAME,Lo as BUSINESS_PLAN,E as COMPARE_PAGES,r as COUNTRIES,e as COUNTRY_CODES,J as DEFAULT_LINK_PROPS,H as DEFAULT_REDIRECTS,L as DICEBEAR_AVATAR_URL,w as DUB_DEMO_LINKS,u as DUB_DOMAINS,v as DUB_DOMAINS_ARRAY,O as DUB_FOUNDING_DATE,I as DUB_HEADERS,j as DUB_LOGO,l as DUB_THUMBNAIL,k as DUB_WORDMARK,n as DUB_WORKSPACE_ID,Mo as ENTERPRISE_PLAN,f as EU_COUNTRY_CODES,B as FADE_IN_ANIMATION_SETTINGS,y as FRAMER_MOTION_LIST_ITEM_VARIANTS,Jo as FREE_PLAN,Po as FREE_WORKSPACES_LIMIT,K as GOOGLE_FAVICON_URL,C as HIDE_BACKGROUND_SEGMENTS,a as HOME_DOMAIN,s as LEGAL_USER_ID,q as LEGAL_WORKSPACE_ID,F as LOCALHOST_GEO_DATA,G as LOCALHOST_IP,M as PAGINATION_LIMIT,Io as PLANS,Ko as PRO_PLAN,No as PUBLIC_PLANS,Uo as SAML_PROVIDERS,m as SECOND_LEVEL_DOMAINS,Oo as SELF_SERVE_PAID_PLANS,x as SHORT_DOMAIN,p as SPECIAL_APEX_DOMAINS,z as STAGGER_CHILD_VARIANTS,A as SWIPE_REVEAL_ANIMATION_SETTINGS,N as TWO_WEEKS_IN_SECONDS,P as capitalize,o as ccTLDs,Q as chunk,R as cn,S as combineWords,T as constructMetadata,xo as constructURLFromUTMParams,ro as deepEqual,so as fetchWithTimeout,uo as fetcher,W as formatDate,X as formatDateTime,go as generateDomainFromName,$ as getAdjustedBillingCycleStart,lo as getApexDomain,oo as getBillingStartDate,So as getCurrentPlan,U as getDateTimeLocal,Y as getDaysDifference,no as getDomainWithoutWWW,Z as getFirstAndLastDay,_ as getLastDayOfMonth,To as getNextPlan,to as getParamsFromURL,Ro as getPlanDetails,Qo as getPlanFromPriceId,co as getPrettyUrl,mo as getSearchParams,po as getSearchParamsWithArray,ko as getSubdomain,fo as getUrlFromString,bo as getUrlWithoutUTMParams,vo as hashStringSHA256,qo as isDubDomain,yo as isIframeable,eo as isValidUrl,zo as linkConstructor,Ao as log,Co as nFormatter,Bo as nanoid,ao as paramsMetadata,V as parseDateTime,Eo as punyEncode,Do as punycode,wo as resizeImage,Fo as timeAgo,Go as trim,Ho as truncate,ho as validDomainRegex,io as validKeyRegex,jo as validSlugRegex};
1
+ import{a as V,b as jo,c as ko,d as lo,e as no,f as qo,g as so,h as uo,i as vo,j as Co,k as Mo,l as No,m as Oo,n as Po,o as Qo,p as Ro,q as So,r as To,s as Uo,t as Vo,u as Wo,v as Xo}from"./chunk-FJIMSFOG.mjs";import{a as Go,b as Ho}from"./chunk-IHX4EDUF.mjs";import{a as Io}from"./chunk-NQP6WK7A.mjs";import{a as Jo}from"./chunk-MPU6JRPV.mjs";import{a as Ko}from"./chunk-E3EM6ARH.mjs";import{a as Lo}from"./chunk-FKLXONKR.mjs";import{a as mo,b as po,c as to,d as xo,e as ao,f as bo,g as co,h as go,i as ho,j as io}from"./chunk-DOFRTJ5J.mjs";import{a as zo}from"./chunk-F4P6WJV7.mjs";import{a as Ao}from"./chunk-C4JMLACD.mjs";import{a as Bo}from"./chunk-ZOUWCTIR.mjs";import{a as Do}from"./chunk-GGIZK3EO.mjs";import{a as Eo}from"./chunk-OWYWG4M6.mjs";import{a as Fo}from"./chunk-I5Y5DKPK.mjs";import{a as T}from"./chunk-NEIHTFSW.mjs";import{a as U}from"./chunk-HJD7AJT4.mjs";import{a as W,b as X,c as Y,d as Z,e as _,f as $,g as oo,h as ro,i as eo}from"./chunk-GJYQLS6P.mjs";import{a as fo}from"./chunk-ZECUYKGD.mjs";import{a as wo}from"./chunk-EMO4MGOU.mjs";import{a as yo}from"./chunk-6XPTKHZD.mjs";import{a as E,b as F,c as G}from"./chunk-3UGYGAAY.mjs";import{a as H,b as I}from"./chunk-2OGPCKQX.mjs";import{a as J,b as K}from"./chunk-OKHUN43N.mjs";import{a as L,b as M,c as N,d as O,e as P,f as Q}from"./chunk-4G4IXMUK.mjs";import{a as Yo}from"./chunk-PUFZASP4.mjs";import{a as R}from"./chunk-PMOQSSOL.mjs";import{a as S}from"./chunk-2OJAP233.mjs";import{a as o}from"./chunk-YUMUNL66.mjs";import{a as r,b as e}from"./chunk-MH5LZNIE.mjs";import{a as f,b as m}from"./chunk-5NKPICDX.mjs";import{a as p,b as t}from"./chunk-SYT2IXG6.mjs";import{a as w,b as y,c as z}from"./chunk-QIE7HWS7.mjs";import{a as x,b as a,c as b,d as c,e as d,f as g,g as h,h as i,i as j,j as k,k as l,l as n,m as q,n as s,o as u,p as v}from"./chunk-AOG5JJD3.mjs";import{a as A,b as B,c as C,d as D}from"./chunk-2SICE2ZS.mjs";export{j as ADMIN_HOSTNAMES,F as ALL_TOOLS,i as API_DOMAIN,h as API_HOSTNAMES,d as APP_DOMAIN,g as APP_DOMAIN_WITH_NGROK,c as APP_HOSTNAMES,x as APP_NAME,Po as BUSINESS_PLAN,G as COMPARE_PAGES,r as CONTINENTS,e as CONTINENT_CODES,f as COUNTRIES,m as COUNTRY_CODES,L as DEFAULT_LINK_PROPS,J as DEFAULT_REDIRECTS,N as DICEBEAR_AVATAR_URL,z as DUB_DEMO_LINKS,w as DUB_DOMAINS,y as DUB_DOMAINS_ARRAY,Q as DUB_FOUNDING_DATE,K as DUB_HEADERS,k as DUB_LOGO,n as DUB_THUMBNAIL,l as DUB_WORDMARK,q as DUB_WORKSPACE_ID,Qo as ENTERPRISE_PLAN,D as FADE_IN_ANIMATION_SETTINGS,A as FRAMER_MOTION_LIST_ITEM_VARIANTS,No as FREE_PLAN,To as FREE_WORKSPACES_LIMIT,M as GOOGLE_FAVICON_URL,E as HIDE_BACKGROUND_SEGMENTS,b as HOME_DOMAIN,u as LEGAL_USER_ID,s as LEGAL_WORKSPACE_ID,H as LOCALHOST_GEO_DATA,I as LOCALHOST_IP,O as PAGINATION_LIMIT,Mo as PLANS,Oo as PRO_PLAN,Ro as PUBLIC_PLANS,v as R2_URL,Yo as SAML_PROVIDERS,p as SECOND_LEVEL_DOMAINS,So as SELF_SERVE_PAID_PLANS,a as SHORT_DOMAIN,t as SPECIAL_APEX_DOMAINS,B as STAGGER_CHILD_VARIANTS,C as SWIPE_REVEAL_ANIMATION_SETTINGS,P as TWO_WEEKS_IN_SECONDS,bo as UTMTags,R as capitalize,o as ccTLDs,S as chunk,T as cn,U as combineWords,V as constructMetadata,co as constructURLFromUTMParams,fo as deepEqual,wo as fetchWithTimeout,yo as fetcher,Y as formatDate,Z as formatDateTime,jo as generateDomainFromName,ro as getAdjustedBillingCycleStart,so as getApexDomain,eo as getBillingStartDate,Wo as getCurrentPlan,W as getDateTimeLocal,_ as getDaysDifference,uo as getDomainWithoutWWW,$ as getFirstAndLastDay,oo as getLastDayOfMonth,Xo as getNextPlan,ao as getParamsFromURL,Vo as getPlanDetails,Uo as getPlanFromPriceId,io as getPrettyUrl,to as getSearchParams,xo as getSearchParamsWithArray,qo as getSubdomain,po as getUrlFromString,ho as getUrlWithoutUTMParams,zo as hashStringSHA256,vo as isDubDomain,Bo as isIframeable,mo as isValidUrl,Co as linkConstructor,Do as log,Fo as nFormatter,Eo as nanoid,go as paramsMetadata,X as parseDateTime,Ho as punyEncode,Go as punycode,Ao as resizeImage,Io as stableSort,Jo as timeAgo,Ko as trim,Lo as truncate,ko as validDomainRegex,lo as validKeyRegex,no as validSlugRegex};