@gpustack/core-ui 1.0.25 → 1.0.26

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.
@@ -0,0 +1,5 @@
1
+ (function(){let e=/\x1b\[(\d*);?(\d*)?([A-DJKHfm])/g,t=e=>e.startsWith(`(…)`)?e.slice(3):e;var n=class{onMessage;cursorRow=0;cursorCol=0;screen=[[``]];rawDataRows=0;uid=0;isProcessing=!1;taskQueue=[];page=1;progress=0;percent=0;isComplete=!1;chunked=!0;reminder=``;lines=[];isDownloading=!1;pageSize=500;resetFlag=!1;colorMap={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`};constructor(){this.reset()}reset(){this.cursorRow=0,this.cursorCol=0,this.screen=[[``]],this.rawDataRows=0,this.uid+=1,this.lines=[],this.reminder=``,this.page=1,this.resetFlag=!0}setPage(e){this.page=e??1}setPercent(e){this.percent=e??0}setProgress(e){this.progress=e??0}setIsCompelete(e){this.isComplete=e}setChunked(e){this.chunked=e??!0}setIsDownloading(e){this.isDownloading=e}setId(){return this.uid+=1,this.uid}handleText(e){for(let t=0;t<e.length;t++){let n=e[t];if(n===`\r`){if(e[t+1]===`
2
+ `)continue;this.cursorCol=0}else if(n===`
3
+ `)this.rawDataRows++,this.cursorRow++,this.cursorCol=0,this.screen[this.cursorRow]||(this.screen[this.cursorRow]=[``]);else{let e=this.screen[this.cursorRow]||(this.screen[this.cursorRow]=[``]);e[this.cursorCol]=n||``,this.cursorCol++}}}handleAnsiSequence(e,t){let n=parseInt(e[1]||`1`,10),r=parseInt(e[2]||`1`,10);switch(e[3]){case`A`:this.cursorRow=Math.max(0,this.cursorRow-n);break;case`B`:this.cursorRow+=n;break;case`C`:this.cursorCol+=n;break;case`D`:this.cursorCol=Math.max(0,this.cursorCol-n);break;case`H`:this.cursorRow=Math.max(0,n-1),this.cursorCol=Math.max(0,r-1);break;case`J`:n===2&&this.reset();break;case`m`:break}for(;this.screen.length<=this.cursorRow&&!t;)this.screen.push([``]);for(;this.screen[this.cursorRow].length<=this.cursorCol&&!t;)this.screen[this.cursorRow].push(``)}processInput(n){let r=/\x1b(\[[\d;]*)?$/.exec(n),i=``;r&&(i=n.slice(r.index),n=n.slice(0,r.index)),e.lastIndex=0;let a,o=0;for(;(a=e.exec(n))!==null;){let t=n.slice(o,a.index);this.handleText(t),o=e.lastIndex,this.handleAnsiSequence(a,o===n.length-1)}let s=n.slice(o);return this.handleText(s),{data:this.screen.map((e,n)=>t(e.join(``))),lines:this.rawDataRows,remainder:i}}getScreenText(){return this.screen.map(e=>t(e.join(``))).join(`
4
+ `)}processInputByLine(e){let t=e?.split(/\r?\n/)||[],n=t.pop()||``;return this.rawDataRows+=t.length,this.chunked||t.forEach(e=>{this.lines.push(e)}),{data:t,lines:this.rawDataRows,remainder:n}}getAllLines(){return this.lines.join(`
5
+ `)}emit(e){typeof self<`u`&&typeof self.postMessage==`function`&&self.postMessage(e),this.onMessage?.(e)}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.taskQueue.length>0;){let e=this.reminder+(this.taskQueue.shift()||``);if(e)try{let t=this.isDownloading?this.processInput(e):this.processInputByLine(e);this.reminder=t.remainder,this.chunked?(this.emit({result:t.data,lines:t.lines,append:!this.isDownloading,reset:this.resetFlag}),this.resetFlag=!1):this.isComplete||this.emit({result:``,percent:this.percent,isComplete:!1})}catch(e){console.error(`Error processing input:`,e)}await new Promise(e=>{setTimeout(e,0)})}this.isProcessing=!1,this.taskQueue.length>0?this.processQueue():this.isComplete&&!this.chunked&&(this.emit({result:this.getAllLines(),percent:this.percent,isComplete:!0}),this.reset())}}enqueueData(e){this.taskQueue.push(e),this.isProcessing||this.processQueue()}};if(typeof self<`u`&&typeof self.addEventListener==`function`){let e=new n;self.onmessage=function(t){let{inputStr:n,reset:r,page:i,isComplete:a=!1,chunked:o=!0,percent:s=0,isDownloading:c=!1}=t.data;e.setIsDownloading(c),e.setPage(i),e.setIsCompelete(a),e.setChunked(o),e.setPercent(s),r&&e.reset(),e.enqueueData(n)},self.onerror=function(e){console.error(`parse logs error===`,e)}}})();
package/dist/index.es.js CHANGED
@@ -2825,7 +2825,7 @@ function Qi() {
2825
2825
  };
2826
2826
  return F(() => (t.current?.terminate?.(), t.current = new Worker(new URL(
2827
2827
  /* @vite-ignore */
2828
- "" + new URL("assets/parse-worker-DASzfShu.js", import.meta.url).href,
2828
+ "" + new URL("assets/parse-worker-BPerpUms.js", import.meta.url).href,
2829
2829
  "" + import.meta.url
2830
2830
  ), { type: "module" }), t.current.onmessage = (t) => {
2831
2831
  let { result: n, isComplete: a, percent: s } = t.data, c = e.current?.current?.signal?.aborted;
@@ -3552,6 +3552,7 @@ var ma = () => {
3552
3552
  white-space: pre-line;
3553
3553
  word-break: normal;
3554
3554
  overflow-wrap: break-word;
3555
+ hyphens: auto;
3555
3556
  span {
3556
3557
  color: var(--ant-color-text);
3557
3558
  display: flex;
@@ -8709,7 +8710,7 @@ var Ic = (e) => {
8709
8710
  ce();
8710
8711
  }, [C, ce]), F(() => (_.current?.terminate?.(), _.current = new Worker(new URL(
8711
8712
  /* @vite-ignore */
8712
- "" + new URL("assets/parse-worker-DASzfShu.js", import.meta.url).href,
8713
+ "" + new URL("assets/parse-worker-BPerpUms.js", import.meta.url).href,
8713
8714
  "" + import.meta.url
8714
8715
  ), { type: "module" }), _.current.onmessage = (e) => {
8715
8716
  let { result: t, lines: n, append: r, reset: i } = e.data;
@@ -1 +1,39 @@
1
- export {};
1
+ export declare class AnsiParser {
2
+ onMessage?: (message: any) => void;
3
+ private cursorRow;
4
+ private cursorCol;
5
+ private screen;
6
+ private rawDataRows;
7
+ private uid;
8
+ private isProcessing;
9
+ private taskQueue;
10
+ private page;
11
+ private progress;
12
+ private percent;
13
+ private isComplete;
14
+ private chunked;
15
+ private reminder;
16
+ private lines;
17
+ isDownloading: boolean;
18
+ private pageSize;
19
+ private resetFlag;
20
+ private colorMap;
21
+ constructor();
22
+ reset(): void;
23
+ setPage(page: number | undefined): void;
24
+ setPercent(percent: number | undefined): void;
25
+ setProgress(progress: number | undefined): void;
26
+ setIsCompelete(isComplete: boolean): void;
27
+ setChunked(chunked: boolean): void;
28
+ setIsDownloading(isDownloading: boolean): void;
29
+ private setId;
30
+ private handleText;
31
+ private handleAnsiSequence;
32
+ private processInput;
33
+ private getScreenText;
34
+ private processInputByLine;
35
+ private getAllLines;
36
+ private emit;
37
+ private processQueue;
38
+ enqueueData(input: string): void;
39
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gpustack/core-ui",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
4
4
  "private": false,
5
5
  "sideEffects": [
6
6
  "**/*.css",
@@ -48,6 +48,8 @@
48
48
  "prepare": "husky",
49
49
  "prepublishOnly": "pnpm build",
50
50
  "preview": "vite preview",
51
+ "test": "vitest run",
52
+ "test:watch": "vitest",
51
53
  "typecheck": "tsc -p tsconfig.app.json --noEmit"
52
54
  },
53
55
  "lint-staged": {
@@ -139,7 +141,8 @@
139
141
  "typescript": "~6.0.2",
140
142
  "typescript-eslint": "^8.58.0",
141
143
  "vite": "^8.0.8",
142
- "vite-plugin-dts": "^4.5.4"
144
+ "vite-plugin-dts": "^4.5.4",
145
+ "vitest": "^4.1.8"
143
146
  },
144
147
  "peerDependencies": {
145
148
  "@ant-design/icons": ">=6.0.0",
@@ -1,5 +0,0 @@
1
- (function(){let e=/\x1b\[(\d*);?(\d*)?([A-DJKHfm])/g,t=e=>e.startsWith(`(…)`)?e.slice(3):e,n=new class{cursorRow=0;cursorCol=0;screen=[[``]];rawDataRows=0;uid=0;isProcessing=!1;taskQueue=[];page=1;progress=0;percent=0;isComplete=!1;chunked=!0;reminder=``;lines=[];isDownloading=!1;pageSize=500;resetFlag=!1;colorMap={30:`black`,31:`red`,32:`green`,33:`yellow`,34:`blue`,35:`magenta`,36:`cyan`,37:`white`};constructor(){this.reset()}reset(){this.cursorRow=0,this.cursorCol=0,this.screen=[[``]],this.rawDataRows=0,this.uid+=1,this.lines=[],this.reminder=``,this.page=1,this.resetFlag=!0}setPage(e){this.page=e??1}setPercent(e){this.percent=e??0}setProgress(e){this.progress=e??0}setIsCompelete(e){this.isComplete=e}setChunked(e){this.chunked=e??!0}setIsDownloading(e){this.isDownloading=e}setId(){return this.uid+=1,this.uid}handleText(e){for(let t=0;t<e.length;t++){let n=e[t];if(n===`\r`){if(e[t+1]===`
2
- `)continue;this.cursorCol=0}else if(n===`
3
- `)this.rawDataRows++,this.cursorRow++,this.cursorCol=0,this.screen[this.cursorRow]||(this.screen[this.cursorRow]=[``]);else{let e=this.screen[this.cursorRow]||(this.screen[this.cursorRow]=[``]);e[this.cursorCol]=n||``,this.cursorCol++}}}handleAnsiSequence(e,t){let n=parseInt(e[1]||`1`,10),r=parseInt(e[2]||`1`,10);switch(e[3]){case`A`:this.cursorRow=Math.max(0,this.cursorRow-n);break;case`B`:this.cursorRow+=n;break;case`C`:this.cursorCol+=n;break;case`D`:this.cursorCol=Math.max(0,this.cursorCol-n);break;case`H`:this.cursorRow=Math.max(0,n-1),this.cursorCol=Math.max(0,r-1);break;case`J`:n===2&&this.reset();break;case`m`:break}for(;this.screen.length<=this.cursorRow&&!t;)this.screen.push([``]);for(;this.screen[this.cursorRow].length<=this.cursorCol&&!t;)this.screen[this.cursorRow].push(``)}processInput(n){let r,i=0;for(;(r=e.exec(n))!==null;){let t=n.slice(i,r.index);this.handleText(t),i=e.lastIndex,this.handleAnsiSequence(r,i===n.length-1)}let a=n.slice(i);return this.handleText(a),{data:this.screen.map((e,n)=>t(e.join(``))),lines:this.rawDataRows,remainder:``}}getScreenText(){return this.screen.map(e=>t(e.join(``))).join(`
4
- `)}processInputByLine(e){let t=e?.split(/\r?\n/)||[],n=t.pop()||``;return this.rawDataRows+=t.length,this.chunked||t.forEach(e=>{this.lines.push(e)}),{data:t,lines:this.rawDataRows,remainder:n}}getAllLines(){return this.lines.join(`
5
- `)}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.taskQueue.length>0;){let e=``;if(e=this.isDownloading?this.taskQueue.shift()||``:this.reminder+this.taskQueue.shift(),e)try{let t=this.isDownloading?this.processInput(e):this.processInputByLine(e);this.isDownloading||(this.reminder=t.remainder),this.chunked?(self.postMessage({result:t.data,lines:t.lines,append:!this.isDownloading,reset:this.resetFlag}),this.resetFlag=!1):this.isComplete||self.postMessage({result:``,percent:this.percent,isComplete:!1})}catch(e){console.error(`Error processing input:`,e)}await new Promise(e=>{setTimeout(e,0)})}this.isProcessing=!1,this.taskQueue.length>0?this.processQueue():this.isComplete&&!this.chunked&&(self.postMessage({result:this.getAllLines(),percent:this.percent,isComplete:!0}),this.reset())}}enqueueData(e){this.taskQueue.push(e),this.isProcessing||this.processQueue()}};self.onmessage=function(e){let{inputStr:t,reset:r,page:i,isComplete:a=!1,chunked:o=!0,percent:s=0,isDownloading:c=!1}=e.data;n.setIsDownloading(c),n.setPage(i),n.setIsCompelete(a),n.setChunked(o),n.setPercent(s),r&&n.reset(),n.enqueueData(t)},self.onerror=function(e){console.error(`parse logs error===`,e)}})();