@blinkk/root-cms 3.1.4 → 3.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +3 -2
- package/dist/{chunk-AFBSITEO.js → chunk-PLSNGCYU.js} +200 -22
- package/dist/{chunk-MYN76V3L.js → chunk-U4TMO2LI.js} +2 -2
- package/dist/{chunk-NC3CRIFA.js → chunk-Z2CTQVYR.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/client.js +1 -1
- package/dist/core/client.d.ts +30 -2
- package/dist/core/cron-schedule.d.ts +63 -0
- package/dist/core/plugin.d.ts +6 -1
- package/dist/core/schema.d.ts +88 -3
- package/dist/core.js +1 -1
- package/dist/functions.js +2 -2
- package/dist/plugin.js +7 -5
- package/dist/richtext.js +1 -1
- package/dist/shared/embed-protocol.d.ts +19 -0
- package/dist/ui/AIPage-EO5WH25R.js +1 -0
- package/dist/ui/{AssetsPage-QUL2NBWK.js → AssetsPage-ESLB4R3I.js} +1 -1
- package/dist/ui/CollectionPage-MXN7XKUX.js +1 -0
- package/dist/ui/{ComparePage-DCP5QHDE.js → ComparePage-TY7VJVE3.js} +1 -1
- package/dist/ui/{DataPage-TUVFBALT.js → DataPage-YEIS7HBN.js} +1 -1
- package/dist/ui/{DataSourcePage-YE2ZOHYI.js → DataSourcePage-VD6YBDRW.js} +1 -1
- package/dist/ui/{DocTranslationsPage-3ILTQOP2.js → DocTranslationsPage-6XLREBPQ.js} +1 -1
- package/dist/ui/DocumentPage-2HNNEGRI.js +1 -0
- package/dist/ui/{EditDataSourcePage-WHPZDMD4.js → EditDataSourcePage-E4PSKSG3.js} +1 -1
- package/dist/ui/EditReleasePage-DOMXJXCU.js +1 -0
- package/dist/ui/EmbeddedAIPage-U5LONYH2.js +1 -0
- package/dist/ui/EmbeddedDocumentPage-HYV5GPK6.js +1 -0
- package/dist/ui/{ImageEditorDialog-Q44YTLB5.js → ImageEditorDialog-YDKOGVJV.js} +1 -1
- package/dist/ui/LogsPage-6KV3CQLH.js +1 -0
- package/dist/ui/NewDataSourcePage-NJJDHGPX.js +1 -0
- package/dist/ui/NewReleasePage-FXHPFUVG.js +1 -0
- package/dist/ui/{NotFoundPage-RMNPVSD3.js → NotFoundPage-CA7XVXUO.js} +1 -1
- package/dist/ui/{ProjectPage-VY4EJX6J.js → ProjectPage-XUBJSCWB.js} +1 -1
- package/dist/ui/ReleasePage-NLGRYJX7.js +1 -0
- package/dist/ui/{ReleasesPage-A4BLUNJE.js → ReleasesPage-OY7OKC3C.js} +1 -1
- package/dist/ui/{SettingsPage-MP3YHQDP.js → SettingsPage-5EQUY52A.js} +1 -1
- package/dist/ui/SidebarToolsPage-FWG6TIDI.js +1 -0
- package/dist/ui/TaskPage-APNRUOYG.js +1 -0
- package/dist/ui/TasksPage-FTEELXVZ.js +1 -0
- package/dist/ui/{TranslationsArbPage-B7TIRREV.js → TranslationsArbPage-PG5USRYB.js} +1 -1
- package/dist/ui/{TranslationsEditPage-VQG4YHA6.js → TranslationsEditPage-GV3ZJXTY.js} +1 -1
- package/dist/ui/{TranslationsPage-6VCVMNXI.js → TranslationsPage-3AKSMCNF.js} +1 -1
- package/dist/ui/{chunk-5SY2SVEX.js → chunk-235TRWJF.js} +2 -2
- package/dist/ui/{chunk-EYVQCOAD.js → chunk-2PTLQRTU.js} +1 -1
- package/dist/ui/{chunk-FF4CLAZS.js → chunk-2RRM4HEQ.js} +1 -1
- package/dist/ui/{chunk-MAZJRNAL.js → chunk-34W6H4YG.js} +1 -1
- package/dist/ui/{chunk-AZ2SK2ZK.js → chunk-3LEYSXZP.js} +1 -1
- package/dist/ui/{chunk-L3O3CLWO.js → chunk-44ZU5WMI.js} +1 -1
- package/dist/ui/{chunk-MYKJ6VAM.js → chunk-535JU7FU.js} +1 -1
- package/dist/ui/chunk-56NMZYX6.js +19 -0
- package/dist/ui/{chunk-3WQCVKK4.js → chunk-6WJQBFN5.js} +1 -1
- package/dist/ui/{chunk-UHK5N75L.js → chunk-75NMQ3LW.js} +1 -1
- package/dist/ui/{chunk-4N6CPIOQ.js → chunk-A7IZAHBZ.js} +1 -1
- package/dist/ui/{chunk-2PDMFZBF.js → chunk-C5FRMXDS.js} +1 -1
- package/dist/ui/chunk-EYJ6GKZR.js +1 -0
- package/dist/ui/{chunk-VB5VMEN7.js → chunk-F7RQT4XN.js} +1 -1
- package/dist/ui/chunk-G5647K25.js +1 -0
- package/dist/ui/{chunk-74OB6FM4.js → chunk-H37RXS4R.js} +1 -1
- package/dist/ui/{chunk-LC6WLVRS.js → chunk-HV3JJ5UT.js} +1 -1
- package/dist/ui/{chunk-K3UM5OQF.js → chunk-HXSB6YB2.js} +1 -1
- package/dist/ui/chunk-ISUGBMXC.js +1 -0
- package/dist/ui/{chunk-WN7HUDGY.js → chunk-JBLSUM6W.js} +1 -1
- package/dist/ui/chunk-LAXQZPE3.js +31 -0
- package/dist/ui/chunk-MYPLMHFW.js +1 -0
- package/dist/ui/{chunk-KBJ4AK5O.js → chunk-NCZD5IWS.js} +1 -1
- package/dist/ui/{chunk-XJUQOX4E.js → chunk-O7ESOZQO.js} +1 -1
- package/dist/ui/chunk-OWYV43BT.js +1 -0
- package/dist/ui/{chunk-XM35ZJBQ.js → chunk-PIJ3E47R.js} +1 -1
- package/dist/ui/{chunk-WAT22UHZ.js → chunk-PLYSJ7W5.js} +1 -1
- package/dist/ui/{chunk-H3PYPGNR.js → chunk-QFDU6FXP.js} +1 -1
- package/dist/ui/{chunk-JSWRHHTZ.js → chunk-QGAPMQEJ.js} +1 -1
- package/dist/ui/{chunk-W3ICOHMF.js → chunk-QLIIVG5Q.js} +1 -1
- package/dist/ui/{chunk-ELKXEMOU.js → chunk-QRAFYIAW.js} +1 -1
- package/dist/ui/{chunk-VRRRFAIV.js → chunk-QWB6MAPJ.js} +1 -1
- package/dist/ui/{chunk-GCMX5V3P.js → chunk-RB23LLKL.js} +1 -1
- package/dist/ui/{chunk-W2ZAVRAT.js → chunk-ST6QNIWT.js} +57 -57
- package/dist/ui/{chunk-76PG55CM.js → chunk-U7LSFUHT.js} +1 -1
- package/dist/ui/{chunk-HVYNDEA7.js → chunk-UCYWQEAS.js} +1 -1
- package/dist/ui/{chunk-6P75AZ3B.js → chunk-UJX25CXD.js} +1 -1
- package/dist/ui/chunk-UOKVF54Y.js +3 -0
- package/dist/ui/{chunk-CSUKZZK5.js → chunk-VJRMR2JM.js} +1 -1
- package/dist/ui/{chunk-WS37MDM3.js → chunk-WASID5UU.js} +1 -1
- package/dist/ui/chunk-WRA24P66.js +7 -0
- package/dist/ui/{chunk-ETPZ3TXX.js.LEGAL.txt → chunk-WRA24P66.js.LEGAL.txt} +4 -1
- package/dist/ui/{chunk-QHOZXW7Y.js → chunk-Y5EOMMNI.js} +1 -1
- package/dist/ui/{chunk-EIMRPYCD.js → chunk-YBHFGQ3Z.js} +1 -1
- package/dist/ui/{chunk-62VPTZJL.js → chunk-YP6ZH3MT.js} +1 -1
- package/dist/ui/chunk-Z2CRNO3I.js +1 -0
- package/dist/ui/{chunk-PR7NB5VK.js → chunk-Z3ZJJWFT.js} +1 -1
- package/dist/ui/{chunk-F4F5MH7A.js → chunk-ZAJPNVYS.js} +1 -1
- package/dist/ui/ui.css +1 -1
- package/dist/ui/ui.js +1 -1
- package/package.json +3 -3
- package/dist/ui/AIPage-4W4MFELY.js +0 -1
- package/dist/ui/CollectionPage-7VU6SUUP.js +0 -1
- package/dist/ui/DocumentPage-JFQ3Y2GH.js +0 -1
- package/dist/ui/EditReleasePage-QKWHIURV.js +0 -1
- package/dist/ui/EmbeddedAIPage-SQLOV4IT.js +0 -1
- package/dist/ui/EmbeddedDocumentPage-6FYHUHTE.js +0 -1
- package/dist/ui/LogsPage-RC5O722W.js +0 -1
- package/dist/ui/NewDataSourcePage-QXW54CHQ.js +0 -1
- package/dist/ui/NewReleasePage-TKYWVTOH.js +0 -1
- package/dist/ui/ReleasePage-VZAL4KUI.js +0 -1
- package/dist/ui/SidebarToolsPage-S5DMIEQ6.js +0 -1
- package/dist/ui/TaskPage-LCBDMA4I.js +0 -1
- package/dist/ui/TasksPage-72KVSUQY.js +0 -1
- package/dist/ui/chunk-ETPZ3TXX.js +0 -7
- package/dist/ui/chunk-IMXZTYAA.js +0 -3
- package/dist/ui/chunk-J5KDO4RM.js +0 -1
- package/dist/ui/chunk-NEA3XU6N.js +0 -19
- package/dist/ui/chunk-RN4XVVWD.js +0 -1
- package/dist/ui/chunk-SLLTYDVX.js +0 -1
- package/dist/ui/chunk-SWTNOWNE.js +0 -1
- package/dist/ui/chunk-V3G3554T.js +0 -31
- package/dist/ui/chunk-YV5SGR24.js +0 -1
- /package/dist/ui/{ImageEditorDialog-Q44YTLB5.js.LEGAL.txt → ImageEditorDialog-YDKOGVJV.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-5SY2SVEX.js.LEGAL.txt → chunk-235TRWJF.js.LEGAL.txt} +0 -0
- /package/dist/ui/{chunk-W2ZAVRAT.js.LEGAL.txt → chunk-ST6QNIWT.js.LEGAL.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as te,g as se,h as U,i as oe,j as ne,m as ie}from"./chunk-DZYYWCHX.js";import{D as p,a as k,b as I,c as l,f as J,g as x,h as D,i as O,j as F,l as Y,n as B,o as j,p as M,q as w,r as Z,t as $,u as R,v as m,w as ee,x as T}from"./chunk-XOWWPE7X.js";import{k as N}from"./chunk-7SK47HHZ.js";function re(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null}function ce(e){return re(e)&&Array.isArray(e.blocks)&&e.blocks.length>0}var X=new Map;function Re(e){return X.get(e)||null}async function We(e){let t=Re(e);if(t)return t;let s=b(e),o=(await B(s)).data();return De(e,o),o}function De(e,t){X.set(e,t)}function q(e){X.delete(e)}function L(e){for(let t of e)q(t)}function ae(e){e||(e=6);let t=[],s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=s.length;for(let o=0;o<e;o++)t.push(s.charAt(Math.floor(Math.random()*n)));return t.join("")}var v=class extends Error{},le=200,Ce=/[/\\\u0000-\u001f]/;function C(){let e=window.__ROOT_CTX.rootConfig.projectId,t=window.firebase.db;return I(t,"Projects",e,"Assets")}var Te="root-cms:assetPicker:lastFolder";function ue(){let e=window.__ROOT_CTX.rootConfig.projectId;return`${Te}:${e}`}function rt(){try{return localStorage.getItem(ue())||""}catch{return""}}function ct(e){try{localStorage.setItem(ue(),e||"")}catch{}}function H(e){let t=(e||"").trim();if(!t)throw new v("Name is required.");if(t.length>le)throw new v(`Name is too long (max ${le} chars).`);if(Ce.test(t))throw new v("Name cannot contain slashes.");if(t==="."||t==="..")throw new v("Invalid name.");return t}function _(e,t){return e?`${e}/${t}`:t}function at(e){return e?e.split("/").filter(Boolean):[]}function E(e){return`folder-${encodeURIComponent(e)}`}function me(e){return e.sort((t,s)=>t.type!==s.type?t.type==="folder"?-1:1:(t.name||"").localeCompare(s.name||"",void 0,{numeric:!0,sensitivity:"base"}))}function pe(e){return!!e&&typeof e.name=="string"&&(e.type==="file"||e.type==="folder")}async function Be(e){let t=C(),s=x(t,D("parent","==",e||"")),n=await j(s),o=[];return n.forEach(i=>{let r=i.data();pe(r)&&o.push(r)}),me(o)}var de=1e3;async function lt(e){let t=C(),s;e?s=x(t,D("parent",">=",e),D("parent","<=",`${e}\uF8FF`),F(de)):s=x(t,F(de));let n=await j(s),o=[];return n.forEach(i=>{let r=i.data();pe(r)&&(!e||Q(r.parent,e))&&o.push(r)}),me(o)}function dt(e,t){return t?e===t?"":e.startsWith(`${t}/`)?e.slice(t.length+1):e:e}async function P(e){let t=l(C(),e),s=await B(t);return s.exists()?s.data():null}async function ft(e,t){let s=H(t),n=_(e,s),o=E(n),i=l(C(),o),r={id:o,type:"folder",parent:e||"",name:s,createdAt:m(),createdBy:window.firebase.user.email,modifiedAt:m(),modifiedBy:window.firebase.user.email};return await M(i,r,{merge:!0}),p("asset.folder_create",{metadata:{folder:n}}),await P(o)}async function ut(e){let t=W(e.file),s=H(e.name||t.filename||Fe(t.src)),n=ae(12),o=l(C(),n);return await M(o,{id:n,type:"file",parent:e.parent||"",name:s,file:t,createdAt:m(),createdBy:window.firebase.user.email,modifiedAt:m(),modifiedBy:window.firebase.user.email}),p("asset.upload",{metadata:{assetId:n,name:s}}),await P(n)}async function mt(e,t){let s=H(t);if(s===e.name)return;if(e.type==="folder"){let o=_(e.parent,e.name),i=_(e.parent,s);await ge(e,i,s,e.parent),p("asset.rename",{metadata:{from:o,to:i}});return}let n=l(C(),e.id);await w(n,{name:s,modifiedAt:m(),modifiedBy:window.firebase.user.email}),p("asset.rename",{metadata:{assetId:e.id,from:e.name,to:s}})}async function pt(e,t){let s=t||"";if(s===e.parent)return;if(e.type==="folder"){let o=_(e.parent,e.name),i=_(s,e.name);if(i===o||Q(i,o))throw new Error("Cannot move a folder into itself.");await ge(e,i,e.name,s),p("asset.move",{metadata:{from:o,to:i}});return}let n=l(C(),e.id);await w(n,{parent:s,modifiedAt:m(),modifiedBy:window.firebase.user.email}),p("asset.move",{metadata:{assetId:e.id,from:e.parent,to:s}})}function Q(e,t){return e===t||e.startsWith(`${t}/`)}async function ge(e,t,s,n){let o=_(e.parent,e.name),i=C(),r=window.firebase.db,c=x(i,D("parent",">=",o),D("parent","<=",`${o}\uF8FF`)),a=await j(c),f=[];a.forEach(h=>{let A=h.data();Q(A.parent,o)&&f.push(A)});let d=T(r),g=0,y=async()=>{g+=1,g>=400&&(await d.commit(),d=T(r),g=0)},u=E(t);d.set(l(i,u),{id:u,type:"folder",parent:n,name:s,createdAt:e.createdAt??m(),createdBy:e.createdBy??window.firebase.user.email,modifiedAt:m(),modifiedBy:window.firebase.user.email}),await y();for(let h of f){let A=t+h.parent.slice(o.length);if(h.type==="folder"){let S=_(A,h.name);d.set(l(i,E(S)),{...h,id:E(S),parent:A,modifiedAt:m(),modifiedBy:window.firebase.user.email}),await y(),d.delete(l(i,h.id)),await y()}else d.update(l(i,h.id),{parent:A,modifiedAt:m(),modifiedBy:window.firebase.user.email}),await y()}u!==e.id&&(d.delete(l(i,e.id)),g+=1),g>0&&await d.commit()}async function gt(e){if(e.type==="folder"){let t=_(e.parent,e.name);if((await Be(t)).length>0)throw new Error("Folder is not empty.")}await Z(l(C(),e.id)),p("asset.delete",{metadata:{assetId:e.id,name:e.name}})}async function yt(e,t){let s=W(t);!s.alt&&e.file?.alt&&(s.alt=e.file.alt),e.file?.altDisabled&&(s.altDisabled=!0);let n=l(C(),e.id),o={file:s,modifiedAt:m(),modifiedBy:window.firebase.user.email},i=N(s.filename||s.src||""),r=je(e.name,i);return r!==e.name&&(o.name=r),await w(n,o),p("asset.replace",{metadata:{assetId:e.id,name:e.name}}),await P(e.id)}function je(e,t){let s=(e||"").lastIndexOf(".");return!t||s<=0||N(e)===t?e:`${e.slice(0,s)}.${t}`}async function ht(e,t){let s=l(C(),e.id);return await w(s,{"file.alt":t||"",modifiedAt:m(),modifiedBy:window.firebase.user.email}),await P(e.id)}async function wt(e,t){let s=l(C(),e.id);return await w(s,{"file.altDisabled":t?!0:R(),modifiedAt:m(),modifiedBy:window.firebase.user.email}),p("asset.alt_disabled",{metadata:{assetId:e.id,name:e.name,disabled:t}}),await P(e.id)}function _e(e){let t={...W(e.file),assetId:e.id};return t.altDisabled&&(t.alt=""),t}function K(e){let t=new Set;return G(e,t),Array.from(t).sort()}function G(e,t){if(!(!e||typeof e!="object")){if(Array.isArray(e)){for(let s of e)G(s,t);return}if(typeof e.toMillis!="function"){if(z(e)){t.add(e.assetId);return}for(let s of Object.keys(e))G(e[s],t)}}}function z(e){return typeof e?.assetId=="string"&&typeof e?.src=="string"}function fe(e){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let t of e)if(fe(t))return!0;return!1}if(typeof e.toMillis=="function")return!1;if(z(e))return!0;for(let t of Object.keys(e))if(fe(e[t]))return!0;return!1}async function ke(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,n=Object.keys(window.__ROOT_CTX.collections||{});return(await Promise.all(n.map(async r=>{let c=I(s,"Projects",t,"Collections",r,"Drafts"),a=x(c,D("sys.assets","array-contains",e)),f=await j(a),d=[];return f.forEach(g=>{d.push(g.data())}),d}))).flat().sort((r,c)=>r.id.localeCompare(c.id))}async function bt(e,t={}){let s=window.__ROOT_CTX.rootConfig.projectId,n=window.firebase.db,o=t.docs??await ke(e.id),i=[],r=[];for(let c of o){let a=[];if(ye(c.fields,e.id,"fields",a),a.length===0)continue;let f={};for(let u of a)f[u.path]=Ie(e,u.value,t.previousFile);f["sys.modifiedAt"]=m(),f["sys.modifiedBy"]=window.firebase.user.email;let[d,g]=c.id.split("/"),y=l(n,"Projects",s,"Collections",d,"Drafts",g);try{await w(y,f),i.push(c.id)}catch(u){console.error(`failed to sync asset ${e.id} to ${c.id}:`,u),r.push(c.id)}}return i.length>0&&(L(i),p("asset.sync",{metadata:{assetId:e.id,name:e.name,docIds:i}})),{updatedDocIds:i,failedDocIds:r}}function ye(e,t,s,n){if(!(!e||typeof e!="object")&&!Array.isArray(e)&&typeof e.toMillis!="function"){if(z(e)){e.assetId===t&&n.push({path:s,value:e});return}for(let o of Object.keys(e))ye(e[o],t,`${s}.${o}`,n)}}function Ie(e,t,s){let n=_e(e);if(!e.file?.altDisabled){let i=s?.alt??e.file?.alt??"",r=t?.alt||"";r&&r!==i&&(n.alt=r)}let o=s?.canvasBgColor??e.file?.canvasBgColor;return t?.canvasBgColor&&t.canvasBgColor!==o&&(n.canvasBgColor=t.canvasBgColor),n}function W(e){let t={};return Object.entries(e||{}).forEach(([s,n])=>{n!==void 0&&(t[s]=n)}),t}function Fe(e){return(e||"").split("?")[0].split("/").pop()||"untitled"}async function Ft(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,[n,o]=e.split("/"),i=l(s,"Projects",t,"Collections",n,"Drafts",o),r=l(s,"Projects",t,"Collections",n,"Published",o),c=l(s,"Projects",t,"Collections",n,"Scheduled",o),a=T(s);a.delete(i),a.delete(r),a.delete(c),await a.commit(),console.log(`deleted doc: ${e}`),p("doc.delete",{metadata:{docId:e}})}async function vt(e,t){await ve([e],t)}async function ve(e,t){if(e.length===0){console.log("no docs to publish");return}let s=window.firebase.db;if(e.length>100)throw new Error("publish docs exceeds limit of 100 docs. break up your request into multiple calls.");let n=await Ve(e),o=t?.batch||T(s),i=["published"];t?.releaseId&&i.push(`release:${t.releaseId}`),e.forEach(r=>{let c=n[r];if(!c)throw new Error(`doc does not exist: ${r}`);Me(o,r,c,i,t?.publishMessage)}),await o.commit(),e.length===1?console.log(`published ${e[0]}`):console.log(`published ${e.length} docs: ${e.join(", ")}`);for(let r of e){let c={docId:r};t?.publishMessage&&(c.publishMessage=t.publishMessage),p("doc.publish",{metadata:c})}L(e)}function Me(e,t,s,n,o){if(Se(s))throw new Error(`publishing is locked for doc: ${s.id}`);if(Pe(s))throw new Error(`cannot publish archived doc: ${s.id}`);let i=window.__ROOT_CTX.rootConfig.projectId,r=window.firebase.db,[c,a]=t.split("/"),f=l(r,"Projects",i,"Collections",c,"Drafts",a),d=l(r,"Projects",i,"Collections",c,"Scheduled",a),g=l(r,"Projects",i,"Collections",c,"Published",a),y={...s},u=y.sys??{};u.modifiedAt=m(),u.modifiedBy=window.firebase.user.email,u.publishedAt=m(),u.publishedBy=window.firebase.user.email,u.firstPublishedAt??=m(),u.firstPublishedBy??=window.firebase.user.email,delete u.scheduledAt,delete u.scheduledBy,e.update(f,{sys:u}),e.set(g,{...y,sys:u}),e.delete(d);let h=l(r,"Projects",i,"Collections",c,"Drafts",a,"Versions",String(Date.now())),A={id:t,collection:c,slug:a,fields:y.fields||{},sys:u};n?.length&&(A.tags=n),o&&(A.publishMessage=o),e.set(h,A)}async function Mt(e,t,s){let n=window.__ROOT_CTX.rootConfig.projectId,o=window.firebase.db,[i,r]=e.split("/"),c=l(o,"Projects",n,"Collections",i,"Drafts",r),a=l(o,"Projects",n,"Collections",i,"Scheduled",r);await $(o,async d=>{let g=await d.get(c);if(!g.exists())throw new Error(`${c.id} does not exist`);let y={...g.data()},u=y.sys??{};u.modifiedAt=m(),u.modifiedBy=window.firebase.user.email,u.scheduledAt=k.fromMillis(t),u.scheduledBy=window.firebase.user.email,d.update(c,{sys:u});let h={...y,sys:u};s?.publishMessage&&(h.scheduledPublishMessage=s.publishMessage),d.set(a,h)}),console.log(`saved ${a.id}`);let f={docId:e,scheduledAt:t};s?.publishMessage&&(f.publishMessage=s.publishMessage),p("doc.schedule",{metadata:f})}async function Pt(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,[n,o]=e.split("/"),i=l(s,"Projects",t,"Collections",n,"Drafts",o),r=l(s,"Projects",t,"Collections",n,"Scheduled",o),c=l(s,"Projects",t,"Collections",n,"Published",o),a=T(s);a.update(i,{"sys.modifiedAt":m(),"sys.modifiedBy":window.firebase.user.email,"sys.publishedAt":R(),"sys.publishedBy":R(),"sys.firstPublishedAt":R(),"sys.firstPublishedBy":R()}),a.delete(r),a.delete(c),await a.commit(),console.log(`unpublished ${e}`),p("doc.unpublish",{metadata:{docId:e}}),q(e)}async function St(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,[n,o]=e.split("/"),i=l(s,"Projects",t,"Collections",n,"Drafts",o),r=l(s,"Projects",t,"Collections",n,"Published",o);await $(s,async c=>{let a=await c.get(r);if(!a.exists())throw new Error(`${r.id} does not exist`);let f=a.data();c.set(i,f)}),console.log(`reverted draft ${e}`),p("doc.revert",{metadata:{docId:e}})}async function Ot(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,[n,o]=e.split("/"),i=l(s,"Projects",t,"Collections",n,"Drafts",o),r=l(s,"Projects",t,"Collections",n,"Scheduled",o),c=T(s);c.update(i,{"sys.modifiedAt":m(),"sys.modifiedBy":window.firebase.user.email,"sys.scheduledAt":R(),"sys.scheduledBy":R()}),c.delete(r),await c.commit(),console.log(`unscheduled ${e}`),p("doc.unschedule",{metadata:{docId:e}})}async function Lt(e,t){let s={lockedAt:m(),lockedBy:window.firebase.user.email,reason:t.reason||`Locked by ${window.firebase.user.email}.`};t.until&&(s.until=k.fromMillis(t.until));let n=b(e);await w(n,{"sys.publishingLocked":s});let i={docId:e,reason:t.reason};t.until&&(i.until=t.until),p("doc.lock_publishing",{metadata:i})}async function Et(e){let t=b(e),s={"sys.publishingLocked":R()};await w(t,s),p("doc.unlock_publishing",{metadata:{docId:e}})}async function Vt(e){let t=b(e);await w(t,{"sys.archivedAt":m(),"sys.archivedBy":window.firebase.user.email}),p("doc.archive",{metadata:{docId:e}})}async function $t(e){let t=b(e);await w(t,{"sys.archivedAt":R(),"sys.archivedBy":R()}),p("doc.unarchive",{metadata:{docId:e}})}function Pe(e){return!!e?.sys?.archivedAt}function Nt(e){let t=k.now().toMillis();return(e?.sys?.scheduledAt?.toMillis()||0)>t}function Se(e){if(e?.sys?.publishingLocked){if(e.sys.publishingLocked.until){let t=k.now().toMillis(),s=e.sys.publishingLocked.until.toMillis();return t<s}return!0}return!1}async function Ut(e,t,s){let n=b(e),o=await B(n);if(!o.exists())throw new Error(`doc ${e} does not exist`);let i=o.data(),r=i.fields??{},c=i.sys?.locales;await Oe(t,{fields:r,locales:c,overwrite:s?.overwrite})}async function Oe(e,t){let[s,n]=e.split("/"),o=b(e),i=await B(o);if(i.exists()&&!t?.overwrite)throw new Error(`${e} already exists`);let r=t?.fields??{},c={id:e,collection:s,slug:n,sys:{createdAt:m(),createdBy:window.firebase.user.email,modifiedAt:m(),modifiedBy:window.firebase.user.email,locales:t?.locales??["en"]},fields:r};if(i.exists()&&t?.overwrite){let f=i.data();c.sys={...f.sys,locales:t?.locales??f.sys.locales,modifiedAt:m(),modifiedBy:window.firebase.user.email}}let a=K(r);a.length>0?c.sys.assets=a:delete c.sys.assets,await M(o,c),p("doc.create",{metadata:{docId:e}})}async function Xt(e,t,s){let n={};for(let d of t){if(!d.source)continue;let g={source:U(d.source)},y={},u={};Object.entries(d).forEach(([A,S])=>{if(A==="source")return;let Ae=ne(A);for(let V of ie(A)){if(oe(V))continue;let xe=V===Ae?u:y;xe[V]=U(S||"")}}),Object.assign(g,y,u);let h=await se(g.source);n[h]=g}let i=[e.split("/")[0],e];s?.tags&&i.push(...s.tags);let r=te(),c=window.firebase.db,a=T(c),f=0;for(let d in n){let g=n[d],y=l(r,d);a.set(y,{...g,tags:ee(...i)},{merge:!0}),f+=1,f>=500&&(await a.commit(),a=T(c),console.log(`saved ${f} strings`),f=0)}return f>0&&(await a.commit(),console.log(`saved ${f} strings`)),p("doc.import_translations",{metadata:{docId:e,...s?.actionMetadata},links:s?.actionLinks}),n}function b(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,[n,o]=e.split("/");return l(s,"Projects",t,"Collections",n,"Drafts",o)}function Le(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,[n,o]=e.split("/");return l(s,"Projects",t,"Collections",n,"Published",o)}function Ee(e,t){let s=window.__ROOT_CTX.rootConfig.projectId,n=window.firebase.db,[o,i]=e.split("/");return l(n,"Projects",s,"Collections",o,"Drafts",i,"Versions",t)}async function Ve(e){let t=window.__ROOT_CTX.rootConfig.projectId,s=window.firebase.db,n={};e.forEach(i=>{let[r,c]=i.split("/");r in n?n[r].push(c):n[r]=[c]});let o={};return await Promise.all(Object.entries(n).map(async([i,r])=>{let c=I(s,"Projects",t,"Collections",i,"Drafts"),a=x(c,D(J(),"in",r));(await j(a)).forEach(d=>{let g=`${i}/${d.id}`;o[g]=d.data()})})),o}async function qt(e,t){let s=window.firebase.db,n=b(e),o=I(s,n.path,"Versions"),i=t?.limit??50,r=x(o,O("sys.modifiedAt","desc"),F(i));t?.tags&&(r=x(r,D("tags","array-contains-any",t.tags))),t?.cursor&&(r=x(r,Y(t.cursor)));let c=await j(r),a=[],f=null;return c.forEach(d=>{let g={...d.data(),_versionId:d.id};a.push(g),f=d}),{versions:a,lastDoc:f,hasMore:c.size===i}}async function Gt(e,t){let s=b(e),n={"sys.modifiedAt":m(),"sys.modifiedBy":window.firebase.user.email,"sys.assets":K(t.fields||{}),fields:t.fields||{}};await w(s,n),p("doc.restore_version",{metadata:{docId:e,versionModifiedAt:t.sys?.modifiedAt,versionModifiedBy:t.sys?.modifiedBy}})}var $e=/^(before|after):(\d+)$/,Ne=10*1e3;async function Ue(e,t){let s=String(t).match($e);if(s)return await Xe(e,s[1],parseInt(s[2]));let n;t==="draft"?n=b(e):t==="published"?n=Le(e):n=Ee(e,t);let o=await B(n);return o.exists()?o.data():null}async function Xe(e,t,s){let n=window.firebase.db,o=b(e),i=I(n,o.path,"Versions"),r=k.fromMillis(s-Ne),c;t==="before"?c=x(i,D("sys.modifiedAt","<",r),O("sys.modifiedAt","desc"),F(1)):c=x(i,D("sys.modifiedAt",">=",r),O("sys.modifiedAt","asc"),F(1));let a=await j(c);return a.empty?t==="after"?await Ue(e,"draft"):null:a.docs[0].data()}async function Ht(e,t){if(!t?.spreadsheetId)throw new Error("no spreadsheet id");let s=b(e),n={"sys.l10nSheet":{spreadsheetId:t.spreadsheetId,gid:t.gid||0,linkedAt:m(),linkedBy:window.firebase.user.email}};await w(s,n),p("doc.link_sheet",{metadata:{docId:e,sheetId:t}})}async function Qt(e){let t=b(e),s={"sys.l10nSheet":R()};await w(t,s),p("doc.unlink_sheet",{metadata:{docId:e}})}async function Kt(e){let t=b(e),o=(await B(t)).data()?.sys?.l10nSheet||{};return o?.spreadsheetId?{spreadsheetId:o.spreadsheetId,gid:o.gid||0}:null}function he(e,t){let s={};for(let n in e){let o=e[n];if(be(o))if(o.toMillis)s[n]=o.toMillis();else if(Object.hasOwn(o,"_array")&&Array.isArray(o._array)){let i=o._array.map(r=>{let c={...he(o[r]||{},t),_arrayKey:r};return t?.removeArrayKey&&delete c._arrayKey,c});s[n]=i}else s[n]=he(o,t);else s[n]=o}return s}async function zt(e,t){let s=await window.fetch("/cms/api/ai.diff",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({docId:e,beforeVersion:t?.beforeVersion||"published",afterVersion:t?.afterVersion||"draft"})}),n=await s.text(),o=null;try{o=JSON.parse(n)}catch{}if(!s.ok||o?.success===!1){let i=o&&(o.error||o.message)||n;throw new Error(i||"Failed to fetch AI summary")}return typeof o?.summary=="string"?o.summary:typeof o?.data?.summary=="string"?o.data.summary:!o&&n?n:""}function be(e){return typeof e=="object"&&!Array.isArray(e)&&e!==null}function Wt(e){let[t,s]=e.split("/");return{id:e,collection:t,slug:s}}function we(e){if(qe(e))return k.fromMillis(e.seconds*1e3);if(ce(e))return e.time=Date.now(),e;if(Array.isArray(e))return e.map(t=>we(t));if(be(e)){let t={};return Object.keys(e).forEach(s=>{t[s]=we(e[s])}),t}return e}function qe(e){return e?.type==="firestore/timestamp/1.0"}export{ce as a,We as b,De as c,ae as d,rt as e,ct as f,_ as g,at as h,Be as i,lt as j,dt as k,P as l,ft as m,ut as n,mt as o,pt as p,gt as q,yt as r,je as s,ht as t,wt as u,_e as v,K as w,fe as x,ke as y,bt as z,Ft as A,vt as B,ve as C,Mt as D,Pt as E,St as F,Ot as G,Lt as H,Et as I,Vt as J,$t as K,Pe as L,Nt as M,Se as N,Ut as O,Oe as P,Xt as Q,Ve as R,qt as S,Gt as T,Ue as U,Ht as V,Qt as W,Kt as X,he as Y,zt as Z,Wt as _,we as $};
|
/package/dist/ui/{ImageEditorDialog-Q44YTLB5.js.LEGAL.txt → ImageEditorDialog-YDKOGVJV.js.LEGAL.txt}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|