1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8359],{77233:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/connectors",function(){return n(29939)}])},3223:function(e,t,n){"use strict";n.d(t,{w:function(){return i}});var l=n(85893);let i=e=>{let t=(null==e?void 0:e.px)||"px-4 xl:px-6";return(0,l.jsx)("div",{className:"w-full max-w-[1328px] mx-auto ".concat(t," ").concat(null==e?void 0:e.mt," ").concat(null==e?void 0:e.pt," ").concat(null==e?void 0:e.pb," ").concat(null==e?void 0:e.py," ").concat(null==e?void 0:e.padding),children:(0,l.jsx)("div",{className:"max-w-7xl mx-auto",children:null==e?void 0:e.children})})}},15923:function(e,t,n){"use strict";n.d(t,{T:function(){return a}});var l=n(85893),i=n(9008),o=n.n(i);function a(e){var t,n,i;return(0,l.jsxs)(o(),{children:[(0,l.jsx)("meta",{charSet:"utf-8"}),(0,l.jsx)("meta",{httpEquiv:"x-ua-compatible",content:"ie=edge"}),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"}),(0,l.jsx)("meta",{charSet:"utf-8"}),(0,l.jsx)("meta",{"http-equiv":"Content-Security-Policy",content:"frame-ancestors 'self' https://gtmbuddy.ai https://gtmbuddy.io;"}),(0,l.jsx)("meta",{name:"referrer",content:"no-referrer"}),(null==e?void 0:e.isPageUnIndexed)&&(0,l.jsx)("meta",{name:"robots",content:"noindex,nofollow"}),(0,l.jsx)("title",{children:null==e?void 0:e.meta_title}),(0,l.jsx)("meta",{name:"title",content:null==e?void 0:e.meta_title},"title"),(0,l.jsx)("meta",{name:"description",content:null==e?void 0:e.meta_description},"description"),(0,l.jsx)("meta",{property:"og:type",content:"website"},"ogtype"),(0,l.jsx)("meta",{property:"og:title",content:null==e?void 0:e.meta_title},"ogtitle"),(0,l.jsx)("meta",{property:"og:description",content:null==e?void 0:e.meta_description},"ogdesc"),(null==e?void 0:e.meta_image)&&(null==e?void 0:null===(i=e.meta_image)||void 0===i?void 0:null===(n=i.data)||void 0===n?void 0:null===(t=n.attributes)||void 0===t?void 0:t.url)?(0,l.jsx)("meta",{property:"og:image",content:e.meta_image.data.attributes.url},"props.meta_image.data.attributes.url"):(0,l.jsx)("meta",{property:"og:image",content:null==e?void 0:e.meta_og_image_url},"props?.meta_og_image_url"),(0,l.jsx)("meta",{name:"twitter:card",content:"summary_large_image"},"twcard"),(0,l.jsx)("meta",{name:"twitter:title",content:null==e?void 0:e.meta_title},"twcard"),(0,l.jsx)("meta",{name:"twitter:description",content:null==e?void 0:e.meta_description},"twcard"),(0,l.jsx)("link",{rel:"canonical",href:null==e?void 0:e.canonical_url},"canonical"),(null==e?void 0:e.isPixelActive)&&(0,l.jsx)("img",{src:"https://s.ml-attr.com/getuid?https%3a%2f%2fattr.ml-api.io%2f%3fdomain %3dhasura.io%26pId%3d%24UID",width:"1",height:"1",style:{display:"none"}})]})}},98661:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var l=n(85893);let i=e=>(0,l.jsx)("div",{className:"bg-neutral-0 rounded-3xl shadow p-6 md:p-10 lg:p-16 xl:p-20 ".concat(null==e?void 0:e.mt," ").concat(null==e?void 0:e.mb," ").concat(null==e?void 0:e.maxWidth," ").concat(null==e?void 0:e.mx," ").concat(null==e?void 0:e.pt),children:e.children})},29939:function(e,t,n){"use strict";n.r(t),n.d(t,{__N_SSG:function(){return C},default:function(){return S}});var l=n(85893),i=n(4298),o=n.n(i),a=n(15923),r=n(41664),s=n.n(r),c=n(32794),d=n(3223),u=n(83846);let m=e=>(0,l.jsx)(d.w,{pt:"pt-4 md:pt-10",children:(0,l.jsx)("div",{className:"bg-neutral-0 rounded-3xl shadow tb:p-16 db:p-20 px-5 py-10",children:(0,l.jsxs)("div",{className:"grid grid-cols-1 tb-l:grid-cols-2 gap-10 tb-l:gap-16 db:gap-28",children:[(0,l.jsxs)("div",{className:"",children:[(0,l.jsx)(c.ZT,{as:"p",textStyle:"h6",className:"text-blue-600 md:max-w-[469px] pb-1 pt-2 md:pt-0 uppercase",children:null==e?void 0:e.eyeBrowText}),(0,l.jsx)(c.ZT,{as:"h1",textStyle:"h2",className:"text-neutral-1000 md:max-w-[469px] pb-2 md:pb-2",children:null==e?void 0:e.title}),(0,l.jsx)(c.ZT,{as:"p",textStyle:"sub1",className:"text-neutral-700 md:pb-6 md:max-w-[469px]",children:null==e?void 0:e.description}),(0,l.jsx)("div",{className:"flex flex-col tb:flex-row mt-4 md:mt-0",children:(null==e?void 0:e.button)&&(0,u.Ao)(null==e?void 0:e.button)&&e.button.map(e=>(0,l.jsx)("div",{className:"w-fit",children:(0,l.jsx)(s(),{href:null==e?void 0:e.cta_link,children:(0,l.jsx)(c.Cp,{label:null==e?void 0:e.cta_text,type:null==e?void 0:e.cta_type,leftIconVariant:"none",rightIconVariant:"none",state:"default",size:"md",rightAnimatedArrow:!0,rightAnimatedArrowColor:(null==e?void 0:e.cta_type)==="secondary"?"#3970fd":"#fff",className:(null==e?void 0:e.cta_type)==="primary"?"border-2 border-blue-500 hover:border-blue-700 mr-4 mb-4 md:mb-0":"mr-4 mb-4 md:mb-0"})})},null==e?void 0:e.cta_text))})]}),(0,l.jsx)("div",{children:(0,l.jsx)("div",{className:"relative pb-[56.2%] rounded-xl overflow-hidden",children:(0,l.jsx)("iframe",{loading:"lazy",title:"Hasura Data Connectors",src:"https://www.youtube-nocookie.com/embed/C1TwiW6xJ-8?rel=0",allowFullScreen:!0,referrerPolicy:"str
1ict-origin-when-cross-origin",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen",className:"absolute w-full h-full"})})})]})})});var p=n(74715),h=n(98661);function x(e){var t,n,i;return(0,l.jsx)(d.w,{pt:"pt-4 md:pt-10 lg:pt-16 pb-10 md:pb-10 lg:pb-16",children:(0,l.jsx)(h.Z,{children:(0,l.jsxs)("div",{className:" flex justify-between tb-l:flex-row flex-col",children:[(0,l.jsxs)("div",{className:"max-w-[520px] flex flex-col gap-5 db:gap-10",children:[(0,l.jsx)(c.ZT,{textStyle:"h4",className:"max-w-[192px] text-neutral-1000",children:null!==(i=e.title)&&void 0!==i?i:"Frequently asked questions"}),e.faqImg&&(0,l.jsx)("div",{className:"pt-10 hidden tb-l:block",children:(0,l.jsx)("img",{className:"max-w-[300px] db:max-w-[360px]",src:e.faqImg,alt:"FAQ"})})]}),(0,l.jsx)("div",{className:"tb-l:max-w-[500px] w-full pt-8 tb-l:pt-0",children:(0,l.jsx)(c.vy,{accordionData:e.faqData})}),(null==e?void 0:e.preFooterBanner)&&(0,l.jsx)("div",{className:"max-w-[420px] p-12 border border-neutral-200 rounded-3xl bg-neutral-0 ",children:(0,l.jsx)(c.Yc,{button:{btnBg:"",btnBgColorClass:"",btnTextHoverClass:"",cta_link:"".concat(null==e?void 0:null===(t=e.preFooterBanner.button)||void 0===t?void 0:t.url),cta_text:"".concat(null==e?void 0:null===(n=e.preFooterBanner.button)||void 0===n?void 0:n.text),cta_type:"",rightAnimatedArrowColor:"#3970FD",animatedHoverStroke:"group-hover:stroke-neutral-0"},cardBorder:"border border-neutral-200",cardType:"withButton",description:null==e?void 0:e.preFooterBanner.description,iconStroke:"",iconStrokeClass:"stroke-pink-500",iconVariant:"cloud02",linkHover:!1,imgUrl:"https://res.cloudinary.com/hasura-cms-uploads/image/upload/v1694678089/sketches_0002_Layer_3_1_07753b0633.png",title:null==e?void 0:e.preFooterBanner.title})})]})})})}var v=n(67294);function f(e){let t=()=>{var t;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex justify-between",children:[(null==e?void 0:e.imgUrl)&&(0,l.jsx)("div",{className:"flex",children:(0,l.jsx)("img",{alt:null!==(t=e.title)&&void 0!==t?t:"connectorImage",src:e.imgUrl,className:"".concat(null==e?void 0:e.imgHeight," w-auto object-contain ")})}),e.checkIcon&&(0,l.jsx)("div",{className:"ml-2",children:(0,l.jsx)(c.JO,{height:"h-6 w-6 stroke-[1.5px]",variant:e.checkIcon,strokeClass:"stroke-blue-600"})})]}),(0,l.jsxs)("div",{children:[e.title&&(0,l.jsx)(c.ZT,{textStyle:"body1-medium",className:"text-neutral-1000",children:e.title}),(0,l.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[e.iconVariant&&(0,l.jsx)(c.JO,{height:"h-5 w-5 stroke-[1.5px]",variant:e.iconVariant,strokeClass:"stroke-neutral-600",className:"pt-3"}),e.iconTag&&(0,l.jsx)(c.ZT,{textStyle:"body2-bold",className:"text-neutral-1000",children:e.iconTag})]})]})]})};return(null==e?void 0:e.linkUrl)?(0,l.jsx)("a",{href:e.linkUrl,className:"flex flex-col gap-10 justify-between h-full",children:t()}):(0,l.jsx)("div",{className:"flex flex-col gap-10 justify-between h-full",children:t()})}let g=["typescript-deno","sendgrid","go","spanner"];function b(e,t){return"clickhouse"===t?"The ClickHouse Native Data Connector allows for connecting...":e&&(null==e?void 0:e.constructor.name)==="String"?e.length<=68?e:"".concat(e.substring(0,60),"...."):void 0}function y(e){let t=e.replace(/Native\s?Data|Connector/g,"");return t.startsWith("Clickhouse")?"ClickHouse":t}let j=e=>{var t,n,i,o;let{cardObj:a}=e;return(0,l.jsx)("div",{className:"p-6 shadow min-w-[224px] break-inside-avoid hover:shadow-xl transition-all duration-300 sm:min-w-[224px] max-w-[224px] bg-neutral-0 rounded-2xl ",children:(0,l.jsx)(f,{linkUrl:"/connectors/".concat(null==a?void 0:a.name),title:y(null==a?void 0:a.title),imgUrl:(null==a?void 0:null===(i=a.imgUrl)||void 0===i?void 0:null===(n=i.data)||void 0===n?void 0:null===(t=n.attributes)||void 0===t?void 0:t.url)||(null==a?void 0:a.logo),imgHeight:"postgres"===(o=null==a?void 0:a.name)?"h-[32px]":"mysql"===o?"h-[64px] -mt-5 -ml-1":"clickhouse"===o?"h-[24px]":"typescript-deno"===o?"h-[25px]":"sendgrid"===o?"h-[30px]":"mongodb"===o?"h-[32px]":"sqlserver"===o?"h-[48px]":"turso"===o?"h-[25px]":"postgres-timescaledb"===o?"h-[32px]":"h-[35px]",description:(null==a?void 0:a.description)?b(a.description,a.name):"",checkIcon:(null==a?void 0:a.is_verified)?"checkverified01":""})})};function w(e){var t,n,i;let[o,a]=(0,v.useState)("All"),r=e.connectorsData.filter(e=>!g.includes(null==e?void 0:e.name)).sort((e,t)=>
1e.title.localeCompare(t.title)),m=(null==e?void 0:e.comingSoonConnectors)&&(null===(t=e.comingSoonConnectors)||void 0===t?void 0:t.connectorCard)&&(0,u.Ao)(e.comingSoonConnectors.connectorCard),p=e=>"postgres"===e?"h-[32px]":"clickhouse"===e?"h-[24px]":"typescript-deno"===e?"h-[25px]":"sendgrid"===e?"h-[30px]":"mongodb"===e?"h-[32px]":"h-[35px]",h=e=>(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)("div",{className:"pr-2",children:(0,l.jsx)("img",{className:"max-w-[48px]",src:null==e?void 0:e.imgUrl,alt:null==e?void 0:e.title})}),(0,l.jsx)(c.ZT,{textStyle:"body1c-medium",className:"text-neutral-800",children:null==e?void 0:e.title})]});return(0,l.jsx)("div",{id:"connectors-list",children:(0,l.jsx)(d.w,{pt:"pt-4 md:pt-10 lg:pt-16",children:(0,l.jsxs)("div",{className:"flex flex-col pt-4",children:[(0,l.jsxs)("div",{className:"tb:flex tb:flex-row gap-2 items-center justify-between"+("All"!==o?" pb-10":""),children:[(0,l.jsx)("div",{className:"flex",children:(0,l.jsx)(c.ZT,{textStyle:"h4",className:"text-neutral-800 -mt-2 md:-mt-0",children:null!==(i=e.title)&&void 0!==i?i:"Browse our connectors"})}),(0,l.jsx)("div",{className:"pt-6 tb:pt-0",children:(0,l.jsx)(c.bb,{pillColor:(0,c.S_)("bg-purple-500"),onTabClick:e=>{e&&a(e.name)},tabs:[{name:"All",current:"All"===o},{name:"Available",current:"Available"===o},{name:"Coming Soon",current:"Coming Soon"===o}]},o)})]}),"All"===o&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c.ZT,{textStyle:"body1-medium",className:"text-neutral-800 -mt-2 md:-mt-0 pt-8 tb:pt-10 pb-4 tb:pb-6",children:"Available"}),(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsx)("div",{className:"columns-1 tb-l:columns-2 db:columns-3 gap-8 grid",children:(0,l.jsx)("div",{className:"gap-6 tb:gap-10 flex flex-wrap justify-center lg:justify-start pb-0 tb-l:pb-0",children:r&&(0,u.Ao)(r)?(0,l.jsx)(l.Fragment,{children:r.map(e=>(0,l.jsx)(j,{cardObj:e},e.name))}):null})})}),m&&(0,l.jsxs)("div",{children:[(0,l.jsx)("div",{className:"flex flex-row gap-2 md:items-center ",children:(0,l.jsx)(c.ZT,{textStyle:"body1-medium",className:"text-neutral-800 -mt-2 md:-mt-0 pb-4 tb:pb-6 pt-8 tb:pt-10",children:null===(n=e.comingSoonConnectors)||void 0===n?void 0:n.title})}),(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsx)("div",{className:"columns-1 tb-l:columns-2 db:columns-3 gap-8 grid",children:(0,l.jsx)("div",{className:"gap-6 tb:gap-10 flex flex-wrap justify-center lg:justify-start pb-10 tb-l:pb-4",children:e.comingSoonConnectors.connectorCard.map(e=>{if(null==e?void 0:e.isActive){var t,n,i;return(0,l.jsx)("div",{children:(0,l.jsx)(s(),{href:"".concat(null==e?void 0:e.linkUrl),children:(0,l.jsx)("div",{className:"p-6 shadow min-w-[224px] break-inside-avoid sm:min-w-[224px] max-w-[224px] bg-neutral-0 rounded-2xl transition-all duration-300",children:(0,l.jsx)(h,{title:null==e?void 0:e.title,imgUrl:(null==e?void 0:null===(i=e.imgUrl)||void 0===i?void 0:null===(n=i.data)||void 0===n?void 0:null===(t=n.attributes)||void 0===t?void 0:t.url)||(null==e?void 0:e.logo)})},null==e?void 0:e.linkUrl)})})}return null})})})})]})]}),"Available"===o&&(0,l.jsx)(l.Fragment,{children:(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsx)("div",{className:"columns-1 tb-l:columns-2 db:columns-3 gap-8 grid",children:(0,l.jsx)("div",{className:"gap-6 tb:gap-10 flex flex-wrap justify-center lg:justify-start pb-10 tb-l:pb-4",children:r.map(e=>{var t,n,i;return(0,l.jsx)("div",{className:"p-6 shadow min-w-[224px] break-inside-avoid hover:shadow-xl transition-all duration-300 sm:min-w-[224px] max-w-[224px] bg-neutral-0 rounded-2xl ",children:(0,l.jsx)(f,{linkUrl:"/connectors/".concat(null==e?void 0:e.name),title:y(null==e?void 0:e.title),imgUrl:(null==e?void 0:null===(i=e.imgUrl)||void 0===i?void 0:null===(n=i.data)||void 0===n?void 0:null===(t=n.attributes)||void 0===t?void 0:t.url)||(null==e?void 0:e.logo),imgHeight:p(null==e?void 0:e.name),description:(null==e?void 0:e.description)?b(e.description,e.name):"",checkIcon:(null==e?void 0:e.is_verified)?"checkverified01":""})},null==e?void 0:e.name)})})})})}),"Coming Soon"===o&&(0,l.jsx)(l.Fragment,{children:m&&(0,l.jsx)("div",{children:(0,l.jsx)("div",{className:"flex-1",children:(0,l.jsx)("div",{className:"columns-1 tb-l:columns-2 db:columns-3 gap-8 grid",children:(0,l.jsx)("div",{className:"gap-6 tb:gap-10 flex flex-wrap justify-center lg:justify-start pb-10 tb-l:pb-4",children:e.comingSoonConnectors.connectorCard.map(e=>{if(null==e?void 0:e.isActive){var t,n,i;return(0,l.jsx)("div",{children:(0,l.jsx)(s(),{href:"".concat(null==e?void 0:e.linkUrl),children:(0,l.jsx)("div",{className:"p-4 shadow min-w-[224px] break-inside-avoid sm:min-w-[224px] max-w-[224px] bg-neutral-0 rounded-2xl transition-all duration-300",children:(0,l.jsx)(h,{title:null==e?void 0:e.title,imgUrl:(null==e?void 0:null===(i=e.imgUrl)||void 0===i?void 0:null===(n=i.data)||void 0===n?void 0:null===(t=n.attributes)||void 0===t?void 0:t.url)||(null==e?void 0:e.logo)})},null==e?void 0:e.linkUrl)})})}return null})})})})})})]})})})}var N=n(72510);function _(e){var t,n,i,o,a,r,s,d,u,m,p;return(0,l.jsx)("div",{className:"px-4 mt-10 tb:mt-12 db:mt-16",children:(0,l.jsx)("div",{className:"max-w-7xl mx-auto",children:(0,l.jsx)("div",{className:"w-full",children:(0,l.jsxs)("div",{className:"rounded-3xl bg-neutral-0 shadow tb:p-16 db:p-20 px-5 py-10",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 tb-l:grid-cols-2 gap-10 tb-l:gap-28",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)(c.ZT,{textStyle:"h3",as:"h3",className:"text-neutral-1000 pb-4",children:null==e?void 0:e.title}),(null==e?void 0:e.descriptionText)&&(0,l.jsx)(c.ZT,{textStyle:"body1",className:"text-neutral-700 ".concat(null==e?void 0:e.descMaxWidth),children:(0,l.jsx)(N.U,{components:{a:e=>{let{node:t,...n}=e;return(0,l.jsx)("a",{className:"text-blue-600",...n})},p:e=>{let{node:t,...n}=e;return(0,l.jsx)("p",{className:"mb-2 lg:mb-4",...n})}},children:e.descriptionText})}),(null==e?void 0:e.ddnData)&&(0,l.jsxs)("div",{className:"pt-10",children:[(null==e?void 0:null===(t=e.ddnData)||void 0===t?void 0:t.t
1itle)&&(0,l.jsx)(c.ZT,{textStyle:(null==e?void 0:e.headingType)||"h4",as:(null==e?void 0:e.headingType)||"h4",className:"text-neutral-1000 pb-4 ".concat(null==e?void 0:e.titleMaxWidth),children:null==e?void 0:null===(n=e.ddnData)||void 0===n?void 0:n.title}),(null==e?void 0:null===(i=e.ddnData)||void 0===i?void 0:i.description)&&(0,l.jsx)(c.ZT,{as:"p",textStyle:"body1",className:"text-neutral-700 ".concat(null==e?void 0:e.descMaxWidth),children:e.ddnData.description}),(null==e?void 0:null===(o=e.ddnData)||void 0===o?void 0:o.CTA)&&(null==e?void 0:null===(r=e.ddnData)||void 0===r?void 0:null===(a=r.CTA)||void 0===a?void 0:a.text)&&(null==e?void 0:null===(d=e.ddnData)||void 0===d?void 0:null===(s=d.CTA)||void 0===s?void 0:s.url)&&(0,l.jsx)("a",{href:e.ddnData.CTA.url,className:"flex pt-6",children:(0,l.jsx)(c.Cp,{label:e.ddnData.CTA.text,type:e.ddnData.CTA.text.type?e.ddnData.CTA.text.type:"secondary",leftIconVariant:"none",rightIconVariant:"none",state:"default",size:"md",rightAnimatedArrow:!0,rightAnimatedArrowColor:"#3970FD",animatedHoverStroke:"group-hover:stroke-neutral-0"})})]})]}),(0,l.jsx)("div",{children:(null==e?void 0:e.sectionImg)&&(null===(p=e.sectionImg)||void 0===p?void 0:null===(m=p.data)||void 0===m?void 0:null===(u=m.attributes)||void 0===u?void 0:u.url)&&(0,l.jsx)("img",{src:e.sectionImg.data.attributes.url,alt:"".concat(null==e?void 0:e.title," illus"),loading:"lazy"})})]}),(null==e?void 0:e.icon_card)&&(0,l.jsx)("div",{className:"flex flex-wrap gap-x-10 gap-y-10 pt-8 tb:pt-12 db:pt-14",children:e.icon_card.map((t,n)=>(0,l.jsxs)("div",{className:"border grid border-neutral-200 p-8 rounded-3xl flex-grow w-full tb:w-[45%]"+(4===e.icon_card.length?" db:w-[45%]":" db:w-[30%]"),children:[(0,l.jsxs)("div",{className:"self-start",children:[t.iconVariant&&(0,l.jsx)("div",{className:"w-16 h-16 mb-5 tb:mb-6 db:mb-8",children:(0,l.jsx)("img",{src:t.iconVariant,alt:t.title})}),t.title&&(0,l.jsx)(c.ZT,{textStyle:"h5",as:"h5",className:"text-neutral-1000 pb-2",children:t.title}),t.description&&(0,l.jsx)(c.ZT,{textStyle:"body3",className:"text-neutral-1000 pb-2",children:(0,l.jsx)(N.U,{children:t.description})})]}),t.buttons&&(0,l.jsx)("div",{className:"self-end",children:t.buttons.map((e,t)=>(0,l.jsx)("a",{href:e.cta_link,className:"pt-6 inline-flex",children:(0,l.jsx)(c.Cp,{label:e.cta_text,type:"secondary",leftIconVariant:"none",rightIconVariant:"none",state:"default",size:"md",rightAnimatedArrow:!0,rightAnimatedArrowColor:"#3970FD",animatedHoverStroke:"group-hover:stroke-neutral-0"})},n+t))})]},n))})]})})})})}let k=[{title:"Why build a native data connector?",content:"Data connectors are the compatibility layer between Hasura and data sources, such as databases like PostgreSQL, APIs via REST, or any other structured source of data.\n\nHave a data source thatâs not currently supported by Hasura? Write a data connector to make it compatible!\n\nYou can use your own authored data connectors right away in your Hasura projects. If you wish to have them promoted to the Hasura Community, youâll need to verify them with us on the Hasura Hub."},{title:"How do I build my own connector?",content:"Depending on what kind of integration you are targeting, there are several approaches to building a connector, ranging from quick-and-dirty easy-point solutions to deeply integrated full collection-based connectors.\n\nThe best place to start is by going through the [NDC learn repo](https://github.com/hasura/ndc-learn).\n\n\nFrom there, you can find an overview of the concepts involved, specification of the network protocol, SDKs, and example connector repositories."},{title:"Are there SDKs and code examples to help build connectors?",content:"Yes! We currently have a [Rust SDK](https://github.com/hasura/ndc-sdk-rs) and [TypeScript SDK](https://github.com/hasura/ndc-sdk-typescript/tree/main). \n\nThe native data connector [specification is available](https://hasura.github.io/ndc-spec/) and contains a [tutorial](https://hasura.github.io/ndc-spec/tutorial/index.html) outlining the protocol.\n\n\nCheck out some of the existing examples of real connectors:\n- [ClickHouse](https://github.com/hasura/ndc-clickhouse)\n- [Turso](https://github.com/hasura/ndc-hub/tree/main/registry/turso)"},{title:"How do I publish my connector to the Hub?",content:"Youâre in luck! Just submit a PR to the [Connector Hub](https://github.com/hasura/ndc-hub/tree/main/registry), adding your connector to the `/registry` and weâll review and provide feedback for any additional information required. Once thatâs done, your connector will be listed on the Hub!"},{title:"How can I contribute to the specification and SDKs?",content:"The best way to contribute back to the SDKs and spec is to open issues on the repositories ([Rust](https://github.com/hasura/ndc-sdk-rs), [TypeScript](https://github.com/hasura/ndc-sdk-typescript), [Spec](https://github.com/hasura/ndc-spec/tree/main)), then we can triage and prioritize it on our roadmap. Or, if you have a solution in mind, you can write a corresponding PR with a suggested implementation yourself!"}];var C=!0,S=e=>{var t,n,i,r,s;if((null==e?void 0:e.connectorPageData)&&(null===(t=e.connectorPageData)||void 0===t?void 0:t.connectorDdn)&&(null===(n=e.connectorPageData.connectorDdn)||void 0===n?void 0:n.data)&&(null===(r=e.connectorPageData.connectorDdn)||void 0===r?void 0:null===(i=r.data)||void 0===i?void 0:i.attributes)){let t;let n=e.connectorPageData.connectorDdn.data.attributes;return k&&(0,u.Ao)(k)&&(t=k.map(e=>
1({"@type":"Question",name:e.title,acceptedAnswer:{"@type":"Answer",text:e.content}}))),(0,l.jsxs)(p.Z,{bannerData:null==e?void 0:e.bannerData,isWithoutPreFooter:!0,children:[k&&(0,l.jsx)(o(),{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"http://schema.org/","@type":"FAQPage",mainEntity:t})}}),(null==n?void 0:n.metaTags)&&(0,l.jsx)(a.T,{...n.metaTags}),(null==n?void 0:n.hero)&&(0,l.jsx)(m,{...n.hero}),n.connectorFeaturedContent&&(0,l.jsx)(_,{...n.connectorFeaturedContent}),(null==e?void 0:e.connectorsData)&&(null===(s=e.connectorsData)||void 0===s?void 0:s.connector_overview)&&(0,u.Ao)(e.connectorsData.connector_overview)&&(0,l.jsx)(w,{connectorsData:e.connectorsData.connector_overview,comingSoonConnectors:null==n?void 0:n.comingSoonConnectors}),(0,l.jsx)(x,{faqData:k,faqImg:"https://res.cloudinary.com/dh8fp23nd/image/upload/v1698327463/v3-website/faq_akhp7c.png"})]})}return(0,l.jsx)("div",{children:"Loading..."})}},83846:function(e,t,n){"use strict";function l(e){return!!e&&(null==e?void 0:e.constructor.name)==="Array"&&e.length>0}n.d(t,{Ao:function(){return l}})},81771:function(e){e.exports={style:{fontFamily:"'__Inter_f367f3', '__Inter_Fallback_f367f3'",fontStyle:"normal"},className:"__className_f367f3"}},65911:function(e){e.exports={style:{fontFamily:"'__Manrope_73ee6c', '__Manrope_Fallback_73ee6c'",fontStyle:"normal"},className:"__className_73ee6c"}},92703:function(e,t,n){"use strict";var l=n(50414);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,a){if(a!==l){var r=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw r.name="Invariant Violation",r}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i}
1;return n.PropTypes=n,n}},45697:function(e,t,n){e.exports=n(92703)()},50414:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},51526:function(e,t,n){"use strict";n.d(t,{M:function(){return v}});var l=n(67294),i=n(58868);function o(){let e=(0,l.useRef)(!1);return(0,i.L)(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var a=n(2074),r=n(240),s=n(96681);class c extends l.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=this.props.sizeRef.current;e.height=t.offsetHeight||0,e.width=t.offsetWidth||0,e.top=t.offsetTop,e.left=t.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function d({children:e,isPresent:t}){let n=(0,l.useId)(),i=(0,l.useRef)(null),o=(0,l.useRef)({width:0,height:0,top:0,left:0});return(0,l.useInsertionEffect)(()=>{let{width:e,height:l,top:a,left:r}=o.current;if(t||!i.current||!e||!l)return;i.current.dataset.motionPopId=n;let s=document.createElement("style");return document.head.appendChild(s),s.sheet&&s.sheet.insertRule(` 2 [data-motion-pop-id="${n}"] { 3 position: absolute !important; 4 width: ${e}px !important; 5 height: ${l}px !important; 6 top: ${a}px !important; 7 left: ${r}px !important; 8 } 9 `),()=>{document.head.removeChild(s)}},[t]),l.createElement(c,{isPresent:t,childRef:i,sizeRef:o},l.cloneElement(e,{ref:i}))}let u=({children:e,initial:t,isPresent:n,onExitComplete:i,custom:o,presenceAffectsLayout:a,mode:c})=>{let u=(0,s.h)(m),p=(0,l.useId)(),h=(0,l.useMemo)(()=>({id:p,initial:t,isPresent:n,custom:o,onExitComplete:e=>
9{for(let t of(u.set(e,!0),u.values()))if(!t)return;i&&i()},register:e=>(u.set(e,!1),()=>u.delete(e))}),a?void 0:[n]);return(0,l.useMemo)(()=>{u.forEach((e,t)=>u.set(t,!1))},[n]),l.useEffect(()=>{n||u.size||!i||i()},[n]),"popLayout"===c&&(e=l.createElement(d,{isPresent:n},e)),l.createElement(r.O.Provider,{value:h},e)};function m(){return new Map}var p=n(25364),h=n(45487);let x=e=>e.key||"",v=({children:e,custom:t,initial:n=!0,onExitComplete:r,exitBeforeEnter:s,presenceAffectsLayout:c=!0,mode:d="sync"})=>{var m;(0,h.k)(!s,"Replace exitBeforeEnter with mode='wait'");let v=(0,l.useContext)(p.p).forceRender||function(){let e=o(),[t,n]=(0,l.useState)(0),i=(0,l.useCallback)(()=>{e.current&&n(t+1)},[t]);return[(0,l.useCallback)(()=>a.Wi.postRender(i),[i]),t]}()[0],f=o(),g=function(e){let t=[];return l.Children.forEach(e,e=>{(0,l.isValidElement)(e)&&t.push(e)}),t}(e),b=g,y=(0,l.useRef)(new Map).current,j=(0,l.useRef)(b),w=(0,l.useRef)(new Map).current,N=(0,l.useRef)(!0);if((0,i.L)(()=>{N.current=!1,function(e,t){e.forEach(e=>{let n=x(e);t.set(n,e)})}(g,w),j.current=b}),m=()=>{N.current=!0,w.clear(),y.clear()},(0,l.useEffect)(()=>()=>m(),[]),N.current)return l.createElement(l.Fragment,null,b.map(e=>l.createElement(u,{key:x(e),isPresent:!0,initial:!!n&&void 0,presenceAffectsLayout:c,mode:d},e)));b=[...b];let _=j.current.map(x),k=g.map(x),C=_.length;for(let e=0;e<C;e++){let t=_[e];-1!==k.indexOf(t)||y.has(t)||y.set(t,void 0)}return"wait"===d&&y.size&&(b=[]),y.forEach((e,n)=>{if(-1!==k.indexOf(n))return;let i=w.get(n);if(!i)return;let o=_.indexOf(n),a=e;a||(a=l.createElement(u,{key:x(i),isPresent:!1,onExitComplete:()=>{y.delete(n);let e=Array.from(w.keys()).filter(e=>!k.includes(e));if(e.forEach(e=>w.delete(e)),j.current=g.filter(t=>{let l=x(t);return l===n||e.includes(l)}),!y.size){if(!1===f.current)return;v(),r&&r()}},custom:t,presenceAffectsLayout:c,mode:d},i),y.set(n,a)),b.splice(o,0,a)}),b=b.map(e=>{let t=e.key;return y.has(t)?e:l.createElement(u,{key:x(e),isPresent:!0,presenceAffectsLayout:c,mode:d},e)}),l.createElement(l.Fragment,null,y.size?b:b.map(e=>(0,l.cloneElement)(e)))}}},function(e){e.O(0,[7010,2794,4715,2888,9774,179],function(){return e(e.s=77233)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.