texlite 0.8.4 → 0.9.0
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/DESIGN.md +75 -8
- package/OPERATIONS.md +19 -2
- package/dist/client/assets/{AdminUsers-CqOmV9rq.js → AdminUsers-3CHb5012.js} +1 -1
- package/dist/client/assets/{CitationLibraryDialog-BmWFXTW2.js → CitationLibraryDialog-zPpsUhWJ.js} +1 -1
- package/dist/client/assets/Dashboard-CWfSLzD3.js +2 -0
- package/dist/client/assets/{GitDialog-BCfSHuMB.js → GitDialog-BUU2U_LV.js} +2 -2
- package/dist/client/assets/HistoryDialog-B6aopsrw.js +7 -0
- package/dist/client/assets/{LatexEditor-DSopAHbC.js → LatexEditor-CM445Tk0.js} +1 -1
- package/dist/client/assets/{PdfPreview-BDkU20jP.js → PdfPreview-BFVNczSk.js} +1 -1
- package/dist/client/assets/{ProjectIconPickerDialog-GAd8HGOx.js → ProjectIconPickerDialog-Cf0zBf8u.js} +1 -1
- package/dist/client/assets/{ProjectNavigationDialogs-BTLcRY7i.js → ProjectNavigationDialogs-TPbe11iR.js} +1 -1
- package/dist/client/assets/{ProjectSettings-BJWTkoZq.js → ProjectSettings-CDQvIlQ4.js} +1 -1
- package/dist/client/assets/ProjectWorkspace-C6GrvKN6.js +27 -0
- package/dist/client/assets/SelectionHistoryDialog-CyE0_YDs.js +3 -0
- package/dist/client/assets/{SystemMetricsDialog-C9P4TSQl.js → SystemMetricsDialog-CuqHPUnn.js} +1 -1
- package/dist/client/assets/{TagManagementDialog-LYbib36_.js → TagManagementDialog-gRLM3lLx.js} +1 -1
- package/dist/client/assets/{WordCountDialog-BFg0GeJy.js → WordCountDialog-B4PI0vEk.js} +1 -1
- package/dist/client/assets/check-BXvzrdoz.js +1 -0
- package/dist/client/assets/chevron-left-BB5MYb7g.js +1 -0
- package/dist/client/assets/hard-drive-6uYFyezl.js +1 -0
- package/dist/client/assets/index-BRT5O-Hg.js +5 -0
- package/dist/client/assets/index-C0t11tlT.js +14 -0
- package/dist/client/assets/index-DXWp2bzM.css +1 -0
- package/dist/client/assets/{key-round-BaIj7Jch.js → key-round-DOAxDSfz.js} +1 -1
- package/dist/client/assets/minimize-2-BWtbag2I.js +1 -0
- package/dist/client/assets/{minus-Beso_n-6.js → minus-9eVJnugf.js} +1 -1
- package/dist/client/assets/{plus-BfEC7mzf.js → plus-BGXipRoG.js} +1 -1
- package/dist/client/assets/{refresh-cw-FZs9MtoA.js → refresh-cw-Dvp3O90f.js} +1 -1
- package/dist/client/assets/{search-DL2UGvdj.js → search-b1ORp1k8.js} +1 -1
- package/dist/client/assets/{sigma-CSRwPPkk.js → sigma-Bk0_MzWi.js} +1 -1
- package/dist/client/assets/{spellCheck-L9gD2d1M.js → spellCheck-BJjWgnef.js} +1 -1
- package/dist/client/assets/{tags-CjkWzXqX.js → tags-JAkbmWns.js} +1 -1
- package/dist/client/assets/{type-D1mmDdLM.js → type-CE2DYkPH.js} +1 -1
- package/dist/client/assets/{user-plus-YJ3ftuL5.js → user-plus-CKalKSsw.js} +1 -1
- package/dist/client/assets/x-Bq29njHL.js +1 -0
- package/dist/client/index.html +2 -2
- package/dist/server/app.js +45 -4
- package/dist/server/cli.js +4 -0
- package/dist/server/collaboration.js +219 -7
- package/dist/server/commentMentions.js +139 -0
- package/dist/server/config.js +9 -2
- package/dist/server/db.js +59 -0
- package/dist/server/editHistory.js +411 -0
- package/dist/server/editHistoryRetry.js +90 -0
- package/dist/server/history.js +136 -20
- package/dist/server/historyRetention.js +37 -0
- package/dist/server/i18n.js +4 -0
- package/dist/server/index.js +6 -0
- package/dist/server/logRotation.js +82 -0
- package/dist/server/pm2.js +7 -0
- package/dist/server/routes/comments.js +107 -16
- package/dist/server/routes/projectHistory.js +93 -7
- package/dist/server/routes/projectShared.js +2 -1
- package/dist/server/routes/projects.js +3 -1
- package/package.json +1 -1
- package/texlite.config.example.json +4 -1
- package/dist/client/assets/Dashboard-BfN2bCgZ.js +0 -2
- package/dist/client/assets/HistoryDialog-BtQhyTr9.js +0 -5
- package/dist/client/assets/ProjectWorkspace-WLYA7BSv.js +0 -27
- package/dist/client/assets/check-bnimQPun.js +0 -1
- package/dist/client/assets/chevron-left-DNM7mhNi.js +0 -1
- package/dist/client/assets/hard-drive-CF3WDfkG.js +0 -1
- package/dist/client/assets/index-CzVDvC5h.js +0 -14
- package/dist/client/assets/index-RjUuWk8F.css +0 -1
- package/dist/client/assets/x-BDSEosRE.js +0 -1
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{g as er,u as nr,r as I,j as u}from"./react-BVUjbTTn.js";import{c as H,f as F,M as ir,b as U,C as J}from"./index-CzVDvC5h.js";import{H as sr}from"./hard-drive-CF3WDfkG.js";import{T as Q,d as ar}from"./x-BDSEosRE.js";import{R as G,S as tr}from"./ProjectWorkspace-WLYA7BSv.js";import"./check-bnimQPun.js";import"./search-DL2UGvdj.js";import"./user-plus-YJ3ftuL5.js";import"./refresh-cw-FZs9MtoA.js";const lr=H("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);const O=H("FileClock",[["path",{d:"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"37hlfg"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"8",cy:"16",r:"6",key:"10v15b"}],["path",{d:"M9.5 17.5 8 16.25V14",key:"1o80t2"}]]);const hr=H("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var V={exports:{}},K;function or(){return K||(K=1,(function(C){var o=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},k=-1,A=1,g=0;o.Diff=function(r,e){return[r,e]},o.prototype.diff_main=function(r,e,n,s){typeof s>"u"&&(this.Diff_Timeout<=0?s=Number.MAX_VALUE:s=new Date().getTime()+this.Diff_Timeout*1e3);var a=s;if(r==null||e==null)throw new Error("Null input. (diff_main)");if(r==e)return r?[new o.Diff(g,r)]:[];typeof n>"u"&&(n=!0);var i=n,t=this.diff_commonPrefix(r,e),l=r.substring(0,t);r=r.substring(t),e=e.substring(t),t=this.diff_commonSuffix(r,e);var h=r.substring(r.length-t);r=r.substring(0,r.length-t),e=e.substring(0,e.length-t);var f=this.diff_compute_(r,e,i,a);return l&&f.unshift(new o.Diff(g,l)),h&&f.push(new o.Diff(g,h)),this.diff_cleanupMerge(f),f},o.prototype.diff_compute_=function(r,e,n,s){var a;if(!r)return[new o.Diff(A,e)];if(!e)return[new o.Diff(k,r)];var i=r.length>e.length?r:e,t=r.length>e.length?e:r,l=i.indexOf(t);if(l!=-1)return a=[new o.Diff(A,i.substring(0,l)),new o.Diff(g,t),new o.Diff(A,i.substring(l+t.length))],r.length>e.length&&(a[0][0]=a[2][0]=k),a;if(t.length==1)return[new o.Diff(k,r),new o.Diff(A,e)];var h=this.diff_halfMatch_(r,e);if(h){var f=h[0],c=h[1],v=h[2],d=h[3],b=h[4],_=this.diff_main(f,v,n,s),M=this.diff_main(c,d,n,s);return _.concat([new o.Diff(g,b)],M)}return n&&r.length>100&&e.length>100?this.diff_lineMode_(r,e,s):this.diff_bisect_(r,e,s)},o.prototype.diff_lineMode_=function(r,e,n){var s=this.diff_linesToChars_(r,e);r=s.chars1,e=s.chars2;var a=s.lineArray,i=this.diff_main(r,e,!1,n);this.diff_charsToLines_(i,a),this.diff_cleanupSemantic(i),i.push(new o.Diff(g,""));for(var t=0,l=0,h=0,f="",c="";t<i.length;){switch(i[t][0]){case A:h++,c+=i[t][1];break;case k:l++,f+=i[t][1];break;case g:if(l>=1&&h>=1){i.splice(t-l-h,l+h),t=t-l-h;for(var v=this.diff_main(f,c,!1,n),d=v.length-1;d>=0;d--)i.splice(t,0,v[d]);t=t+v.length}h=0,l=0,f="",c="";break}t++}return i.pop(),i},o.prototype.diff_bisect_=function(r,e,n){for(var s=r.length,a=e.length,i=Math.ceil((s+a)/2),t=i,l=2*i,h=new Array(l),f=new Array(l),c=0;c<l;c++)h[c]=-1,f[c]=-1;h[t+1]=0,f[t+1]=0;for(var v=s-a,d=v%2!=0,b=0,_=0,M=0,E=0,p=0;p<i&&!(new Date().getTime()>n);p++){for(var S=-p+b;S<=p-_;S+=2){var D=t+S,y;S==-p||S!=p&&h[D-1]<h[D+1]?y=h[D+1]:y=h[D-1]+1;for(var N=y-S;y<s&&N<a&&r.charAt(y)==e.charAt(N);)y++,N++;if(h[D]=y,y>s)_+=2;else if(N>a)b+=2;else if(d){var j=t+v-S;if(j>=0&&j<l&&f[j]!=-1){var T=s-f[j];if(y>=T)return this.diff_bisectSplit_(r,e,y,N,n)}}}for(var P=-p+M;P<=p-E;P+=2){var j=t+P,T;P==-p||P!=p&&f[j-1]<f[j+1]?T=f[j+1]:T=f[j-1]+1;for(var B=T-P;T<s&&B<a&&r.charAt(s-T-1)==e.charAt(a-B-1);)T++,B++;if(f[j]=T,T>s)E+=2;else if(B>a)M+=2;else if(!d){var D=t+v-P;if(D>=0&&D<l&&h[D]!=-1){var y=h[D],N=t+y-D;if(T=s-T,y>=T)return this.diff_bisectSplit_(r,e,y,N,n)}}}}return[new o.Diff(k,r),new o.Diff(A,e)]},o.prototype.diff_bisectSplit_=function(r,e,n,s,a){var i=r.substring(0,n),t=e.substring(0,s),l=r.substring(n),h=e.substring(s),f=this.diff_main(i,t,!1,a),c=this.diff_main(l,h,!1,a);return f.concat(c)},o.prototype.diff_linesToChars_=function(r,e){var n=[],s={};n[0]="";function a(h){for(var f="",c=0,v=-1,d=n.length;v<h.length-1;){v=h.indexOf(`
|
|
2
|
-
`,c),v==-1&&(v=h.length-1);var b=h.substring(c,v+1);(s.hasOwnProperty?s.hasOwnProperty(b):s[b]!==void 0)?f+=String.fromCharCode(s[b]):(d==i&&(b=h.substring(c),v=h.length),f+=String.fromCharCode(d),s[b]=d,n[d++]=b),c=v+1}return f}var i=4e4,t=a(r);i=65535;var l=a(e);return{chars1:t,chars2:l,lineArray:n}},o.prototype.diff_charsToLines_=function(r,e){for(var n=0;n<r.length;n++){for(var s=r[n][1],a=[],i=0;i<s.length;i++)a[i]=e[s.charCodeAt(i)];r[n][1]=a.join("")}},o.prototype.diff_commonPrefix=function(r,e){if(!r||!e||r.charAt(0)!=e.charAt(0))return 0;for(var n=0,s=Math.min(r.length,e.length),a=s,i=0;n<a;)r.substring(i,a)==e.substring(i,a)?(n=a,i=n):s=a,a=Math.floor((s-n)/2+n);return a},o.prototype.diff_commonSuffix=function(r,e){if(!r||!e||r.charAt(r.length-1)!=e.charAt(e.length-1))return 0;for(var n=0,s=Math.min(r.length,e.length),a=s,i=0;n<a;)r.substring(r.length-a,r.length-i)==e.substring(e.length-a,e.length-i)?(n=a,i=n):s=a,a=Math.floor((s-n)/2+n);return a},o.prototype.diff_commonOverlap_=function(r,e){var n=r.length,s=e.length;if(n==0||s==0)return 0;n>s?r=r.substring(n-s):n<s&&(e=e.substring(0,n));var a=Math.min(n,s);if(r==e)return a;for(var i=0,t=1;;){var l=r.substring(a-t),h=e.indexOf(l);if(h==-1)return i;t+=h,(h==0||r.substring(a-t)==e.substring(0,t))&&(i=t,t++)}},o.prototype.diff_halfMatch_=function(r,e){if(this.Diff_Timeout<=0)return null;var n=r.length>e.length?r:e,s=r.length>e.length?e:r;if(n.length<4||s.length*2<n.length)return null;var a=this;function i(_,M,E){for(var p=_.substring(E,E+Math.floor(_.length/4)),S=-1,D="",y,N,j,T;(S=M.indexOf(p,S+1))!=-1;){var P=a.diff_commonPrefix(_.substring(E),M.substring(S)),B=a.diff_commonSuffix(_.substring(0,E),M.substring(0,S));D.length<B+P&&(D=M.substring(S-B,S)+M.substring(S,S+P),y=_.substring(0,E-B),N=_.substring(E+P),j=M.substring(0,S-B),T=M.substring(S+P))}return D.length*2>=_.length?[y,N,j,T,D]:null}var t=i(n,s,Math.ceil(n.length/4)),l=i(n,s,Math.ceil(n.length/2)),h;if(!t&&!l)return null;l?t?h=t[4].length>l[4].length?t:l:h=l:h=t;var f,c,v,d;r.length>e.length?(f=h[0],c=h[1],v=h[2],d=h[3]):(v=h[0],d=h[1],f=h[2],c=h[3]);var b=h[4];return[f,c,v,d,b]},o.prototype.diff_cleanupSemantic=function(r){for(var e=!1,n=[],s=0,a=null,i=0,t=0,l=0,h=0,f=0;i<r.length;)r[i][0]==g?(n[s++]=i,t=h,l=f,h=0,f=0,a=r[i][1]):(r[i][0]==A?h+=r[i][1].length:f+=r[i][1].length,a&&a.length<=Math.max(t,l)&&a.length<=Math.max(h,f)&&(r.splice(n[s-1],0,new o.Diff(k,a)),r[n[s-1]+1][0]=A,s--,s--,i=s>0?n[s-1]:-1,t=0,l=0,h=0,f=0,a=null,e=!0)),i++;for(e&&this.diff_cleanupMerge(r),this.diff_cleanupSemanticLossless(r),i=1;i<r.length;){if(r[i-1][0]==k&&r[i][0]==A){var c=r[i-1][1],v=r[i][1],d=this.diff_commonOverlap_(c,v),b=this.diff_commonOverlap_(v,c);d>=b?(d>=c.length/2||d>=v.length/2)&&(r.splice(i,0,new o.Diff(g,v.substring(0,d))),r[i-1][1]=c.substring(0,c.length-d),r[i+1][1]=v.substring(d),i++):(b>=c.length/2||b>=v.length/2)&&(r.splice(i,0,new o.Diff(g,c.substring(0,b))),r[i-1][0]=A,r[i-1][1]=v.substring(0,v.length-b),r[i+1][0]=k,r[i+1][1]=c.substring(b),i++),i++}i++}},o.prototype.diff_cleanupSemanticLossless=function(r){function e(b,_){if(!b||!_)return 6;var M=b.charAt(b.length-1),E=_.charAt(0),p=M.match(o.nonAlphaNumericRegex_),S=E.match(o.nonAlphaNumericRegex_),D=p&&M.match(o.whitespaceRegex_),y=S&&E.match(o.whitespaceRegex_),N=D&&M.match(o.linebreakRegex_),j=y&&E.match(o.linebreakRegex_),T=N&&b.match(o.blanklineEndRegex_),P=j&&_.match(o.blanklineStartRegex_);return T||P?5:N||j?4:p&&!D&&y?3:D||y?2:p||S?1:0}for(var n=1;n<r.length-1;){if(r[n-1][0]==g&&r[n+1][0]==g){var s=r[n-1][1],a=r[n][1],i=r[n+1][1],t=this.diff_commonSuffix(s,a);if(t){var l=a.substring(a.length-t);s=s.substring(0,s.length-t),a=l+a.substring(0,a.length-t),i=l+i}for(var h=s,f=a,c=i,v=e(s,a)+e(a,i);a.charAt(0)===i.charAt(0);){s+=a.charAt(0),a=a.substring(1)+i.charAt(0),i=i.substring(1);var d=e(s,a)+e(a,i);d>=v&&(v=d,h=s,f=a,c=i)}r[n-1][1]!=h&&(h?r[n-1][1]=h:(r.splice(n-1,1),n--),r[n][1]=f,c?r[n+1][1]=c:(r.splice(n+1,1),n--))}n++}},o.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,o.whitespaceRegex_=/\s/,o.linebreakRegex_=/[\r\n]/,o.blanklineEndRegex_=/\n\r?\n$/,o.blanklineStartRegex_=/^\r?\n\r?\n/,o.prototype.diff_cleanupEfficiency=function(r){for(var e=!1,n=[],s=0,a=null,i=0,t=!1,l=!1,h=!1,f=!1;i<r.length;)r[i][0]==g?(r[i][1].length<this.Diff_EditCost&&(h||f)?(n[s++]=i,t=h,l=f,a=r[i][1]):(s=0,a=null),h=f=!1):(r[i][0]==k?f=!0:h=!0,a&&(t&&l&&h&&f||a.length<this.Diff_EditCost/2&&t+l+h+f==3)&&(r.splice(n[s-1],0,new o.Diff(k,a)),r[n[s-1]+1][0]=A,s--,a=null,t&&l?(h=f=!0,s=0):(s--,i=s>0?n[s-1]:-1,h=f=!1),e=!0)),i++;e&&this.diff_cleanupMerge(r)},o.prototype.diff_cleanupMerge=function(r){r.push(new o.Diff(g,""));for(var e=0,n=0,s=0,a="",i="",t;e<r.length;)switch(r[e][0]){case A:s++,i+=r[e][1],e++;break;case k:n++,a+=r[e][1],e++;break;case g:n+s>1?(n!==0&&s!==0&&(t=this.diff_commonPrefix(i,a),t!==0&&(e-n-s>0&&r[e-n-s-1][0]==g?r[e-n-s-1][1]+=i.substring(0,t):(r.splice(0,0,new o.Diff(g,i.substring(0,t))),e++),i=i.substring(t),a=a.substring(t)),t=this.diff_commonSuffix(i,a),t!==0&&(r[e][1]=i.substring(i.length-t)+r[e][1],i=i.substring(0,i.length-t),a=a.substring(0,a.length-t))),e-=n+s,r.splice(e,n+s),a.length&&(r.splice(e,0,new o.Diff(k,a)),e++),i.length&&(r.splice(e,0,new o.Diff(A,i)),e++),e++):e!==0&&r[e-1][0]==g?(r[e-1][1]+=r[e][1],r.splice(e,1)):e++,s=0,n=0,a="",i="";break}r[r.length-1][1]===""&&r.pop();var l=!1;for(e=1;e<r.length-1;)r[e-1][0]==g&&r[e+1][0]==g&&(r[e][1].substring(r[e][1].length-r[e-1][1].length)==r[e-1][1]?(r[e][1]=r[e-1][1]+r[e][1].substring(0,r[e][1].length-r[e-1][1].length),r[e+1][1]=r[e-1][1]+r[e+1][1],r.splice(e-1,1),l=!0):r[e][1].substring(0,r[e+1][1].length)==r[e+1][1]&&(r[e-1][1]+=r[e+1][1],r[e][1]=r[e][1].substring(r[e+1][1].length)+r[e+1][1],r.splice(e+1,1),l=!0)),e++;l&&this.diff_cleanupMerge(r)},o.prototype.diff_xIndex=function(r,e){var n=0,s=0,a=0,i=0,t;for(t=0;t<r.length&&(r[t][0]!==A&&(n+=r[t][1].length),r[t][0]!==k&&(s+=r[t][1].length),!(n>e));t++)a=n,i=s;return r.length!=t&&r[t][0]===k?i:i+(e-a)},o.prototype.diff_prettyHtml=function(r){for(var e=[],n=/&/g,s=/</g,a=/>/g,i=/\n/g,t=0;t<r.length;t++){var l=r[t][0],h=r[t][1],f=h.replace(n,"&").replace(s,"<").replace(a,">").replace(i,"¶<br>");switch(l){case A:e[t]='<ins style="background:#e6ffe6;">'+f+"</ins>";break;case k:e[t]='<del style="background:#ffe6e6;">'+f+"</del>";break;case g:e[t]="<span>"+f+"</span>";break}}return e.join("")},o.prototype.diff_text1=function(r){for(var e=[],n=0;n<r.length;n++)r[n][0]!==A&&(e[n]=r[n][1]);return e.join("")},o.prototype.diff_text2=function(r){for(var e=[],n=0;n<r.length;n++)r[n][0]!==k&&(e[n]=r[n][1]);return e.join("")},o.prototype.diff_levenshtein=function(r){for(var e=0,n=0,s=0,a=0;a<r.length;a++){var i=r[a][0],t=r[a][1];switch(i){case A:n+=t.length;break;case k:s+=t.length;break;case g:e+=Math.max(n,s),n=0,s=0;break}}return e+=Math.max(n,s),e},o.prototype.diff_toDelta=function(r){for(var e=[],n=0;n<r.length;n++)switch(r[n][0]){case A:e[n]="+"+encodeURI(r[n][1]);break;case k:e[n]="-"+r[n][1].length;break;case g:e[n]="="+r[n][1].length;break}return e.join(" ").replace(/%20/g," ")},o.prototype.diff_fromDelta=function(r,e){for(var n=[],s=0,a=0,i=e.split(/\t/g),t=0;t<i.length;t++){var l=i[t].substring(1);switch(i[t].charAt(0)){case"+":try{n[s++]=new o.Diff(A,decodeURI(l))}catch{throw new Error("Illegal escape in diff_fromDelta: "+l)}break;case"-":case"=":var h=parseInt(l,10);if(isNaN(h)||h<0)throw new Error("Invalid number in diff_fromDelta: "+l);var f=r.substring(a,a+=h);i[t].charAt(0)=="="?n[s++]=new o.Diff(g,f):n[s++]=new o.Diff(k,f);break;default:if(i[t])throw new Error("Invalid diff operation in diff_fromDelta: "+i[t])}}if(a!=r.length)throw new Error("Delta length ("+a+") does not equal source text length ("+r.length+").");return n},o.prototype.match_main=function(r,e,n){if(r==null||e==null||n==null)throw new Error("Null input. (match_main)");return n=Math.max(0,Math.min(n,r.length)),r==e?0:r.length?r.substring(n,n+e.length)==e?n:this.match_bitap_(r,e,n):-1},o.prototype.match_bitap_=function(r,e,n){if(e.length>this.Match_MaxBits)throw new Error("Pattern too long for this browser.");var s=this.match_alphabet_(e),a=this;function i(y,N){var j=y/e.length,T=Math.abs(n-N);return a.Match_Distance?j+T/a.Match_Distance:T?1:j}var t=this.Match_Threshold,l=r.indexOf(e,n);l!=-1&&(t=Math.min(i(0,l),t),l=r.lastIndexOf(e,n+e.length),l!=-1&&(t=Math.min(i(0,l),t)));var h=1<<e.length-1;l=-1;for(var f,c,v=e.length+r.length,d,b=0;b<e.length;b++){for(f=0,c=v;f<c;)i(b,n+c)<=t?f=c:v=c,c=Math.floor((v-f)/2+f);v=c;var _=Math.max(1,n-c+1),M=Math.min(n+c,r.length)+e.length,E=Array(M+2);E[M+1]=(1<<b)-1;for(var p=M;p>=_;p--){var S=s[r.charAt(p-1)];if(b===0?E[p]=(E[p+1]<<1|1)&S:E[p]=(E[p+1]<<1|1)&S|((d[p+1]|d[p])<<1|1)|d[p+1],E[p]&h){var D=i(b,p-1);if(D<=t)if(t=D,l=p-1,l>n)_=Math.max(1,2*n-l);else break}}if(i(b+1,n)>t)break;d=E}return l},o.prototype.match_alphabet_=function(r){for(var e={},n=0;n<r.length;n++)e[r.charAt(n)]=0;for(var n=0;n<r.length;n++)e[r.charAt(n)]|=1<<r.length-n-1;return e},o.prototype.patch_addContext_=function(r,e){if(e.length!=0){if(r.start2===null)throw Error("patch not initialized");for(var n=e.substring(r.start2,r.start2+r.length1),s=0;e.indexOf(n)!=e.lastIndexOf(n)&&n.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)s+=this.Patch_Margin,n=e.substring(r.start2-s,r.start2+r.length1+s);s+=this.Patch_Margin;var a=e.substring(r.start2-s,r.start2);a&&r.diffs.unshift(new o.Diff(g,a));var i=e.substring(r.start2+r.length1,r.start2+r.length1+s);i&&r.diffs.push(new o.Diff(g,i)),r.start1-=a.length,r.start2-=a.length,r.length1+=a.length+i.length,r.length2+=a.length+i.length}},o.prototype.patch_make=function(r,e,n){var s,a;if(typeof r=="string"&&typeof e=="string"&&typeof n>"u")s=r,a=this.diff_main(s,e,!0),a.length>2&&(this.diff_cleanupSemantic(a),this.diff_cleanupEfficiency(a));else if(r&&typeof r=="object"&&typeof e>"u"&&typeof n>"u")a=r,s=this.diff_text1(a);else if(typeof r=="string"&&e&&typeof e=="object"&&typeof n>"u")s=r,a=e;else if(typeof r=="string"&&typeof e=="string"&&n&&typeof n=="object")s=r,a=n;else throw new Error("Unknown call format to patch_make.");if(a.length===0)return[];for(var i=[],t=new o.patch_obj,l=0,h=0,f=0,c=s,v=s,d=0;d<a.length;d++){var b=a[d][0],_=a[d][1];switch(!l&&b!==g&&(t.start1=h,t.start2=f),b){case A:t.diffs[l++]=a[d],t.length2+=_.length,v=v.substring(0,f)+_+v.substring(f);break;case k:t.length1+=_.length,t.diffs[l++]=a[d],v=v.substring(0,f)+v.substring(f+_.length);break;case g:_.length<=2*this.Patch_Margin&&l&&a.length!=d+1?(t.diffs[l++]=a[d],t.length1+=_.length,t.length2+=_.length):_.length>=2*this.Patch_Margin&&l&&(this.patch_addContext_(t,c),i.push(t),t=new o.patch_obj,l=0,c=v,h=f);break}b!==A&&(h+=_.length),b!==k&&(f+=_.length)}return l&&(this.patch_addContext_(t,c),i.push(t)),i},o.prototype.patch_deepCopy=function(r){for(var e=[],n=0;n<r.length;n++){var s=r[n],a=new o.patch_obj;a.diffs=[];for(var i=0;i<s.diffs.length;i++)a.diffs[i]=new o.Diff(s.diffs[i][0],s.diffs[i][1]);a.start1=s.start1,a.start2=s.start2,a.length1=s.length1,a.length2=s.length2,e[n]=a}return e},o.prototype.patch_apply=function(r,e){if(r.length==0)return[e,[]];r=this.patch_deepCopy(r);var n=this.patch_addPadding(r);e=n+e+n,this.patch_splitMax(r);for(var s=0,a=[],i=0;i<r.length;i++){var t=r[i].start2+s,l=this.diff_text1(r[i].diffs),h,f=-1;if(l.length>this.Match_MaxBits?(h=this.match_main(e,l.substring(0,this.Match_MaxBits),t),h!=-1&&(f=this.match_main(e,l.substring(l.length-this.Match_MaxBits),t+l.length-this.Match_MaxBits),(f==-1||h>=f)&&(h=-1))):h=this.match_main(e,l,t),h==-1)a[i]=!1,s-=r[i].length2-r[i].length1;else{a[i]=!0,s=h-t;var c;if(f==-1?c=e.substring(h,h+l.length):c=e.substring(h,f+this.Match_MaxBits),l==c)e=e.substring(0,h)+this.diff_text2(r[i].diffs)+e.substring(h+l.length);else{var v=this.diff_main(l,c,!1);if(l.length>this.Match_MaxBits&&this.diff_levenshtein(v)/l.length>this.Patch_DeleteThreshold)a[i]=!1;else{this.diff_cleanupSemanticLossless(v);for(var d=0,b,_=0;_<r[i].diffs.length;_++){var M=r[i].diffs[_];M[0]!==g&&(b=this.diff_xIndex(v,d)),M[0]===A?e=e.substring(0,h+b)+M[1]+e.substring(h+b):M[0]===k&&(e=e.substring(0,h+b)+e.substring(h+this.diff_xIndex(v,d+M[1].length))),M[0]!==k&&(d+=M[1].length)}}}}}return e=e.substring(n.length,e.length-n.length),[e,a]},o.prototype.patch_addPadding=function(r){for(var e=this.Patch_Margin,n="",s=1;s<=e;s++)n+=String.fromCharCode(s);for(var s=0;s<r.length;s++)r[s].start1+=e,r[s].start2+=e;var a=r[0],i=a.diffs;if(i.length==0||i[0][0]!=g)i.unshift(new o.Diff(g,n)),a.start1-=e,a.start2-=e,a.length1+=e,a.length2+=e;else if(e>i[0][1].length){var t=e-i[0][1].length;i[0][1]=n.substring(i[0][1].length)+i[0][1],a.start1-=t,a.start2-=t,a.length1+=t,a.length2+=t}if(a=r[r.length-1],i=a.diffs,i.length==0||i[i.length-1][0]!=g)i.push(new o.Diff(g,n)),a.length1+=e,a.length2+=e;else if(e>i[i.length-1][1].length){var t=e-i[i.length-1][1].length;i[i.length-1][1]+=n.substring(0,t),a.length1+=t,a.length2+=t}return n},o.prototype.patch_splitMax=function(r){for(var e=this.Match_MaxBits,n=0;n<r.length;n++)if(!(r[n].length1<=e)){var s=r[n];r.splice(n--,1);for(var a=s.start1,i=s.start2,t="";s.diffs.length!==0;){var l=new o.patch_obj,h=!0;for(l.start1=a-t.length,l.start2=i-t.length,t!==""&&(l.length1=l.length2=t.length,l.diffs.push(new o.Diff(g,t)));s.diffs.length!==0&&l.length1<e-this.Patch_Margin;){var f=s.diffs[0][0],c=s.diffs[0][1];f===A?(l.length2+=c.length,i+=c.length,l.diffs.push(s.diffs.shift()),h=!1):f===k&&l.diffs.length==1&&l.diffs[0][0]==g&&c.length>2*e?(l.length1+=c.length,a+=c.length,h=!1,l.diffs.push(new o.Diff(f,c)),s.diffs.shift()):(c=c.substring(0,e-l.length1-this.Patch_Margin),l.length1+=c.length,a+=c.length,f===g?(l.length2+=c.length,i+=c.length):h=!1,l.diffs.push(new o.Diff(f,c)),c==s.diffs[0][1]?s.diffs.shift():s.diffs[0][1]=s.diffs[0][1].substring(c.length))}t=this.diff_text2(l.diffs),t=t.substring(t.length-this.Patch_Margin);var v=this.diff_text1(s.diffs).substring(0,this.Patch_Margin);v!==""&&(l.length1+=v.length,l.length2+=v.length,l.diffs.length!==0&&l.diffs[l.diffs.length-1][0]===g?l.diffs[l.diffs.length-1][1]+=v:l.diffs.push(new o.Diff(g,v))),h||r.splice(++n,0,l)}}},o.prototype.patch_toText=function(r){for(var e=[],n=0;n<r.length;n++)e[n]=r[n];return e.join("")},o.prototype.patch_fromText=function(r){var e=[];if(!r)return e;for(var n=r.split(`
|
|
3
|
-
`),s=0,a=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;s<n.length;){var i=n[s].match(a);if(!i)throw new Error("Invalid patch string: "+n[s]);var t=new o.patch_obj;for(e.push(t),t.start1=parseInt(i[1],10),i[2]===""?(t.start1--,t.length1=1):i[2]=="0"?t.length1=0:(t.start1--,t.length1=parseInt(i[2],10)),t.start2=parseInt(i[3],10),i[4]===""?(t.start2--,t.length2=1):i[4]=="0"?t.length2=0:(t.start2--,t.length2=parseInt(i[4],10)),s++;s<n.length;){var l=n[s].charAt(0);try{var h=decodeURI(n[s].substring(1))}catch{throw new Error("Illegal escape in patch_fromText: "+h)}if(l=="-")t.diffs.push(new o.Diff(k,h));else if(l=="+")t.diffs.push(new o.Diff(A,h));else if(l==" ")t.diffs.push(new o.Diff(g,h));else{if(l=="@")break;if(l!=="")throw new Error('Invalid patch mode "'+l+'" in: '+h)}s++}}return e},o.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0},o.patch_obj.prototype.toString=function(){var r,e;this.length1===0?r=this.start1+",0":this.length1==1?r=this.start1+1:r=this.start1+1+","+this.length1,this.length2===0?e=this.start2+",0":this.length2==1?e=this.start2+1:e=this.start2+1+","+this.length2;for(var n=["@@ -"+r+" +"+e+` @@
|
|
4
|
-
`],s,a=0;a<this.diffs.length;a++){switch(this.diffs[a][0]){case A:s="+";break;case k:s="-";break;case g:s=" ";break}n[a+1]=s+encodeURI(this.diffs[a][1])+`
|
|
5
|
-
`}return n.join("").replace(/%20/g," ")},C.exports=o,C.exports.diff_match_patch=o,C.exports.DIFF_DELETE=k,C.exports.DIFF_INSERT=A,C.exports.DIFF_EQUAL=g})(V)),V.exports}var fr=or();const gr=er(fr);function yr({open:C,project:o,onOpenChange:k,onBeforeMutation:A}){const{t:g,i18n:r}=nr(),[e,n]=I.useState([]),[s,a]=I.useState(null),[i,t]=I.useState(""),[l,h]=I.useState(null),[f,c]=I.useState(""),[v,d]=I.useState(null),[b,_]=I.useState(""),[M,E]=I.useState(null),[p,S]=I.useState(null),[D,y]=I.useState(""),[N,j]=I.useState(""),T=o.permission!=="read",P=o.permission==="owner";I.useEffect(()=>{if(!C)return;const m=new AbortController;return y("load"),j(""),d(null),F(`/api/projects/${o.id}/history`,{signal:m.signal}).then(w=>{n(w.versions),a(w.stats),t(L=>w.versions.some(R=>R.id===L)?L:w.versions[0]?.id??"")}).catch(w=>{X(w)||j($(w))}).finally(()=>{m.signal.aborted||y("")}),()=>m.abort()},[C,o.id]),I.useEffect(()=>{if(!C||!i){h(null);return}const m=new AbortController;return y("detail"),d(null),F(`/api/projects/${o.id}/history/${i}`,{signal:m.signal}).then(w=>{h(w),_(w.version.label??"");const L=w.version.changedPaths.find(R=>w.files.some(z=>z.path===R))??w.files[0]?.path??"";c(L)}).catch(w=>{X(w)||j($(w))}).finally(()=>{m.signal.aborted||y("")}),()=>m.abort()},[C,o.id,i]);const B=async(m=f)=>{if(m){y("compare"),j("");try{d(await F(`/api/projects/${o.id}/history/${i}/file?path=${encodeURIComponent(m)}`))}catch(w){j($(w))}finally{y("")}}},Z=async()=>{if(l){y("label"),j("");try{const m=await F(`/api/projects/${o.id}/history/${l.version.id}`,{method:"PATCH",body:JSON.stringify({label:b.trim()||null})});h(w=>w&&{...w,version:m.version}),n(w=>w.map(L=>L.id===m.version.id?m.version:L)),a(m.stats)}catch(m){j($(m))}finally{y("")}}},Y=async()=>{const m=p;if(m){S(null),y("delete"),j("");try{if(!await A())throw new Error(g("errors.collaborationUnavailable"));const w=m==="all"?`/api/projects/${o.id}/history`:`/api/projects/${o.id}/history/${m.id}`,L=await F(w,{method:"DELETE"});if(a(L.stats),m==="all")n([]),t(""),h(null),d(null);else{const R=e.filter(z=>z.id!==m.id);n(R),i===m.id&&(t(R[0]?.id??""),h(null),d(null))}}catch(w){j($(w))}finally{y("")}}},q=async()=>{const m=M;if(!(!m||!l)){E(null),y("restore"),j("");try{if(!await A())throw new Error(g("errors.collaborationUnavailable"));await F(`/api/projects/${o.id}/history/${l.version.id}/restore`,{method:"POST",body:JSON.stringify(m==="project"?{}:{path:m})}),window.location.reload()}catch(w){j($(w)),y("")}}},x=I.useMemo(()=>{if(!v)return[];const m=new gr;m.Diff_Timeout=1;const w=m.diff_main(v.historical,v.comparison,!0);return m.diff_cleanupSemantic(w),w},[v]),rr=p&&p!=="all"?p.label||new Date(p.createdAt).toLocaleString(r.resolvedLanguage):"";return u.jsxs(u.Fragment,{children:[u.jsx(ir,{open:C,extraWide:!0,className:"history-dialog-modal",title:g("history.title"),description:g("history.description"),onOpenChange:k,footer:u.jsx("button",{onClick:()=>k(!1),children:g("common.close")}),children:u.jsxs("div",{className:"history-dialog",children:[N&&u.jsx("p",{className:"error history-message",children:N}),D==="load"&&e.length===0?u.jsxs("div",{className:"history-loading",children:[u.jsx(U,{className:"spin",size:22}),g("common.loading")]}):u.jsxs(u.Fragment,{children:[u.jsxs("aside",{className:"history-timeline",children:[P&&s&&u.jsxs("div",{className:`history-stats${s.storageLimitExceeded?" exceeded":""}`,children:[u.jsxs("header",{children:[u.jsxs("span",{children:[u.jsx(sr,{size:14}),g("history.storage")]}),u.jsx("button",{type:"button",disabled:!!D||e.length===0,title:g("history.clearAll"),"aria-label":g("history.clearAll"),onClick:()=>S("all"),children:u.jsx(Q,{size:13})})]}),u.jsx("strong",{children:g("history.storageUsage",{used:W(s.objectBytes),limit:W(s.maxStorageBytes)})}),u.jsx("progress",{max:s.maxStorageBytes,value:Math.min(s.objectBytes,s.maxStorageBytes)}),u.jsxs("small",{children:[g("history.versionUsage",{count:s.ordinaryVersionCount,limit:s.maxVersions}),s.labeledVersionCount>0?` · ${g("history.protectedVersions",{count:s.labeledVersionCount})}`:""]}),s.storageLimitExceeded&&u.jsx("small",{className:"history-storage-warning",children:g("history.storageExceeded")})]}),e.map(m=>u.jsxs("button",{className:m.id===i?"active":"",onClick:()=>t(m.id),children:[u.jsx(O,{size:15}),u.jsxs("span",{children:[u.jsx("strong",{children:m.label||g(`history.reasons.${m.reason}`)}),u.jsx("small",{children:new Date(m.createdAt).toLocaleString(r.resolvedLanguage)}),u.jsxs("small",{children:[m.author?.name??g("editor.deletedUser")," · ",g("history.changedCount",{count:m.changedPaths.length})]})]})]},m.id)),e.length===0&&u.jsx("p",{className:"muted padded",children:g("history.empty")})]}),u.jsx("section",{className:"history-detail",children:l&&u.jsxs(u.Fragment,{children:[u.jsxs("header",{className:"history-detail-header",children:[u.jsxs("div",{children:[u.jsx("strong",{children:l.version.label||g(`history.reasons.${l.version.reason}`)}),u.jsxs("small",{children:[u.jsx(lr,{size:12}),new Date(l.version.createdAt).toLocaleString(r.resolvedLanguage)," · ",g("history.fileCount",{count:l.version.fileCount})]})]}),u.jsxs("span",{className:"history-detail-actions",children:[P&&u.jsxs("button",{className:"danger-text",disabled:!!D,onClick:()=>S(l.version),children:[u.jsx(Q,{size:14}),g("history.deleteVersion")]}),T&&u.jsxs("button",{className:"danger-text",disabled:!!D,onClick:()=>E("project"),children:[u.jsx(G,{size:14}),g("history.restoreProject")]})]})]}),T&&u.jsxs("div",{className:"history-label",children:[u.jsxs("label",{children:[u.jsx(hr,{size:14}),u.jsx("input",{value:b,maxLength:80,placeholder:g("history.labelPlaceholder"),onChange:m=>_(m.target.value)})]}),u.jsxs("button",{disabled:D==="label"||b.trim()===(l.version.label??""),onClick:()=>{Z()},children:[D==="label"?u.jsx(U,{className:"spin",size:13}):u.jsx(tr,{size:13}),g("history.saveLabel")]})]}),u.jsxs("div",{className:"history-files",children:[u.jsx("div",{className:"history-file-list",children:l.files.map(m=>{const w=l.version.changedPaths.includes(m.path);return u.jsxs("button",{className:m.path===f?"active":"",title:m.path,onClick:()=>{c(m.path),d(null)},children:[u.jsx(ar,{size:13}),u.jsx("span",{children:m.path}),w&&u.jsx("small",{children:g("history.changed")})]},m.path)})}),u.jsxs("div",{className:"history-file-actions",children:[u.jsxs("button",{disabled:!f||!!D,onClick:()=>{B()},children:[D==="compare"?u.jsx(U,{className:"spin",size:13}):u.jsx(O,{size:13}),g("history.compareCurrent")]}),T&&u.jsxs("button",{disabled:!f||!!D,onClick:()=>E(f),children:[u.jsx(G,{size:13}),g("history.restoreFile")]})]})]}),u.jsx("div",{className:"history-comparison",children:v?u.jsxs(u.Fragment,{children:[u.jsxs("header",{children:[u.jsx("strong",{children:v.path}),u.jsx("small",{children:g("history.comparingCurrent")})]}),u.jsx("pre",{children:x.map(([m,w],L)=>u.jsx("span",{className:m<0?"history-removed":m>0?"history-added":"",children:w},L))})]}):u.jsxs("div",{className:"history-comparison-empty",children:[u.jsx(O,{size:25}),u.jsx("span",{children:g("history.chooseFile")})]})})]})})]})]})}),u.jsx(J,{open:!!M,title:g(M==="project"?"history.restoreProjectTitle":"history.restoreFileTitle"),description:M==="project"?g("history.restoreProjectDescription"):g("history.restoreFileDescription",{path:M??""}),confirmLabel:g("history.restore"),danger:!0,onCancel:()=>E(null),onConfirm:()=>{q()}}),u.jsx(J,{open:!!p,title:g(p==="all"?"history.clearAllTitle":"history.deleteVersionTitle"),description:p==="all"?g("history.clearAllDescription"):g("history.deleteVersionDescription",{name:rr}),confirmLabel:g(p==="all"?"history.clearAll":"history.deleteVersion"),danger:!0,onCancel:()=>S(null),onConfirm:()=>{Y()}})]})}function W(C){return C<1024?`${C} B`:C<1024*1024?`${Math.round(C/102.4)/10} KB`:C<1024*1024*1024?`${Math.round(C/(1024*1024)*10)/10} MB`:`${Math.round(C/(1024*1024*1024)*10)/10} GB`}function $(C){return C instanceof Error?C.message:String(C)}function X(C){return C instanceof Error&&C.name==="AbortError"}export{yr as HistoryDialog};
|