PageSourceSearch

https://app.sylen.ai/_next/static/chunks/7891.3376b9d3008e6be3.js

js sylen.ai collected 2026-10-05 14:33:24 UTC 18,083 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7891],{40875:function(e,t,a){a.d(t,{Z:function(){return s}});let s=(0,a(68755).Z)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},22135:function(e,t,a){a.d(t,{Z:function(){return s}});let s=(0,a(68755).Z)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},33245:function(e,t,a){a.d(t,{Z:function(){return s}});let s=(0,a(68755).Z)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},36245:function(e,t,a){a.d(t,{v:function(){return d}});var s=a(57437),r=a(2265),n=a(22135),l=a(40875);let i=(0,a(68755).Z)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var c=a(91001);function d(e){let{columns:t,data:a,isLoading:d,onRowClick:o,pageSize:u=25,emptyMessage:x="Aucune donn\xe9e",sortKey:m,sortOrder:p,onSort:h}=e,[b,v]=(0,r.useState)(""),[f,g]=(0,r.useState)("desc"),[j,y]=(0,r.useState)(0),N=!!h,k=N?m||"":b,w=N?p||"desc":f,_=e=>{if(N){null==h||h(e);return}b===e?g(e=>"asc"===e?"desc":"asc"):(v(e),g("desc")),y(0)},S=(0,r.useMemo)(()=>N||!k?a:[...a].sort((e,t)=>{let a=e[k],s=t[k];if(a===s)return 0;if(null==a)return 1;if(null==s)return -1;let r=a<s?-1:1;return"asc"===w?r:-r}),[a,k,w,N]),F=Math.ceil(S.length/u),C=S.slice(j*u,(j+1)*u);return d?(0,s.jsx)("div",{className:"neu-raised rounded-neu-lg overflow-hidden bg-[var(--bg-surface)]",children:(0,s.jsx)("div",{className:"p-4 space-y-3",children:Array.from({length:5}).map((e,a)=>(0,s.jsx)("div",{className:"flex gap-4",children:t.map(e=>(0,s.jsx)("div",{className:"h-5 flex-1 rounded bg-[var(--bg-elevated)] animate-pulse-soft"},e.key))},a))})}):0===a.length?(0,s.jsx)("div",{className:"neu-raised rounded-neu-lg p-12 bg-[var(--bg-surface)] text-center",children:(0,s.jsx)("p",{className:"text-sm text-[var(--text-muted)]",children:x})}):(0,s.jsxs)("div",{className:"neu-raised rounded-neu-lg overflow-hidden bg-[var(--bg-surface)]",children:[(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"w-full",children:[(0,s.jsx)("thead",{children:(0,s.jsx)("tr",{className:"border-b border-[var(--border-color)]",children:t.map(e=>(0,s.jsx)("th",{className:(0,c.cn)("text-left text-[10px] font-semibold uppercase tracking-wider text-[var(--text-muted)] px-4 py-3",e.sortable&&"cursor-pointer select-none hover:text-[var(--text-secondary)]",e.className),onClick:()=>e.sortable&&_(e.key),children:(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[e.label,e.sortable&&(0,s.jsx)("span",{className:"inline-flex flex-col",children:k===e.key?"asc"===w?(0,s.jsx)(n.Z,{size:12}):(0,s.jsx)(l.Z,{size:12}):(0,s.jsx)(i,{size:12,className:"opacity-40"})})]})},e.key))})}),(0,s.jsx)("tbody",{children:C.map((e,a)=>(0,s.jsx)("tr",{onClick:()=>null==o?void 0:o(e),className:(0,c.cn)("border-b border-[var(--border-color)] last:border-0 transition-colors",o&&"cursor-pointer hover:bg-[var(--bg-elevated)]"),children:t.map(t=>{var a;return(0,s.jsx)("td",{className:(0,c.cn)("px-4 py-3 text-sm text-[var(--text-primary)]",t.className),children:t.render?t.render(e):String(null!==(a=e[t.key])&&void 0!==a?a:"")},t.key)})},a))})]})}),F>1&&(0,s.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-t border-[var(--border-color)]",children:[(0,s.jsxs)("p",{className:"text-xs text-[var(--text-muted)]",children:[j*u+1,"–",Math.min((j+1)*u,S.length)," sur"," ",S.length]}),(0,s.jsxs)("div",{className:"flex gap-1",children:[(0,s.jsx)("button",{onClick:()=>y(e=>Math.max(0,e-1)),disabled:0===j,className:"px-3 py-1 text-xs font-medium rounded-neu-sm neu-flat hover:neu-raised transition-all disabled:opacity-40 disabled:cursor-not-allowed text-[var(--text-secondary)]",children:"Pr\xe9c."}),(0,s.jsx)("button",{onClick:()=>y(e=>Math.min(F-1,e+1)),disabled:j>=F-1,className:"px-3 py-1 text-xs font-medium rounded-neu-sm neu-flat hover:neu-raised transition-all disabled:opacity-40 disabled:cursor-not-allowed text-[var(--text-secondary)]",children:"Suiv."})]})]})]})}},19939:function(e,t,a){a.d(t,{hx:function(){return i},jR:function(){return l}});var s=a(57437),r=a(91001);let n=[{label:"24h",value:"24h"},{label:"7j",value:"7d"},{label:"30j",value:"30d"},{label:"90j",value:"90d"},{label:"12m",value:"12m"}];function l(e){let{value:t,onChange:a}=e;return(0,s.jsx)("div",{className:"inline-flex rounded-neu-md overflow-hidden p-1 gap-0.5",style:{background:"var(--bg-base)",boxShadow:"inset 2px 2px 4px var(--shadow-dark), inset -2px -2px 4px var(--shadow-light)"},children:n.map(e=>(0,s.jsx)("button",{onClick:()=>a(e.value),className:(0,r.cn)("px-3 py-1.5 text-xs font-semibold rounded-neu-sm transition-all",t===e.value?"neu-raised text-[var(--text-primary)]":"text-[var(--text-muted)] hover:text-[var(--text-secondary)]"),children:e.label},e.value))})}function i(e){switch(e){case"24h":return 1;case"7d":return 7;case"30d":return 30;case"90d":return 90;case"12m":return 365}}},97891:function(e,t,a){a.r(t),a.d(t,{OngletJournaux:function(){return F}});var s=a(57437),r=a(2265),n=a(27648),l=a(99376),i=a(82431),c=a(33245),d=a(51817),o=a(10407);
1let u=["24h","7j","30j"],x=["taches","agents_ia","stripe_webhook","webhooks_clients","agendas","facturation_usage","emails","erreurs_5xx","erreurs_serveur"],m={taches:{libelle:"T\xe2ches planifi\xe9es",description:"Passages en \xe9chec, journal cron_runs"},agents_ia:{libelle:"Agents IA internes",description:"Passages en erreur, journal agent_runs"},stripe_webhook:{libelle:"Webhook Stripe",description:"\xc9v\xe9nements dont le traitement a \xe9chou\xe9 (Stripe les renverra)"},webhooks_clients:{libelle:"Webhooks des clients",description:"Livraisons refus\xe9es ou abandonn\xe9es vers les adresses des clients"},agendas:{libelle:"Agendas",description:"Synchronisations d'agenda en \xe9chec"},facturation_usage:{libelle:"Facturation \xe0 l'usage",description:"Relev\xe9s de minutes refus\xe9s par Stripe"},emails:{libelle:"Emails",description:"Envois en \xe9chec apr\xe8s les nouvelles tentatives"},erreurs_5xx:{libelle:"Erreurs 5xx",description:"R\xe9ponses 5xx de l'API publique (api_request_logs)"},erreurs_serveur:{libelle:"Erreurs serveur",description:"Routes critiques : webhook Stripe, voix Twilio, fin d'appel, notifications, Google Ads, diagnostic (journal maison)"}};var p=a(91001),h=a(19939),b=a(36245);let v={maintenance_enabled:"maintenance activ\xe9e",maintenance_disabled:"maintenance coup\xe9e",broadcast_sent:"envoi group\xe9",agent_config_update:"r\xe9glage d'un agent IA",stripe_refund:"remboursement Stripe",stripe_portal_open:"portail Stripe ouvert","auth:2fa_success":"double authentification r\xe9ussie","auth:2fa_failed":"double authentification refus\xe9e","auth:reset_password_success":"mot de passe r\xe9initialis\xe9"},f=e=>{var t;return null!==(t=v[e])&&void 0!==t?t:e.replace(/[_:]/g," ")},g={maintenance_enabled:{bg:"bg-red-500/10",text:"text-red-500"},maintenance_disabled:{bg:"bg-emerald-500/10",text:"text-emerald-500"},broadcast_sent:{bg:"bg-[#068FFF]/10",text:"text-[#068FFF]"},"auth:2fa_failed":{bg:"bg-[#FF6B2B]/10",text:"text-[#FF6B2B]"}},j={bg:"bg-gray-500/10",text:"text-gray-400"};function y(e){let{action:t}=e,a=g[t]||j;return(0,s.jsx)("span",{className:(0,p.cn)("inline-flex px-2 py-0.5 text-[10px] font-bold uppercase rounded-full",a.bg,a.text),children:f(t)})}function N(){let[e,t]=(0,r.useState)([]),[a,n]=(0,r.useState)(0),[l,i]=(0,r.useState)([]),[c,d]=(0,r.useState)({}),[o,u]=(0,r.useState)(!0),[x,m]=(0,r.useState)("30d"),[v,N]=(0,r.useState)(""),k=(0,r.useCallback)(async()=>{u(!0);let e=new URLSearchParams({days:String((0,h.hx)(x)),limit:"50"});v&&e.set("action",v);try{let a=await fetch("/api/admin/activity?".concat(e),{cache:"no-store"});if(a.ok){let e=await a.json();t(e.logs||[]),n(e.total||0),i(e.actions||[]),d(e.actionCounts||{})}}catch(e){console.error(e)}finally{u(!1)}},[x,v]);(0,r.useEffect)(()=>{k()},[k]);let w=[{key:"created_at",label:"Date",sortable:!0,render:e=>(0,s.jsx)("span",{className:"text-xs text-[var(--text-muted)] tabular-nums",children:new Date(e.created_at).toLocaleDateString("fr-FR",{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"})})},{key:"action",label:"Action",render:e=>(0,s.jsx)(y,{action:e.action})},{key:"target_type",label:"Cible",render:e=>(0,s.jsxs)("div",{className:"text-xs",children:[e.target_type&&(0,s.jsx)("span",{className:"text-[var(--text-secondary)]",children:e.target_type}),e.target_id&&(0,s.jsxs)("span",{className:"text-[var(--text-muted)] ml-1",children:["#",e.target_id.slice(0,8)]}),!e.target_type&&!e.target_id&&(0,s.jsx)("span",{className:"text-[var(--text-muted)]",children:"\xb7"})]})},{key:"details",label:"D\xe9tails",className:"max-w-[300px]",render:e=>{let t=Object.entries(e.details||{});return 0===t.length?(0,s.jsx)("span",{className:"text-xs text-[var(--text-muted)]",children:"\xb7"}):(0,s.jsx)("div",{className:"text-xs text-[var(--text-muted)] truncate max-w-[300px]",children:t.map(e=>{let[t,a]=e;return"".concat(t," : ").concat("object"==typeof a?JSON.stringify(a):a)}).join(", ")})}}];return(0,s.jsxs)("section",{className:"space-y-4","aria-labelledby":"titre-actions-admin",children:[(0,s.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-end justify-between gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{id:"titre-actions-admin",className:"text-base font-bold text-[var(--text-primary)]",children:"Actions admin"}),(0,s.jsxs)("p",{className:"text-xs text-[var(--text-muted)] mt-0.5 tabular-nums",children:["Ce qui a \xe9t\xe9 fait dans la console, et les \xe9v\xe9nements de connexion de tous les comptes (double authentification, mot de passe)",a>0&&(0,s.jsxs)("span",{children:[" \xb7 ",a," entr\xe9es sur la p\xe9riode"]}
1)]})]}),(0,s.jsx)(h.jR,{value:x,onChange:m})]}),!o&&Object.keys(c).length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filtrer par action",children:Object.entries(c).sort((e,t)=>t[1]-e[1]).map(e=>{let[t,a]=e,r=g[t]||j,n=v===t;return(0,s.jsxs)("button",{type:"button","aria-pressed":n,onClick:()=>N(n?"":t),className:(0,p.cn)("neu-flat rounded-neu-md px-3 py-2 text-xs flex items-center gap-2 transition-all",n&&"neu-inset"),children:[(0,s.jsx)("span",{className:(0,p.cn)("w-2 h-2 rounded-full",r.bg.replace("/10","")),"aria-hidden":"true"}),(0,s.jsx)("span",{className:(0,p.cn)("font-medium",r.text),children:f(t)}),(0,s.jsx)("span",{className:"text-[var(--text-muted)] tabular-nums",children:a})]},t)})}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,s.jsx)("label",{className:"sr-only",htmlFor:"filtre-action-admin",children:"Action"}),(0,s.jsxs)("select",{id:"filtre-action-admin",value:v,onChange:e=>N(e.target.value),className:"neu-inset rounded-neu-md px-3 py-1.5 text-xs bg-[var(--bg-surface)] text-[var(--text-primary)] border-0 outline-none",children:[(0,s.jsx)("option",{value:"",children:"Toutes les actions"}),l.map(e=>(0,s.jsx)("option",{value:e,children:f(e)},e))]})]}),(0,s.jsx)(b.v,{columns:w,data:e,isLoading:o,pageSize:25,emptyMessage:"Aucune action sur la p\xe9riode"})]})]})}let k=[{id:"erreurs",label:"Erreurs techniques"},{id:"actions",label:"Actions admin"}],w={"24h":"24 h","7j":"7 jours","30j":"30 jours"},_={critique:{couleur:"#EF4444",libelle:"Critique"},attention:{couleur:"#FF6B2B",libelle:"\xc0 surveiller"},resolu:{couleur:"#00D084",libelle:"R\xe9solu"}},S=e=>new Date(e).toLocaleString("fr-FR",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",timeZone:"Europe/Paris"});function F(){var e,t;let a=(0,l.useSearchParams)(),n=(0,l.useRouter)(),i=(0,l.usePathname)(),c="actions"===a.get("vue")?"actions":"erreurs",d=u.includes(null!==(e=a.get("periode"))&&void 0!==e?e:"")?a.get("periode"):"24h",o=x.includes(null!==(t=a.get("source"))&&void 0!==t?t:"")?a.get("source"):null,m=(0,r.useCallback)(e=>{let t=new URLSearchParams(a.toString());for(let[a,s]of Object.entries(e))null===s?t.delete(a):t.set(a,s);let s=t.toString();n.replace(s?"".concat(i,"?").concat(s):i,{scroll:!1})},[a,i,n]);return(0,s.jsxs)("div",{className:"space-y-5",children:[(0,s.jsx)("div",{className:"inline-flex gap-1 p-1 rounded-neu-md neu-inset bg-[var(--bg-surface)]",role:"group","aria-label":"Journal affich\xe9",children:k.map(e=>(0,s.jsx)("button",{type:"button","aria-pressed":c===e.id,onClick:()=>m({vue:"erreurs"===e.id?null:e.id,source:null,periode:null}),className:(0,p.cn)("px-3.5 py-1.5 text-xs font-semibold rounded-neu-sm transition-all",c===e.id?"neu-raised bg-[var(--bg-surface)] text-[#068FFF]":"text-[var(--text-muted)] hover:text-[var(--text-primary)]"),children:e.label},e.id))}),"actions"===c?(0,s.jsx)(N,{}):(0,s.jsx)(C,{periode:d,source:o,onPeriode:e=>m({periode:"24h"===e?null:e}),onSource:e=>m({source:e})})]})}function C(e){let{periode:t,source:a,onPeriode:n,onSource:l}=e,[o,x]=(0,r.useState)(null),[h,b]=(0,r.useState)(null),[v,f]=(0,r.useState)(!0),g=(0,r.useCallback)(async()=>{f(!0);try{let e=new URLSearchParams({periode:t,limite:"150"});a&&e.set("source",a);let s=await fetch("/api/admin/journaux?".concat(e),{cache:"no-store"}),r=await s.json();if(!s.ok)throw Error(r.error||"HTTP ".concat(s.status));x(r),b(null)}catch(e){b(e instanceof Error?e.message:"Erreur de chargement")}finally{f(!1)}},[t,a]);return(0,r.useEffect)(()=>{g()},[g]),(0,s.jsxs)("section",{className:"space-y-4","aria-labelledby":"titre-erreurs-techniques",children:[(0,s.jsxs)("div",{className:"flex items-end justify-between gap-3 flex-wrap",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{id:"titre-erreurs-techniques",className:"text-base font-bold text-[var(--text-primary)]",children:"Erreurs techniques"}),(0,s.jsx)("p",{className:"text-xs text-[var(--text-muted)] mt-0.5 tabular-nums",children:o?"".concat(o.total," \xe9chec").concat(o.total>1?"s":""," sur ").concat(w[t]," \xb7 lu le ").concat(S(o.genereLe)):"Lecture des journaux…"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"inline-flex gap-1",role:"group","aria-label":"P\xe9riode",children:u.map(e=>(0,s.jsx)("button",{type:"button","aria-pressed":t===e,onClick:()=>n(e),className:(0,p.cn)("text-xs font-semibold px-3 py-1.5 rounded-full transition-all tabular-nums",t===e?"neu-raised text-[#068FFF] bg-[var(--bg-surface)]":"text-[var(--text-muted)] hover:text-[var(--text-secondary)]"),children:w[e]},e))}),(0,s.jsx)("button",{type:"button",onClick:g,disabled:v,className:"neu-raised rounded-neu p-2 bg-[var(--bg-surface)] hover:opacity-80 disabled:opacity-60","aria-label":"Relire les journaux",children:(0,s.jsx)(i.Z,{size:16,className:v?"animate-spin":"","aria-hidden":"true"})})]})]}),o&&(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filtrer par source",children:[(0,s.jsx)(E,{libelle:"Toutes",compte:o.total,actif:null===a,onClick:()=>l(null)}),o.sources.map(e=>(0,s.jsx)(E,{libelle:e.libelle,compte:e.compte,titre:e.erreur?"Table illisible : ".concat(e.erreur):e.description,actif:a===e.id,onClick:()=>l(a===e.id?null:e.id)},e.id))]}),o&&o.manques.length>0&&(0,s.jsxs)("div",{className:"neu-flat rounded-neu-md p-4 flex gap-3 text-xs text-[var(--text-secondary)]",children:[(0,s.jsx)(c.Z,{size:16,className:"shrink-0 text-[#6366F1] mt-0.5","aria-hidden":"true"}),(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("p",{className:"font-semibold text-[var(--text-primary)]",children:"Ce que ces journaux ne voient pas encore"}),o.manques.map(e=>(0,s.jsx)("p",{children:e},e))]})]}),o?0===o.entrees.length?(0,s.jsxs)("p",{className:"neu-flat rounded-neu-lg p-8 text-center text-sm text-[var(--text-muted)]",children:["Aucun \xe9chec ",a?"c\xf4t\xe9 ".concat(m[a].libelle.toLowerCase()," "):"","sur ",w[t],"."]}):(0,s.jsx)("ul",{className:"neu-raised rounded-neu-lg bg-[var(--bg-surface)] overflow-hidden divide-y divide-[var(--border-subtle,rgba(120,120,128,0.14))]",children:o.entrees.map(e=>(0,s.jsx)(q,{e:e},e.id))}):(0,s.jsx)("div",{className:"py-10 text-center text-[var(--text-muted)]",children:h?(0,s.jsxs)("p",{role:"alert",children:["Lecture impossible : ",h]}):(0,s.jsx)(d.Z,{className:"animate-spin inline",size:20})})]})}function E(e){let{libelle:t,compte:a,titre:r,actif:n,onClick:l}=e;return(0,s.jsxs)("button",{type:"button","aria-pressed":n,title:r,onClick:l,className:(0,p.cn)("neu-flat rounded-neu-md px-3 py-2 text-xs flex items-center gap-2 transition-all",n&&"neu-inset text-[#068FFF]"),children:[(0,s.jsx)("span",{className:"font-medium",children:t}),(0,s.jsx)("span",{className:(0,p.cn)("tabular-nums font-semibold",null===a?"text-[var(--text-muted)]":a>0?"text-[#FF6B2B]":"text-[var(--text-muted)]"),children:null===a?"illisible":a})]})}function q(e){let{e:t}=e,a=_[t.gravite],r=(0,s.jsxs)("div",{className:"px-5 py-3 grid gap-x-5 gap-y-1 md:grid-cols-[110px_minmax(0,1fr)_auto] items-start",children:[(0,s.jsx)("p",{className:"text-xs text-[var(--text-muted)] tabular-nums pt-0.5",children:S(t.at)}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("p",{className:"text-sm font-semibold text-[var(--text-primary)] flex items-center gap-2 min-w-0",children:[(0,s.jsx)("span",{className:"inline-block w-2 h-2 rounded-full shrink-0",style:{backgroundColor:a.couleur},"aria-hidden":"true"}),(0,s.jsxs)("span",{className:"sr-only",children:[a.libelle," : "]}),(0,s.jsx)("span",{className:"truncate",children:t.titre}),null!==t.code&&(0,s.jsxs)("span",{className:"text-[10px] font-bold px-1.5 py-0.5 rounded-full bg-[var(--bg-elevated)] text-[var(--text-secondary)] tabular-nums shrink-0",children:["HTTP ",t.code]})]}),(0,s.jsx)("p",{className:"text-xs text-[var(--text-secondary)] mt-0.5 break-words",children:t.detail})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 text-[11px] text-[var(--text-muted)] md:justify-end",children:[(0,s.jsx)("span",{children:m[t.source].libelle}),t.lien&&(0,s.jsx)(o.Z,{size:14,"aria-hidden":"true"})]})]});return(0,s.jsx)("li",{children:t.lien?(0,s.jsx)(n.default,{href:t.lien,className:"block hover:bg-[var(--bg-elevated)] transition-colors",children:r}):r})}}}]);

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.