1async function b(a,e){const t=await fetch(a,e);if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}async function s(a,e){try{return await b(a,e)}catch{return null}}async function d(a){const t=(await s(`https://geo.api.vlaanderen.be/geolocation/v2/Location?q=${encodeURIComponent(a)}&c=1`))?.LocationResult?.[0]?.Location;return t?.X_Lambert72&&t?.Y_Lambert72?{x:t.X_Lambert72,y:t.Y_Lambert72}:null}async function g(a){const e=a.match(/^(.+?)\s+(\d+\w*)(?:\s*bus\s*\w+)?\s*,\s*(?:(\d{4})\s+)?(.+)$/i);if(!e)return null;const[,t,o,r,c]=e,n=new URLSearchParams;n.set("straatnaam",t.trim()),n.set("huisnummer",o.trim()),r&&n.set("postcode",r),c&&n.set("gemeentenaam",c.trim());const i=(await s(`https://api.basisregisters.vlaanderen.be/v2/adresmatch?${n.toString()}`))?.adresMatches?.[0]?.adresPositie?.point?.coordinates;return Array.isArray(i)&&i.length===2?{x:Number(i[0]),y:Number(i[1])}:null}async function y(a){const e=await s(`https://geo.api.vlaanderen.be/capakey/v2/parcel?x=${a.x}&y=${a.y}&srs=31370&geometry=no`);return e?.capakey?{capakey:e.capakey,afdeling:[e.departmentCode,e.departmentName].filter(Boolean).join(" "),sectie:e.sectionCode||"",perceelnummer:e.perceelnummer||"",municipalityName:e.municipalityName}:null}async function h(a){const e=await s(`https://geo.onroerenderfgoed.be/zoekdiensten/afbakeningen?capakey=${encodeURIComponent(a)}&geef_geometrie=0`);return Array.isArray(e)?e.map(t=>({naam:String(t?.naam??""),type:String(t?.type?.label??t?.categorie??""),uri:String(t?.uri??""),categorie:String(t?.categorie??"")})):[]}async function k(a,e={}){const t=(e.existingCapakey||"").trim(),o=!!a&&a.trim().length>=4;try{if(t){const p=await h(t);let i,f={capakey:t,afdeling:"",sectie:"",perceelnummer:""};if(o){const m=await d(a)||await g(a);if(m){i=m;const l=await y(m);l&&(f={...l,capakey:t})}}return{parcel:f,erfgoed:p,lambert72:i,capakeySource:"document"}}if(!o)return{erfgoed:[],error:"Geen adres opgegeven"};let r=await d(a),c="coords";if(r||(r=await g(a),r&&(c="adresmatch")),!r)return{erfgoed:[],error:"Adres niet gevonden (ook niet via CRAB-fallback). Capakey kon niet automatisch worden bepaald."};const n=await y(r);if(!n)return{erfgoed:[],lambert72:r,error:"Geen perceel gevonden op deze coördinaten. Capakey kon niet automatisch worden bepaald."};const u=await h(n.capakey);return{parcel:n,erfgoed:u,lambert72:r,capakeySource:c}}catch(r){return{erfgoed:[],error:r?.message||"API niet bereikbaar"}}}function w(a){const e=new Set;for(const t of a){const o=(t.type||"").trim();o&&e.add(o)}return Array.from(e).join("; ")}export{k as lookupErfgoedForAddress,w as summarizeErfgoedLijst};
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.