@dub/utils 0.0.47 → 0.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2J5BCV2C.mjs +1 -0
- package/dist/chunk-2T4TDTV2.mjs +1 -0
- package/dist/chunk-37754ABL.mjs +1 -0
- package/dist/chunk-3MMUFPNV.mjs +1 -0
- package/dist/chunk-3THE4C2K.mjs +1 -0
- package/dist/chunk-4ZCVFQVA.mjs +1 -0
- package/dist/chunk-5QBVA3C2.mjs +1 -0
- package/dist/chunk-5RWCY2T3.mjs +1 -0
- package/dist/chunk-7DGKYGEY.mjs +1 -0
- package/dist/chunk-7S4ROSUS.mjs +1 -0
- package/dist/chunk-AL75Y3IJ.mjs +1 -0
- package/dist/chunk-DARJMLYS.mjs +1 -0
- package/dist/chunk-ECGA6763.mjs +1 -0
- package/dist/chunk-ERNT7CVX.mjs +1 -0
- package/dist/chunk-ETPBKZPC.mjs +1 -0
- package/dist/chunk-EZDUF4E5.mjs +1 -0
- package/dist/chunk-GH6HTY6Z.mjs +1 -0
- package/dist/chunk-GPGPAVVA.mjs +1 -0
- package/dist/chunk-HWO5N44E.mjs +1 -0
- package/dist/chunk-I5M3S3VS.mjs +1 -0
- package/dist/chunk-IDJVO3SJ.mjs +1 -0
- package/dist/chunk-IHX4EDUF.mjs +1 -0
- package/dist/chunk-J7NE4BUM.mjs +1 -0
- package/dist/chunk-JQZACITY.mjs +1 -0
- package/dist/chunk-JWLCJ6MQ.mjs +1 -0
- package/dist/chunk-JXEG2SJW.mjs +1 -0
- package/dist/chunk-L67ZJBWI.mjs +1 -0
- package/dist/chunk-LYO5G6AB.mjs +1 -0
- package/dist/chunk-MNF3SOUW.mjs +1 -0
- package/dist/chunk-MRTOVK5M.mjs +1 -0
- package/dist/chunk-NAUL2FQY.mjs +1 -0
- package/dist/chunk-NQMIIYJS.mjs +1 -0
- package/dist/chunk-PJ2NIR5L.mjs +1 -0
- package/dist/chunk-PMNLXLOX.mjs +1 -0
- package/dist/chunk-QHP5V4S4.mjs +1 -0
- package/dist/chunk-QOUKK3GE.mjs +1 -0
- package/dist/chunk-R4EED753.mjs +1 -0
- package/dist/chunk-R4RE3FAM.mjs +1 -0
- package/dist/chunk-RDWIZP7F.mjs +1 -0
- package/dist/chunk-S5O5UY63.mjs +1 -0
- package/dist/chunk-SRKZK4IA.mjs +1 -0
- package/dist/chunk-UBVT572C.mjs +1 -0
- package/dist/chunk-UKYEDTBZ.mjs +1 -0
- package/dist/chunk-XVNZQ4VA.mjs +1 -0
- package/dist/chunk-ZBU4VJM4.mjs +1 -0
- package/dist/chunk-ZOJ2QZ7M.mjs +1 -0
- package/dist/constants/index.d.ts +30 -0
- package/dist/constants/index.mjs +1 -1
- package/dist/functions/construct-metadata.mjs +1 -1
- package/dist/functions/datetime.mjs +1 -1
- package/dist/functions/domains.mjs +1 -1
- package/dist/functions/index.d.ts +2 -1
- package/dist/functions/index.mjs +1 -1
- package/dist/functions/link-constructor.d.ts +2 -3
- package/dist/functions/link-constructor.mjs +1 -1
- package/dist/functions/punycode.d.ts +4 -0
- package/dist/functions/punycode.mjs +1 -0
- package/dist/functions/truncate.d.ts +1 -1
- package/dist/functions/truncate.mjs +1 -1
- package/dist/functions/urls.d.ts +2 -1
- package/dist/functions/urls.mjs +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.mjs +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as u}from"./chunk-GH6HTY6Z.mjs";import{a as _}from"./chunk-7REZWZDA.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as g,b as x}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((r,n)=>r.length<n.length?r:n)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/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])&&c.has(o[o.length-1])||x.has(o.slice(-2).join("."))?o.slice(-3).join("."):o.slice(-2).join("."):t},M=e=>{if(_(e))return new URL(e).hostname.replace(/^www\./,"");try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).hostname.replace(/^www\./,"")}catch{return null}},T=e=>m.some(t=>t.slug===e);function R({domain:e="dub.sh",key:t,localhost:o,pretty:s,noDomain:r}){let n=`${o?"http://home.localhost:8888":`https://${u(e)}`}${t&&t!=="_root"?`/${u(t)}`:""}`;return r?`/${t}`:s?n.replace(/^https?:\/\//,""):n}var p=({name:e="Business",monthly:t=59,yearly:o=49,links:s=5e3,clicks:r=15e4,domains:n=40,tags:d=150,users:h=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:n,tags:d,users:h},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(s,{full:!0})} new links/mo`},{text:`${l(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${n} custom domains`},{text:`${h} users`},{text:`${l(d,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),i=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],k=i.find(e=>e.name==="Free"),b=i.find(e=>e.name==="Pro"),N=i.find(e=>e.name==="Business"),y=i.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=i.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>i.find(t=>{var 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=>i[i.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",Pe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",m=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],ve=m.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,S as b,w as c,C as d,J as e,D as f,B as g,M as h,T as i,R as j,i as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,m as J,ve as K,Ie as L};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n=e=>{try{return new URL(e),!0}catch{return!1}},c=e=>{if(n(e))return e;try{if(e.includes(".")&&!e.includes(" "))return new URL(`https://${e}`).toString()}catch{}return""},i=e=>{let r={};return new URL(e).searchParams.forEach(function(t,a){r[a]=t}),r},m=e=>{let r={};return new URL(e).searchParams.forEach(function(t,a){if(a in r){let s=r[a];Array.isArray(s)?s.push(t):r[a]=[s,t]}else r[a]=t}),r},u=e=>{if(!e)return{};try{let r=new URL(e).searchParams,t={};for(let[a,s]of r.entries())s&&s!==""&&(t[a]=s);return t}catch{return{}}},p=(e,r)=>{if(!e)return"";try{let t=new URL(e);for(let[a,s]of Object.entries(r))s===""?t.searchParams.delete(a):t.searchParams.set(a,s);return t.toString()}catch{return""}},o=[{display:"Referral (ref)",key:"ref",examples:"twitter, facebook"},{display:"UTM Source",key:"utm_source",examples:"twitter, facebook"},{display:"UTM Medium",key:"utm_medium",examples:"social, email"},{display:"UTM Campaign",key:"utm_campaign",examples:"summer_sale"},{display:"UTM Term",key:"utm_term",examples:"blue_shoes"},{display:"UTM Content",key:"utm_content",examples:"logolink"}],l=e=>{try{let r=new URL(e);return o.forEach(t=>r.searchParams.delete(t.key)),r.toString()}catch{return e}};export{n as a,c as b,i as c,m as d,u as e,p as f,o as g,l as h};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as l}from"./chunk-I5Y5DKPK.mjs";import{a as _}from"./chunk-R4EED753.mjs";import{a as x}from"./chunk-7REZWZDA.mjs";import{a as c}from"./chunk-YUMUNL66.mjs";import{a as h,b as g}from"./chunk-SYT2IXG6.mjs";import A from"@sindresorhus/slugify";var S=e=>{let t=A(e,{separator:""});if(t.length<3)return"";if(c.has(t.slice(-2)))return`${t.slice(0,-2)}.${t.slice(-2)}`;let o=t.replace(/[aeiou]/g,"");return o.length>=3&&c.has(o.slice(-2))?`${o.slice(0,-2)}.${o.slice(-2)}`:`${[t,o].reduce((r,n)=>r.length<n.length?r:n)}.to`},w=new RegExp(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),C=new RegExp(/^[0-9A-Za-z\u0080-\uFFFF\/\-]*$/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?h.has(o[o.length-2])&&c.has(o[o.length-1])||g.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}},T=e=>u.some(t=>t.slug===e);function R({domain:e="dub.sh",key:t,localhost:o,pretty:s,noDomain:r}){let n=`${o?"http://home.localhost:8888":`https://${_(e)}`}${t&&t!=="_root"?`/${t}`:""}`;return r?`/${t}`:s?n.replace(/^https?:\/\//,""):n}var p=({name:e="Business",monthly:t=59,yearly:o=49,links:s=5e3,clicks:r=15e4,domains:n=40,tags:m=150,users:d=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:n,tags:m,users:d},colors:{bg:"bg-sky-900",text:"text-sky-900"},cta:{text:"Get started with Business",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-sky-900 border-sky-900 hover:text-sky-900"},featureTitle:"Everything in Pro, plus:",features:[{text:`${l(s,{full:!0})} new links/mo`},{text:`${l(r)} tracked clicks/mo`},{text:"2-year analytics retention"},{text:`${n} custom domains`},{text:`${d} users`},{text:`${l(m,{full:!0})} tags`,footnote:{title:"Organize your links with tags.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-use-tags"}},{text:"Elevated support",footnote:"Email and chat support."},{text:"Custom branding",footnote:{title:"Set custom QR code logos, password-protected links logos, and more.",cta:"Learn more.",href:"https://dub.co/help/article/custom-qr-codes"}}]}),i=[{name:"Free",tagline:"For hobby & side projects",price:{monthly:0,yearly:0},limits:{links:25,clicks:1e3,domains:3,tags:5,users:1},colors:{bg:"bg-black",text:"text-black"},cta:{text:"Start for free",href:"https://app.dub.co/register",color:"bg-black border-black hover:text-black"},featureTitle:"What's included:",features:[{text:"25 new links/mo"},{text:"1K tracked clicks/mo"},{text:"30-day analytics retention"},{text:"3 custom domains"},{text:"1 user"},{text:"Community support",footnote:"Help center + GitHub discussions."},{text:"API Access",footnote:{title:"Programatically manage your links using our REST API.",cta:"Learn more.",href:"https://dub.co/docs/api-reference/introduction"}}]},{name:"Pro",tagline:"For startups & small businesses",link:"https://dub.co/help/article/pro-plan",price:{monthly:24,yearly:19,ids:["price_1LodNLAlJJEpqkPVQSrt33Lc","price_1LodNLAlJJEpqkPVRxUyCQgZ","price_1OTcQBAlJJEpqkPViGtGEsbb","price_1OYJeBAlJJEpqkPVLjTsjX0E","price_1OTcQBAlJJEpqkPVYlCMqdLL","price_1OYJeBAlJJEpqkPVnPGEZeb0"]},limits:{links:1e3,clicks:5e4,domains:10,tags:25,users:5},colors:{bg:"bg-blue-500",text:"text-blue-500"},cta:{text:"Get started with Pro",shortText:"Get started",href:"https://app.dub.co/register",color:"bg-blue-500 border-blue-500 hover:text-blue-500"},featureTitle:"Everything in Free, plus:",features:[{text:"1,000 new links/mo"},{text:"50K tracked clicks/mo"},{text:"1-year analytics retention"},{text:"10 custom domains"},{text:"5 users"},{text:"Basic support",footnote:"Basic email support."},{text:"Root domain redirect",footnote:{title:"Redirect vistors that land on the root of your domain (e.g. yourdomain.com) to a page of your choice.",cta:"Learn more.",href:"https://dub.co/help/article/how-to-redirect-root-domain"}},{text:"Advanced link features",footnote:"Custom social media cards, password-protected links, link expiration, link cloaking, device targeting, geo targeting etc."}]},p({name:"Business",monthly:59,yearly:49,links:5e3,clicks:15e4,domains:40,tags:150,users:15,ids:["price_1LodLoAlJJEpqkPV9rD0rlNL","price_1LodLoAlJJEpqkPVJdwv5zrG","price_1OZgmnAlJJEpqkPVOj4kV64R","price_1OzNlmAlJJEpqkPV7s9HXNAC","price_1OzNmXAlJJEpqkPVYO89lTdx","price_1OzOFIAlJJEpqkPVJxzc9irl","price_1OzOXMAlJJEpqkPV9ERrjjbw"]}),p({name:"Business Plus",monthly:119,yearly:99,links:15e3,clicks:4e5,domains:100,tags:300,users:40,ids:["price_1OnWu0AlJJEpqkPVWk4144ZG","price_1OnWu0AlJJEpqkPVkDWVriAB","price_1OnaK3AlJJEpqkPVaCfCPdHi","price_1OzObrAlJJEpqkPVh6D9HWGO"]}),p({name:"Business Extra",monthly:249,yearly:199,links:4e4,clicks:1e6,domains:250,tags:500,users:100,ids:["price_1OnWvCAlJJEpqkPVLzLHx5QD","price_1OnWvCAlJJEpqkPVHhCCvIOq","price_1OnaKJAlJJEpqkPVeJSvPfJb","price_1OzOg1AlJJEpqkPVPlsrxoWm"]}),p({name:"Business Max",monthly:499,yearly:399,links:1e5,clicks:25e5,domains:500,tags:1e3,users:250,ids:["price_1OnWwLAlJJEpqkPVXtJyPqLk","price_1OnWwLAlJJEpqkPV4eMbOkNh","price_1OnaKOAlJJEpqkPVV6gkZPgt","price_1OzOh5AlJJEpqkPVtCSX7dlE"]}),{name:"Enterprise",tagline:"Custom tailored plans for large enterprises. Whether you're running a SMS campaign with millions of short links or a large marketing campaign with billions of clicks, we've got you covered.",link:"https://dub.co/enterprise",price:{monthly:null,yearly:null},limits:{links:null,clicks:null,domains:null},colors:{bg:"bg-violet-600",text:"text-violet-600"},cta:{text:"Contact us",href:"/enterprise",color:"bg-violet-600 border-violet-600 hover:text-violet-600"},featureTitle:"Everything in Business, plus:",features:[{text:"Custom usage limits"},{text:"Volume discounts"},{text:"SSO/SAML"},{text:"Role-based access controls"},{text:"Custom contract & SLA"},{text:"Whiteglove onboarding"},{text:"Dedicated success manager"},{text:"Priority support"},{text:"Dedicated Slack channel"}]}],k=i.find(e=>e.name==="Free"),b=i.find(e=>e.name==="Pro"),N=i.find(e=>e.name==="Business"),y=i.find(e=>e.name==="Enterprise"),pe=[k,b,N,y],L=i.filter(e=>e.name!=="Free"&&e.name!=="Enterprise"),ue=2,me=e=>i.find(t=>{var 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=>i[i.findIndex(t=>t.name.toLowerCase()===e.toLowerCase())+1];var xe=process.env.NEXT_PUBLIC_APP_NAME||"Dub.co",f=process.env.NEXT_PUBLIC_APP_SHORT_DOMAIN||"dub.sh",P=`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,_e=new Set([`app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"localhost:8888","localhost"]),fe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://localhost:8888",Pe=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://app.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://preview.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NGROK_URL||"http://localhost:8888",Ee=new Set([`api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,`api.${f}`,"api.localhost:8888"]),Ae=process.env.NEXT_PUBLIC_VERCEL_ENV==="production"?`https://api.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:process.env.NEXT_PUBLIC_VERCEL_ENV==="preview"?`https://api-staging.${process.env.NEXT_PUBLIC_APP_DOMAIN}`:"http://api.localhost:8888",ke=new Set([`admin.${process.env.NEXT_PUBLIC_APP_DOMAIN}`,"admin.localhost:8888"]),be="https://assets.dub.co/logo.png",Ne="https://assets.dub.co/thumbnail.jpg",a="cl7pj5kq4006835rbjlt2ofka",ye="clrflia0j0000vs7sqfhz9c7q",Le="clqei1lgc0000vsnzi01pbf47",u=[{id:"clce1z7ch00j0rbstbjufva4j",slug:f,verified:!0,primary:!0,archived:!1,publicStats:!1,target:`https://${process.env.NEXT_PUBLIC_APP_DOMAIN}`,type:"redirect",placeholder:"https://dub.co/help/article/what-is-dub",clicks:0,allowedHostnames:[],projectId:a},...process.env.NEXT_PUBLIC_IS_DUB?[{id:"clce1z7cs00y8rbstk4xtnj0k",slug:"chatg.pt",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/chatgpt-link-shortener",type:"redirect",placeholder:"https://chat.openai.com/g/g-UGjKKONEe-domainsgpt",clicks:0,allowedHostnames:["chat.openai.com"],projectId:a},{id:"cloxw8y2u0003js08a7mqg1j8",slug:"spti.fi",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/spotify-link-shortener",type:"redirect",placeholder:"https://open.spotify.com/album/1SCyi9a5pOasikidToUY5y",clicks:0,allowedHostnames:["open.spotify.com"],projectId:a},{id:"cltgtd6s5000341itdszz20u2",slug:"git.new",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/github-link-shortener",type:"redirect",placeholder:"https://github.com/dubinc/dub",clicks:0,allowedHostnames:["github.com","gist.github.com"],projectId:a},{id:"cloxw8qtk000bjt08n9b812vs",slug:"amzn.id",verified:!0,primary:!1,archived:!1,publicStats:!1,target:"https://dub.co/tools/amazon-link-shortener",type:"redirect",placeholder:"https://www.amazon.com/dp/B0BW4SWNC8",clicks:0,allowedHostnames:["amazon.com","amazon.co.uk","amazon.ca","amazon.es"],projectId:a},{id:"clugy7euh000a11h6ignmj42o",slug:"loooooooo.ng",verified:!0,primary:!1,archived:!0,publicStats:!0,target:"https://dub.co/tools/url-lengthener",type:"redirect",placeholder:"https://d.to/long",clicks:0,projectId:a}]:[]],ve=u.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,S as b,w as c,C as d,J as e,D as f,B as g,M as h,T as i,R as j,i as k,k as l,b as m,N as n,y as o,pe as p,L as q,ue as r,me as s,de as t,he as u,xe as v,f as w,P as x,_e as y,fe as z,Pe as A,Ee as B,Ae as C,ke as D,be as E,Ne as F,a as G,ye as H,Le as I,u as J,ve as K,Ie as L};
|
|
@@ -22,6 +22,7 @@ declare const PLANS: ({
|
|
|
22
22
|
domains: number;
|
|
23
23
|
tags: number;
|
|
24
24
|
users: number;
|
|
25
|
+
ai: number;
|
|
25
26
|
};
|
|
26
27
|
colors: {
|
|
27
28
|
bg: string;
|
|
@@ -64,6 +65,7 @@ declare const PLANS: ({
|
|
|
64
65
|
domains: number;
|
|
65
66
|
tags: number;
|
|
66
67
|
users: number;
|
|
68
|
+
ai: number;
|
|
67
69
|
};
|
|
68
70
|
colors: {
|
|
69
71
|
bg: string;
|
|
@@ -105,6 +107,7 @@ declare const PLANS: ({
|
|
|
105
107
|
domains: null;
|
|
106
108
|
tags?: undefined;
|
|
107
109
|
users?: undefined;
|
|
110
|
+
ai?: undefined;
|
|
108
111
|
};
|
|
109
112
|
colors: {
|
|
110
113
|
bg: string;
|
|
@@ -135,6 +138,7 @@ declare const FREE_PLAN: {
|
|
|
135
138
|
domains: number;
|
|
136
139
|
tags: number;
|
|
137
140
|
users: number;
|
|
141
|
+
ai: number;
|
|
138
142
|
};
|
|
139
143
|
colors: {
|
|
140
144
|
bg: string;
|
|
@@ -177,6 +181,7 @@ declare const FREE_PLAN: {
|
|
|
177
181
|
domains: number;
|
|
178
182
|
tags: number;
|
|
179
183
|
users: number;
|
|
184
|
+
ai: number;
|
|
180
185
|
};
|
|
181
186
|
colors: {
|
|
182
187
|
bg: string;
|
|
@@ -218,6 +223,7 @@ declare const FREE_PLAN: {
|
|
|
218
223
|
domains: null;
|
|
219
224
|
tags?: undefined;
|
|
220
225
|
users?: undefined;
|
|
226
|
+
ai?: undefined;
|
|
221
227
|
};
|
|
222
228
|
colors: {
|
|
223
229
|
bg: string;
|
|
@@ -248,6 +254,7 @@ declare const PRO_PLAN: {
|
|
|
248
254
|
domains: number;
|
|
249
255
|
tags: number;
|
|
250
256
|
users: number;
|
|
257
|
+
ai: number;
|
|
251
258
|
};
|
|
252
259
|
colors: {
|
|
253
260
|
bg: string;
|
|
@@ -290,6 +297,7 @@ declare const PRO_PLAN: {
|
|
|
290
297
|
domains: number;
|
|
291
298
|
tags: number;
|
|
292
299
|
users: number;
|
|
300
|
+
ai: number;
|
|
293
301
|
};
|
|
294
302
|
colors: {
|
|
295
303
|
bg: string;
|
|
@@ -331,6 +339,7 @@ declare const PRO_PLAN: {
|
|
|
331
339
|
domains: null;
|
|
332
340
|
tags?: undefined;
|
|
333
341
|
users?: undefined;
|
|
342
|
+
ai?: undefined;
|
|
334
343
|
};
|
|
335
344
|
colors: {
|
|
336
345
|
bg: string;
|
|
@@ -361,6 +370,7 @@ declare const BUSINESS_PLAN: {
|
|
|
361
370
|
domains: number;
|
|
362
371
|
tags: number;
|
|
363
372
|
users: number;
|
|
373
|
+
ai: number;
|
|
364
374
|
};
|
|
365
375
|
colors: {
|
|
366
376
|
bg: string;
|
|
@@ -403,6 +413,7 @@ declare const BUSINESS_PLAN: {
|
|
|
403
413
|
domains: number;
|
|
404
414
|
tags: number;
|
|
405
415
|
users: number;
|
|
416
|
+
ai: number;
|
|
406
417
|
};
|
|
407
418
|
colors: {
|
|
408
419
|
bg: string;
|
|
@@ -444,6 +455,7 @@ declare const BUSINESS_PLAN: {
|
|
|
444
455
|
domains: null;
|
|
445
456
|
tags?: undefined;
|
|
446
457
|
users?: undefined;
|
|
458
|
+
ai?: undefined;
|
|
447
459
|
};
|
|
448
460
|
colors: {
|
|
449
461
|
bg: string;
|
|
@@ -474,6 +486,7 @@ declare const ENTERPRISE_PLAN: {
|
|
|
474
486
|
domains: number;
|
|
475
487
|
tags: number;
|
|
476
488
|
users: number;
|
|
489
|
+
ai: number;
|
|
477
490
|
};
|
|
478
491
|
colors: {
|
|
479
492
|
bg: string;
|
|
@@ -516,6 +529,7 @@ declare const ENTERPRISE_PLAN: {
|
|
|
516
529
|
domains: number;
|
|
517
530
|
tags: number;
|
|
518
531
|
users: number;
|
|
532
|
+
ai: number;
|
|
519
533
|
};
|
|
520
534
|
colors: {
|
|
521
535
|
bg: string;
|
|
@@ -557,6 +571,7 @@ declare const ENTERPRISE_PLAN: {
|
|
|
557
571
|
domains: null;
|
|
558
572
|
tags?: undefined;
|
|
559
573
|
users?: undefined;
|
|
574
|
+
ai?: undefined;
|
|
560
575
|
};
|
|
561
576
|
colors: {
|
|
562
577
|
bg: string;
|
|
@@ -587,6 +602,7 @@ declare const PUBLIC_PLANS: ({
|
|
|
587
602
|
domains: number;
|
|
588
603
|
tags: number;
|
|
589
604
|
users: number;
|
|
605
|
+
ai: number;
|
|
590
606
|
};
|
|
591
607
|
colors: {
|
|
592
608
|
bg: string;
|
|
@@ -629,6 +645,7 @@ declare const PUBLIC_PLANS: ({
|
|
|
629
645
|
domains: number;
|
|
630
646
|
tags: number;
|
|
631
647
|
users: number;
|
|
648
|
+
ai: number;
|
|
632
649
|
};
|
|
633
650
|
colors: {
|
|
634
651
|
bg: string;
|
|
@@ -670,6 +687,7 @@ declare const PUBLIC_PLANS: ({
|
|
|
670
687
|
domains: null;
|
|
671
688
|
tags?: undefined;
|
|
672
689
|
users?: undefined;
|
|
690
|
+
ai?: undefined;
|
|
673
691
|
};
|
|
674
692
|
colors: {
|
|
675
693
|
bg: string;
|
|
@@ -700,6 +718,7 @@ declare const SELF_SERVE_PAID_PLANS: ({
|
|
|
700
718
|
domains: number;
|
|
701
719
|
tags: number;
|
|
702
720
|
users: number;
|
|
721
|
+
ai: number;
|
|
703
722
|
};
|
|
704
723
|
colors: {
|
|
705
724
|
bg: string;
|
|
@@ -742,6 +761,7 @@ declare const SELF_SERVE_PAID_PLANS: ({
|
|
|
742
761
|
domains: number;
|
|
743
762
|
tags: number;
|
|
744
763
|
users: number;
|
|
764
|
+
ai: number;
|
|
745
765
|
};
|
|
746
766
|
colors: {
|
|
747
767
|
bg: string;
|
|
@@ -783,6 +803,7 @@ declare const SELF_SERVE_PAID_PLANS: ({
|
|
|
783
803
|
domains: null;
|
|
784
804
|
tags?: undefined;
|
|
785
805
|
users?: undefined;
|
|
806
|
+
ai?: undefined;
|
|
786
807
|
};
|
|
787
808
|
colors: {
|
|
788
809
|
bg: string;
|
|
@@ -814,6 +835,7 @@ declare const getPlanFromPriceId: (priceId: string) => {
|
|
|
814
835
|
domains: number;
|
|
815
836
|
tags: number;
|
|
816
837
|
users: number;
|
|
838
|
+
ai: number;
|
|
817
839
|
};
|
|
818
840
|
colors: {
|
|
819
841
|
bg: string;
|
|
@@ -856,6 +878,7 @@ declare const getPlanFromPriceId: (priceId: string) => {
|
|
|
856
878
|
domains: number;
|
|
857
879
|
tags: number;
|
|
858
880
|
users: number;
|
|
881
|
+
ai: number;
|
|
859
882
|
};
|
|
860
883
|
colors: {
|
|
861
884
|
bg: string;
|
|
@@ -897,6 +920,7 @@ declare const getPlanFromPriceId: (priceId: string) => {
|
|
|
897
920
|
domains: null;
|
|
898
921
|
tags?: undefined;
|
|
899
922
|
users?: undefined;
|
|
923
|
+
ai?: undefined;
|
|
900
924
|
};
|
|
901
925
|
colors: {
|
|
902
926
|
bg: string;
|
|
@@ -927,6 +951,7 @@ declare const getPlanDetails: (plan: string) => {
|
|
|
927
951
|
domains: number;
|
|
928
952
|
tags: number;
|
|
929
953
|
users: number;
|
|
954
|
+
ai: number;
|
|
930
955
|
};
|
|
931
956
|
colors: {
|
|
932
957
|
bg: string;
|
|
@@ -969,6 +994,7 @@ declare const getPlanDetails: (plan: string) => {
|
|
|
969
994
|
domains: number;
|
|
970
995
|
tags: number;
|
|
971
996
|
users: number;
|
|
997
|
+
ai: number;
|
|
972
998
|
};
|
|
973
999
|
colors: {
|
|
974
1000
|
bg: string;
|
|
@@ -1010,6 +1036,7 @@ declare const getPlanDetails: (plan: string) => {
|
|
|
1010
1036
|
domains: null;
|
|
1011
1037
|
tags?: undefined;
|
|
1012
1038
|
users?: undefined;
|
|
1039
|
+
ai?: undefined;
|
|
1013
1040
|
};
|
|
1014
1041
|
colors: {
|
|
1015
1042
|
bg: string;
|
|
@@ -1040,6 +1067,7 @@ declare const getNextPlan: (plan: string) => {
|
|
|
1040
1067
|
domains: number;
|
|
1041
1068
|
tags: number;
|
|
1042
1069
|
users: number;
|
|
1070
|
+
ai: number;
|
|
1043
1071
|
};
|
|
1044
1072
|
colors: {
|
|
1045
1073
|
bg: string;
|
|
@@ -1082,6 +1110,7 @@ declare const getNextPlan: (plan: string) => {
|
|
|
1082
1110
|
domains: number;
|
|
1083
1111
|
tags: number;
|
|
1084
1112
|
users: number;
|
|
1113
|
+
ai: number;
|
|
1085
1114
|
};
|
|
1086
1115
|
colors: {
|
|
1087
1116
|
bg: string;
|
|
@@ -1123,6 +1152,7 @@ declare const getNextPlan: (plan: string) => {
|
|
|
1123
1152
|
domains: null;
|
|
1124
1153
|
tags?: undefined;
|
|
1125
1154
|
users?: undefined;
|
|
1155
|
+
ai?: undefined;
|
|
1126
1156
|
};
|
|
1127
1157
|
colors: {
|
|
1128
1158
|
bg: string;
|
package/dist/constants/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as
|
|
1
|
+
import{A as N,B as O,C as P,D as Q,E as R,F as S,G as T,H as U,I as V,J as W,K as X,L as Y,k as w,l as x,m as y,n as z,o as A,p as B,q as C,r as D,s as E,t as F,u as G,v as I,w as J,x as K,y as L,z as M}from"../chunk-5RWCY2T3.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import{a as p,b as q}from"../chunk-5VUO5P2B.mjs";import{a as r,b as s,c as t,d as u,e as v}from"../chunk-5XTNLJRY.mjs";import{a as H}from"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-7DGKYGEY.mjs";import{a}from"../chunk-YUMUNL66.mjs";import{a as b,b as c,c as d}from"../chunk-N2HN6AOA.mjs";import{a as e,b as f}from"../chunk-SYT2IXG6.mjs";import{a as g,b as h,c as i,d as j}from"../chunk-2SICE2ZS.mjs";import{a as k,b as l,c as m}from"../chunk-OLZMF4V2.mjs";import{a as n,b as o}from"../chunk-FYXE2IZT.mjs";export{Q as ADMIN_HOSTNAMES,l as ALL_TOOLS,P as API_DOMAIN,O as API_HOSTNAMES,M as APP_DOMAIN,N as APP_DOMAIN_WITH_NGROK,L as APP_HOSTNAMES,I as APP_NAME,z as BUSINESS_PLAN,m as COMPARE_PAGES,b as COUNTRIES,c as COUNTRY_CODES,r as DEFAULT_LINK_PROPS,p as DEFAULT_REDIRECTS,t as DICEBEAR_AVATAR_URL,Y as DUB_DEMO_LINKS,W as DUB_DOMAINS,X as DUB_DOMAINS_ARRAY,q as DUB_HEADERS,R as DUB_LOGO,S as DUB_THUMBNAIL,T as DUB_WORKSPACE_ID,A as ENTERPRISE_PLAN,d as EU_COUNTRY_CODES,j as FADE_IN_ANIMATION_SETTINGS,g as FRAMER_MOTION_LIST_ITEM_VARIANTS,x as FREE_PLAN,D as FREE_WORKSPACES_LIMIT,s as GOOGLE_FAVICON_URL,k as HIDE_BACKGROUND_SEGMENTS,K as HOME_DOMAIN,V as LEGAL_USER_ID,U as LEGAL_WORKSPACE_ID,n as LOCALHOST_GEO_DATA,o as LOCALHOST_IP,u as PAGINATION_LIMIT,w as PLANS,y as PRO_PLAN,B as PUBLIC_PLANS,H as SAML_PROVIDERS,e as SECOND_LEVEL_DOMAINS,C as SELF_SERVE_PAID_PLANS,J as SHORT_DOMAIN,f as SPECIAL_APEX_DOMAINS,h as STAGGER_CHILD_VARIANTS,i as SWIPE_REVEAL_ANIMATION_SETTINGS,v as TWO_WEEKS_IN_SECONDS,a as ccTLDs,G as getNextPlan,F as getPlanDetails,E as getPlanFromPriceId};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-5RWCY2T3.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as constructMetadata};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h}from"../chunk-7DGKYGEY.mjs";export{c as formatDate,d as formatDateTime,g as getAdjustedBillingCycleStart,h as getBillingStartDate,a as getDateTimeLocal,e as getFirstAndLastDay,f as getLastDayOfMonth,b as parseDateTime};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h}from"../chunk-
|
|
1
|
+
import{b as a,c as b,d as c,e as d,f as e,g as f,h as g,i as h}from"../chunk-5RWCY2T3.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as generateDomainFromName,f as getApexDomain,g as getDomainWithoutWWW,e as getSubdomain,h as isDubDomain,b as validDomainRegex,c as validKeyRegex,d as validSlugRegex};
|
|
@@ -13,9 +13,10 @@ export { linkConstructor } from './link-constructor.js';
|
|
|
13
13
|
export { log } from './log.js';
|
|
14
14
|
export { nanoid } from './nanoid.js';
|
|
15
15
|
export { nFormatter } from './nformatter.js';
|
|
16
|
+
export { punyEncode, punycode } from './punycode.js';
|
|
16
17
|
export { timeAgo } from './time-ago.js';
|
|
17
18
|
export { trim } from './trim.js';
|
|
18
19
|
export { truncate } from './truncate.js';
|
|
19
|
-
export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './urls.js';
|
|
20
|
+
export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './urls.js';
|
|
20
21
|
import 'clsx';
|
|
21
22
|
import 'next';
|
package/dist/functions/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d,b as
|
|
1
|
+
import{a as d,b as v,c as w,d as x,e as y,f as z,g as A,h as B,i as C,j as I}from"../chunk-5RWCY2T3.mjs";import{a as J}from"../chunk-GGIZK3EO.mjs";import{a as K}from"../chunk-OWYWG4M6.mjs";import{a as L}from"../chunk-I5Y5DKPK.mjs";import{a as M,b as N}from"../chunk-IHX4EDUF.mjs";import{a as O}from"../chunk-MPU6JRPV.mjs";import{a as P}from"../chunk-E3EM6ARH.mjs";import{a as Q}from"../chunk-FKLXONKR.mjs";import{a as n,b as o,c as p,d as q,e as r,f as s,g as t,h as u}from"../chunk-ZBU4VJM4.mjs";import{a as m}from"../chunk-ZECUYKGD.mjs";import{a as D}from"../chunk-EMO4MGOU.mjs";import{a as E}from"../chunk-6XPTKHZD.mjs";import{a as F,b as G}from"../chunk-AHSNWOXV.mjs";import{a as H}from"../chunk-AZGTG7GS.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import{a}from"../chunk-GTQBILTE.mjs";import{a as b}from"../chunk-2OJAP233.mjs";import{a as c}from"../chunk-NEIHTFSW.mjs";import{a as e,b as f,c as g,d as h,e as i,f as j,g as k,h as l}from"../chunk-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as capitalize,b as chunk,c as cn,d as constructMetadata,s as constructURLFromUTMParams,m as deepEqual,D as fetchWithTimeout,E as fetcher,g as formatDate,h as formatDateTime,v as generateDomainFromName,F as generateMD5Hash,k as getAdjustedBillingCycleStart,A as getApexDomain,l as getBillingStartDate,e as getDateTimeLocal,B as getDomainWithoutWWW,i as getFirstAndLastDay,j as getLastDayOfMonth,r as getParamsFromURL,p as getSearchParams,q as getSearchParamsWithArray,z as getSubdomain,o as getUrlFromString,u as getUrlWithoutUTMParams,G as hashStringSHA256,C as isDubDomain,H as isIframeable,n as isValidUrl,I as linkConstructor,J as log,L as nFormatter,K as nanoid,t as paramsMetadata,f as parseDateTime,N as punyEncode,M as punycode,O as timeAgo,P as trim,Q as truncate,w as validDomainRegex,x as validKeyRegex,y as validSlugRegex};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
declare function linkConstructor({ domain, key,
|
|
1
|
+
declare function linkConstructor({ domain, key, pretty, searchParams, }: {
|
|
2
2
|
domain?: string;
|
|
3
3
|
key?: string;
|
|
4
|
-
localhost?: boolean;
|
|
5
4
|
pretty?: boolean;
|
|
6
|
-
|
|
5
|
+
searchParams?: Record<string, string>;
|
|
7
6
|
}): string;
|
|
8
7
|
|
|
9
8
|
export { linkConstructor };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{j as a}from"../chunk-5RWCY2T3.mjs";import"../chunk-GGIZK3EO.mjs";import"../chunk-OWYWG4M6.mjs";import"../chunk-I5Y5DKPK.mjs";import"../chunk-IHX4EDUF.mjs";import"../chunk-MPU6JRPV.mjs";import"../chunk-E3EM6ARH.mjs";import"../chunk-FKLXONKR.mjs";import"../chunk-ZBU4VJM4.mjs";import"../chunk-ZECUYKGD.mjs";import"../chunk-EMO4MGOU.mjs";import"../chunk-6XPTKHZD.mjs";import"../chunk-AHSNWOXV.mjs";import"../chunk-AZGTG7GS.mjs";import"../chunk-5VUO5P2B.mjs";import"../chunk-5XTNLJRY.mjs";import"../chunk-PUFZASP4.mjs";import"../chunk-GTQBILTE.mjs";import"../chunk-2OJAP233.mjs";import"../chunk-NEIHTFSW.mjs";import"../chunk-7DGKYGEY.mjs";import"../chunk-YUMUNL66.mjs";import"../chunk-N2HN6AOA.mjs";import"../chunk-SYT2IXG6.mjs";import"../chunk-2SICE2ZS.mjs";import"../chunk-OLZMF4V2.mjs";import"../chunk-FYXE2IZT.mjs";export{a as linkConstructor};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b}from"../chunk-IHX4EDUF.mjs";export{b as punyEncode,a as punycode};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-FKLXONKR.mjs";export{a as truncate};
|
package/dist/functions/urls.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
declare const isValidUrl: (url: string) => boolean;
|
|
2
2
|
declare const getUrlFromString: (str: string) => string;
|
|
3
3
|
declare const getSearchParams: (url: string) => Record<string, string>;
|
|
4
|
+
declare const getSearchParamsWithArray: (url: string) => Record<string, string | string[]>;
|
|
4
5
|
declare const getParamsFromURL: (url: string) => Record<string, string>;
|
|
5
6
|
declare const constructURLFromUTMParams: (url: string, utmParams: Record<string, string>) => string;
|
|
6
7
|
declare const paramsMetadata: {
|
|
@@ -10,4 +11,4 @@ declare const paramsMetadata: {
|
|
|
10
11
|
}[];
|
|
11
12
|
declare const getUrlWithoutUTMParams: (url: string) => string;
|
|
12
13
|
|
|
13
|
-
export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata };
|
|
14
|
+
export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata };
|
package/dist/functions/urls.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h}from"../chunk-ZBU4VJM4.mjs";export{f as constructURLFromUTMParams,e as getParamsFromURL,c as getSearchParams,d as getSearchParamsWithArray,b as getUrlFromString,h as getUrlWithoutUTMParams,a as isValidUrl,g as paramsMetadata};
|
package/dist/index.d.ts
CHANGED
|
@@ -14,10 +14,11 @@ export { linkConstructor } from './functions/link-constructor.js';
|
|
|
14
14
|
export { log } from './functions/log.js';
|
|
15
15
|
export { nanoid } from './functions/nanoid.js';
|
|
16
16
|
export { nFormatter } from './functions/nformatter.js';
|
|
17
|
+
export { punyEncode, punycode } from './functions/punycode.js';
|
|
17
18
|
export { timeAgo } from './functions/time-ago.js';
|
|
18
19
|
export { trim } from './functions/trim.js';
|
|
19
20
|
export { truncate } from './functions/truncate.js';
|
|
20
|
-
export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './functions/urls.js';
|
|
21
|
+
export { constructURLFromUTMParams, getParamsFromURL, getSearchParams, getSearchParamsWithArray, getUrlFromString, getUrlWithoutUTMParams, isValidUrl, paramsMetadata } from './functions/urls.js';
|
|
21
22
|
export { ccTLDs } from './constants/cctlds.js';
|
|
22
23
|
export { COUNTRIES, COUNTRY_CODES, EU_COUNTRY_CODES } from './constants/countries.js';
|
|
23
24
|
export { SECOND_LEVEL_DOMAINS, SPECIAL_APEX_DOMAINS } from './constants/domains.js';
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as
|
|
1
|
+
import{A as Do,B as Eo,C as Fo,D as Go,E as Ho,F as Io,G as Jo,H as Ko,I as Lo,J as Mo,K as No,L as Oo,a as z,b as R,c as S,d as T,e as U,f as V,g as W,h as X,i as Y,j as eo,k as go,l as ho,m as io,n as jo,o as ko,p as lo,q as no,r as qo,s as so,t as uo,u as vo,v as yo,w as zo,x as Ao,y as Bo,z as Co}from"./chunk-5RWCY2T3.mjs";import{a as fo}from"./chunk-GGIZK3EO.mjs";import{a as mo}from"./chunk-OWYWG4M6.mjs";import{a as po}from"./chunk-I5Y5DKPK.mjs";import{a as to,b as xo}from"./chunk-IHX4EDUF.mjs";import{a as ao}from"./chunk-MPU6JRPV.mjs";import{a as bo}from"./chunk-E3EM6ARH.mjs";import{a as co}from"./chunk-FKLXONKR.mjs";import{a as J,b as K,c as L,d as M,e as N,f as O,g as P,h as Q}from"./chunk-ZBU4VJM4.mjs";import{a as I}from"./chunk-ZECUYKGD.mjs";import{a as Z}from"./chunk-EMO4MGOU.mjs";import{a as _}from"./chunk-6XPTKHZD.mjs";import{a as $,b as oo}from"./chunk-AHSNWOXV.mjs";import{a as ro}from"./chunk-AZGTG7GS.mjs";import{a as j,b as k}from"./chunk-5VUO5P2B.mjs";import{a as l,b as n,c as q,d as s,e as u}from"./chunk-5XTNLJRY.mjs";import{a as wo}from"./chunk-PUFZASP4.mjs";import{a as v}from"./chunk-GTQBILTE.mjs";import{a as w}from"./chunk-2OJAP233.mjs";import{a as y}from"./chunk-NEIHTFSW.mjs";import{a as A,b as B,c as C,d as D,e as E,f as F,g as G,h as H}from"./chunk-7DGKYGEY.mjs";import{a as o}from"./chunk-YUMUNL66.mjs";import{a as r,b as e,c as f}from"./chunk-N2HN6AOA.mjs";import{a as m,b as p}from"./chunk-SYT2IXG6.mjs";import{a as t,b as x,c as a,d as b}from"./chunk-2SICE2ZS.mjs";import{a as c,b as d,c as g}from"./chunk-OLZMF4V2.mjs";import{a as h,b as i}from"./chunk-FYXE2IZT.mjs";export{Go as ADMIN_HOSTNAMES,d as ALL_TOOLS,Fo as API_DOMAIN,Eo as API_HOSTNAMES,Co as APP_DOMAIN,Do as APP_DOMAIN_WITH_NGROK,Bo as APP_HOSTNAMES,yo as APP_NAME,jo as BUSINESS_PLAN,g as COMPARE_PAGES,r as COUNTRIES,e as COUNTRY_CODES,l as DEFAULT_LINK_PROPS,j as DEFAULT_REDIRECTS,q as DICEBEAR_AVATAR_URL,Oo as DUB_DEMO_LINKS,Mo as DUB_DOMAINS,No as DUB_DOMAINS_ARRAY,k as DUB_HEADERS,Ho as DUB_LOGO,Io as DUB_THUMBNAIL,Jo as DUB_WORKSPACE_ID,ko as ENTERPRISE_PLAN,f as EU_COUNTRY_CODES,b as FADE_IN_ANIMATION_SETTINGS,t as FRAMER_MOTION_LIST_ITEM_VARIANTS,ho as FREE_PLAN,qo as FREE_WORKSPACES_LIMIT,n as GOOGLE_FAVICON_URL,c as HIDE_BACKGROUND_SEGMENTS,Ao as HOME_DOMAIN,Lo as LEGAL_USER_ID,Ko as LEGAL_WORKSPACE_ID,h as LOCALHOST_GEO_DATA,i as LOCALHOST_IP,s as PAGINATION_LIMIT,go as PLANS,io as PRO_PLAN,lo as PUBLIC_PLANS,wo as SAML_PROVIDERS,m as SECOND_LEVEL_DOMAINS,no as SELF_SERVE_PAID_PLANS,zo as SHORT_DOMAIN,p as SPECIAL_APEX_DOMAINS,x as STAGGER_CHILD_VARIANTS,a as SWIPE_REVEAL_ANIMATION_SETTINGS,u as TWO_WEEKS_IN_SECONDS,v as capitalize,o as ccTLDs,w as chunk,y as cn,z as constructMetadata,O as constructURLFromUTMParams,I as deepEqual,Z as fetchWithTimeout,_ as fetcher,C as formatDate,D as formatDateTime,R as generateDomainFromName,$ as generateMD5Hash,G as getAdjustedBillingCycleStart,W as getApexDomain,H as getBillingStartDate,A as getDateTimeLocal,X as getDomainWithoutWWW,E as getFirstAndLastDay,F as getLastDayOfMonth,vo as getNextPlan,N as getParamsFromURL,uo as getPlanDetails,so as getPlanFromPriceId,L as getSearchParams,M as getSearchParamsWithArray,V as getSubdomain,K as getUrlFromString,Q as getUrlWithoutUTMParams,oo as hashStringSHA256,Y as isDubDomain,ro as isIframeable,J as isValidUrl,eo as linkConstructor,fo as log,po as nFormatter,mo as nanoid,P as paramsMetadata,B as parseDateTime,xo as punyEncode,to as punycode,ao as timeAgo,bo as trim,co as truncate,S as validDomainRegex,T as validKeyRegex,U as validSlugRegex};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dub/utils",
|
|
3
3
|
"description": "Utility functions and constants for Dub.co",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.49",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
7
7
|
"module": "./dist/index.mjs",
|
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/ms": "^0.7.31",
|
|
24
24
|
"@types/node": "18.11.9",
|
|
25
|
+
"@types/punycode": "^2.1.4",
|
|
25
26
|
"@types/react": "^18.2.5",
|
|
26
|
-
"next": "14.2.0-canary.
|
|
27
|
+
"next": "14.2.0-canary.67",
|
|
27
28
|
"react": "^18.2.0",
|
|
28
29
|
"tsconfig": "workspace:*",
|
|
29
30
|
"tsup": "^6.1.3",
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
"clsx": "^2.1.0",
|
|
36
37
|
"ms": "^2.1.3",
|
|
37
38
|
"nanoid": "^5.0.1",
|
|
39
|
+
"punycode": "^2.3.0",
|
|
38
40
|
"tailwind-merge": "^2.2.1"
|
|
39
41
|
},
|
|
40
42
|
"author": "Steven Tey <stevensteel97@gmail.com>",
|