From 2fbe947c0dcf56a2057c983c0d5e5d942554e760 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 21 Oct 2026 14:43:24 +0200 Subject: [PATCH] Fix CSRF token error in the backend --- resources/dist/build/assets/cp-CXEiY1D_.js | 1 - resources/dist/build/assets/cp-CdBRyqk6.js | 1 + resources/dist/build/manifest.json | 2 +- resources/js/actions/exportReplicator.js | 1 + resources/js/actions/importReplicator.js | 1 + 5 files changed, 4 insertions(+), 2 deletions(-) delete mode 100644 resources/dist/build/assets/cp-CXEiY1D_.js create mode 100644 resources/dist/build/assets/cp-CdBRyqk6.js diff --git a/resources/dist/build/assets/cp-CXEiY1D_.js b/resources/dist/build/assets/cp-CXEiY1D_.js deleted file mode 100644 index 6e45bfa..0000000 --- a/resources/dist/build/assets/cp-CXEiY1D_.js +++ /dev/null @@ -1 +0,0 @@ -const u=t=>{var n;return(Statamic.$config.get("replicatorTransferHandles")||[]).includes((n=t==null?void 0:t.vm)==null?void 0:n.handle)};function h(){return{title:"Export replicator",visible:u,async run(t){const e=await fetch(cp_url("replicator-transfer/export"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({value:t.value,meta:t.meta})});if(!e.ok)throw new Error("Export failed.");const n=await e.blob(),o=URL.createObjectURL(n),r=document.createElement("a");r.href=o,r.download="export.json",document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(o)}}}function w(){return{title:"Import replicator",visible:u,confirm:{fields:{name:{type:"files",display:"Import json",max_files:1,accept:".json",validate:["required"]}}},async run({confirmation:t,update:e,updateMeta:n,value:o,meta:r,vm:m}){const a=await fetch(cp_url("replicator-transfer/import"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({file:t.processed.name})});if(!a.ok)throw new Error("Import failed.");const c=await a.json(),s=await Promise.all((c.value||[]).map(async i=>{var d,f;const l=y(),p=((f=(d=c.meta)==null?void 0:d.existing)==null?void 0:f[i._id])||await S(m,i.type);return{set:{...i,_id:l},meta:p?[l,JSON.parse(JSON.stringify(p))]:null}}));n({...r||{},existing:{...(r==null?void 0:r.existing)||{},...Object.fromEntries(s.map(({meta:i})=>i).filter(Boolean))}}),e([...Array.isArray(o)?o:[],...s.map(({set:i})=>i)])}}}const y=()=>{var t,e;return((e=(t=window.crypto)==null?void 0:t.randomUUID)==null?void 0:e.call(t))||Math.random().toString(36).slice(2)},S=async(t,e)=>!e||!(t!=null&&t.fetchSet)?null:(await t.fetchSet(e)).new||null;Statamic.$fieldActions.add("replicator-fieldtype",h());Statamic.$fieldActions.add("replicator-fieldtype",w()); diff --git a/resources/dist/build/assets/cp-CdBRyqk6.js b/resources/dist/build/assets/cp-CdBRyqk6.js new file mode 100644 index 0000000..c0fc2e8 --- /dev/null +++ b/resources/dist/build/assets/cp-CdBRyqk6.js @@ -0,0 +1 @@ +const h=t=>{var r;return(Statamic.$config.get("replicatorTransferHandles")||[]).includes((r=t==null?void 0:t.vm)==null?void 0:r.handle)};function S(){return{title:"Export replicator",visible:h,async run(t){var a;const e=await fetch(cp_url("replicator-transfer/export"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","X-XSRF-TOKEN":decodeURIComponent(((a=document.cookie.split("; ").find(c=>c.startsWith("XSRF-TOKEN=")))==null?void 0:a.split("=")[1])??"")},body:JSON.stringify({value:t.value,meta:t.meta})});if(!e.ok)throw new Error("Export failed.");const r=await e.blob(),o=URL.createObjectURL(r),i=document.createElement("a");i.href=o,i.download="export.json",document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(o)}}}function w(){return{title:"Import replicator",visible:h,confirm:{fields:{name:{type:"files",display:"Import json",max_files:1,accept:".json",validate:["required"]}}},async run({confirmation:t,update:e,updateMeta:r,value:o,meta:i,vm:a}){var p;const c=await fetch(cp_url("replicator-transfer/import"),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","X-XSRF-TOKEN":decodeURIComponent(((p=document.cookie.split("; ").find(n=>n.startsWith("XSRF-TOKEN=")))==null?void 0:p.split("=")[1])??"")},body:JSON.stringify({file:t.processed.name})});if(!c.ok)throw new Error("Import failed.");const s=await c.json(),l=await Promise.all((s.value||[]).map(async n=>{var m,u;const d=y(),f=((u=(m=s.meta)==null?void 0:m.existing)==null?void 0:u[n._id])||await b(a,n.type);return{set:{...n,_id:d},meta:f?[d,JSON.parse(JSON.stringify(f))]:null}}));r({...i||{},existing:{...(i==null?void 0:i.existing)||{},...Object.fromEntries(l.map(({meta:n})=>n).filter(Boolean))}}),e([...Array.isArray(o)?o:[],...l.map(({set:n})=>n)])}}}const y=()=>{var t,e;return((e=(t=window.crypto)==null?void 0:t.randomUUID)==null?void 0:e.call(t))||Math.random().toString(36).slice(2)},b=async(t,e)=>!e||!(t!=null&&t.fetchSet)?null:(await t.fetchSet(e)).new||null;Statamic.$fieldActions.add("replicator-fieldtype",S());Statamic.$fieldActions.add("replicator-fieldtype",w()); diff --git a/resources/dist/build/manifest.json b/resources/dist/build/manifest.json index 1e476fc..f1d026d 100644 --- a/resources/dist/build/manifest.json +++ b/resources/dist/build/manifest.json @@ -1,6 +1,6 @@ { "resources/js/cp.js": { - "file": "assets/cp-CXEiY1D_.js", + "file": "assets/cp-CdBRyqk6.js", "name": "cp", "src": "resources/js/cp.js", "isEntry": true diff --git a/resources/js/actions/exportReplicator.js b/resources/js/actions/exportReplicator.js index ec124ce..d7d41fe 100644 --- a/resources/js/actions/exportReplicator.js +++ b/resources/js/actions/exportReplicator.js @@ -11,6 +11,7 @@ export default function exportReplicator() { headers: { 'Content-Type': 'application/json', Accept: 'application/json', + 'X-XSRF-TOKEN': decodeURIComponent(document.cookie.split('; ').find(r => r.startsWith('XSRF-TOKEN='))?.split('=')[1] ?? ''), }, body: JSON.stringify({ value: payload.value, diff --git a/resources/js/actions/importReplicator.js b/resources/js/actions/importReplicator.js index 8923bda..6a8f1bb 100644 --- a/resources/js/actions/importReplicator.js +++ b/resources/js/actions/importReplicator.js @@ -31,6 +31,7 @@ export default function importReplicator() { headers: { 'Content-Type': 'application/json', Accept: 'application/json', + 'X-XSRF-TOKEN': decodeURIComponent(document.cookie.split('; ').find(r => r.startsWith('XSRF-TOKEN='))?.split('=')[1] ?? ''), }, body: JSON.stringify({ file: confirmation.processed.name,