1import{l as v,u as S}from"./CQm4lL_x.js";function I(a){return a?a.startsWith("rgb(")?a:a.includes(",")?`rgb(${a})`:"rgb(78, 145, 211)":"rgb(78, 145, 211)"}function q(a){if(!a)return"78, 145, 211";if(a.includes(",")&&!a.includes("rgb("))return a;if(a.startsWith("rgb(")){const l=a.match(/\d+/g);if(l&&l.length>=3)return l.slice(0,3).join(", ")}return"78, 145, 211"}function T(a,l){return a.find(c=>c.uuid===l)||null}function V(a,l){const c=l?T(a,l):null;return{name:c?.name||"Documentation",color:I(c?.color),colorVariables:q(c?.color),icon:c?.icon||"fluent:document-20-regular",category:c}}function j(a){return a.filter(l=>!l.flags?.hideNavigation)}function N(a){return a.filter(l=>!l.flags?.hideHomepage)}const C=(a,l="article",c="https://doc.verycloud.fr")=>{const o={article:"/images/fallbacks/article-placeholder.svg",category:"/images/fallbacks/category-placeholder.svg",avatar:"/images/fallbacks/avatar-placeholder.svg"};return a?a.startsWith("/api/images/proxy?file=")||a.startsWith("http://")||a.startsWith("https://")?a:`${c}/api/images/${encodeURIComponent(a)}`:o[l]},O=()=>{let a=null;try{a=v()}catch{}const{t:l}=S(),c=(n="article")=>({article:"/images/fallbacks/article-placeholder.svg",category:"/images/fallbacks/category-placeholder.svg",avatar:"/images/fallbacks/avatar-placeholder.svg"})[n],o=(n,f="article")=>{const u=n.target;u&&!u.src.includes("fallback")&&(u.src=c(f),u.alt=l("docs.imageNotAvailable"))},b=(n,f="article",u)=>n?n.startsWith("/api/images/proxy?file=")||n.startsWith("http://")||n.startsWith("https://")?n:`${u||a?.public?.apiBaseUrl||"https://doc.verycloud.fr"}/api/images/${encodeURIComponent(n)}`:c(f);return{getFallbackImage:c,handleImageError:o,createImageUrl:b,getAlternativeImageUrl:(n,f)=>`${f||a?.public?.apiBaseUrl||"https://doc.verycloud.fr"}/api/images/${encodeURIComponent(n)}`,preloadImage:n=>new Promise((f,u)=>{const d=new Image;d.onload=()=>f(),d.onerror=()=>u(new Error(`Failed to load image: ${n}`)),d.src=n}),generateSrcSet:(n,f=[400,800,1200])=>f.map(u=>{const d=n.replace(/(\.[^.]+)$/,`_${u}w$1`);return`${b(d)} ${u}w`}).join(", ")}},x=()=>{const a=v(),{t:l,locale:c}=S(),o={baseUrl:a.public.apiBaseUrl?.toString().replace(/\/+$/,"")||"",timeout:a.public.apiTimeout,cacheTtl:a.public.cacheTtl},b=t=>t?t.replace(/^#{1,6}\s+(Sommaire|Table des matières|Table of Contents|Contents)\s*$/gim,"").replace(/^#{1,6}\s+(Sommaire|Table des matières|Table of Contents|Contents)\s*\n[\s\S]*?(?=\n#{1,6}|$)/gim,"").replace(/^(\* \[.*?\]\(#.*?\)\s*\n)+/gm,"").replace(/^(\- \[.*?\]\(#.*?\)\s*\n)+/gm,"").replace(/^(\d+\. \[.*?\]\(#.*?\)\s*\n)+/gm,"").trim():"",m=t=>{let e="",r="",i="",s="",g=0;if(t.langs&&typeof t.langs=="object"){const A=c.value,h=t.langs[A]||t.langs["fr-FR"]||t.default;h&&(e=h.title||"",r=h.summary||"",i=h.content||"",s=h.imageUrl||h.image||"",g=h.readTime||0)}else t.default?(e=t.default.title,r=t.default.summary||"",i=t.default.content||"",s=t.default.imageUrl||t.default.image||"",g=t.default.readTime||0):t.title&&(e=t.title,r=t.summary||"",i=t.content||"",s=t.image||"",g=t.readTime||0);const p=i?b(i):"";return{...t,slug:t.slug,title:e,summary:r,content:p,image:C(s,"article",o.baseUrl),thumbnail:C(s,"article",o.baseUrl),difficulty:t.difficulty||"easy",readTime:g||1,views:t.views||0}},y=t=>{let e={};if(typeof t.flags=="string")try{e=JSON.parse(t.flags)}catch{e={}}else t.flags&&typeof t.flags=="object"&&(e=t.flags);const r=t.color||null;let i="",s=null;if(t.langs&&typeof t.langs=="object"){const g=c.value,p=t.langs[g]||t.langs["fr-FR"]||t.default;p&&p.name&&(i=p.name,s=p.description)}else if(t.default&&t.default.name)i=t.default.name,s=t.default.description;else if(t.name)i=t.name,s=t.description;else return null;return{...t,name:i,description:s,color:r,flags:e,icon:t.icon||e?.icon||"fluent:document-20-regular",lang:c.value}},$=async(t={})=>{try{const e=new URLSearchParams;t.language&&e.set("language",t.language),t.category&&e.set("category",t.category);const r=`${o.baseUrl}/api/articles/list?${e.toString()}`,{data:i}=await $fetch(r);return i.map(m)}catch(e){if(e?.status===503||e?.statusCode===503)return[];throw e}},n=async(t,e={})=>
1{try{const r=new URLSearchParams;e.language&&r.set("language",e.language);const i=await $fetch(`${o.baseUrl}/api/articles/by-category/${t}?${r.toString()}`),s=i?.data?.articles||i?.data||[];return Array.isArray(s)?s.map(m):[]}catch(r){if(r?.status===503||r?.statusCode===503)return[];throw r}},f=async(t,e={})=>{try{const r=new URLSearchParams;e.lang&&r.set("lang",e.lang);const s=(await $fetch(`${o.baseUrl}/api/articles/by-category/${t}?${r.toString()}`))?.data?.category;if(!s)return null;const g=y(s);return g===null?null:g}catch(r){if(r?.status===503||r?.statusCode===503||r?.status===404)return null;throw r}},u=async t=>{try{const e=new URLSearchParams;return e.set("q",t.q),t.lang&&e.set("lang",t.lang),t.limit&&e.set("limit",t.limit.toString()),await $fetch(`${o.baseUrl}/api/search?${e.toString()}`)}catch(e){if(e?.status===503||e?.statusCode===503)return{success:!1,data:[],meta:{total:0,query:t.q,lang:t.lang,limit:t.limit||20}};throw e}},d=async t=>{try{const{data:e}=await $fetch(`${o.baseUrl}/api/articles/read?uuid=${t.uuid}`);return m(e)}catch(e){if(e?.status===503||e?.statusCode===503)return{uuid:t.uuid,title:l("errors.serviceUnavailable"),content:l("errors.apiUnavailableContent"),summary:l("errors.docsServiceUnavailable"),publishedAt:new Date().toISOString(),createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),categories:[],difficulty:"easy",readTime:1,views:0,image:null};throw e}},w=t=>{const e=t?.status??t?.statusCode??t?.response?.status;return e===404||e>=500&&e<600||!e},U=async(t={})=>{try{const e=t.language?`?language=${t.language}`:"",r=`${o.baseUrl}/api/categories/list${e}`,{data:i}=await $fetch(r);return i.map(y).filter(s=>s!==null)}catch(e){if(w(e))return[];throw e}};return{getArticles:$,getArticlesByCategory:n,getCategoryBySlug:f,getArticle:d,getArticleBySlug:async t=>{try{const e=await $fetch(`${o.baseUrl}/api/articles/${t.slug}`);if(!e.success||!e.data)throw new Error("Article not found");const r=e.data.category?y(e.data.category):null;return{article:m(e.data.article),category:r===null?null:r,seo:e.data.seo}}catch(e){throw e}},getCategories:U,getCategoriesMultilingual:async(t={})=>{try{const e=t.language?`?language=${t.language}`:"",r=`${o.baseUrl}/api/categories/list${e}`,{data:i}=await $fetch(r);return i}catch(e){if(w(e))return[];throw e}},getUserProfile:async(t={})=>{try{const e=t.uuid?`/api/user/profile/${t.uuid}`:"/api/user/profile",{data:r}=await $fetch(`${o.baseUrl}${e}`);return r}catch(e){throw e}},search:u,searchIcons:async t=>{try{const e=new URLSearchParams;return e.set("q",t.q),t.limit&&e.set("limit",t.limit.toString()),await $fetch(`${o.baseUrl}/api/search/icons?${e.toString()}`)}catch{return{success:!1,data:[],meta:{total:0,query:t.q,limit:t.limit||50}}}},getCachedArticles:async(t={},e)=>await $(t),getCachedCategories:async(t={},e)=>await U(t),getArticlesWithViews:async(t={})=>{try{const e=await $(t);return(await Promise.allSettled(e.map(async s=>{try{const g=await d({uuid:s.uuid});return{...s,views:g.views||0}}catch{return{...s,views:0}}}))).filter(s=>s.status==="fulfilled").map(s=>s.value)}catch{return[]}},enhanceArticle:m,enhanceCategory:y}};export{O as a,N as b,j as c,q as f,V as g,x as u};
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.