@techdocs/cli 1.4.1-next.1 → 1.4.1-next.2

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/index.cjs.js CHANGED
@@ -205,7 +205,7 @@ function lazy(getActionFunc) {
205
205
  };
206
206
  }
207
207
 
208
- var version = "1.4.1-next.1";
208
+ var version = "1.4.1-next.2";
209
209
 
210
210
  const main = (argv) => {
211
211
  commander.program.name("techdocs-cli").version(version);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@techdocs/cli",
3
3
  "description": "Utility CLI for managing TechDocs sites in Backstage.",
4
- "version": "1.4.1-next.1",
4
+ "version": "1.4.1-next.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -36,7 +36,7 @@
36
36
  "techdocs-cli": "bin/techdocs-cli"
37
37
  },
38
38
  "devDependencies": {
39
- "@backstage/cli": "^0.22.6-next.1",
39
+ "@backstage/cli": "^0.22.6-next.2",
40
40
  "@frsource/cypress-plugin-visual-regression-diff": "^3.2.8",
41
41
  "@types/commander": "^2.12.2",
42
42
  "@types/fs-extra": "^9.0.6",
@@ -60,11 +60,11 @@
60
60
  "ext": "ts"
61
61
  },
62
62
  "dependencies": {
63
- "@backstage/backend-common": "^0.18.4-next.1",
63
+ "@backstage/backend-common": "^0.18.4-next.2",
64
64
  "@backstage/catalog-model": "^1.2.1",
65
65
  "@backstage/cli-common": "^0.1.12",
66
66
  "@backstage/config": "^1.0.7",
67
- "@backstage/plugin-techdocs-node": "^1.6.1-next.1",
67
+ "@backstage/plugin-techdocs-node": "^1.6.1-next.2",
68
68
  "@types/dockerode": "^3.3.0",
69
69
  "commander": "^9.1.0",
70
70
  "dockerode": "^3.3.1",
@@ -1,3 +0,0 @@
1
- "use strict";(()=>{(self.webpackChunktechdocs_cli_embedded_app=self.webpackChunktechdocs_cli_embedded_app||[]).push([[5869],{96686:function(Le,_e,V){V.d(_e,{O:function(){return Te}});var Y=V(2784);function de(B){var b=(0,Y.useRef)(B);return b.current=B,(0,Y.useMemo)(function(){return Object.freeze({get current(){return b.current}})},[])}var Se=V(29862);function fe(B){var b=(0,Y.useState)(B),oe=b[0],ae=b[1],he=(0,Se.t)(!0);return[oe,(0,Y.useCallback)(function(Q){he()&&ae(Q)},[])]}function re(B,b){return typeof B=="function"?B(b):B}function Te(B,b){B===void 0&&(B=!1),b===void 0&&(b=!0);var oe=fe(B),ae=oe[0],he=oe[1],Q=de(b);return[ae,(0,Y.useCallback)(function(ee){he(function(Ie){return ee===void 0||Q.current&&typeof ee=="object"&&(ee.constructor.name==="SyntheticBaseEvent"||typeof ee._reactName=="string")?!Ie:Boolean(re(ee,Ie))})},[])]}},7688:function(Le,_e,V){var Y=V(2784),de=function(L,g){if(!(L instanceof g))throw new TypeError("Cannot call a class as a function")},Se=function(){function L(g,y){for(var z=0;z<y.length;z++){var C=y[z];C.enumerable=C.enumerable||!1,C.configurable=!0,"value"in C&&(C.writable=!0),Object.defineProperty(g,C.key,C)}}return function(g,y,z){return y&&L(g.prototype,y),z&&L(g,z),g}}(),fe=Object.assign||function(L){for(var g=1;g<arguments.length;g++){var y=arguments[g];for(var z in y)Object.prototype.hasOwnProperty.call(y,z)&&(L[z]=y[z])}return L},re=function(L,g){if(typeof g!="function"&&g!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof g);L.prototype=Object.create(g&&g.prototype,{constructor:{value:L,enumerable:!1,writable:!0,configurable:!0}}),g&&(Object.setPrototypeOf?Object.setPrototypeOf(L,g):L.__proto__=g)},Te=function(L,g){if(!L)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return g&&(typeof g=="object"||typeof g=="function")?g:L},B=function(){function L(g,y){var z=[],C=!0,te=!1,k=void 0;try{for(var G=g[Symbol.iterator](),j;!(C=(j=G.next()).done)&&(z.push(j.value),!(y&&z.length===y));C=!0);}catch(K){te=!0,k=K}finally{try{!C&&G.return&&G.return()}finally{if(te)throw k}}return z}return function(g,y){if(Array.isArray(g))return g;if(Symbol.iterator in Object(g))return L(g,y);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),b=void 0;typeof window!="undefined"?b=window:typeof self!="undefined"?b=self:b=V.g;var oe=null,ae=null,he=20,Q=b.clearTimeout,ee=b.setTimeout,Ie=b.cancelAnimationFrame||b.mozCancelAnimationFrame||b.webkitCancelAnimationFrame,We=b.requestAnimationFrame||b.mozRequestAnimationFrame||b.webkitRequestAnimationFrame;Ie==null||We==null?(oe=Q,ae=function(g){return ee(g,he)}):(oe=function(g){var y=B(g,2),z=y[0],C=y[1];Ie(z),Q(C)},ae=function(g){var y=We(function(){Q(z),g()}),z=ee(function(){Ie(y),g()},he);return[y,z]});function Ne(L){var g=void 0,y=void 0,z=void 0,C=void 0,te=void 0,k=void 0,G=void 0,j=typeof document!="undefined"&&document.attachEvent;if(!j){k=function(m){var A=m.__resizeTriggers__,$=A.firstElementChild,Z=A.lastElementChild,pe=$.firstElementChild;Z.scrollLeft=Z.scrollWidth,Z.scrollTop=Z.scrollHeight,pe.style.width=$.offsetWidth+1+"px",pe.style.height=$.offsetHeight+1+"px",$.scrollLeft=$.scrollWidth,$.scrollTop=$.scrollHeight},te=function(m){return m.offsetWidth!==m.__resizeLast__.width||m.offsetHeight!==m.__resizeLast__.height},G=function(m){if(!(m.target.className&&typeof m.target.className.indexOf=="function"&&m.target.className.indexOf("contract-trigger")<0&&m.target.className.indexOf("expand-trigger")<0)){var A=this;k(this),this.__resizeRAF__&&oe(this.__resizeRAF__),this.__resizeRAF__=ae(function(){te(A)&&(A.__resizeLast__.width=A.offsetWidth,A.__resizeLast__.height=A.offsetHeight,A.__resizeListeners__.forEach(function(pe){pe.call(A,m)}))})}};var K=!1,se="";z="animationstart";var ve="Webkit Moz O ms".split(" "),ge="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),ne="";{var le=document.createElement("fakeelement");if(le.style.animationName!==void 0&&(K=!0),K===!1){for(var ue=0;ue<ve.length;ue++)if(le.style[ve[ue]+"AnimationName"]!==void 0){ne=ve[ue],se="-"+ne.toLowerCase()+"-",z=ge[ue],K=!0;break}}}y="resizeanim",g="@"+se+"keyframes "+y+" { from { opacity: 0; } to { opacity: 0; } } ",C=se+"animation: 1ms "+y+"; "}var we=function(m){if(!m.getElementById("detectElementResize")){var A=(g||"")+".resize-triggers { "+(C||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',$=m.head||m.getElementsByTagName("head")[0],Z=m.createElement("style");Z.id="detectElementResize",Z.type="text/css",L!=null&&Z.setAttribute("nonce",L),Z.styleSheet?Z.styleSheet.cssText=A:Z.appendChild(m.createTextNode(A)),$.appendChild(Z)}},Re=function(m,A){if(j)m.attachEvent("onresize",A);else{if(!m.__resizeTriggers__){var $=m.ownerDocument,Z=b.getComputedStyle(m);Z&&Z.position==="static"&&(m.style.position="relative"),we($),m.__resizeLast__={},m.__resizeListeners__=[],(m.__resizeTriggers__=$.createElement("div")).className="resize-triggers";var pe=$.createElement("div");pe.className="expand-trigger",pe.appendChild($.createElement("div"));var Ae=$.createElement("div");Ae.className="contract-trigger",m.__resizeTriggers__.appendChild(pe),m.__resizeTriggers__.appendChild(Ae),m.appendChild(m.__resizeTriggers__),k(m),m.addEventListener("scroll",G,!0),z&&(m.__resizeTriggers__.__animationListener__=function(Oe){Oe.animationName===y&&k(m)},m.__resizeTriggers__.addEventListener(z,m.__resizeTriggers__.__animationListener__))}m.__resizeListeners__.push(A)}},xe=function(m,A){if(j)m.detachEvent("onresize",A);else if(m.__resizeListeners__.splice(m.__resizeListeners__.indexOf(A),1),!m.__resizeListeners__.length){m.removeEventListener("scroll",G,!0),m.__resizeTriggers__.__animationListener__&&(m.__resizeTriggers__.removeEventListener(z,m.__resizeTriggers__.__animationListener__),m.__resizeTriggers__.__animationListener__=null);try{m.__resizeTriggers__=!m.removeChild(m.__resizeTriggers__)}catch{}}};return{addResizeListener:Re,removeResizeListener:xe}}var Fe=function(L){re(g,L);function g(){var y,z,C,te;de(this,g);for(var k=arguments.length,G=Array(k),j=0;j<k;j++)G[j]=arguments[j];return te=(z=(C=Te(this,(y=g.__proto__||Object.getPrototypeOf(g)).call.apply(y,[this].concat(G))),C),C.state={height:C.props.defaultHeight||0,width:C.props.defaultWidth||0},C._onResize=function(){var K=C.props,se=K.disableHeight,ve=K.disableWidth,ge=K.onResize;if(C._parentNode){var ne=C._parentNode.offsetHeight||0,le=C._parentNode.offsetWidth||0,ue=window.getComputedStyle(C._parentNode)||{},we=parseInt(ue.paddingLeft,10)||0,Re=parseInt(ue.paddingRight,10)||0,xe=parseInt(ue.paddingTop,10)||0,J=parseInt(ue.paddingBottom,10)||0,m=ne-xe-J,A=le-we-Re;(!se&&C.state.height!==m||!ve&&C.state.width!==A)&&(C.setState({height:ne-xe-J,width:le-we-Re}),ge({height:ne,width:le}))}},C._setRef=function(K){C._autoSizer=K},z),Te(C,te)}return Se(g,[{key:"componentDidMount",value:function(){var z=this.props.nonce;this._autoSizer&&this._autoSizer.parentNode&&this._autoSizer.parentNode.ownerDocument&&this._autoSizer.parentNode.ownerDocument.defaultView&&this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement&&(this._parentNode=this._autoSizer.parentNode,this._detectElementResize=Ne(z),this._detectElementResize.addResizeListener(this._parentNode,this._onResize),this._onResize())}},{key:"componentWillUnmount",value:function(){this._detectElementResize&&this._parentNode&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize)}},{key:"render",value:function(){var z=this.props,C=z.children,te=z.className,k=z.disableHeight,G=z.disableWidth,j=z.style,K=this.state,se=K.height,ve=K.width,ge={overflow:"visible"},ne={},le=!1;return k||(se===0&&(le=!0),ge.height=0,ne.height=se),G||(ve===0&&(le=!0),ge.width=0,ne.width=ve),(0,Y.createElement)("div",{className:te,ref:this._setRef,style:fe({},ge,j)},!le&&C(ne))}}]),g}(Y.PureComponent);Fe.defaultProps={onResize:function(){},disableHeight:!1,disableWidth:!1,style:{}},_e.Z=Fe},50166:function(Le,_e,V){V.d(_e,{t7:function(){return De}});var Y=V(7896),de=V(80753),Se=V(81665),fe=V(36631),re=V(2784),Te=typeof performance=="object"&&typeof performance.now=="function",B=Te?function(){return performance.now()}:function(){return Date.now()};function b(a){cancelAnimationFrame(a.id)}function oe(a,e){var t=B();function r(){B()-t>=e?a.call(null):i.id=requestAnimationFrame(r)}var i={id:requestAnimationFrame(r)};return i}var ae=-1;function he(a){if(a===void 0&&(a=!1),ae===-1||a){var e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",document.body.appendChild(e),ae=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return ae}var Q=null;function ee(a){if(a===void 0&&(a=!1),Q===null||a){var e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";var r=document.createElement("div"),i=r.style;return i.width="100px",i.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?Q="positive-descending":(e.scrollLeft=1,e.scrollLeft===0?Q="negative":Q="positive-ascending"),document.body.removeChild(e),Q}return Q}var Ie=150,We=function(e){var t=e.columnIndex,r=e.data,i=e.rowIndex;return i+":"+t},Ne=null,Fe=null,L=null;function g(a){var e,t=a.getColumnOffset,r=a.getColumnStartIndexForOffset,i=a.getColumnStopIndexForStartIndex,l=a.getColumnWidth,s=a.getEstimatedTotalHeight,u=a.getEstimatedTotalWidth,c=a.getOffsetForColumnAndAlignment,S=a.getOffsetForRowAndAlignment,v=a.getRowHeight,w=a.getRowOffset,I=a.getRowStartIndexForOffset,E=a.getRowStopIndexForStartIndex,N=a.initInstanceProps,o=a.shouldResetStyleCacheOnItemSizeChange,h=a.validateProps;return e=function(p){(0,Se.Z)(R,p);function R(O){var n;return n=p.call(this,O)||this,n._instanceProps=N(n.props,(0,de.Z)(n)),n._resetIsScrollingTimeoutId=null,n._outerRef=void 0,n.state={instance:(0,de.Z)(n),isScrolling:!1,horizontalScrollDirection:"forward",scrollLeft:typeof n.props.initialScrollLeft=="number"?n.props.initialScrollLeft:0,scrollTop:typeof n.props.initialScrollTop=="number"?n.props.initialScrollTop:0,scrollUpdateWasRequested:!1,verticalScrollDirection:"forward"},n._callOnItemsRendered=void 0,n._callOnItemsRendered=(0,fe.Z)(function(d,f,_,x,M,W,D,U){return n.props.onItemsRendered({overscanColumnStartIndex:d,overscanColumnStopIndex:f,overscanRowStartIndex:_,overscanRowStopIndex:x,visibleColumnStartIndex:M,visibleColumnStopIndex:W,visibleRowStartIndex:D,visibleRowStopIndex:U})}),n._callOnScroll=void 0,n._callOnScroll=(0,fe.Z)(function(d,f,_,x,M){return n.props.onScroll({horizontalScrollDirection:_,scrollLeft:d,scrollTop:f,verticalScrollDirection:x,scrollUpdateWasRequested:M})}),n._getItemStyle=void 0,n._getItemStyle=function(d,f){var _=n.props,x=_.columnWidth,M=_.direction,W=_.rowHeight,D=n._getItemStyleCache(o&&x,o&&M,o&&W),U=d+":"+f,H;if(D.hasOwnProperty(U))H=D[U];else{var P=t(n.props,f,n._instanceProps),F=M==="rtl";D[U]=H={position:"absolute",left:F?void 0:P,right:F?P:void 0,top:w(n.props,d,n._instanceProps),height:v(n.props,d,n._instanceProps),width:l(n.props,f,n._instanceProps)}}return H},n._getItemStyleCache=void 0,n._getItemStyleCache=(0,fe.Z)(function(d,f,_){return{}}),n._onScroll=function(d){var f=d.currentTarget,_=f.clientHeight,x=f.clientWidth,M=f.scrollLeft,W=f.scrollTop,D=f.scrollHeight,U=f.scrollWidth;n.setState(function(H){if(H.scrollLeft===M&&H.scrollTop===W)return null;var P=n.props.direction,F=M;if(P==="rtl")switch(ee()){case"negative":F=-M;break;case"positive-descending":F=U-x-M;break}F=Math.max(0,Math.min(F,U-x));var q=Math.max(0,Math.min(W,D-_));return{isScrolling:!0,horizontalScrollDirection:H.scrollLeft<M?"forward":"backward",scrollLeft:F,scrollTop:q,verticalScrollDirection:H.scrollTop<W?"forward":"backward",scrollUpdateWasRequested:!1}},n._resetIsScrollingDebounced)},n._outerRefSetter=function(d){var f=n.props.outerRef;n._outerRef=d,typeof f=="function"?f(d):f!=null&&typeof f=="object"&&f.hasOwnProperty("current")&&(f.current=d)},n._resetIsScrollingDebounced=function(){n._resetIsScrollingTimeoutId!==null&&b(n._resetIsScrollingTimeoutId),n._resetIsScrollingTimeoutId=oe(n._resetIsScrolling,Ie)},n._resetIsScrolling=function(){n._resetIsScrollingTimeoutId=null,n.setState({isScrolling:!1},function(){n._getItemStyleCache(-1)})},n}R.getDerivedStateFromProps=function(n,d){return y(n,d),h(n),null};var T=R.prototype;return T.scrollTo=function(n){var d=n.scrollLeft,f=n.scrollTop;d!==void 0&&(d=Math.max(0,d)),f!==void 0&&(f=Math.max(0,f)),this.setState(function(_){return d===void 0&&(d=_.scrollLeft),f===void 0&&(f=_.scrollTop),_.scrollLeft===d&&_.scrollTop===f?null:{horizontalScrollDirection:_.scrollLeft<d?"forward":"backward",scrollLeft:d,scrollTop:f,scrollUpdateWasRequested:!0,verticalScrollDirection:_.scrollTop<f?"forward":"backward"}},this._resetIsScrollingDebounced)},T.scrollToItem=function(n){var d=n.align,f=d===void 0?"auto":d,_=n.columnIndex,x=n.rowIndex,M=this.props,W=M.columnCount,D=M.height,U=M.rowCount,H=M.width,P=this.state,F=P.scrollLeft,q=P.scrollTop,X=he();_!==void 0&&(_=Math.max(0,Math.min(_,W-1))),x!==void 0&&(x=Math.max(0,Math.min(x,U-1)));var ce=s(this.props,this._instanceProps),ie=u(this.props,this._instanceProps),Ce=ie>H?X:0,Me=ce>D?X:0;this.scrollTo({scrollLeft:_!==void 0?c(this.props,_,f,F,this._instanceProps,Me):F,scrollTop:x!==void 0?S(this.props,x,f,q,this._instanceProps,Ce):q})},T.componentDidMount=function(){var n=this.props,d=n.initialScrollLeft,f=n.initialScrollTop;if(this._outerRef!=null){var _=this._outerRef;typeof d=="number"&&(_.scrollLeft=d),typeof f=="number"&&(_.scrollTop=f)}this._callPropsCallbacks()},T.componentDidUpdate=function(){var n=this.props.direction,d=this.state,f=d.scrollLeft,_=d.scrollTop,x=d.scrollUpdateWasRequested;if(x&&this._outerRef!=null){var M=this._outerRef;if(n==="rtl")switch(ee()){case"negative":M.scrollLeft=-f;break;case"positive-ascending":M.scrollLeft=f;break;default:var W=M.clientWidth,D=M.scrollWidth;M.scrollLeft=D-W-f;break}else M.scrollLeft=Math.max(0,f);M.scrollTop=Math.max(0,_)}this._callPropsCallbacks()},T.componentWillUnmount=function(){this._resetIsScrollingTimeoutId!==null&&b(this._resetIsScrollingTimeoutId)},T.render=function(){var n=this.props,d=n.children,f=n.className,_=n.columnCount,x=n.direction,M=n.height,W=n.innerRef,D=n.innerElementType,U=n.innerTagName,H=n.itemData,P=n.itemKey,F=P===void 0?We:P,q=n.outerElementType,X=n.outerTagName,ce=n.rowCount,ie=n.style,Ce=n.useIsScrolling,Me=n.width,ze=this.state.isScrolling,me=this._getHorizontalRangeToRender(),ye=me[0],Ze=me[1],He=this._getVerticalRangeToRender(),Be=He[0],qe=He[1],Pe=[];if(_>0&&ce)for(var be=Be;be<=qe;be++)for(var Ee=ye;Ee<=Ze;Ee++)Pe.push((0,re.createElement)(d,{columnIndex:Ee,data:H,isScrolling:Ce?ze:void 0,key:F({columnIndex:Ee,data:H,rowIndex:be}),rowIndex:be,style:this._getItemStyle(be,Ee)}));var je=s(this.props,this._instanceProps),Ke=u(this.props,this._instanceProps);return(0,re.createElement)(q||X||"div",{className:f,onScroll:this._onScroll,ref:this._outerRefSetter,style:(0,Y.Z)({position:"relative",height:M,width:Me,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:x},ie)},(0,re.createElement)(D||U||"div",{children:Pe,ref:W,style:{height:je,pointerEvents:ze?"none":void 0,width:Ke}}))},T._callPropsCallbacks=function(){var n=this.props,d=n.columnCount,f=n.onItemsRendered,_=n.onScroll,x=n.rowCount;if(typeof f=="function"&&d>0&&x>0){var M=this._getHorizontalRangeToRender(),W=M[0],D=M[1],U=M[2],H=M[3],P=this._getVerticalRangeToRender(),F=P[0],q=P[1],X=P[2],ce=P[3];this._callOnItemsRendered(W,D,F,q,U,H,X,ce)}if(typeof _=="function"){var ie=this.state,Ce=ie.horizontalScrollDirection,Me=ie.scrollLeft,ze=ie.scrollTop,me=ie.scrollUpdateWasRequested,ye=ie.verticalScrollDirection;this._callOnScroll(Me,ze,Ce,ye,me)}},T._getHorizontalRangeToRender=function(){var n=this.props,d=n.columnCount,f=n.overscanColumnCount,_=n.overscanColumnsCount,x=n.overscanCount,M=n.rowCount,W=this.state,D=W.horizontalScrollDirection,U=W.isScrolling,H=W.scrollLeft,P=f||_||x||1;if(d===0||M===0)return[0,0,0,0];var F=r(this.props,H,this._instanceProps),q=i(this.props,F,H,this._instanceProps),X=!U||D==="backward"?Math.max(1,P):1,ce=!U||D==="forward"?Math.max(1,P):1;return[Math.max(0,F-X),Math.max(0,Math.min(d-1,q+ce)),F,q]},T._getVerticalRangeToRender=function(){var n=this.props,d=n.columnCount,f=n.overscanCount,_=n.overscanRowCount,x=n.overscanRowsCount,M=n.rowCount,W=this.state,D=W.isScrolling,U=W.verticalScrollDirection,H=W.scrollTop,P=_||x||f||1;if(d===0||M===0)return[0,0,0,0];var F=I(this.props,H,this._instanceProps),q=E(this.props,F,H,this._instanceProps),X=!D||U==="backward"?Math.max(1,P):1,ce=!D||U==="forward"?Math.max(1,P):1;return[Math.max(0,F-X),Math.max(0,Math.min(M-1,q+ce)),F,q]},R}(re.PureComponent),e.defaultProps={direction:"ltr",itemData:void 0,useIsScrolling:!1},e}var y=function(e,t){var r=e.children,i=e.direction,l=e.height,s=e.innerTagName,u=e.outerTagName,c=e.overscanColumnsCount,S=e.overscanCount,v=e.overscanRowsCount,w=e.width,I=t.instance},z=50,C=function(e,t){var r=e.rowCount,i=t.rowMetadataMap,l=t.estimatedRowHeight,s=t.lastMeasuredRowIndex,u=0;if(s>=r&&(s=r-1),s>=0){var c=i[s];u=c.offset+c.size}var S=r-s-1,v=S*l;return u+v},te=function(e,t){var r=e.columnCount,i=t.columnMetadataMap,l=t.estimatedColumnWidth,s=t.lastMeasuredColumnIndex,u=0;if(s>=r&&(s=r-1),s>=0){var c=i[s];u=c.offset+c.size}var S=r-s-1,v=S*l;return u+v},k=function(e,t,r,i){var l,s,u;if(e==="column"?(l=i.columnMetadataMap,s=t.columnWidth,u=i.lastMeasuredColumnIndex):(l=i.rowMetadataMap,s=t.rowHeight,u=i.lastMeasuredRowIndex),r>u){var c=0;if(u>=0){var S=l[u];c=S.offset+S.size}for(var v=u+1;v<=r;v++){var w=s(v);l[v]={offset:c,size:w},c+=w}e==="column"?i.lastMeasuredColumnIndex=r:i.lastMeasuredRowIndex=r}return l[r]},G=function(e,t,r,i){var l,s;e==="column"?(l=r.columnMetadataMap,s=r.lastMeasuredColumnIndex):(l=r.rowMetadataMap,s=r.lastMeasuredRowIndex);var u=s>0?l[s].offset:0;return u>=i?j(e,t,r,s,0,i):K(e,t,r,Math.max(0,s),i)},j=function(e,t,r,i,l,s){for(;l<=i;){var u=l+Math.floor((i-l)/2),c=k(e,t,u,r).offset;if(c===s)return u;c<s?l=u+1:c>s&&(i=u-1)}return l>0?l-1:0},K=function(e,t,r,i,l){for(var s=e==="column"?t.columnCount:t.rowCount,u=1;i<s&&k(e,t,i,r).offset<l;)i+=u,u*=2;return j(e,t,r,Math.min(i,s-1),Math.floor(i/2),l)},se=function(e,t,r,i,l,s,u){var c=e==="column"?t.width:t.height,S=k(e,t,r,s),v=e==="column"?te(t,s):C(t,s),w=Math.max(0,Math.min(v-c,S.offset)),I=Math.max(0,S.offset-c+u+S.size);switch(i==="smart"&&(l>=I-c&&l<=w+c?i="auto":i="center"),i){case"start":return w;case"end":return I;case"center":return Math.round(I+(w-I)/2);case"auto":default:return l>=I&&l<=w?l:I>w||l<I?I:w}},ve=g({getColumnOffset:function(e,t,r){return k("column",e,t,r).offset},getColumnStartIndexForOffset:function(e,t,r){return G("column",e,r,t)},getColumnStopIndexForStartIndex:function(e,t,r,i){for(var l=e.columnCount,s=e.width,u=k("column",e,t,i),c=r+s,S=u.offset+u.size,v=t;v<l-1&&S<c;)v++,S+=k("column",e,v,i).size;return v},getColumnWidth:function(e,t,r){return r.columnMetadataMap[t].size},getEstimatedTotalHeight:C,getEstimatedTotalWidth:te,getOffsetForColumnAndAlignment:function(e,t,r,i,l,s){return se("column",e,t,r,i,l,s)},getOffsetForRowAndAlignment:function(e,t,r,i,l,s){return se("row",e,t,r,i,l,s)},getRowOffset:function(e,t,r){return k("row",e,t,r).offset},getRowHeight:function(e,t,r){return r.rowMetadataMap[t].size},getRowStartIndexForOffset:function(e,t,r){return G("row",e,r,t)},getRowStopIndexForStartIndex:function(e,t,r,i){for(var l=e.rowCount,s=e.height,u=k("row",e,t,i),c=r+s,S=u.offset+u.size,v=t;v<l-1&&S<c;)v++,S+=k("row",e,v,i).size;return v},initInstanceProps:function(e,t){var r=e,i=r.estimatedColumnWidth,l=r.estimatedRowHeight,s={columnMetadataMap:{},estimatedColumnWidth:i||z,estimatedRowHeight:l||z,lastMeasuredColumnIndex:-1,lastMeasuredRowIndex:-1,rowMetadataMap:{}};return t.resetAfterColumnIndex=function(u,c){c===void 0&&(c=!0),t.resetAfterIndices({columnIndex:u,shouldForceUpdate:c})},t.resetAfterRowIndex=function(u,c){c===void 0&&(c=!0),t.resetAfterIndices({rowIndex:u,shouldForceUpdate:c})},t.resetAfterIndices=function(u){var c=u.columnIndex,S=u.rowIndex,v=u.shouldForceUpdate,w=v===void 0?!0:v;typeof c=="number"&&(s.lastMeasuredColumnIndex=Math.min(s.lastMeasuredColumnIndex,c-1)),typeof S=="number"&&(s.lastMeasuredRowIndex=Math.min(s.lastMeasuredRowIndex,S-1)),t._getItemStyleCache(-1),w&&t.forceUpdate()},s},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){var t=e.columnWidth,r=e.rowHeight}}),ge=150,ne=function(e,t){return e},le=null,ue=null;function we(a){var e,t=a.getItemOffset,r=a.getEstimatedTotalSize,i=a.getItemSize,l=a.getOffsetForIndexAndAlignment,s=a.getStartIndexForOffset,u=a.getStopIndexForStartIndex,c=a.initInstanceProps,S=a.shouldResetStyleCacheOnItemSizeChange,v=a.validateProps;return e=function(w){(0,Se.Z)(I,w);function I(N){var o;return o=w.call(this,N)||this,o._instanceProps=c(o.props,(0,de.Z)(o)),o._outerRef=void 0,o._resetIsScrollingTimeoutId=null,o.state={instance:(0,de.Z)(o),isScrolling:!1,scrollDirection:"forward",scrollOffset:typeof o.props.initialScrollOffset=="number"?o.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},o._callOnItemsRendered=void 0,o._callOnItemsRendered=(0,fe.Z)(function(h,p,R,T){return o.props.onItemsRendered({overscanStartIndex:h,overscanStopIndex:p,visibleStartIndex:R,visibleStopIndex:T})}),o._callOnScroll=void 0,o._callOnScroll=(0,fe.Z)(function(h,p,R){return o.props.onScroll({scrollDirection:h,scrollOffset:p,scrollUpdateWasRequested:R})}),o._getItemStyle=void 0,o._getItemStyle=function(h){var p=o.props,R=p.direction,T=p.itemSize,O=p.layout,n=o._getItemStyleCache(S&&T,S&&O,S&&R),d;if(n.hasOwnProperty(h))d=n[h];else{var f=t(o.props,h,o._instanceProps),_=i(o.props,h,o._instanceProps),x=R==="horizontal"||O==="horizontal",M=R==="rtl",W=x?f:0;n[h]=d={position:"absolute",left:M?void 0:W,right:M?W:void 0,top:x?0:f,height:x?"100%":_,width:x?_:"100%"}}return d},o._getItemStyleCache=void 0,o._getItemStyleCache=(0,fe.Z)(function(h,p,R){return{}}),o._onScrollHorizontal=function(h){var p=h.currentTarget,R=p.clientWidth,T=p.scrollLeft,O=p.scrollWidth;o.setState(function(n){if(n.scrollOffset===T)return null;var d=o.props.direction,f=T;if(d==="rtl")switch(ee()){case"negative":f=-T;break;case"positive-descending":f=O-R-T;break}return f=Math.max(0,Math.min(f,O-R)),{isScrolling:!0,scrollDirection:n.scrollOffset<T?"forward":"backward",scrollOffset:f,scrollUpdateWasRequested:!1}},o._resetIsScrollingDebounced)},o._onScrollVertical=function(h){var p=h.currentTarget,R=p.clientHeight,T=p.scrollHeight,O=p.scrollTop;o.setState(function(n){if(n.scrollOffset===O)return null;var d=Math.max(0,Math.min(O,T-R));return{isScrolling:!0,scrollDirection:n.scrollOffset<d?"forward":"backward",scrollOffset:d,scrollUpdateWasRequested:!1}},o._resetIsScrollingDebounced)},o._outerRefSetter=function(h){var p=o.props.outerRef;o._outerRef=h,typeof p=="function"?p(h):p!=null&&typeof p=="object"&&p.hasOwnProperty("current")&&(p.current=h)},o._resetIsScrollingDebounced=function(){o._resetIsScrollingTimeoutId!==null&&b(o._resetIsScrollingTimeoutId),o._resetIsScrollingTimeoutId=oe(o._resetIsScrolling,ge)},o._resetIsScrolling=function(){o._resetIsScrollingTimeoutId=null,o.setState({isScrolling:!1},function(){o._getItemStyleCache(-1,null)})},o}I.getDerivedStateFromProps=function(o,h){return Re(o,h),v(o),null};var E=I.prototype;return E.scrollTo=function(o){o=Math.max(0,o),this.setState(function(h){return h.scrollOffset===o?null:{scrollDirection:h.scrollOffset<o?"forward":"backward",scrollOffset:o,scrollUpdateWasRequested:!0}},this._resetIsScrollingDebounced)},E.scrollToItem=function(o,h){h===void 0&&(h="auto");var p=this.props,R=p.itemCount,T=p.layout,O=this.state.scrollOffset;o=Math.max(0,Math.min(o,R-1));var n=0;if(this._outerRef){var d=this._outerRef;T==="vertical"?n=d.scrollWidth>d.clientWidth?he():0:n=d.scrollHeight>d.clientHeight?he():0}this.scrollTo(l(this.props,o,h,O,this._instanceProps,n))},E.componentDidMount=function(){var o=this.props,h=o.direction,p=o.initialScrollOffset,R=o.layout;if(typeof p=="number"&&this._outerRef!=null){var T=this._outerRef;h==="horizontal"||R==="horizontal"?T.scrollLeft=p:T.scrollTop=p}this._callPropsCallbacks()},E.componentDidUpdate=function(){var o=this.props,h=o.direction,p=o.layout,R=this.state,T=R.scrollOffset,O=R.scrollUpdateWasRequested;if(O&&this._outerRef!=null){var n=this._outerRef;if(h==="horizontal"||p==="horizontal")if(h==="rtl")switch(ee()){case"negative":n.scrollLeft=-T;break;case"positive-ascending":n.scrollLeft=T;break;default:var d=n.clientWidth,f=n.scrollWidth;n.scrollLeft=f-d-T;break}else n.scrollLeft=T;else n.scrollTop=T}this._callPropsCallbacks()},E.componentWillUnmount=function(){this._resetIsScrollingTimeoutId!==null&&b(this._resetIsScrollingTimeoutId)},E.render=function(){var o=this.props,h=o.children,p=o.className,R=o.direction,T=o.height,O=o.innerRef,n=o.innerElementType,d=o.innerTagName,f=o.itemCount,_=o.itemData,x=o.itemKey,M=x===void 0?ne:x,W=o.layout,D=o.outerElementType,U=o.outerTagName,H=o.style,P=o.useIsScrolling,F=o.width,q=this.state.isScrolling,X=R==="horizontal"||W==="horizontal",ce=X?this._onScrollHorizontal:this._onScrollVertical,ie=this._getRangeToRender(),Ce=ie[0],Me=ie[1],ze=[];if(f>0)for(var me=Ce;me<=Me;me++)ze.push((0,re.createElement)(h,{data:_,key:M(me,_),index:me,isScrolling:P?q:void 0,style:this._getItemStyle(me)}));var ye=r(this.props,this._instanceProps);return(0,re.createElement)(D||U||"div",{className:p,onScroll:ce,ref:this._outerRefSetter,style:(0,Y.Z)({position:"relative",height:T,width:F,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:R},H)},(0,re.createElement)(n||d||"div",{children:ze,ref:O,style:{height:X?"100%":ye,pointerEvents:q?"none":void 0,width:X?ye:"100%"}}))},E._callPropsCallbacks=function(){if(typeof this.props.onItemsRendered=="function"){var o=this.props.itemCount;if(o>0){var h=this._getRangeToRender(),p=h[0],R=h[1],T=h[2],O=h[3];this._callOnItemsRendered(p,R,T,O)}}if(typeof this.props.onScroll=="function"){var n=this.state,d=n.scrollDirection,f=n.scrollOffset,_=n.scrollUpdateWasRequested;this._callOnScroll(d,f,_)}},E._getRangeToRender=function(){var o=this.props,h=o.itemCount,p=o.overscanCount,R=this.state,T=R.isScrolling,O=R.scrollDirection,n=R.scrollOffset;if(h===0)return[0,0,0,0];var d=s(this.props,n,this._instanceProps),f=u(this.props,d,n,this._instanceProps),_=!T||O==="backward"?Math.max(1,p):1,x=!T||O==="forward"?Math.max(1,p):1;return[Math.max(0,d-_),Math.max(0,Math.min(h-1,f+x)),d,f]},I}(re.PureComponent),e.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},e}var Re=function(e,t){var r=e.children,i=e.direction,l=e.height,s=e.layout,u=e.innerTagName,c=e.outerTagName,S=e.width,v=t.instance;if(!1)var w},xe=50,J=function(e,t,r){var i=e,l=i.itemSize,s=r.itemMetadataMap,u=r.lastMeasuredIndex;if(t>u){var c=0;if(u>=0){var S=s[u];c=S.offset+S.size}for(var v=u+1;v<=t;v++){var w=l(v);s[v]={offset:c,size:w},c+=w}r.lastMeasuredIndex=t}return s[t]},m=function(e,t,r){var i=t.itemMetadataMap,l=t.lastMeasuredIndex,s=l>0?i[l].offset:0;return s>=r?A(e,t,l,0,r):$(e,t,Math.max(0,l),r)},A=function(e,t,r,i,l){for(;i<=r;){var s=i+Math.floor((r-i)/2),u=J(e,s,t).offset;if(u===l)return s;u<l?i=s+1:u>l&&(r=s-1)}return i>0?i-1:0},$=function(e,t,r,i){for(var l=e.itemCount,s=1;r<l&&J(e,r,t).offset<i;)r+=s,s*=2;return A(e,t,Math.min(r,l-1),Math.floor(r/2),i)},Z=function(e,t){var r=e.itemCount,i=t.itemMetadataMap,l=t.estimatedItemSize,s=t.lastMeasuredIndex,u=0;if(s>=r&&(s=r-1),s>=0){var c=i[s];u=c.offset+c.size}var S=r-s-1,v=S*l;return u+v},pe=we({getItemOffset:function(e,t,r){return J(e,t,r).offset},getItemSize:function(e,t,r){return r.itemMetadataMap[t].size},getEstimatedTotalSize:Z,getOffsetForIndexAndAlignment:function(e,t,r,i,l,s){var u=e.direction,c=e.height,S=e.layout,v=e.width,w=u==="horizontal"||S==="horizontal",I=w?v:c,E=J(e,t,l),N=Z(e,l),o=Math.max(0,Math.min(N-I,E.offset)),h=Math.max(0,E.offset-I+E.size+s);switch(r==="smart"&&(i>=h-I&&i<=o+I?r="auto":r="center"),r){case"start":return o;case"end":return h;case"center":return Math.round(h+(o-h)/2);case"auto":default:return i>=h&&i<=o?i:i<h?h:o}},getStartIndexForOffset:function(e,t,r){return m(e,r,t)},getStopIndexForStartIndex:function(e,t,r,i){for(var l=e.direction,s=e.height,u=e.itemCount,c=e.layout,S=e.width,v=l==="horizontal"||c==="horizontal",w=v?S:s,I=J(e,t,i),E=r+w,N=I.offset+I.size,o=t;o<u-1&&N<E;)o++,N+=J(e,o,i).size;return o},initInstanceProps:function(e,t){var r=e,i=r.estimatedItemSize,l={itemMetadataMap:{},estimatedItemSize:i||xe,lastMeasuredIndex:-1};return t.resetAfterIndex=function(s,u){u===void 0&&(u=!0),l.lastMeasuredIndex=Math.min(l.lastMeasuredIndex,s-1),t._getItemStyleCache(-1),u&&t.forceUpdate()},l},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){var t=e.itemSize}}),Ae=g({getColumnOffset:function(e,t){var r=e.columnWidth;return t*r},getColumnWidth:function(e,t){var r=e.columnWidth;return r},getRowOffset:function(e,t){var r=e.rowHeight;return t*r},getRowHeight:function(e,t){var r=e.rowHeight;return r},getEstimatedTotalHeight:function(e){var t=e.rowCount,r=e.rowHeight;return r*t},getEstimatedTotalWidth:function(e){var t=e.columnCount,r=e.columnWidth;return r*t},getOffsetForColumnAndAlignment:function(e,t,r,i,l,s){var u=e.columnCount,c=e.columnWidth,S=e.width,v=Math.max(0,u*c-S),w=Math.min(v,t*c),I=Math.max(0,t*c-S+s+c);switch(r==="smart"&&(i>=I-S&&i<=w+S?r="auto":r="center"),r){case"start":return w;case"end":return I;case"center":var E=Math.round(I+(w-I)/2);return E<Math.ceil(S/2)?0:E>v+Math.floor(S/2)?v:E;case"auto":default:return i>=I&&i<=w?i:I>w||i<I?I:w}},getOffsetForRowAndAlignment:function(e,t,r,i,l,s){var u=e.rowHeight,c=e.height,S=e.rowCount,v=Math.max(0,S*u-c),w=Math.min(v,t*u),I=Math.max(0,t*u-c+s+u);switch(r==="smart"&&(i>=I-c&&i<=w+c?r="auto":r="center"),r){case"start":return w;case"end":return I;case"center":var E=Math.round(I+(w-I)/2);return E<Math.ceil(c/2)?0:E>v+Math.floor(c/2)?v:E;case"auto":default:return i>=I&&i<=w?i:I>w||i<I?I:w}},getColumnStartIndexForOffset:function(e,t){var r=e.columnWidth,i=e.columnCount;return Math.max(0,Math.min(i-1,Math.floor(t/r)))},getColumnStopIndexForStartIndex:function(e,t,r){var i=e.columnWidth,l=e.columnCount,s=e.width,u=t*i,c=Math.ceil((s+r-u)/i);return Math.max(0,Math.min(l-1,t+c-1))},getRowStartIndexForOffset:function(e,t){var r=e.rowHeight,i=e.rowCount;return Math.max(0,Math.min(i-1,Math.floor(t/r)))},getRowStopIndexForStartIndex:function(e,t,r){var i=e.rowHeight,l=e.rowCount,s=e.height,u=t*i,c=Math.ceil((s+r-u)/i);return Math.max(0,Math.min(l-1,t+c-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){var t=e.columnWidth,r=e.rowHeight}}),De=we({getItemOffset:function(e,t){var r=e.itemSize;return t*r},getItemSize:function(e,t){var r=e.itemSize;return r},getEstimatedTotalSize:function(e){var t=e.itemCount,r=e.itemSize;return r*t},getOffsetForIndexAndAlignment:function(e,t,r,i,l,s){var u=e.direction,c=e.height,S=e.itemCount,v=e.itemSize,w=e.layout,I=e.width,E=u==="horizontal"||w==="horizontal",N=E?I:c,o=Math.max(0,S*v-N),h=Math.min(o,t*v),p=Math.max(0,t*v-N+v+s);switch(r==="smart"&&(i>=p-N&&i<=h+N?r="auto":r="center"),r){case"start":return h;case"end":return p;case"center":{var R=Math.round(p+(h-p)/2);return R<Math.ceil(N/2)?0:R>o+Math.floor(N/2)?o:R}case"auto":default:return i>=p&&i<=h?i:i<p?p:h}},getStartIndexForOffset:function(e,t){var r=e.itemCount,i=e.itemSize;return Math.max(0,Math.min(r-1,Math.floor(t/i)))},getStopIndexForStartIndex:function(e,t,r){var i=e.direction,l=e.height,s=e.itemCount,u=e.itemSize,c=e.layout,S=e.width,v=i==="horizontal"||c==="horizontal",w=t*u,I=v?S:l,E=Math.ceil((I+r-w)/u);return Math.max(0,Math.min(s-1,t+E-1))},initInstanceProps:function(e){},shouldResetStyleCacheOnItemSizeChange:!0,validateProps:function(e){var t=e.itemSize}});function Oe(a,e){for(var t in a)if(!(t in e))return!0;for(var r in e)if(a[r]!==e[r])return!0;return!1}var ke=null,Ue=null;function $e(a,e){var t=a.style,r=_objectWithoutPropertiesLoose(a,ke),i=e.style,l=_objectWithoutPropertiesLoose(e,Ue);return!Oe(t,i)&&!Oe(r,l)}function Ve(a,e){return!$e(this.props,a)||Oe(this.state,e)}},46212:function(Le,_e,V){V.d(_e,{Z:function(){return Y}});function Y({onlyFirst:de=!1}={}){const Se=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(Se,de?void 0:"g")}}}]);})();
2
-
3
- //# sourceMappingURL=5869.18764ed2.chunk.js.map
@@ -1,4 +0,0 @@
1
- "use strict";(()=>{(self.webpackChunktechdocs_cli_embedded_app=self.webpackChunktechdocs_cli_embedded_app||[]).push([[6051],{76051:function(fe,b,d){d.r(b),d.d(b,{RealLogViewer:function(){return he}});var h=d(52322),C=d(95544),k=d(61837),W=d(19353),D=d(72779),L=d.n(D),g=d(2784),G=d(73557),P=d(7688),$=d(50166),v=d(47842),Y=d(46212);const B=(0,Y.Z)(),I=/\n\r?/g,R=Object.fromEntries(Object.entries({1:e=>({...e,bold:!0}),3:e=>({...e,italic:!0}),4:e=>({...e,underline:!0}),22:({bold:e,...t})=>t,23:({italic:e,...t})=>t,24:({underline:e,...t})=>t,30:e=>({...e,foreground:"black"}),31:e=>({...e,foreground:"red"}),32:e=>({...e,foreground:"green"}),33:e=>({...e,foreground:"yellow"}),34:e=>({...e,foreground:"blue"}),35:e=>({...e,foreground:"magenta"}),36:e=>({...e,foreground:"cyan"}),37:e=>({...e,foreground:"white"}),39:({foreground:e,...t})=>t,90:e=>({...e,foreground:"grey"}),40:e=>({...e,background:"black"}),41:e=>({...e,background:"red"}),42:e=>({...e,background:"green"}),43:e=>({...e,background:"yellow"}),44:e=>({...e,background:"blue"}),45:e=>({...e,background:"magenta"}),46:e=>({...e,background:"cyan"}),47:e=>({...e,background:"white"}),49:({background:e,...t})=>t}).map(([e,t])=>[`\x1B[${e}m`,t]));class j{lastChunk(){return this.chunks[this.chunks.length-1]}replaceLastChunk(t){t&&(this.chunks.splice(this.chunks.length-1,1,...t),this.text=this.chunks.map(n=>n.text).join("").toLocaleLowerCase("en-US"))}constructor(t=1,n=[]){(0,v.Z)(this,"lineNumber",void 0),(0,v.Z)(this,"chunks",void 0),(0,v.Z)(this,"text",void 0),this.lineNumber=t,this.chunks=n,this.text=n.map(s=>s.text).join("").toLocaleLowerCase("en-US")}}class J{process(t){if(this.text===t)return this.lines;if(t.startsWith(this.text)){var n;const r=this.lines.length>0?this.lines.length-1:0;var s;const i=(s=this.lines[r])!==null&&s!==void 0?s:new j,c=i.lastChunk();var o;const l=this.processLines(((o=c==null?void 0:c.text)!==null&&o!==void 0?o:"")+t.slice(this.text.length),c==null?void 0:c.modifiers,i==null?void 0:i.lineNumber);i.replaceLastChunk((n=l[0])===null||n===void 0?void 0:n.chunks),this.lines[r]=i,this.lines.push(...l.slice(1))}else this.lines=this.processLines(t);return this.text=t,this.lines}constructor(){(0,v.Z)(this,"text",""),(0,v.Z)(this,"lines",[]),(0,v.Z)(this,"processLines",(t,n={},s=1)=>{const o=[];let r=n,i=s,c=0;for(I.lastIndex=0;;){const u=I.exec(t);if(!u){const m=this.processText(t.slice(c),r);return o.push(new j(i,m)),o}const a=t.slice(c,u.index);c=u.index+u[0].length;const f=this.processText(a,r);o.push(new j(i,f));var l;r=(l=f[f.length-1].modifiers)!==null&&l!==void 0?l:r,i+=1}}),(0,v.Z)(this,"processText",(t,n)=>{const s=[];let o=n,r=0;for(B.lastIndex=0;;){const i=B.exec(t);if(!i)return s.push({text:t.slice(r),modifiers:o}),s;const c=t.slice(r,i.index);s.push({text:c,modifiers:o}),r=i.index+i[0].length,o=this.processCode(i[0],o)}}),(0,v.Z)(this,"processCode",(t,n)=>{var s,o;return(o=(s=R[t])===null||s===void 0?void 0:s.call(R,n))!==null&&o!==void 0?o:n})}}var Q=d(74600),F=d.n(Q);function X(e,t){const n=new Array;if(t.bold&&n.push(e.modifierBold),t.italic&&n.push(e.modifierItalic),t.underline&&n.push(e.modifierUnderline),t.foreground){const s=`modifierForeground${F()(t.foreground)}`;n.push(e[s])}if(t.background){const s=`modifierBackground${F()(t.background)}`;n.push(e[s])}return n.length>0?n.join(" "):void 0}function w(e,t){if(!t||!e.includes(t))return;const n=new Array;let s=0;for(;;){const o=e.indexOf(t,s);if(o===-1)break;const r=o+t.length;n.push({start:o,end:r}),s=r}return n}function q(e,t){const n=w(e.text,t);if(!n)return e.chunks;const s=new Array;let o=0,r=0,i=n[r];for(const c of e.chunks){const{text:l,modifiers:u}=c;if(!i||o+l.length<i.start){s.push(c),o+=l.length;continue}let a=0;for(;i;){const m=Math.max(i.start-o,0);if(m>l.length)break;const p=Math.min(i.end-o,l.length);if(m>a&&s.push({text:l.slice(a,m),modifiers:u}),p>m&&s.push({modifiers:u,highlight:r,text:l.slice(m,p)}),a=p,i.end-o===p)r+=1,i=n[r];else break}a<l.length&&s.push({text:l.slice(a),modifiers:u}),o+=l.length}return s}function _({line:e,classes:t,searchText:n,highlightResultIndex:s}){const o=(0,g.useMemo)(()=>q(e,n),[e,n]),r=(0,g.useMemo)(()=>o.map(({text:i,modifiers:c,highlight:l},u)=>(0,h.jsx)("span",{className:L()(X(t,c),l!==void 0&&(l===s?t.textSelectedHighlight:t.textHighlight)),children:i},u)),[o,s,t]);return(0,h.jsx)(h.Fragment,{children:r})}var ee=d(86619),te=d(90436),ne=d(48049),oe=d(51209),M=d(36444);function se(e){const{resultCount:t,resultIndexStep:n,toggleShouldFilter:s}=e;var o;const r=(o=e.resultIndex)!==null&&o!==void 0?o:0,i=c=>{c.key==="Enter"&&(c.metaKey||c.ctrlKey||c.altKey?s():n(c.shiftKey))};return(0,h.jsxs)(h.Fragment,{children:[t!==void 0&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(k.Z,{size:"small",onClick:()=>n(!0),children:(0,h.jsx)(ne.Z,{})}),(0,h.jsxs)(te.Z,{children:[Math.min(r+1,t),"/",t]}),(0,h.jsx)(k.Z,{size:"small",onClick:()=>n(),children:(0,h.jsx)(oe.Z,{})})]}),(0,h.jsx)(ee.Z,{size:"small",variant:"standard",placeholder:"Search",value:e.searchInput,onKeyPress:i,onChange:c=>e.setSearchInput(c.target.value)}),(0,h.jsx)(k.Z,{size:"small",onClick:s,children:e.shouldFilter?(0,h.jsx)(M.Z,{color:"primary"}):(0,h.jsx)(M.Z,{color:"disabled"})})]})}var re=d(79692),N=d(41128),Z=d(31754),T=d(66054),A=d(81463),E=d(34505),z=d(57186),K=d(32720),H=d(92901),O=d(45410);const V=40,ie=(0,re.Z)(e=>({root:{background:e.palette.background.paper},header:{height:V,display:"flex",alignItems:"center",justifyContent:"flex-end"},log:{fontFamily:'"Monaco", monospace',fontSize:e.typography.pxToRem(12)},line:{position:"relative",whiteSpace:"pre","&:hover":{background:e.palette.action.hover}},lineSelected:{background:e.palette.action.selected,"&:hover":{background:e.palette.action.selected}},lineCopyButton:{position:"absolute",paddingTop:0,paddingBottom:0},lineNumber:{display:"inline-block",textAlign:"end",width:60,marginRight:e.spacing(1),cursor:"pointer"},textHighlight:{background:(0,N.Fq)(e.palette.info.main,.15)},textSelectedHighlight:{background:(0,N.Fq)(e.palette.info.main,.4)},modifierBold:{fontWeight:e.typography.fontWeightBold},modifierItalic:{fontStyle:"italic"},modifierUnderline:{textDecoration:"underline"},modifierForegroundBlack:{color:Z.Z.black},modifierForegroundRed:{color:T.Z[500]},modifierForegroundGreen:{color:A.Z[500]},modifierForegroundYellow:{color:E.Z[500]},modifierForegroundBlue:{color:z.Z[500]},modifierForegroundMagenta:{color:K.Z[500]},modifierForegroundCyan:{color:H.Z[500]},modifierForegroundWhite:{color:Z.Z.white},modifierForegroundGrey:{color:O.Z[500]},modifierBackgroundBlack:{background:Z.Z.black},modifierBackgroundRed:{background:T.Z[500]},modifierBackgroundGreen:{background:A.Z[500]},modifierBackgroundYellow:{background:E.Z[500]},modifierBackgroundBlue:{background:z.Z[500]},modifierBackgroundMagenta:{background:K.Z[500]},modifierBackgroundCyan:{background:H.Z[500]},modifierBackgroundWhite:{background:Z.Z.white},modifierBackgroundGrey:{background:O.Z[500]}}),{name:"BackstageLogViewer"});var le=d(96686);function ce(e,t){if(!t)return{lines:e};const n=[],s=[];for(const o of e)if(o.text.includes(t)){n.push(o);let r=0,i=0;for(;;){const c=o.text.indexOf(t,r);if(c===-1)break;s.push({lineNumber:o.lineNumber,lineIndex:i++}),r=c+t.length}}return{lines:n,results:s}}function de(e){var t;const[n,s]=(0,g.useState)(""),o=n.toLocaleLowerCase("en-US"),[r,i]=(0,g.useState)(0),[c,l]=(0,le.O)(!1),u=(0,g.useMemo)(()=>ce(e,o),[e,o]),a=u.results?u.results[Math.min(r,u.results.length-1)]:void 0,f=(t=u.results)===null||t===void 0?void 0:t.length,m=p=>{if(p){if(f!==void 0){const x=Math.min(r-1,f-2);i(x<0?f-1:x)}}else if(f!==void 0){const x=r+1;i(x>=f?0:x)}};return{lines:c?u.lines:e,searchText:o,searchInput:n,setSearchInput:s,shouldFilter:c,toggleShouldFilter:l,resultCount:f,resultIndex:r,resultIndexStep:m,resultLine:a==null?void 0:a.lineNumber,resultLineIndex:a==null?void 0:a.lineIndex}}var U=d(60871),ae=d(95074);function ue(e){const t=(0,U.h_)(U.VE),[n,s]=(0,g.useState)(),o=n?Math.min(n.start,n.end):void 0,r=n?Math.max(n.start,n.end):void 0,[{error:i},c]=(0,ae.Z)();return(0,g.useEffect)(()=>{i&&t.post(i)},[i,t]),{shouldShowButton(l){return o===l||r===l},isSelected(l){return n?o<=l&&l<=r:!1},setSelection(l,u){s(u?a=>a?{start:a.start,end:l}:{start:l,end:l}:a=>(a==null?void 0:a.start)===l&&(a==null?void 0:a.end)===l?void 0:{start:l,end:l})},copySelection(){if(n){const l=e.slice(Math.min(n.start,n.end)-1,Math.max(n.start,n.end)).map(u=>u.chunks.map(a=>a.text).join("")).join(`
2
- `);c(l),s(void 0)}}}}function he(e){const t=ie({classes:e.classes}),n=(0,g.useRef)(null),o=(0,g.useMemo)(()=>new J,[]).process(e.text),r=de(o),i=ue(o),c=(0,G.TH)();(0,g.useEffect)(()=>{r.resultLine!==void 0&&n.current&&n.current.scrollToItem(r.resultLine-1,"center")},[r.resultLine]),(0,g.useEffect)(()=>{if(c.hash){const u=parseInt(c.hash.replace(/\D/g,""),10);i.setSelection(u,!1)}},[]);const l=(u,a)=>{i.setSelection(u,a.shiftKey)};return(0,h.jsx)(P.Z,{children:({height:u,width:a})=>(0,h.jsxs)(C.Z,{style:{width:a,height:u},className:t.root,children:[(0,h.jsx)(C.Z,{className:t.header,children:(0,h.jsx)(se,{...r})}),(0,h.jsx)($.t7,{ref:n,className:t.log,height:u-V,width:a,itemData:r.lines,itemSize:20,itemCount:r.lines.length,children:({index:f,style:m,data:p})=>{const x=p[f],{lineNumber:y}=x;return(0,h.jsxs)(C.Z,{style:{...m},className:L()(t.line,{[t.lineSelected]:i.isSelected(y)}),children:[i.shouldShowButton(y)&&(0,h.jsx)(k.Z,{"data-testid":"copy-button",size:"small",className:t.lineCopyButton,onClick:()=>i.copySelection(),children:(0,h.jsx)(W.Z,{fontSize:"inherit"})}),(0,h.jsx)("a",{role:"row",target:"_self",href:`#line-${y}`,className:t.lineNumber,onClick:S=>l(y,S),onKeyPress:S=>l(y,S),children:y}),(0,h.jsx)(_,{line:x,classes:t,searchText:r.searchText,highlightResultIndex:r.resultLine===y?r.resultLineIndex:void 0})]})}})]})})}}}]);})();
3
-
4
- //# sourceMappingURL=6051.002ec2c4.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/6051.002ec2c4.chunk.js","mappings":"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","sources":["webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/AnsiProcessor.ts","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/LogLine.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/LogViewerControls.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/styles.ts","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/useLogViewerSearch.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/useLogViewerSelection.tsx","webpack://techdocs-cli-embedded-app/../core-components/src/components/LogViewer/RealLogViewer.tsx"],"sourcesContent":["/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport ansiRegexMaker from 'ansi-regex';\n\nconst ansiRegex = ansiRegexMaker();\nconst newlineRegex = /\\n\\r?/g;\n\n// A mapping of how each escape code changes the modifiers\nconst codeModifiers = Object.fromEntries(\n Object.entries({\n 1: m => ({ ...m, bold: true }),\n 3: m => ({ ...m, italic: true }),\n 4: m => ({ ...m, underline: true }),\n 22: ({ bold: _, ...m }) => m,\n 23: ({ italic: _, ...m }) => m,\n 24: ({ underline: _, ...m }) => m,\n 30: m => ({ ...m, foreground: 'black' }),\n 31: m => ({ ...m, foreground: 'red' }),\n 32: m => ({ ...m, foreground: 'green' }),\n 33: m => ({ ...m, foreground: 'yellow' }),\n 34: m => ({ ...m, foreground: 'blue' }),\n 35: m => ({ ...m, foreground: 'magenta' }),\n 36: m => ({ ...m, foreground: 'cyan' }),\n 37: m => ({ ...m, foreground: 'white' }),\n 39: ({ foreground: _, ...m }) => m,\n 90: m => ({ ...m, foreground: 'grey' }),\n 40: m => ({ ...m, background: 'black' }),\n 41: m => ({ ...m, background: 'red' }),\n 42: m => ({ ...m, background: 'green' }),\n 43: m => ({ ...m, background: 'yellow' }),\n 44: m => ({ ...m, background: 'blue' }),\n 45: m => ({ ...m, background: 'magenta' }),\n 46: m => ({ ...m, background: 'cyan' }),\n 47: m => ({ ...m, background: 'white' }),\n 49: ({ background: _, ...m }) => m,\n } as Record<string, (m: ChunkModifiers) => ChunkModifiers>).map(\n ([code, modifier]) => [`\\x1b[${code}m`, modifier],\n ),\n);\n\nexport type AnsiColor =\n | 'black'\n | 'red'\n | 'green'\n | 'yellow'\n | 'blue'\n | 'magenta'\n | 'cyan'\n | 'white'\n | 'grey';\n\nexport interface ChunkModifiers {\n foreground?: AnsiColor;\n background?: AnsiColor;\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n}\n\nexport interface AnsiChunk {\n text: string;\n modifiers: ChunkModifiers;\n}\n\nexport class AnsiLine {\n text: string;\n\n constructor(\n readonly lineNumber: number = 1,\n readonly chunks: AnsiChunk[] = [],\n ) {\n this.text = chunks\n .map(c => c.text)\n .join('')\n .toLocaleLowerCase('en-US');\n }\n\n lastChunk(): AnsiChunk | undefined {\n return this.chunks[this.chunks.length - 1];\n }\n\n replaceLastChunk(newChunks?: AnsiChunk[]) {\n if (newChunks) {\n this.chunks.splice(this.chunks.length - 1, 1, ...newChunks);\n this.text = this.chunks\n .map(c => c.text)\n .join('')\n .toLocaleLowerCase('en-US');\n }\n }\n}\n\nexport class AnsiProcessor {\n private text: string = '';\n private lines: AnsiLine[] = [];\n\n /**\n * Processes a chunk of text while keeping internal state that optimizes\n * subsequent processing that appends to the text.\n */\n process(text: string): AnsiLine[] {\n if (this.text === text) {\n return this.lines;\n }\n\n if (text.startsWith(this.text)) {\n const lastLineIndex = this.lines.length > 0 ? this.lines.length - 1 : 0;\n const lastLine = this.lines[lastLineIndex] ?? new AnsiLine();\n const lastChunk = lastLine.lastChunk();\n\n const newLines = this.processLines(\n (lastChunk?.text ?? '') + text.slice(this.text.length),\n lastChunk?.modifiers,\n lastLine?.lineNumber,\n );\n lastLine.replaceLastChunk(newLines[0]?.chunks);\n\n this.lines[lastLineIndex] = lastLine;\n this.lines.push(...newLines.slice(1));\n } else {\n this.lines = this.processLines(text);\n }\n this.text = text;\n\n return this.lines;\n }\n\n // Split a chunk of text up into lines and process each line individually\n private processLines = (\n text: string,\n modifiers: ChunkModifiers = {},\n startingLineNumber: number = 1,\n ): AnsiLine[] => {\n const lines: AnsiLine[] = [];\n\n let currentModifiers = modifiers;\n let currentLineNumber = startingLineNumber;\n\n let prevIndex = 0;\n newlineRegex.lastIndex = 0;\n for (;;) {\n const match = newlineRegex.exec(text);\n if (!match) {\n const chunks = this.processText(\n text.slice(prevIndex),\n currentModifiers,\n );\n lines.push(new AnsiLine(currentLineNumber, chunks));\n return lines;\n }\n\n const line = text.slice(prevIndex, match.index);\n prevIndex = match.index + match[0].length;\n\n const chunks = this.processText(line, currentModifiers);\n lines.push(new AnsiLine(currentLineNumber, chunks));\n\n // Modifiers that are active in the last chunk are carried over to the next line\n currentModifiers =\n chunks[chunks.length - 1].modifiers ?? currentModifiers;\n currentLineNumber += 1;\n }\n };\n\n // Processing of a one individual text chunk\n private processText = (\n fullText: string,\n modifiers: ChunkModifiers,\n ): AnsiChunk[] => {\n const chunks: AnsiChunk[] = [];\n\n let currentModifiers = modifiers;\n\n let prevIndex = 0;\n ansiRegex.lastIndex = 0;\n for (;;) {\n const match = ansiRegex.exec(fullText);\n if (!match) {\n chunks.push({\n text: fullText.slice(prevIndex),\n modifiers: currentModifiers,\n });\n return chunks;\n }\n\n const text = fullText.slice(prevIndex, match.index);\n chunks.push({ text, modifiers: currentModifiers });\n\n // For every escape code that we encounter we keep track of where the\n // next chunk of text starts, and what modifiers it has\n prevIndex = match.index + match[0].length;\n currentModifiers = this.processCode(match[0], currentModifiers);\n }\n };\n\n private processCode = (\n code: string,\n modifiers: ChunkModifiers,\n ): ChunkModifiers => {\n return codeModifiers[code]?.(modifiers) ?? modifiers;\n };\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useMemo } from 'react';\nimport { AnsiChunk, AnsiLine, ChunkModifiers } from './AnsiProcessor';\nimport startCase from 'lodash/startCase';\nimport classnames from 'classnames';\nimport { useStyles } from './styles';\n\nexport function getModifierClasses(\n classes: ReturnType<typeof useStyles>,\n modifiers: ChunkModifiers,\n) {\n const classNames = new Array<string>();\n if (modifiers.bold) {\n classNames.push(classes.modifierBold);\n }\n if (modifiers.italic) {\n classNames.push(classes.modifierItalic);\n }\n if (modifiers.underline) {\n classNames.push(classes.modifierUnderline);\n }\n if (modifiers.foreground) {\n const key = `modifierForeground${startCase(\n modifiers.foreground,\n )}` as keyof typeof classes;\n classNames.push(classes[key]);\n }\n if (modifiers.background) {\n const key = `modifierBackground${startCase(\n modifiers.background,\n )}` as keyof typeof classes;\n classNames.push(classes[key]);\n }\n return classNames.length > 0 ? classNames.join(' ') : undefined;\n}\n\nexport function findSearchResults(text: string, searchText: string) {\n if (!searchText || !text.includes(searchText)) {\n return undefined;\n }\n const searchResults = new Array<{ start: number; end: number }>();\n let offset = 0;\n for (;;) {\n const start = text.indexOf(searchText, offset);\n if (start === -1) {\n break;\n }\n const end = start + searchText.length;\n searchResults.push({ start, end });\n offset = end;\n }\n return searchResults;\n}\n\nexport interface HighlightAnsiChunk extends AnsiChunk {\n highlight?: number;\n}\n\nexport function calculateHighlightedChunks(\n line: AnsiLine,\n searchText: string,\n): HighlightAnsiChunk[] {\n const results = findSearchResults(line.text, searchText);\n if (!results) {\n return line.chunks;\n }\n\n const chunks = new Array<HighlightAnsiChunk>();\n\n let lineOffset = 0;\n let resultIndex = 0;\n let result = results[resultIndex];\n for (const chunk of line.chunks) {\n const { text, modifiers } = chunk;\n if (!result || lineOffset + text.length < result.start) {\n chunks.push(chunk);\n lineOffset += text.length;\n continue;\n }\n\n let localOffset = 0;\n while (result) {\n const localStart = Math.max(result.start - lineOffset, 0);\n if (localStart > text.length) {\n break; // The next result is not in this chunk\n }\n\n const localEnd = Math.min(result.end - lineOffset, text.length);\n\n const hasTextBeforeResult = localStart > localOffset;\n if (hasTextBeforeResult) {\n chunks.push({ text: text.slice(localOffset, localStart), modifiers });\n }\n const hasResultText = localEnd > localStart;\n if (hasResultText) {\n chunks.push({\n modifiers,\n highlight: resultIndex,\n text: text.slice(localStart, localEnd),\n });\n }\n\n localOffset = localEnd;\n\n const foundCompleteResult = result.end - lineOffset === localEnd;\n if (foundCompleteResult) {\n resultIndex += 1;\n result = results[resultIndex];\n } else {\n break; // The rest of the result is in the following chunks\n }\n }\n\n const hasTextAfterResult = localOffset < text.length;\n if (hasTextAfterResult) {\n chunks.push({ text: text.slice(localOffset), modifiers });\n }\n\n lineOffset += text.length;\n }\n\n return chunks;\n}\n\nexport interface LogLineProps {\n line: AnsiLine;\n classes: ReturnType<typeof useStyles>;\n searchText: string;\n highlightResultIndex?: number;\n}\n\nexport function LogLine({\n line,\n classes,\n searchText,\n highlightResultIndex,\n}: LogLineProps) {\n const chunks = useMemo(\n () => calculateHighlightedChunks(line, searchText),\n [line, searchText],\n );\n\n const elements = useMemo(\n () =>\n chunks.map(({ text, modifiers, highlight }, index) => (\n // eslint-disable-next-line react/forbid-elements\n <span\n key={index}\n className={classnames(\n getModifierClasses(classes, modifiers),\n highlight !== undefined &&\n (highlight === highlightResultIndex\n ? classes.textSelectedHighlight\n : classes.textHighlight),\n )}\n >\n {text}\n </span>\n )),\n [chunks, highlightResultIndex, classes],\n );\n\n return <>{elements}</>;\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport IconButton from '@material-ui/core/IconButton';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport { LogViewerSearch } from './useLogViewerSearch';\n\nexport interface LogViewerControlsProps extends LogViewerSearch {}\n\nexport function LogViewerControls(props: LogViewerControlsProps) {\n const { resultCount, resultIndexStep, toggleShouldFilter } = props;\n const resultIndex = props.resultIndex ?? 0;\n\n const handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n if (event.metaKey || event.ctrlKey || event.altKey) {\n toggleShouldFilter();\n } else {\n resultIndexStep(event.shiftKey);\n }\n }\n };\n\n return (\n <>\n {resultCount !== undefined && (\n <>\n <IconButton size=\"small\" onClick={() => resultIndexStep(true)}>\n <ChevronLeftIcon />\n </IconButton>\n <Typography>\n {Math.min(resultIndex + 1, resultCount)}/{resultCount}\n </Typography>\n <IconButton size=\"small\" onClick={() => resultIndexStep()}>\n <ChevronRightIcon />\n </IconButton>\n </>\n )}\n <TextField\n size=\"small\"\n variant=\"standard\"\n placeholder=\"Search\"\n value={props.searchInput}\n onKeyPress={handleKeyPress}\n onChange={e => props.setSearchInput(e.target.value)}\n />\n <IconButton size=\"small\" onClick={toggleShouldFilter}>\n {props.shouldFilter ? (\n <FilterListIcon color=\"primary\" />\n ) : (\n <FilterListIcon color=\"disabled\" />\n )}\n </IconButton>\n </>\n );\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { alpha, makeStyles } from '@material-ui/core/styles';\nimport * as colors from '@material-ui/core/colors';\n\nexport const HEADER_SIZE = 40;\n\n/** @public Class keys for overriding LogViewer styles */\nexport type LogViewerClassKey =\n | 'root'\n | 'header'\n | 'log'\n | 'line'\n | 'lineSelected'\n | 'lineCopyButton'\n | 'lineNumber'\n | 'textHighlight'\n | 'textSelectedHighlight'\n | 'modifierBold'\n | 'modifierItalic'\n | 'modifierUnderline'\n | 'modifierForegroundBlack'\n | 'modifierForegroundRed'\n | 'modifierForegroundGreen'\n | 'modifierForegroundYellow'\n | 'modifierForegroundBlue'\n | 'modifierForegroundMagenta'\n | 'modifierForegroundCyan'\n | 'modifierForegroundWhite'\n | 'modifierForegroundGrey'\n | 'modifierBackgroundBlack'\n | 'modifierBackgroundRed'\n | 'modifierBackgroundGreen'\n | 'modifierBackgroundYellow'\n | 'modifierBackgroundBlue'\n | 'modifierBackgroundMagenta'\n | 'modifierBackgroundCyan'\n | 'modifierBackgroundWhite'\n | 'modifierBackgroundGrey';\n\nexport const useStyles = makeStyles(\n theme => ({\n root: {\n background: theme.palette.background.paper,\n },\n header: {\n height: HEADER_SIZE,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n log: {\n fontFamily: '\"Monaco\", monospace',\n fontSize: theme.typography.pxToRem(12),\n },\n line: {\n position: 'relative',\n whiteSpace: 'pre',\n\n '&:hover': {\n background: theme.palette.action.hover,\n },\n },\n lineSelected: {\n background: theme.palette.action.selected,\n\n '&:hover': {\n background: theme.palette.action.selected,\n },\n },\n lineCopyButton: {\n position: 'absolute',\n paddingTop: 0,\n paddingBottom: 0,\n },\n lineNumber: {\n display: 'inline-block',\n textAlign: 'end',\n width: 60,\n marginRight: theme.spacing(1),\n cursor: 'pointer',\n },\n textHighlight: {\n background: alpha(theme.palette.info.main, 0.15),\n },\n textSelectedHighlight: {\n background: alpha(theme.palette.info.main, 0.4),\n },\n modifierBold: {\n fontWeight: theme.typography.fontWeightBold,\n },\n modifierItalic: {\n fontStyle: 'italic',\n },\n modifierUnderline: {\n textDecoration: 'underline',\n },\n modifierForegroundBlack: {\n color: colors.common.black,\n },\n modifierForegroundRed: {\n color: colors.red[500],\n },\n modifierForegroundGreen: {\n color: colors.green[500],\n },\n modifierForegroundYellow: {\n color: colors.yellow[500],\n },\n modifierForegroundBlue: {\n color: colors.blue[500],\n },\n modifierForegroundMagenta: {\n color: colors.purple[500],\n },\n modifierForegroundCyan: {\n color: colors.cyan[500],\n },\n modifierForegroundWhite: {\n color: colors.common.white,\n },\n modifierForegroundGrey: {\n color: colors.grey[500],\n },\n modifierBackgroundBlack: {\n background: colors.common.black,\n },\n modifierBackgroundRed: {\n background: colors.red[500],\n },\n modifierBackgroundGreen: {\n background: colors.green[500],\n },\n modifierBackgroundYellow: {\n background: colors.yellow[500],\n },\n modifierBackgroundBlue: {\n background: colors.blue[500],\n },\n modifierBackgroundMagenta: {\n background: colors.purple[500],\n },\n modifierBackgroundCyan: {\n background: colors.cyan[500],\n },\n modifierBackgroundWhite: {\n background: colors.common.white,\n },\n modifierBackgroundGrey: {\n background: colors.grey[500],\n },\n }),\n { name: 'BackstageLogViewer' },\n);\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useMemo, useState } from 'react';\nimport { useToggle } from '@react-hookz/web';\nimport { AnsiLine } from './AnsiProcessor';\n\nexport function applySearchFilter(lines: AnsiLine[], searchText: string) {\n if (!searchText) {\n return { lines };\n }\n\n const matchingLines = [];\n const searchResults = [];\n for (const line of lines) {\n if (line.text.includes(searchText)) {\n matchingLines.push(line);\n\n let offset = 0;\n let lineResultIndex = 0;\n for (;;) {\n const start = line.text.indexOf(searchText, offset);\n if (start === -1) {\n break;\n }\n searchResults.push({\n lineNumber: line.lineNumber,\n lineIndex: lineResultIndex++,\n });\n offset = start + searchText.length;\n }\n }\n }\n\n return {\n lines: matchingLines,\n results: searchResults,\n };\n}\n\nexport interface LogViewerSearch {\n lines: AnsiLine[];\n\n searchText: string;\n searchInput: string;\n setSearchInput: (searchInput: string) => void;\n\n shouldFilter: boolean;\n toggleShouldFilter: () => void;\n\n resultCount: number | undefined;\n resultIndex: number | undefined;\n resultIndexStep: (decrement?: boolean) => void;\n\n resultLine: number | undefined;\n resultLineIndex: number | undefined;\n}\n\nexport function useLogViewerSearch(lines: AnsiLine[]): LogViewerSearch {\n const [searchInput, setSearchInput] = useState('');\n const searchText = searchInput.toLocaleLowerCase('en-US');\n\n const [resultIndex, setResultIndex] = useState<number>(0);\n\n const [shouldFilter, toggleShouldFilter] = useToggle(false);\n\n const filter = useMemo(\n () => applySearchFilter(lines, searchText),\n [lines, searchText],\n );\n\n const searchResult = filter.results\n ? filter.results[Math.min(resultIndex, filter.results.length - 1)]\n : undefined;\n const resultCount = filter.results?.length;\n\n const resultIndexStep = (decrement?: boolean) => {\n if (decrement) {\n if (resultCount !== undefined) {\n const next = Math.min(resultIndex - 1, resultCount - 2);\n setResultIndex(next < 0 ? resultCount - 1 : next);\n }\n } else {\n if (resultCount !== undefined) {\n const next = resultIndex + 1;\n setResultIndex(next >= resultCount ? 0 : next);\n }\n }\n };\n\n return {\n lines: shouldFilter ? filter.lines : lines,\n searchText,\n searchInput,\n setSearchInput,\n shouldFilter,\n toggleShouldFilter,\n resultCount,\n resultIndex,\n resultIndexStep,\n resultLine: searchResult?.lineNumber,\n resultLineIndex: searchResult?.lineIndex,\n };\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { errorApiRef, useApi } from '@backstage/core-plugin-api';\nimport { useEffect, useState } from 'react';\nimport useCopyToClipboard from 'react-use/lib/useCopyToClipboard';\nimport { AnsiLine } from './AnsiProcessor';\n\nexport function useLogViewerSelection(lines: AnsiLine[]) {\n const errorApi = useApi(errorApiRef);\n const [sel, setSelection] = useState<{ start: number; end: number }>();\n const start = sel ? Math.min(sel.start, sel.end) : undefined;\n const end = sel ? Math.max(sel.start, sel.end) : undefined;\n\n const [{ error }, copyToClipboard] = useCopyToClipboard();\n\n useEffect(() => {\n if (error) {\n errorApi.post(error);\n }\n }, [error, errorApi]);\n\n return {\n shouldShowButton(line: number) {\n return start === line || end === line;\n },\n isSelected(line: number) {\n if (!sel) {\n return false;\n }\n return start! <= line && line <= end!;\n },\n setSelection(line: number, add: boolean) {\n if (add) {\n setSelection(s =>\n s ? { start: s.start, end: line } : { start: line, end: line },\n );\n } else {\n setSelection(s =>\n s?.start === line && s?.end === line\n ? undefined\n : { start: line, end: line },\n );\n }\n },\n copySelection() {\n if (sel) {\n const copyText = lines\n .slice(Math.min(sel.start, sel.end) - 1, Math.max(sel.start, sel.end))\n .map(l => l.chunks.map(c => c.text).join(''))\n .join('\\n');\n copyToClipboard(copyText);\n setSelection(undefined);\n }\n },\n };\n}\n","/*\n * Copyright 2021 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport Box from '@material-ui/core/Box';\nimport IconButton from '@material-ui/core/IconButton';\nimport CopyIcon from '@material-ui/icons/FileCopy';\nimport classnames from 'classnames';\nimport React, { useEffect, useMemo, useRef } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport { FixedSizeList } from 'react-window';\n\nimport { AnsiProcessor } from './AnsiProcessor';\nimport { LogLine } from './LogLine';\nimport { LogViewerControls } from './LogViewerControls';\nimport { HEADER_SIZE, useStyles } from './styles';\nimport { useLogViewerSearch } from './useLogViewerSearch';\nimport { useLogViewerSelection } from './useLogViewerSelection';\n\nexport interface RealLogViewerProps {\n text: string;\n classes?: { root?: string };\n}\n\nexport function RealLogViewer(props: RealLogViewerProps) {\n const classes = useStyles({ classes: props.classes });\n const listRef = useRef<FixedSizeList | null>(null);\n\n // The processor keeps state that optimizes appending to the text\n const processor = useMemo(() => new AnsiProcessor(), []);\n const lines = processor.process(props.text);\n\n const search = useLogViewerSearch(lines);\n const selection = useLogViewerSelection(lines);\n const location = useLocation();\n\n useEffect(() => {\n if (search.resultLine !== undefined && listRef.current) {\n listRef.current.scrollToItem(search.resultLine - 1, 'center');\n }\n }, [search.resultLine]);\n\n useEffect(() => {\n if (location.hash) {\n // #line-6 -> 6\n const line = parseInt(location.hash.replace(/\\D/g, ''), 10);\n selection.setSelection(line, false);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleSelectLine = (\n line: number,\n event: { shiftKey: boolean; preventDefault: () => void },\n ) => {\n selection.setSelection(line, event.shiftKey);\n };\n\n return (\n <AutoSizer>\n {({ height, width }) => (\n <Box style={{ width, height }} className={classes.root}>\n <Box className={classes.header}>\n <LogViewerControls {...search} />\n </Box>\n <FixedSizeList\n ref={listRef}\n className={classes.log}\n height={height - HEADER_SIZE}\n width={width}\n itemData={search.lines}\n itemSize={20}\n itemCount={search.lines.length}\n >\n {({ index, style, data }) => {\n const line = data[index];\n const { lineNumber } = line;\n return (\n <Box\n style={{ ...style }}\n className={classnames(classes.line, {\n [classes.lineSelected]: selection.isSelected(lineNumber),\n })}\n >\n {selection.shouldShowButton(lineNumber) && (\n <IconButton\n data-testid=\"copy-button\"\n size=\"small\"\n className={classes.lineCopyButton}\n onClick={() => selection.copySelection()}\n >\n <CopyIcon fontSize=\"inherit\" />\n </IconButton>\n )}\n <a\n role=\"row\"\n target=\"_self\"\n href={`#line-${lineNumber}`}\n className={classes.lineNumber}\n onClick={event => handleSelectLine(lineNumber, event)}\n onKeyPress={event => handleSelectLine(lineNumber, event)}\n >\n {lineNumber}\n </a>\n <LogLine\n line={line}\n classes={classes}\n searchText={search.searchText}\n highlightResultIndex={\n search.resultLine === lineNumber\n ? search.resultLineIndex\n : undefined\n }\n />\n </Box>\n );\n }}\n </FixedSizeList>\n </Box>\n )}\n </AutoSizer>\n );\n}\n"],"names":["ansiRegex","ansiRegexMaker","newlineRegex","codeModifiers","Object","fromEntries","entries","m","bold","italic","underline","_","foreground","background","map","code","modifier","AnsiLine","lastChunk","chunks","length","replaceLastChunk","newChunks","splice","text","c","join","toLocaleLowerCase","constructor","lineNumber","AnsiProcessor","process","lines","startsWith","newLines","lastLineIndex","lastLine","processLines","slice","modifiers","push","startingLineNumber","currentModifiers","currentLineNumber","prevIndex","lastIndex","match","exec","processText","line","index","fullText","processCode","getModifierClasses","classes","classNames","Array","modifierBold","modifierItalic","modifierUnderline","key","startCase","undefined","findSearchResults","searchText","includes","searchResults","offset","start","indexOf","end","calculateHighlightedChunks","results","lineOffset","resultIndex","result","chunk","localOffset","localStart","Math","max","localEnd","min","highlight","LogLine","highlightResultIndex","useMemo","elements","span","className","classnames","textSelectedHighlight","textHighlight","LogViewerControls","props","resultCount","resultIndexStep","toggleShouldFilter","handleKeyPress","event","metaKey","ctrlKey","altKey","shiftKey","IconButton","size","onClick","ChevronLeftIcon","Typography","ChevronRightIcon","TextField","variant","placeholder","value","searchInput","onKeyPress","onChange","e","setSearchInput","target","shouldFilter","FilterListIcon","color","HEADER_SIZE","useStyles","makeStyles","theme","root","palette","paper","header","height","display","alignItems","justifyContent","log","fontFamily","fontSize","typography","pxToRem","position","whiteSpace","action","hover","lineSelected","selected","lineCopyButton","paddingTop","paddingBottom","textAlign","width","marginRight","spacing","cursor","alpha","info","main","fontWeight","fontWeightBold","fontStyle","textDecoration","modifierForegroundBlack","colors","modifierForegroundRed","modifierForegroundGreen","modifierForegroundYellow","modifierForegroundBlue","modifierForegroundMagenta","modifierForegroundCyan","modifierForegroundWhite","modifierForegroundGrey","modifierBackgroundBlack","modifierBackgroundRed","modifierBackgroundGreen","modifierBackgroundYellow","modifierBackgroundBlue","modifierBackgroundMagenta","modifierBackgroundCyan","modifierBackgroundWhite","modifierBackgroundGrey","name","applySearchFilter","matchingLines","lineResultIndex","lineIndex","useLogViewerSearch","filter","useState","setResultIndex","useToggle","searchResult","decrement","next","resultLine","resultLineIndex","useLogViewerSelection","errorApi","useApi","errorApiRef","sel","setSelection","error","copyToClipboard","useCopyToClipboard","useEffect","post","shouldShowButton","isSelected","add","s","copySelection","copyText","l","RealLogViewer","listRef","useRef","search","selection","location","useLocation","current","scrollToItem","hash","parseInt","replace","handleSelectLine","AutoSizer","Box","style","FixedSizeList","ref","itemData","itemSize","itemCount","data","data-testid","CopyIcon","a","role","href"],"sourceRoot":""}