@xterm/addon-progress 0.1.0 → 0.2.0-beta.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addon-progress.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAuB,cAAID,IAE3BD,EAAoB,cAAIC,GACzB,CATD,CASGK,YAAY,I,gDCaf,SAASC,EAAMC,GACb,IAAIC,EAAI,EACR,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAEG,SAAUD,EAAG,CACjC,MAAME,EAAIJ,EAAEK,WAAWH,GACvB,GAAIE,EAAI,IAAQ,GAAOA,EACrB,OAAQ,EAEVH,EAAQ,GAAJA,EAASG,EAAI,EACnB,CACA,OAAOH,CACT,C,wEAGA,oCAEU,KAAAK,IAAG,EACH,KAAAC,IAAM,
|
|
1
|
+
{"version":3,"file":"addon-progress.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAuB,cAAID,IAE3BD,EAAoB,cAAIC,GACzB,CATD,CASGK,YAAY,I,gDCaf,SAASC,EAAMC,GACb,IAAIC,EAAI,EACR,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAEG,SAAUD,EAAG,CACjC,MAAME,EAAIJ,EAAEK,WAAWH,GACvB,GAAIE,EAAI,IAAQ,GAAOA,EACrB,OAAQ,EAEVH,EAAQ,GAAJA,EAASG,EAAI,EACnB,CACA,OAAOH,CACT,C,wEAGA,oCAEU,KAAAK,IAAG,EACH,KAAAC,IAAM,CA+DhB,CA1DS,OAAAC,GACLC,KAAKC,aAAaF,UAClBC,KAAKE,WAAWH,SAClB,CAEO,QAAAI,CAASC,GACdJ,KAAKC,YAAcG,EAASC,OAAOC,mBAAmB,GAAGC,IACvD,IAAKA,EAAKC,WAAW,MACnB,OAAO,EAET,MAAMC,EAAQF,EAAKG,MAAM,KAEzB,GAAID,EAAMf,OAAS,EACjB,OAAO,EAEY,IAAjBe,EAAMf,QACRe,EAAME,KAAK,IAEb,MAAMC,EAAKtB,EAAMmB,EAAM,IACjBI,EAAKvB,EAAMmB,EAAM,IAEvB,OAAQG,GACN,KAAK,EACHZ,KAAKc,SAAW,CAAEC,MAAOH,EAAII,MAAO,GACpC,MACF,KAAK,EACH,GAAIH,EAAK,EAAG,OAAO,EACnBb,KAAKc,SAAW,CAAEC,MAAOH,EAAII,MAAOH,GACpC,MACF,KAAK,EACL,KAAK,EACH,GAAIA,EAAK,EAAG,OAAO,EACnBb,KAAKc,SAAW,CAAEC,MAAOH,EAAII,MAAOH,GAAMb,KAAKF,KAC/C,MACF,KAAK,EACHE,KAAKc,SAAW,CAAEC,MAAOH,EAAII,MAAOhB,KAAKF,KAG7C,OAAO,CAAI,IAGbE,KAAKE,UAAY,IAAKE,EAAiBa,MAAMC,QAAQC,YACrDnB,KAAKoB,SAAWpB,KAAKE,UAAWmB,KAClC,CAEA,YAAWP,GACT,MAAO,CAAEC,MAAOf,KAAKH,IAAKmB,MAAOhB,KAAKF,IACxC,CAEA,YAAWgB,CAASA,GACdA,EAASC,MAAQ,GAAKD,EAASC,MAAQ,EACzCO,QAAQC,KAAK,8CAGfvB,KAAKH,IAAMiB,EAASC,MACpBf,KAAKF,IAAM0B,KAAKC,IAAID,KAAKE,IAAIZ,EAASE,MAAO,GAAI,KACjDhB,KAAKE,WAAWyB,KAAK,CAAEZ,MAAOf,KAAKH,IAAKmB,MAAOhB,KAAKF,MACtD,E","sources":["webpack://ProgressAddon/webpack/universalModuleDefinition","webpack://ProgressAddon/./src/ProgressAddon.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ProgressAddon\"] = factory();\n\telse\n\t\troot[\"ProgressAddon\"] = factory();\n})(globalThis, () => {\nreturn ","/**\n * Copyright (c) 2024 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport type { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';\nimport type { ProgressAddon as IProgressApi, IProgressState } from '@xterm/addon-progress';\nimport type { Emitter, Event } from 'vs/base/common/event';\n\n\nconst enum ProgressType {\n REMOVE = 0,\n SET = 1,\n ERROR = 2,\n INDETERMINATE = 3,\n PAUSE = 4\n}\n\n\n/**\n * Strict integer parsing, only decimal digits allowed.\n */\nfunction toInt(s: string): number {\n let v = 0;\n for (let i = 0; i < s.length; ++i) {\n const c = s.charCodeAt(i);\n if (c < 0x30 || 0x39 < c) {\n return -1;\n }\n v = v * 10 + c - 48;\n }\n return v;\n}\n\n\nexport class ProgressAddon implements ITerminalAddon, IProgressApi {\n private _seqHandler: IDisposable | undefined;\n private _st: ProgressType = ProgressType.REMOVE;\n private _pr = 0;\n // HACK: This uses ! to align with the API, this should be fixed when 5283 is resolved\n private _onChange!: Emitter<IProgressState>;\n public onChange!: Event<IProgressState>;\n\n public dispose(): void {\n this._seqHandler?.dispose();\n this._onChange?.dispose();\n }\n\n public activate(terminal: Terminal): void {\n this._seqHandler = terminal.parser.registerOscHandler(9, data => {\n if (!data.startsWith('4;')) {\n return false;\n }\n const parts = data.split(';');\n\n if (parts.length > 3) {\n return true; // faulty sequence, just exit\n }\n if (parts.length === 2) {\n parts.push('');\n }\n const st = toInt(parts[1]);\n const pr = toInt(parts[2]);\n\n switch (st) {\n case ProgressType.REMOVE:\n this.progress = { state: st, value: 0 };\n break;\n case ProgressType.SET:\n if (pr < 0) return true; // faulty sequence, just exit\n this.progress = { state: st, value: pr };\n break;\n case ProgressType.ERROR:\n case ProgressType.PAUSE:\n if (pr < 0) return true; // faulty sequence, just exit\n this.progress = { state: st, value: pr || this._pr };\n break;\n case ProgressType.INDETERMINATE:\n this.progress = { state: st, value: this._pr };\n break;\n }\n return true;\n });\n // FIXME: borrow emitter ctor from xterm, to be changed once #5283 is resolved\n this._onChange = new (terminal as any)._core._onData.constructor();\n this.onChange = this._onChange!.event;\n }\n\n public get progress(): IProgressState {\n return { state: this._st, value: this._pr };\n }\n\n public set progress(progress: IProgressState) {\n if (progress.state < 0 || progress.state > 4) {\n console.warn(`progress state out of bounds, not applied`);\n return;\n }\n this._st = progress.state;\n this._pr = Math.min(Math.max(progress.value, 0), 100);\n this._onChange?.fire({ state: this._st, value: this._pr });\n }\n}\n"],"names":["root","factory","exports","module","define","amd","globalThis","toInt","s","v","i","length","c","charCodeAt","_st","_pr","dispose","this","_seqHandler","_onChange","activate","terminal","parser","registerOscHandler","data","startsWith","parts","split","push","st","pr","progress","state","value","_core","_onData","constructor","onChange","event","console","warn","Math","min","max","fire"],"sourceRoot":""}
|
package/lib/addon-progress.mjs
CHANGED
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
15
15
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
16
16
|
*--------------------------------------------------------------------------------------------*/
|
|
17
|
-
function i
|
|
17
|
+
function n(i){let t=0;for(let s=0;s<i.length;++s){let e=i.charCodeAt(s);if(e<48||57<e)return-1;t=t*10+e-48}return t}var o=class{constructor(){this._st=0;this._pr=0}dispose(){this._seqHandler?.dispose(),this._onChange?.dispose()}activate(t){this._seqHandler=t.parser.registerOscHandler(9,s=>{if(!s.startsWith("4;"))return!1;let e=s.split(";");if(e.length>3)return!0;e.length===2&&e.push("");let r=n(e[1]),a=n(e[2]);switch(r){case 0:this.progress={state:r,value:0};break;case 1:if(a<0)return!0;this.progress={state:r,value:a};break;case 2:case 4:if(a<0)return!0;this.progress={state:r,value:a||this._pr};break;case 3:this.progress={state:r,value:this._pr};break}return!0}),this._onChange=new t._core._onData.constructor,this.onChange=this._onChange.event}get progress(){return{state:this._st,value:this._pr}}set progress(t){if(t.state<0||t.state>4){console.warn("progress state out of bounds, not applied");return}this._st=t.state,this._pr=Math.min(Math.max(t.value,0),100),this._onChange?.fire({state:this._st,value:this._pr})}};export{o as ProgressAddon};
|
|
18
18
|
//# sourceMappingURL=addon-progress.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/ProgressAddon.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Copyright (c) 2024 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport type { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';\nimport type { ProgressAddon as IProgressApi, IProgressState } from '@xterm/addon-progress';\nimport type { Emitter, Event } from 'vs/base/common/event';\n\n\nconst enum ProgressType {\n REMOVE = 0,\n SET = 1,\n ERROR = 2,\n INDETERMINATE = 3,\n PAUSE = 4\n}\n\n\n/**\n * Strict integer parsing, only decimal digits allowed.\n */\nfunction toInt(s: string): number {\n let v = 0;\n for (let i = 0; i < s.length; ++i) {\n const c = s.charCodeAt(i);\n if (c < 0x30 || 0x39 < c) {\n return -1;\n }\n v = v * 10 + c - 48;\n }\n return v;\n}\n\n\nexport class ProgressAddon implements ITerminalAddon, IProgressApi {\n private _seqHandler: IDisposable | undefined;\n private _st: ProgressType = ProgressType.REMOVE;\n private _pr = 0;\n private _onChange
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;AAsBA,SAASA,EAAMC,EAAmB,CAChC,IAAIC,EAAI,EACR,QAASC,EAAI,EAAGA,EAAIF,EAAE,OAAQ,EAAEE,EAAG,CACjC,IAAMC,EAAIH,EAAE,WAAWE,CAAC,EACxB,GAAIC,EAAI,IAAQ,GAAOA,EACrB,MAAO,GAETF,EAAIA,EAAI,GAAKE,EAAI,EACnB,CACA,OAAOF,CACT,CAGO,IAAMG,EAAN,KAA4D,CAA5D,cAEL,KAAQ,IAAoB,EAC5B,KAAQ,IAAM,
|
|
4
|
+
"sourcesContent": ["/**\n * Copyright (c) 2024 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport type { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';\nimport type { ProgressAddon as IProgressApi, IProgressState } from '@xterm/addon-progress';\nimport type { Emitter, Event } from 'vs/base/common/event';\n\n\nconst enum ProgressType {\n REMOVE = 0,\n SET = 1,\n ERROR = 2,\n INDETERMINATE = 3,\n PAUSE = 4\n}\n\n\n/**\n * Strict integer parsing, only decimal digits allowed.\n */\nfunction toInt(s: string): number {\n let v = 0;\n for (let i = 0; i < s.length; ++i) {\n const c = s.charCodeAt(i);\n if (c < 0x30 || 0x39 < c) {\n return -1;\n }\n v = v * 10 + c - 48;\n }\n return v;\n}\n\n\nexport class ProgressAddon implements ITerminalAddon, IProgressApi {\n private _seqHandler: IDisposable | undefined;\n private _st: ProgressType = ProgressType.REMOVE;\n private _pr = 0;\n // HACK: This uses ! to align with the API, this should be fixed when 5283 is resolved\n private _onChange!: Emitter<IProgressState>;\n public onChange!: Event<IProgressState>;\n\n public dispose(): void {\n this._seqHandler?.dispose();\n this._onChange?.dispose();\n }\n\n public activate(terminal: Terminal): void {\n this._seqHandler = terminal.parser.registerOscHandler(9, data => {\n if (!data.startsWith('4;')) {\n return false;\n }\n const parts = data.split(';');\n\n if (parts.length > 3) {\n return true; // faulty sequence, just exit\n }\n if (parts.length === 2) {\n parts.push('');\n }\n const st = toInt(parts[1]);\n const pr = toInt(parts[2]);\n\n switch (st) {\n case ProgressType.REMOVE:\n this.progress = { state: st, value: 0 };\n break;\n case ProgressType.SET:\n if (pr < 0) return true; // faulty sequence, just exit\n this.progress = { state: st, value: pr };\n break;\n case ProgressType.ERROR:\n case ProgressType.PAUSE:\n if (pr < 0) return true; // faulty sequence, just exit\n this.progress = { state: st, value: pr || this._pr };\n break;\n case ProgressType.INDETERMINATE:\n this.progress = { state: st, value: this._pr };\n break;\n }\n return true;\n });\n // FIXME: borrow emitter ctor from xterm, to be changed once #5283 is resolved\n this._onChange = new (terminal as any)._core._onData.constructor();\n this.onChange = this._onChange!.event;\n }\n\n public get progress(): IProgressState {\n return { state: this._st, value: this._pr };\n }\n\n public set progress(progress: IProgressState) {\n if (progress.state < 0 || progress.state > 4) {\n console.warn(`progress state out of bounds, not applied`);\n return;\n }\n this._st = progress.state;\n this._pr = Math.min(Math.max(progress.value, 0), 100);\n this._onChange?.fire({ state: this._st, value: this._pr });\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;AAsBA,SAASA,EAAMC,EAAmB,CAChC,IAAIC,EAAI,EACR,QAASC,EAAI,EAAGA,EAAIF,EAAE,OAAQ,EAAEE,EAAG,CACjC,IAAMC,EAAIH,EAAE,WAAWE,CAAC,EACxB,GAAIC,EAAI,IAAQ,GAAOA,EACrB,MAAO,GAETF,EAAIA,EAAI,GAAKE,EAAI,EACnB,CACA,OAAOF,CACT,CAGO,IAAMG,EAAN,KAA4D,CAA5D,cAEL,KAAQ,IAAoB,EAC5B,KAAQ,IAAM,EAKP,SAAgB,CACrB,KAAK,aAAa,QAAQ,EAC1B,KAAK,WAAW,QAAQ,CAC1B,CAEO,SAASC,EAA0B,CACxC,KAAK,YAAcA,EAAS,OAAO,mBAAmB,EAAGC,GAAQ,CAC/D,GAAI,CAACA,EAAK,WAAW,IAAI,EACvB,MAAO,GAET,IAAMC,EAAQD,EAAK,MAAM,GAAG,EAE5B,GAAIC,EAAM,OAAS,EACjB,MAAO,GAELA,EAAM,SAAW,GACnBA,EAAM,KAAK,EAAE,EAEf,IAAMC,EAAKT,EAAMQ,EAAM,CAAC,CAAC,EACnBE,EAAKV,EAAMQ,EAAM,CAAC,CAAC,EAEzB,OAAQC,EAAI,CACV,IAAK,GACH,KAAK,SAAW,CAAE,MAAOA,EAAI,MAAO,CAAE,EACtC,MACF,IAAK,GACH,GAAIC,EAAK,EAAG,MAAO,GACnB,KAAK,SAAW,CAAE,MAAOD,EAAI,MAAOC,CAAG,EACvC,MACF,IAAK,GACL,IAAK,GACH,GAAIA,EAAK,EAAG,MAAO,GACnB,KAAK,SAAW,CAAE,MAAOD,EAAI,MAAOC,GAAM,KAAK,GAAI,EACnD,MACF,IAAK,GACH,KAAK,SAAW,CAAE,MAAOD,EAAI,MAAO,KAAK,GAAI,EAC7C,KACJ,CACA,MAAO,EACT,CAAC,EAED,KAAK,UAAY,IAAKH,EAAiB,MAAM,QAAQ,YACrD,KAAK,SAAW,KAAK,UAAW,KAClC,CAEA,IAAW,UAA2B,CACpC,MAAO,CAAE,MAAO,KAAK,IAAK,MAAO,KAAK,GAAI,CAC5C,CAEA,IAAW,SAASK,EAA0B,CAC5C,GAAIA,EAAS,MAAQ,GAAKA,EAAS,MAAQ,EAAG,CAC5C,QAAQ,KAAK,2CAA2C,EACxD,MACF,CACA,KAAK,IAAMA,EAAS,MACpB,KAAK,IAAM,KAAK,IAAI,KAAK,IAAIA,EAAS,MAAO,CAAC,EAAG,GAAG,EACpD,KAAK,WAAW,KAAK,CAAE,MAAO,KAAK,IAAK,MAAO,KAAK,GAAI,CAAC,CAC3D,CACF",
|
|
6
6
|
"names": ["toInt", "s", "v", "i", "c", "ProgressAddon", "terminal", "data", "parts", "st", "pr", "progress"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xterm/addon-progress",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-beta.2",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "The xterm.js authors",
|
|
6
6
|
"url": "https://xtermjs.org/"
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"start": "node ../../demo/start"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@xterm/xterm": "^5.6.0-beta.
|
|
26
|
+
"@xterm/xterm": "^5.6.0-beta.96"
|
|
27
27
|
},
|
|
28
|
-
"commit": "
|
|
28
|
+
"commit": "d81b25c3bf6c0e3352c175705f460aa39df6e374"
|
|
29
29
|
}
|
package/src/ProgressAddon.ts
CHANGED
|
@@ -37,8 +37,9 @@ export class ProgressAddon implements ITerminalAddon, IProgressApi {
|
|
|
37
37
|
private _seqHandler: IDisposable | undefined;
|
|
38
38
|
private _st: ProgressType = ProgressType.REMOVE;
|
|
39
39
|
private _pr = 0;
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
// HACK: This uses ! to align with the API, this should be fixed when 5283 is resolved
|
|
41
|
+
private _onChange!: Emitter<IProgressState>;
|
|
42
|
+
public onChange!: Event<IProgressState>;
|
|
42
43
|
|
|
43
44
|
public dispose(): void {
|
|
44
45
|
this._seqHandler?.dispose();
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
* @license MIT
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { Terminal, ITerminalAddon, IDisposable } from '@xterm/xterm';
|
|
7
|
-
import type { Event } from 'vs/base/common/event';
|
|
8
|
-
|
|
6
|
+
import { Terminal, ITerminalAddon, IDisposable, IEvent } from '@xterm/xterm';
|
|
9
7
|
|
|
10
8
|
declare module '@xterm/addon-progress' {
|
|
11
9
|
/**
|
|
@@ -13,7 +11,7 @@ declare module '@xterm/addon-progress' {
|
|
|
13
11
|
* sequence.
|
|
14
12
|
*/
|
|
15
13
|
export class ProgressAddon implements ITerminalAddon, IDisposable {
|
|
16
|
-
|
|
14
|
+
|
|
17
15
|
/**
|
|
18
16
|
* Creates a new progress addon
|
|
19
17
|
*/
|
|
@@ -24,7 +22,7 @@ declare module '@xterm/addon-progress' {
|
|
|
24
22
|
* @param terminal The terminal the addon is being loaded in.
|
|
25
23
|
*/
|
|
26
24
|
public activate(terminal: Terminal): void;
|
|
27
|
-
|
|
25
|
+
|
|
28
26
|
/**
|
|
29
27
|
* Disposes the addon.
|
|
30
28
|
*/
|
|
@@ -33,22 +31,38 @@ declare module '@xterm/addon-progress' {
|
|
|
33
31
|
/**
|
|
34
32
|
* An event that fires when the tracked progress changes.
|
|
35
33
|
*/
|
|
36
|
-
public readonly onChange:
|
|
34
|
+
public readonly onChange: IEvent<IProgressState>;
|
|
37
35
|
|
|
38
36
|
/**
|
|
39
|
-
* Gets or sets the current progress tracked by the addon.
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* or to restore an indicator.
|
|
37
|
+
* Gets or sets the current progress tracked by the addon. This can be used
|
|
38
|
+
* to reset a stuck progress indicator back to initial with
|
|
39
|
+
* `{ state: 0, value: 0 }` or to restore an indicator.
|
|
43
40
|
*/
|
|
44
41
|
public progress: IProgressState;
|
|
45
42
|
}
|
|
46
|
-
|
|
43
|
+
|
|
47
44
|
/**
|
|
48
45
|
* Progress state tracked by the addon.
|
|
49
46
|
*/
|
|
50
47
|
export interface IProgressState {
|
|
48
|
+
/**
|
|
49
|
+
* The progress state.
|
|
50
|
+
*
|
|
51
|
+
* - `0`: No progress. Setting this will resets progress value to 0
|
|
52
|
+
* regardless of the {@link value} used.
|
|
53
|
+
* - `1`: Normal percentage-based from 0 to 100.
|
|
54
|
+
* - `2`: Error with an optional progress value from 0 to 100.
|
|
55
|
+
* - `3`: Indeterminate progress, any progress value will be ignored. This
|
|
56
|
+
* is used to indicate work is happening but a percentage value cannot be
|
|
57
|
+
* determined.
|
|
58
|
+
* - `4`: Pause or warning state with an optional progress value.
|
|
59
|
+
*/
|
|
51
60
|
state: 0 | 1 | 2 | 3 | 4;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The percentage value of progress from 0 to 100. See {@link state} for
|
|
64
|
+
* whether this is relevant.
|
|
65
|
+
*/
|
|
52
66
|
value: number;
|
|
53
67
|
}
|
|
54
68
|
}
|