pywebexec 1.8.3__py3-none-any.whl → 1.8.4__py3-none-any.whl
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.
- pywebexec/static/css/style.css +3 -3
- pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf +0 -0
- pywebexec/static/js/popup.js +21 -23
- pywebexec/static/js/script.js +20 -29
- pywebexec/static/js/xterm/addon-unicode-graphemes.js +2 -0
- pywebexec/static/js/xterm/addon-unicode-graphemes.js.map +1 -0
- pywebexec/templates/index.html +1 -0
- pywebexec/templates/popup.html +1 -0
- pywebexec/version.py +2 -2
- {pywebexec-1.8.3.dist-info → pywebexec-1.8.4.dist-info}/METADATA +1 -1
- {pywebexec-1.8.3.dist-info → pywebexec-1.8.4.dist-info}/RECORD +15 -13
- {pywebexec-1.8.3.dist-info → pywebexec-1.8.4.dist-info}/WHEEL +1 -1
- pywebexec/static/fonts/CaskaydiaCoveNerdFont-Regular.ttf +0 -0
- {pywebexec-1.8.3.dist-info → pywebexec-1.8.4.dist-info}/LICENSE +0 -0
- {pywebexec-1.8.3.dist-info → pywebexec-1.8.4.dist-info}/entry_points.txt +0 -0
- {pywebexec-1.8.3.dist-info → pywebexec-1.8.4.dist-info}/top_level.txt +0 -0
pywebexec/static/css/style.css
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
@font-face {
|
2
|
-
font-family: "
|
3
|
-
src: url("/static/fonts/
|
2
|
+
font-family: "CommitMono Nerd Font Mono";
|
3
|
+
src: url("/static/fonts/CommitMonoNerdFontMono-Regular.ttf");
|
4
4
|
font-weight: 400;
|
5
5
|
font-style: normal;
|
6
6
|
}
|
@@ -48,7 +48,7 @@ th {
|
|
48
48
|
cursor: pointer;
|
49
49
|
}
|
50
50
|
.monospace {
|
51
|
-
font-family: "
|
51
|
+
font-family: "CommitMono Nerd Font Mono", monospace;
|
52
52
|
font-size: 13px;
|
53
53
|
}
|
54
54
|
.system-font {
|
Binary file
|
pywebexec/static/js/popup.js
CHANGED
@@ -5,27 +5,36 @@ let terminal = new Terminal({
|
|
5
5
|
cursorBlink: false,
|
6
6
|
cursorInactiveStyle: 'none',
|
7
7
|
disableStdin: true,
|
8
|
-
convertEol: true,
|
9
|
-
fontFamily: '"CaskaydiaCove NF", monospace, courier-new, courier',
|
10
|
-
fontSize: fontSize,
|
8
|
+
//convertEol: true,
|
11
9
|
scrollback: maxScrollback,
|
10
|
+
fontFamily: '"CommitMono Nerd Font Mono", monospace, courier-new, courier',
|
11
|
+
fontSize: fontSize,
|
12
|
+
lineHeight: 1.1,
|
13
|
+
fontWeightBold: 500,
|
14
|
+
letterSpacing: 0,
|
15
|
+
customGlyphs: true,
|
12
16
|
theme: {
|
13
17
|
background: '#111412',
|
18
|
+
foreground: '#d7d7d7',
|
19
|
+
white: '#d7d7d7',
|
14
20
|
black: '#111412',
|
15
|
-
green: '#
|
21
|
+
green: '#0d8657',
|
16
22
|
blue: "#2760aa",
|
17
|
-
red: '#
|
23
|
+
red: '#aa1e0f',
|
18
24
|
yellow: "#cf8700",
|
19
25
|
magenta: "#4c3d80",
|
20
|
-
cyan: "#
|
26
|
+
cyan: "#3b8ea7",
|
27
|
+
brightWhite: '#efefef',
|
21
28
|
brightBlack: "#243C4F",
|
22
29
|
brightBlue: "#5584b1",
|
23
30
|
brightGreen: "#18Ed93",
|
24
|
-
|
25
|
-
|
31
|
+
brightRed: "#e53a40",
|
32
|
+
brightYellow: "#dedc12",
|
33
|
+
brightMagenta: "#9b7baf",
|
34
|
+
brightCyan: "#6da9bc",
|
35
|
+
},
|
26
36
|
rescaleOverlappingGlyphs: true,
|
27
37
|
allowProposedApi: true,
|
28
|
-
letterSpacing: 0,
|
29
38
|
screenReaderMode: true,
|
30
39
|
});
|
31
40
|
|
@@ -36,20 +45,9 @@ terminal.loadAddon(new CanvasAddon.CanvasAddon());
|
|
36
45
|
unicode11Addon = new Unicode11Addon.Unicode11Addon();
|
37
46
|
terminal.loadAddon(unicode11Addon);
|
38
47
|
terminal.unicode.activeVersion = '11';
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
// if (code == 0x1F525) return 2; // Fire emoji
|
43
|
-
// // Handle powerline symbols (usually should be width 1)
|
44
|
-
// if (code >= 0xE0A0 && code <= 0xE0D4) return 1;
|
45
|
-
// // Handle other specific unicode ranges
|
46
|
-
// if (code >= 0x1100 && code <= 0x11FF) return 2; // Hangul Jamo
|
47
|
-
// if (code >= 0x3000 && code <= 0x30FF) return 2; // CJK Symbols and Japanese
|
48
|
-
// if (code >= 0x4E00 && code <= 0x9FFF) return 2; // CJK Unified Ideographs
|
49
|
-
// // Default to system wcwidth
|
50
|
-
// return null;
|
51
|
-
// }
|
52
|
-
// });
|
48
|
+
|
49
|
+
UnicodeGraphemesAddon = new UnicodeGraphemesAddon.UnicodeGraphemesAddon();
|
50
|
+
terminal.loadAddon(UnicodeGraphemesAddon);
|
53
51
|
|
54
52
|
const fitAddon = new FitAddon.FitAddon();
|
55
53
|
terminal.loadAddon(fitAddon);
|
pywebexec/static/js/script.js
CHANGED
@@ -22,27 +22,37 @@ function initTerminal()
|
|
22
22
|
cursorInactiveStyle: 'none',
|
23
23
|
disableStdin: true,
|
24
24
|
//convertEol: true,
|
25
|
-
fontFamily: '"CaskaydiaCove NF", "Fira Code", monospace, "Powerline Extra Symbols", courier-new, courier',
|
26
|
-
fontSize: fontSize,
|
27
25
|
scrollback: maxScrollback,
|
26
|
+
fontFamily: '"CommitMono Nerd Font Mono", "Fira Code", monospace, "Powerline Extra Symbols", courier-new, courier',
|
27
|
+
fontSize: fontSize,
|
28
|
+
letterSpacing: 0,
|
29
|
+
lineHeight: 1.1,
|
30
|
+
fontWeightBold: 500,
|
31
|
+
//fontWeight: 400,
|
32
|
+
screenReaderMode: true,
|
28
33
|
theme: {
|
29
34
|
background: '#111412',
|
35
|
+
foreground: '#d7d7d7',
|
36
|
+
white: '#d7d7d7',
|
30
37
|
black: '#111412',
|
31
|
-
green: '#
|
38
|
+
green: '#0d8657',
|
32
39
|
blue: "#2760aa",
|
33
|
-
red: '#
|
40
|
+
red: '#aa1e0f',
|
34
41
|
yellow: "#cf8700",
|
35
42
|
magenta: "#4c3d80",
|
36
|
-
cyan: "#
|
43
|
+
cyan: "#3b8ea7",
|
44
|
+
brightWhite: '#efefef',
|
37
45
|
brightBlack: "#243C4F",
|
38
46
|
brightBlue: "#5584b1",
|
39
47
|
brightGreen: "#18Ed93",
|
48
|
+
brightRed: "#e53a40",
|
49
|
+
brightYellow: "#dedc12",
|
50
|
+
brightMagenta: "#9b7baf",
|
51
|
+
brightCyan: "#6da9bc",
|
40
52
|
},
|
41
53
|
customGlyphs: true,
|
42
54
|
rescaleOverlappingGlyphs: true,
|
43
55
|
allowProposedApi: true,
|
44
|
-
letterSpacing: 0,
|
45
|
-
screenReaderMode: true,
|
46
56
|
//overviewRulerWidth: 30,
|
47
57
|
// windowsPty: {
|
48
58
|
// backend: 'conpty',
|
@@ -59,20 +69,9 @@ terminal.loadAddon(new CanvasAddon.CanvasAddon());
|
|
59
69
|
unicode11Addon = new Unicode11Addon.Unicode11Addon();
|
60
70
|
terminal.loadAddon(unicode11Addon);
|
61
71
|
terminal.unicode.activeVersion = '11';
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
// if (code == 0x1F525) return 3; // Fire emoji
|
66
|
-
// // Handle powerline symbols (usually should be width 1)
|
67
|
-
// if (code >= 0xE0A0 && code <= 0xE0D4) return 1;
|
68
|
-
// // Handle other specific unicode ranges
|
69
|
-
// if (code >= 0x1100 && code <= 0x11FF) return 3; // Hangul Jamo
|
70
|
-
// if (code >= 0x3000 && code <= 0x30FF) return 3; // CJK Symbols and Japanese
|
71
|
-
// if (code >= 0x4E00 && code <= 0x9FFF) return 3; // CJK Unified Ideographs
|
72
|
-
// // Default to system wcwidth
|
73
|
-
// return null;
|
74
|
-
// }
|
75
|
-
// });
|
72
|
+
|
73
|
+
UnicodeGraphemesAddon = new UnicodeGraphemesAddon.UnicodeGraphemesAddon();
|
74
|
+
terminal.loadAddon(UnicodeGraphemesAddon);
|
76
75
|
|
77
76
|
const fitAddon = new FitAddon.FitAddon();
|
78
77
|
terminal.loadAddon(fitAddon);
|
@@ -83,14 +82,6 @@ terminal.onTitleChange((title) => {
|
|
83
82
|
document.getElementById('commandInfo').innerText = title;
|
84
83
|
})
|
85
84
|
|
86
|
-
/*terminal.onResize((evt) => {
|
87
|
-
const terminal_size = {
|
88
|
-
Width: evt.cols,
|
89
|
-
Height: evt.rows,
|
90
|
-
};
|
91
|
-
console.log(terminal_size);
|
92
|
-
})*/
|
93
|
-
|
94
85
|
terminal.onSelectionChange(() => {
|
95
86
|
const selectionText = terminal.getSelection();
|
96
87
|
if (selectionText) {
|
@@ -0,0 +1,2 @@
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.UnicodeGraphemesAddon=t():e.UnicodeGraphemesAddon=t()}(self,(()=>(()=>{"use strict";var e={12:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});class r{constructor(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}}class n{constructor(e,t){this.tag=0,this.bitcount=0,this.destLen=0,this.sourceIndex=0,this.source=e,this.dest=t,this.ltree=new r,this.dtree=new r}}var i=new r,o=new r,s=new Uint8Array(30),a=new Uint16Array(30),c=new Uint8Array(30),d=new Uint16Array(30),E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);const u=new r,A=new Uint8Array(320);function l(e,t,r,n){var i,o;for(i=0;i<r;++i)e[i]=0;for(i=0;i<30-r;++i)e[i+r]=i/r|0;for(o=n,i=0;i<30;++i)t[i]=o,o+=1<<e[i]}var f=new Uint16Array(16);function _(e,t,r,n){var i,o;for(i=0;i<16;++i)e.table[i]=0;for(i=0;i<n;++i)e.table[t[r+i]]++;for(e.table[0]=0,o=0,i=0;i<16;++i)f[i]=o,o+=e.table[i];for(i=0;i<n;++i)t[r+i]&&(e.trans[f[t[r+i]]++]=i)}function h(e){e.bitcount--||(e.tag=e.source[e.sourceIndex++],e.bitcount=7);var t=1&e.tag;return e.tag>>>=1,t}function R(e,t,r){if(!t)return r;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;var n=e.tag&65535>>>16-t;return e.tag>>>=t,e.bitcount-=t,n+r}function H(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<<e.bitcount,e.bitcount+=8;var r=0,n=0,i=0,o=e.tag;do{n=2*n+(1&o),o>>>=1,++i,r+=t.table[i],n-=t.table[i]}while(n>=0);return e.tag=o,e.bitcount-=i,t.trans[r+n]}function v(e,t,r){var n,i,o,s,a,c;for(n=R(e,5,257),i=R(e,5,1),o=R(e,4,4),s=0;s<19;++s)A[s]=0;for(s=0;s<o;++s){var d=R(e,3,0);A[E[s]]=d}for(_(u,A,0,19),a=0;a<n+i;){var l=H(e,u);switch(l){case 16:var f=A[a-1];for(c=R(e,2,3);c;--c)A[a++]=f;break;case 17:for(c=R(e,3,3);c;--c)A[a++]=0;break;case 18:for(c=R(e,7,11);c;--c)A[a++]=0;break;default:A[a++]=l}}_(t,A,0,n),_(r,A,n,i)}function P(e,t,r){for(;;){var n,i,o,E,u=H(e,t);if(256===u)return 0;if(u<256)e.dest[e.destLen++]=u;else for(n=R(e,s[u-=257],a[u]),i=H(e,r),E=o=e.destLen-R(e,c[i],d[i]);E<o+n;++E)e.dest[e.destLen++]=e.dest[E]}}function M(e){for(var t,r;e.bitcount>8;)e.sourceIndex--,e.bitcount-=8;if((t=256*(t=e.source[e.sourceIndex+1])+e.source[e.sourceIndex])!==(65535&~(256*e.source[e.sourceIndex+3]+e.source[e.sourceIndex+2])))return-3;for(e.sourceIndex+=4,r=t;r;--r)e.dest[e.destLen++]=e.source[e.sourceIndex++];return e.bitcount=0,0}!function(e,t){var r;for(r=0;r<7;++r)e.table[r]=0;for(e.table[7]=24,e.table[8]=152,e.table[9]=112,r=0;r<24;++r)e.trans[r]=256+r;for(r=0;r<144;++r)e.trans[24+r]=r;for(r=0;r<8;++r)e.trans[168+r]=280+r;for(r=0;r<112;++r)e.trans[176+r]=144+r;for(r=0;r<5;++r)t.table[r]=0;for(t.table[5]=32,r=0;r<32;++r)t.trans[r]=r}(i,o),l(s,a,4,3),l(c,d,2,1),s[28]=0,a[28]=258,t.default=function(e,t){var r,s,a=new n(e,t);do{switch(r=h(a),R(a,2,0)){case 0:s=M(a);break;case 1:s=P(a,i,o);break;case 2:v(a,a.ltree,a.dtree),s=P(a,a.ltree,a.dtree);break;default:s=-3}if(0!==s)throw new Error("Data error")}while(!r);return a.destLen<a.dest.length?"function"==typeof a.dest.slice?a.dest.slice(0,a.destLen):a.dest.subarray(0,a.destLen):a.dest}},38:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(12),i=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0];t.default=class{constructor(e){const t=new DataView(e.buffer);this.highStart=t.getUint32(0,!0),this.errorValue=t.getUint32(4,!0);let r=t.getUint32(8,!0);if(e=e.subarray(12),e=(0,n.default)(e,new Uint8Array(r)),e=(0,n.default)(e,new Uint8Array(r)),i){const t=e.length;for(let r=0;r<t;r+=4){let t=e[r];e[r]=e[r+3],e[r+3]=t;let n=e[r+1];e[r+1]=e[r+2],e[r+2]=n}}this.data=new Uint32Array(e.buffer)}get(e){let t;return e<0||e>1114111?this.errorValue:e<55296||e>56319&&e<=65535?(t=(this.data[e>>5]<<2)+(31&e),this.data[t]):e<=65535?(t=(this.data[2048+(e-55296>>5)]<<2)+(31&e),this.data[t]):e<this.highStart?(t=this.data[2080+(e>>11)],t=this.data[t+(e>>5&63)],t=(t<<2)+(31&e),this.data[t]):this.data[this.data.length-4]}}},106:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeGraphemeProvider=void 0;const n=r(765),i=r(200);class o{constructor(e=!0){this.ambiguousCharsAreWide=!1,this.version=e?"15-graphemes":"15",this.handleGraphemes=e}charProperties(e,t){if(e>=32&&e<127&&!(t>>3))return o._plainNarrowProperties;let r=i.getInfo(e),s=i.infoToWidthInfo(r),a=!1;if(s=s>=2&&(3===s||this.ambiguousCharsAreWide||65039===e)?2:1,0!==t){const e=n.UnicodeService.extractWidth(t);r=this.handleGraphemes?i.shouldJoin(n.UnicodeService.extractCharKind(t),r):0===s?1:0,a=r>0,a&&(e>s?s=e:32===r&&(s=2))}return n.UnicodeService.createPropertyValue(r,s,a)}wcwidth(e){const t=i.getInfo(e),r=i.infoToWidthInfo(t),n=(t&i.GRAPHEME_BREAK_MASK)>>i.GRAPHEME_BREAK_SHIFT;return n===i.GRAPHEME_BREAK_Extend||n===i.GRAPHEME_BREAK_Prepend?0:r>=2&&(3===r||this.ambiguousCharsAreWide)?2:1}}t.UnicodeGraphemeProvider=o,o._plainNarrowProperties=n.UnicodeService.createPropertyValue(i.GRAPHEME_BREAK_Other,1,!1)},200:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CHARWIDTH_WIDE=t.CHARWIDTH_EA_AMBIGUOUS=t.CHARWIDTH_FORCE_1COLUMN=t.CHARWIDTH_NORMAL=t.GRAPHEME_BREAK_ExtPic=t.GRAPHEME_BREAK_ZWJ=t.GRAPHEME_BREAK_Hangul_LVT=t.GRAPHEME_BREAK_Hangul_LV=t.GRAPHEME_BREAK_Hangul_T=t.GRAPHEME_BREAK_Hangul_V=t.GRAPHEME_BREAK_Hangul_L=t.GRAPHEME_BREAK_SpacingMark=t.GRAPHEME_BREAK_Regional_Indicator=t.GRAPHEME_BREAK_Extend=t.GRAPHEME_BREAK_Prepend=t.GRAPHEME_BREAK_Other=t.CHARWIDTH_SHIFT=t.CHARWIDTH_MASK=t.GRAPHEME_BREAK_SHIFT=t.GRAPHEME_BREAK_MASK=void 0,t.infoToWidthInfo=o,t.infoToWidth=s,t.strWidth=function(e,t){let r=0;for(let n=0;n<e.length;){const i=e.codePointAt(n);r+=s(c(i),t),n+=i<=65535?1:2}return r},t.columnToIndexInContext=function(e,t,r,n){let i=0;for(let o=t;;){if(o>=e.length)return o;const t=e.codePointAt(o);if(i+=s(c(t),n),i>r)return o;o+=t<=65535?1:2}},t.shouldJoin=function(e,r){let n=(e&t.GRAPHEME_BREAK_MASK)>>t.GRAPHEME_BREAK_SHIFT,o=(r&t.GRAPHEME_BREAK_MASK)>>t.GRAPHEME_BREAK_SHIFT;return a(n,o)?o===t.GRAPHEME_BREAK_Regional_Indicator?i:o+16:o-16},t.shouldJoinBackwards=function(e,r){let n=(r&t.GRAPHEME_BREAK_MASK)>>t.GRAPHEME_BREAK_SHIFT,o=(e&t.GRAPHEME_BREAK_MASK)>>t.GRAPHEME_BREAK_SHIFT;return a(o,n)?o===t.GRAPHEME_BREAK_Regional_Indicator?i:o+16:o-16},t.getInfo=c;const n=new(r(38).default)(function(e){if("undefined"!=typeof Buffer)return Buffer.from(e,"base64");const t=atob(e),r=new Uint8Array(t.length);for(let e=0;e<r.length;++e)r[e]=t.charCodeAt(e);return r}("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"));t.GRAPHEME_BREAK_MASK=15,t.GRAPHEME_BREAK_SHIFT=0,t.CHARWIDTH_MASK=48,t.CHARWIDTH_SHIFT=4,t.GRAPHEME_BREAK_Other=0,t.GRAPHEME_BREAK_Prepend=1,t.GRAPHEME_BREAK_Extend=2,t.GRAPHEME_BREAK_Regional_Indicator=3,t.GRAPHEME_BREAK_SpacingMark=4,t.GRAPHEME_BREAK_Hangul_L=5,t.GRAPHEME_BREAK_Hangul_V=6,t.GRAPHEME_BREAK_Hangul_T=7,t.GRAPHEME_BREAK_Hangul_LV=8,t.GRAPHEME_BREAK_Hangul_LVT=9,t.GRAPHEME_BREAK_ZWJ=10,t.GRAPHEME_BREAK_ExtPic=11;const i=32;function o(e){return(e&t.CHARWIDTH_MASK)>>t.CHARWIDTH_SHIFT}function s(e,r=!1){const n=o(e);return n<t.CHARWIDTH_EA_AMBIGUOUS?1:n>=t.CHARWIDTH_WIDE||r?2:1}function a(e,r){if(e>=t.GRAPHEME_BREAK_Hangul_L&&e<=t.GRAPHEME_BREAK_Hangul_LVT){if(e==t.GRAPHEME_BREAK_Hangul_L&&(r==t.GRAPHEME_BREAK_Hangul_L||r==t.GRAPHEME_BREAK_Hangul_V||r==t.GRAPHEME_BREAK_Hangul_LV||r==t.GRAPHEME_BREAK_Hangul_LVT))return!0;if(!(e!=t.GRAPHEME_BREAK_Hangul_LV&&e!=t.GRAPHEME_BREAK_Hangul_V||r!=t.GRAPHEME_BREAK_Hangul_V&&r!=t.GRAPHEME_BREAK_Hangul_T))return!0;if((e==t.GRAPHEME_BREAK_Hangul_LVT||e==t.GRAPHEME_BREAK_Hangul_T)&&r==t.GRAPHEME_BREAK_Hangul_T)return!0}return r==t.GRAPHEME_BREAK_Extend||r==t.GRAPHEME_BREAK_ZWJ||e==t.GRAPHEME_BREAK_Prepend||r==t.GRAPHEME_BREAK_SpacingMark||e==t.GRAPHEME_BREAK_ZWJ&&r==t.GRAPHEME_BREAK_ExtPic||r==t.GRAPHEME_BREAK_Regional_Indicator&&e==t.GRAPHEME_BREAK_Regional_Indicator}function c(e){return n.get(e)}t.CHARWIDTH_NORMAL=0,t.CHARWIDTH_FORCE_1COLUMN=1,t.CHARWIDTH_EA_AMBIGUOUS=2,t.CHARWIDTH_WIDE=3},526:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EventEmitter=void 0,t.forwardEvent=function(e,t){return e((e=>t.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))},t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const r=[];for(let e=0;e<this._listeners.length;e++)r.push(this._listeners[e]);for(let n=0;n<r.length;n++)r[n].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}}},546:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;const n=r(765),i=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],o=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let s;t.UnicodeV6=class{constructor(){if(this.version="6",!s){s=new Uint8Array(65536),s.fill(1),s[0]=0,s.fill(0,1,32),s.fill(0,127,160),s.fill(2,4352,4448),s[9001]=2,s[9002]=2,s.fill(2,11904,42192),s[12351]=1,s.fill(2,44032,55204),s.fill(2,63744,64256),s.fill(2,65040,65050),s.fill(2,65072,65136),s.fill(2,65280,65377),s.fill(2,65504,65511);for(let e=0;e<i.length;++e)s.fill(0,i[e][0],i[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?s[e]:function(e,t){let r,n=0,i=t.length-1;if(e<t[0][0]||e>t[i][1])return!1;for(;i>=n;)if(r=n+i>>1,e>t[r][1])n=r+1;else{if(!(e<t[r][0]))return!0;i=r-1}return!1}(e,o)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let r=this.wcwidth(e),i=0===r&&0!==t;if(i){const e=n.UnicodeService.extractWidth(t);0===e?i=!1:e>r&&(r=e)}return n.UnicodeService.createPropertyValue(0,r,i)}}},765:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;const n=r(526),i=r(546);class o{static extractShouldJoin(e){return!!(1&e)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,r=!1){return(16777215&e)<<3|(3&t)<<1|(r?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new n.EventEmitter,this.onChange=this._onChange.event;const e=new i.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version "${e}"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0,r=0;const n=e.length;for(let i=0;i<n;++i){let s=e.charCodeAt(i);if(55296<=s&&s<=56319){if(++i>=n)return t+this.wcwidth(s);const r=e.charCodeAt(i);56320<=r&&r<=57343?s=1024*(s-55296)+r-56320+65536:t+=this.wcwidth(r)}const a=this.charProperties(s,r);let c=o.extractWidth(a);o.extractShouldJoin(a)&&(c-=o.extractWidth(r)),t+=c,r=a}return t}charProperties(e,t){return this._activeProvider.charProperties(e,t)}}t.UnicodeService=o}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}var n={};return(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.UnicodeGraphemesAddon=void 0;const t=r(106);e.UnicodeGraphemesAddon=class{constructor(){this._oldVersion=""}activate(e){this._provider15||(this._provider15=new t.UnicodeGraphemeProvider(!1)),this._provider15Graphemes||(this._provider15Graphemes=new t.UnicodeGraphemeProvider(!0));const r=e.unicode;this._unicode=r,r.register(this._provider15),r.register(this._provider15Graphemes),this._oldVersion=r.activeVersion,r.activeVersion="15-graphemes"}dispose(){this._unicode&&(this._unicode.activeVersion=this._oldVersion)}}})(),n})()));
|
2
|
+
//# sourceMappingURL=addon-unicode-graphemes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"addon-unicode-graphemes.js","mappings":"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AQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,M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","sources":["webpack://UnicodeGraphemesAddon/webpack/universalModuleDefinition","webpack://UnicodeGraphemesAddon/./src/third-party/tiny-inflate.ts","webpack://UnicodeGraphemesAddon/./src/third-party/unicode-trie.ts","webpack://UnicodeGraphemesAddon/./src/UnicodeGraphemeProvider.ts","webpack://UnicodeGraphemesAddon/./src/third-party/UnicodeProperties.ts","webpack://UnicodeGraphemesAddon/../../src/common/EventEmitter.ts","webpack://UnicodeGraphemesAddon/../../src/common/input/UnicodeV6.ts","webpack://UnicodeGraphemesAddon/../../src/common/services/UnicodeService.ts","webpack://UnicodeGraphemesAddon/webpack/bootstrap","webpack://UnicodeGraphemesAddon/./src/UnicodeGraphemesAddon.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[\"UnicodeGraphemesAddon\"] = factory();\n\telse\n\t\troot[\"UnicodeGraphemesAddon\"] = factory();\n})(self, () => {\nreturn ","var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nclass Tree {\n table = new Uint16Array(16); /* table of code length counts */\n trans = new Uint16Array(288); /* code -> symbol translation table */\n};\n\nclass Data {\n tag: number = 0;\n bitcount: number = 0;\n destLen: number = 0;\n ltree: Tree;\n dtree: Tree;\n source: Uint8Array;\n dest: Uint8Array;\n sourceIndex: number = 0;\n\n constructor(source: Uint8Array, dest: Uint8Array) {\n this.source = source;\n this.dest = dest;\n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n }\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nconst code_tree = new Tree();\nconst lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits: Uint8Array, base: Uint16Array, delta: number, first: number): void {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt: Tree, dt: Tree): void {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t: Tree, lengths: Uint8Array, off: number, num: number): void {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d: Data): number {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d: Data, num: number, base: number): number {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d: Data, t: Tree): number {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d: Data, lt: Tree, dt: Tree): void {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d: Data, lt: Tree, dt: Tree): number {\n for (;;) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d: Data) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source: Uint8Array, dest: Uint8Array) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nexport default tinf_uncompress\n","import inflate from './tiny-inflate'\n\n// Shift size for getting the index-1 table offset.\nconst SHIFT_1 = 6 + 5;\n\n// Shift size for getting the index-2 table offset.\nconst SHIFT_2 = 5;\n\n// Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\nconst SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n// Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\nconst OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n// Number of entries in an index-2 block. 64=0x40\nconst INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n// Mask for getting the lower bits for the in-index-2-block offset. */\nconst INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n// Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\nconst INDEX_SHIFT = 2;\n\n// Number of entries in a data block. 32=0x20\nconst DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n// Mask for getting the lower bits for the in-data-block offset.\nconst DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n// The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\nconst LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nconst LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n// Count the lengths of both BMP pieces. 2080=0x820\nconst INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n// The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\nconst UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nconst UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\nconst INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n// The alignment size of a data block. Also the granularity for compaction.\nconst DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nconst isBigEndian = (new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12);\n\nclass UnicodeTrie {\n private data: Uint32Array;\n private highStart: number;\n private errorValue: number;\n constructor(data: Uint8Array) {\n // read binary format\n \n const view = new DataView(data.buffer);\n this.highStart = view.getUint32(0, true);\n this.errorValue = view.getUint32(4, true);\n let uncompressedLength = view.getUint32(8, true);\n data = data.subarray(12);\n\n // double inflate the actual trie data\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n\n if (isBigEndian) {\n // swap bytes from little-endian\n const len = data.length;\n for (let i = 0; i < len; i += 4) {\n // Exchange data[i] and data[i + 3]:\n let x = data[i]; data[i] = data[i+3]; data[i+3] = x;\n // Exchange data[i + 1] and data[i + 2]:\n let y = data[i+1]; data[i+1] = data[i+2]; data[i+2] = y;\n }\n }\n\n this.data = new Uint32Array(data.buffer);\n\n }\n\n get(codePoint: number): number {\n let index;\n if ((codePoint < 0) || (codePoint > 0x10ffff)) {\n return this.errorValue;\n }\n\n if ((codePoint < 0xd800) || ((codePoint > 0xdbff) && (codePoint <= 0xffff))) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the index.\n // data is stored in the index array itself.\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n return this.data[this.data.length - DATA_GRANULARITY];\n }\n}\n\nexport default UnicodeTrie\n","/**\n * Copyright (c) 2023 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IUnicodeVersionProvider } from '@xterm/xterm';\nimport { UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services';\nimport { UnicodeService } from 'common/services/UnicodeService';\nimport * as UC from './third-party/UnicodeProperties';\n\nexport class UnicodeGraphemeProvider implements IUnicodeVersionProvider {\n public readonly version;\n public ambiguousCharsAreWide: boolean = false;\n public readonly handleGraphemes: boolean;\n\n constructor(handleGraphemes: boolean = true) {\n this.version = handleGraphemes ? '15-graphemes' : '15';\n this.handleGraphemes = handleGraphemes;\n }\n\n private static readonly _plainNarrowProperties: UnicodeCharProperties\n = UnicodeService.createPropertyValue(UC.GRAPHEME_BREAK_Other, 1, false);\n\n public charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties {\n // Optimize the simple ASCII case, under the condition that\n // UnicodeService.extractCharKind(preceding) === GRAPHEME_BREAK_Other\n // (which also covers the case that preceding === 0).\n if ((codepoint >= 32 && codepoint < 127) && (preceding >> 3) === 0) {\n return UnicodeGraphemeProvider._plainNarrowProperties;\n }\n\n let charInfo = UC.getInfo(codepoint);\n let w = UC.infoToWidthInfo(charInfo);\n let shouldJoin = false;\n if (w >= 2) {\n // Treat emoji_presentation_selector as WIDE.\n w = w === 3 || this.ambiguousCharsAreWide || codepoint === 0xfe0f ? 2 : 1;\n } else {\n w = 1;\n }\n if (preceding !== 0) {\n const oldWidth = UnicodeService.extractWidth(preceding);\n if (this.handleGraphemes) {\n charInfo = UC.shouldJoin(UnicodeService.extractCharKind(preceding), charInfo);\n } else {\n charInfo = w === 0 ? 1 : 0;\n }\n shouldJoin = charInfo > 0;\n if (shouldJoin) {\n if (oldWidth > w) {\n w = oldWidth;\n } else if (charInfo === 32) { // UC.GRAPHEME_BREAK_SAW_Regional_Pair)\n w = 2;\n }\n }\n }\n return UnicodeService.createPropertyValue(charInfo, w, shouldJoin);\n }\n\n public wcwidth(codepoint: number): UnicodeCharWidth {\n const charInfo = UC.getInfo(codepoint);\n const w = UC.infoToWidthInfo(charInfo);\n const kind = (charInfo & UC.GRAPHEME_BREAK_MASK) >> UC.GRAPHEME_BREAK_SHIFT;\n if (kind === UC.GRAPHEME_BREAK_Extend || kind === UC.GRAPHEME_BREAK_Prepend) {\n return 0;\n }\n if (w >= 2 && (w === 3 || this.ambiguousCharsAreWide)) {\n return 2;\n }\n return 1;\n }\n}\n","import UnicodeTrie from './unicode-trie';\nconst trieRaw = \"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\";\n\ndeclare const Buffer: any;\nfunction _dec(s: string): Uint8Array {\n if (typeof Buffer !== 'undefined') return Buffer.from(s, 'base64');\n const bs = atob(s);\n const r = new Uint8Array(bs.length);\n for (let i = 0; i < r.length; ++i) r[i] = bs.charCodeAt(i);\n return r;\n}\n\nconst trieData = new UnicodeTrie(_dec(trieRaw));\nexport const GRAPHEME_BREAK_MASK = 0xF;\nexport const GRAPHEME_BREAK_SHIFT = 0;\nexport const CHARWIDTH_MASK = 0x30;\nexport const CHARWIDTH_SHIFT = 4;\n\n// Values for the GRAPHEME_BREAK property\nexport const GRAPHEME_BREAK_Other = 0; // includes CR, LF, Control\nexport const GRAPHEME_BREAK_Prepend = 1;\nexport const GRAPHEME_BREAK_Extend = 2;\nexport const GRAPHEME_BREAK_Regional_Indicator = 3;\nexport const GRAPHEME_BREAK_SpacingMark = 4;\nexport const GRAPHEME_BREAK_Hangul_L = 5;\nexport const GRAPHEME_BREAK_Hangul_V = 6;\nexport const GRAPHEME_BREAK_Hangul_T = 7;\nexport const GRAPHEME_BREAK_Hangul_LV = 8;\nexport const GRAPHEME_BREAK_Hangul_LVT = 9;\nexport const GRAPHEME_BREAK_ZWJ = 10;\nexport const GRAPHEME_BREAK_ExtPic = 11;\n\n// Only used as return value from shouldJoin/shouldJoinBackwards.\n// (Must be positive; distinct from other values;\n// and become GRAPHEME_BREAK_Other when masked with GRAPHEME_BREAK_MASK.)\nconst GRAPHEME_BREAK_SAW_Regional_Pair = 32;\n\nexport const CHARWIDTH_NORMAL = 0;\nexport const CHARWIDTH_FORCE_1COLUMN = 1;\nexport const CHARWIDTH_EA_AMBIGUOUS = 2;\nexport const CHARWIDTH_WIDE = 3;\n\n// In the following 'info' is an encoded value from trie.get(codePoint)\n\n// In the following 'info' is an encoded value from trie.get(codePoint)\n\nexport function infoToWidthInfo(info: number): number {\n return (info & CHARWIDTH_MASK) >> CHARWIDTH_SHIFT;\n}\n\nexport function infoToWidth(info: number, ambiguousIsWide = false): 0 | 1 |2 {\n const v = infoToWidthInfo(info);\n return v < CHARWIDTH_EA_AMBIGUOUS ? 1\n : v >= CHARWIDTH_WIDE || ambiguousIsWide ? 2 : 1;\n}\n\nexport function strWidth(str: string, preferWide: boolean): number {\n let width = 0;\n for (let i = 0; i < str.length;) {\n const codePoint = str.codePointAt(i) as number;\n width += infoToWidth(getInfo(codePoint), preferWide);\n i += (codePoint <= 0xffff) ? 1 : 2;\n }\n return width;\n}\n\nexport function columnToIndexInContext(str: string, startIndex: number, column: number, preferWide: boolean): number {\n let rv = 0;\n for (let i = startIndex; ;) {\n\tif (i >= str.length)\n\t return i;\n\tconst codePoint = str.codePointAt(i) as number;\n\tconst w = infoToWidth(getInfo(codePoint), preferWide);\n\trv += w;\n\tif (rv > column)\n\t return i;\n\ti += (codePoint <= 0xffff) ? 1 : 2;\n }\n}\n\n\n// Test if should break between beforeState and afterCode.\n// Return <= 0 if should break; > 0 if should join.\n// 'beforeState' is the return value from the previous possible break;\n// the value 0 is start of string.\n// 'afterCode' is the GRAPHEME_BREAK_Xxx value for the following codepoint.\nexport function shouldJoin(beforeState: number, afterInfo: number): number {\n let beforeCode = (beforeState & GRAPHEME_BREAK_MASK) >> GRAPHEME_BREAK_SHIFT;\n let afterCode = (afterInfo & GRAPHEME_BREAK_MASK) >> GRAPHEME_BREAK_SHIFT;\n if (_shouldJoin(beforeCode, afterCode)) {\n if (afterCode === GRAPHEME_BREAK_Regional_Indicator)\n return GRAPHEME_BREAK_SAW_Regional_Pair;\n else\n return afterCode + 16;\n } else\n return afterCode - 16;\n}\n\nexport function shouldJoinBackwards(beforeInfo: number, afterState: number): number {\n let afterCode = (afterState & GRAPHEME_BREAK_MASK) >> GRAPHEME_BREAK_SHIFT;\n let beforeCode = (beforeInfo & GRAPHEME_BREAK_MASK) >> GRAPHEME_BREAK_SHIFT;\n if (_shouldJoin(beforeCode, afterCode)) {\n if (beforeCode === GRAPHEME_BREAK_Regional_Indicator)\n return GRAPHEME_BREAK_SAW_Regional_Pair;\n else\n return beforeCode + 16;\n } else\n return beforeCode - 16;\n}\n\n/** Doesn't handle an odd number of RI characters. */\nfunction _shouldJoin(beforeCode: number, afterCode: number): boolean {\n if (beforeCode >= GRAPHEME_BREAK_Hangul_L\n && beforeCode <= GRAPHEME_BREAK_Hangul_LVT) {\n if (beforeCode == GRAPHEME_BREAK_Hangul_L // GB6\n && (afterCode == GRAPHEME_BREAK_Hangul_L\n || afterCode == GRAPHEME_BREAK_Hangul_V\n || afterCode == GRAPHEME_BREAK_Hangul_LV\n || afterCode == GRAPHEME_BREAK_Hangul_LVT))\n return true;\n if ((beforeCode == GRAPHEME_BREAK_Hangul_LV // GB7\n || beforeCode == GRAPHEME_BREAK_Hangul_V)\n && (afterCode == GRAPHEME_BREAK_Hangul_V\n || afterCode == GRAPHEME_BREAK_Hangul_T))\n return true;\n if ((beforeCode == GRAPHEME_BREAK_Hangul_LVT // GB8\n || beforeCode == GRAPHEME_BREAK_Hangul_T)\n && afterCode == GRAPHEME_BREAK_Hangul_T)\n return true;\n }\n if (afterCode == GRAPHEME_BREAK_Extend // GB9\n || afterCode == GRAPHEME_BREAK_ZWJ\n || beforeCode == GRAPHEME_BREAK_Prepend // GB9a\n || afterCode == GRAPHEME_BREAK_SpacingMark) // GB9b\n return true;\n if (beforeCode == GRAPHEME_BREAK_ZWJ // GB11\n && afterCode == GRAPHEME_BREAK_ExtPic)\n return true;\n if (afterCode == GRAPHEME_BREAK_Regional_Indicator // GB12, GB13\n && beforeCode == GRAPHEME_BREAK_Regional_Indicator)\n return true;\n return false;\n}\n\nexport function getInfo(codePoint: number): number {\n return trieData.get(codePoint);\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\n\ninterface IListener<T, U = void> {\n (arg1: T, arg2: U): void;\n}\n\nexport interface IEvent<T, U = void> {\n (listener: (arg1: T, arg2: U) => any): IDisposable;\n}\n\nexport interface IEventEmitter<T, U = void> {\n event: IEvent<T, U>;\n fire(arg1: T, arg2: U): void;\n dispose(): void;\n}\n\nexport class EventEmitter<T, U = void> implements IEventEmitter<T, U> {\n private _listeners: IListener<T, U>[] = [];\n private _event?: IEvent<T, U>;\n private _disposed: boolean = false;\n\n public get event(): IEvent<T, U> {\n if (!this._event) {\n this._event = (listener: (arg1: T, arg2: U) => any) => {\n this._listeners.push(listener);\n const disposable = {\n dispose: () => {\n if (!this._disposed) {\n for (let i = 0; i < this._listeners.length; i++) {\n if (this._listeners[i] === listener) {\n this._listeners.splice(i, 1);\n return;\n }\n }\n }\n }\n };\n return disposable;\n };\n }\n return this._event;\n }\n\n public fire(arg1: T, arg2: U): void {\n const queue: IListener<T, U>[] = [];\n for (let i = 0; i < this._listeners.length; i++) {\n queue.push(this._listeners[i]);\n }\n for (let i = 0; i < queue.length; i++) {\n queue[i].call(undefined, arg1, arg2);\n }\n }\n\n public dispose(): void {\n this.clearListeners();\n this._disposed = true;\n }\n\n public clearListeners(): void {\n if (this._listeners) {\n this._listeners.length = 0;\n }\n }\n}\n\nexport function forwardEvent<T>(from: IEvent<T>, to: IEventEmitter<T>): IDisposable {\n return from(e => to.fire(e));\n}\n\nexport function runAndSubscribe<T>(event: IEvent<T>, handler: (e: T | undefined) => any): IDisposable {\n handler(undefined);\n return event(e => handler(e));\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\nimport { IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services';\nimport { UnicodeService } from 'common/services/UnicodeService';\n\nconst BMP_COMBINING = [\n [0x0300, 0x036F], [0x0483, 0x0486], [0x0488, 0x0489],\n [0x0591, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2],\n [0x05C4, 0x05C5], [0x05C7, 0x05C7], [0x0600, 0x0603],\n [0x0610, 0x0615], [0x064B, 0x065E], [0x0670, 0x0670],\n [0x06D6, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED],\n [0x070F, 0x070F], [0x0711, 0x0711], [0x0730, 0x074A],\n [0x07A6, 0x07B0], [0x07EB, 0x07F3], [0x0901, 0x0902],\n [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D],\n [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981],\n [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD],\n [0x09E2, 0x09E3], [0x0A01, 0x0A02], [0x0A3C, 0x0A3C],\n [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D],\n [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC],\n [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD],\n [0x0AE2, 0x0AE3], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C],\n [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D],\n [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0],\n [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48],\n [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBC, 0x0CBC],\n [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD],\n [0x0CE2, 0x0CE3], [0x0D41, 0x0D43], [0x0D4D, 0x0D4D],\n [0x0DCA, 0x0DCA], [0x0DD2, 0x0DD4], [0x0DD6, 0x0DD6],\n [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E],\n [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC],\n [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35],\n [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E],\n [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F97],\n [0x0F99, 0x0FBC], [0x0FC6, 0x0FC6], [0x102D, 0x1030],\n [0x1032, 0x1032], [0x1036, 0x1037], [0x1039, 0x1039],\n [0x1058, 0x1059], [0x1160, 0x11FF], [0x135F, 0x135F],\n [0x1712, 0x1714], [0x1732, 0x1734], [0x1752, 0x1753],\n [0x1772, 0x1773], [0x17B4, 0x17B5], [0x17B7, 0x17BD],\n [0x17C6, 0x17C6], [0x17C9, 0x17D3], [0x17DD, 0x17DD],\n [0x180B, 0x180D], [0x18A9, 0x18A9], [0x1920, 0x1922],\n [0x1927, 0x1928], [0x1932, 0x1932], [0x1939, 0x193B],\n [0x1A17, 0x1A18], [0x1B00, 0x1B03], [0x1B34, 0x1B34],\n [0x1B36, 0x1B3A], [0x1B3C, 0x1B3C], [0x1B42, 0x1B42],\n [0x1B6B, 0x1B73], [0x1DC0, 0x1DCA], [0x1DFE, 0x1DFF],\n [0x200B, 0x200F], [0x202A, 0x202E], [0x2060, 0x2063],\n [0x206A, 0x206F], [0x20D0, 0x20EF], [0x302A, 0x302F],\n [0x3099, 0x309A], [0xA806, 0xA806], [0xA80B, 0xA80B],\n [0xA825, 0xA826], [0xFB1E, 0xFB1E], [0xFE00, 0xFE0F],\n [0xFE20, 0xFE23], [0xFEFF, 0xFEFF], [0xFFF9, 0xFFFB]\n];\nconst HIGH_COMBINING = [\n [0x10A01, 0x10A03], [0x10A05, 0x10A06], [0x10A0C, 0x10A0F],\n [0x10A38, 0x10A3A], [0x10A3F, 0x10A3F], [0x1D167, 0x1D169],\n [0x1D173, 0x1D182], [0x1D185, 0x1D18B], [0x1D1AA, 0x1D1AD],\n [0x1D242, 0x1D244], [0xE0001, 0xE0001], [0xE0020, 0xE007F],\n [0xE0100, 0xE01EF]\n];\n\n// BMP lookup table, lazy initialized during first addon loading\nlet table: Uint8Array;\n\nfunction bisearch(ucs: number, data: number[][]): boolean {\n let min = 0;\n let max = data.length - 1;\n let mid;\n if (ucs < data[0][0] || ucs > data[max][1]) {\n return false;\n }\n while (max >= min) {\n mid = (min + max) >> 1;\n if (ucs > data[mid][1]) {\n min = mid + 1;\n } else if (ucs < data[mid][0]) {\n max = mid - 1;\n } else {\n return true;\n }\n }\n return false;\n}\n\nexport class UnicodeV6 implements IUnicodeVersionProvider {\n public readonly version = '6';\n\n constructor() {\n // init lookup table once\n if (!table) {\n table = new Uint8Array(65536);\n table.fill(1);\n table[0] = 0;\n // control chars\n table.fill(0, 1, 32);\n table.fill(0, 0x7f, 0xa0);\n\n // apply wide char rules first\n // wide chars\n table.fill(2, 0x1100, 0x1160);\n table[0x2329] = 2;\n table[0x232a] = 2;\n table.fill(2, 0x2e80, 0xa4d0);\n table[0x303f] = 1; // wrongly in last line\n\n table.fill(2, 0xac00, 0xd7a4);\n table.fill(2, 0xf900, 0xfb00);\n table.fill(2, 0xfe10, 0xfe1a);\n table.fill(2, 0xfe30, 0xfe70);\n table.fill(2, 0xff00, 0xff61);\n table.fill(2, 0xffe0, 0xffe7);\n\n // apply combining last to ensure we overwrite\n // wrongly wide set chars:\n // the original algo evals combining first and falls\n // through to wide check so we simply do here the opposite\n // combining 0\n for (let r = 0; r < BMP_COMBINING.length; ++r) {\n table.fill(0, BMP_COMBINING[r][0], BMP_COMBINING[r][1] + 1);\n }\n }\n }\n\n public wcwidth(num: number): UnicodeCharWidth {\n if (num < 32) return 0;\n if (num < 127) return 1;\n if (num < 65536) return table[num] as UnicodeCharWidth;\n if (bisearch(num, HIGH_COMBINING)) return 0;\n if ((num >= 0x20000 && num <= 0x2fffd) || (num >= 0x30000 && num <= 0x3fffd)) return 2;\n return 1;\n }\n\n public charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties {\n let width = this.wcwidth(codepoint);\n let shouldJoin = width === 0 && preceding !== 0;\n if (shouldJoin) {\n const oldWidth = UnicodeService.extractWidth(preceding);\n if (oldWidth === 0) {\n shouldJoin = false;\n } else if (oldWidth > width) {\n width = oldWidth;\n }\n }\n return UnicodeService.createPropertyValue(0, width, shouldJoin);\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { EventEmitter } from 'common/EventEmitter';\nimport { UnicodeV6 } from 'common/input/UnicodeV6';\nimport { IUnicodeService, IUnicodeVersionProvider, UnicodeCharProperties, UnicodeCharWidth } from 'common/services/Services';\n\nexport class UnicodeService implements IUnicodeService {\n public serviceBrand: any;\n\n private _providers: {[key: string]: IUnicodeVersionProvider} = Object.create(null);\n private _active: string = '';\n private _activeProvider: IUnicodeVersionProvider;\n\n private readonly _onChange = new EventEmitter<string>();\n public readonly onChange = this._onChange.event;\n\n public static extractShouldJoin(value: UnicodeCharProperties): boolean {\n return (value & 1) !== 0;\n }\n public static extractWidth(value: UnicodeCharProperties): UnicodeCharWidth {\n return ((value >> 1) & 0x3) as UnicodeCharWidth;\n }\n public static extractCharKind(value: UnicodeCharProperties): number {\n return value >> 3;\n }\n public static createPropertyValue(state: number, width: number, shouldJoin: boolean = false): UnicodeCharProperties {\n return ((state & 0xffffff) << 3) | ((width & 3) << 1) | (shouldJoin?1:0);\n }\n\n constructor() {\n const defaultProvider = new UnicodeV6();\n this.register(defaultProvider);\n this._active = defaultProvider.version;\n this._activeProvider = defaultProvider;\n }\n\n public dispose(): void {\n this._onChange.dispose();\n }\n\n public get versions(): string[] {\n return Object.keys(this._providers);\n }\n\n public get activeVersion(): string {\n return this._active;\n }\n\n public set activeVersion(version: string) {\n if (!this._providers[version]) {\n throw new Error(`unknown Unicode version \"${version}\"`);\n }\n this._active = version;\n this._activeProvider = this._providers[version];\n this._onChange.fire(version);\n }\n\n public register(provider: IUnicodeVersionProvider): void {\n this._providers[provider.version] = provider;\n }\n\n /**\n * Unicode version dependent interface.\n */\n public wcwidth(num: number): UnicodeCharWidth {\n return this._activeProvider.wcwidth(num);\n }\n\n public getStringCellWidth(s: string): number {\n let result = 0;\n let precedingInfo = 0;\n const length = s.length;\n for (let i = 0; i < length; ++i) {\n let code = s.charCodeAt(i);\n // surrogate pair first\n if (0xD800 <= code && code <= 0xDBFF) {\n if (++i >= length) {\n // this should not happen with strings retrieved from\n // Buffer.translateToString as it converts from UTF-32\n // and therefore always should contain the second part\n // for any other string we still have to handle it somehow:\n // simply treat the lonely surrogate first as a single char (UCS-2 behavior)\n return result + this.wcwidth(code);\n }\n const second = s.charCodeAt(i);\n // convert surrogate pair to high codepoint only for valid second part (UTF-16)\n // otherwise treat them independently (UCS-2 behavior)\n if (0xDC00 <= second && second <= 0xDFFF) {\n code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n } else {\n result += this.wcwidth(second);\n }\n }\n const currentInfo = this.charProperties(code, precedingInfo);\n let chWidth = UnicodeService.extractWidth(currentInfo);\n if (UnicodeService.extractShouldJoin(currentInfo)) {\n chWidth -= UnicodeService.extractWidth(precedingInfo);\n }\n result += chWidth;\n precedingInfo = currentInfo;\n }\n return result;\n }\n\n public charProperties(codepoint: number, preceding: UnicodeCharProperties): UnicodeCharProperties {\n return this._activeProvider.charProperties(codepoint, preceding);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/**\n * Copyright (c) 2023 The xterm.js authors. All rights reserved.\n * @license MIT\n *\n * UnicodeVersionProvider for V15 with grapeme cluster handleing.\n */\n\nimport type { Terminal, ITerminalAddon, IUnicodeHandling } from '@xterm/xterm';\nimport type { UnicodeGraphemesAddon as IUnicodeGraphemesApi } from '@xterm/addon-unicode-graphemes';\nimport { UnicodeGraphemeProvider } from './UnicodeGraphemeProvider';\n\nexport class UnicodeGraphemesAddon implements ITerminalAddon , IUnicodeGraphemesApi {\n private _provider15Graphemes?: UnicodeGraphemeProvider;\n private _provider15?: UnicodeGraphemeProvider;\n private _unicode?: IUnicodeHandling;\n private _oldVersion: string = '';\n\n public activate(terminal: Terminal): void {\n if (! this._provider15) {\n this._provider15 = new UnicodeGraphemeProvider(false);\n }\n if (! this._provider15Graphemes) {\n this._provider15Graphemes = new UnicodeGraphemeProvider(true);\n }\n const unicode = terminal.unicode;\n this._unicode = unicode;\n unicode.register(this._provider15);\n unicode.register(this._provider15Graphemes);\n this._oldVersion = unicode.activeVersion;\n unicode.activeVersion = '15-graphemes';\n }\n\n public dispose(): void {\n if (this._unicode) {\n this._unicode.activeVersion = this._oldVersion;\n }\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","Tree","table","Uint16Array","trans","Data","constructor","source","dest","tag","bitcount","destLen","sourceIndex","this","ltree","dtree","sltree","sdtree","length_bits","Uint8Array","length_base","dist_bits","dist_base","clcidx","code_tree","lengths","tinf_build_bits_base","bits","base","delta","first","i","sum","offs","tinf_build_tree","t","off","num","tinf_getbit","d","bit","tinf_read_bits","val","tinf_decode_symbol","cur","len","tinf_decode_trees","lt","dt","hlit","hdist","hclen","length","clen","sym","prev","tinf_inflate_block_data","dist","tinf_inflate_uncompressed_block","tinf_build_fixed_trees","bfinal","res","Error","slice","subarray","isBigEndian","Uint32Array","buffer","data","view","DataView","highStart","getUint32","errorValue","uncompressedLength","x","y","get","codePoint","index","DATA_BLOCK_LENGTH","INDEX_2_BLOCK_LENGTH","UnicodeGraphemeProvider","handleGraphemes","ambiguousCharsAreWide","version","charProperties","codepoint","preceding","_plainNarrowProperties","charInfo","UC","getInfo","w","infoToWidthInfo","shouldJoin","oldWidth","UnicodeService","extractWidth","extractCharKind","createPropertyValue","wcwidth","kind","GRAPHEME_BREAK_MASK","GRAPHEME_BREAK_SHIFT","GRAPHEME_BREAK_Extend","GRAPHEME_BREAK_Prepend","GRAPHEME_BREAK_Other","str","preferWide","width","codePointAt","infoToWidth","startIndex","column","rv","beforeState","afterInfo","beforeCode","afterCode","_shouldJoin","GRAPHEME_BREAK_Regional_Indicator","GRAPHEME_BREAK_SAW_Regional_Pair","beforeInfo","afterState","trieData","s","Buffer","from","bs","atob","r","charCodeAt","_dec","CHARWIDTH_MASK","CHARWIDTH_SHIFT","GRAPHEME_BREAK_SpacingMark","GRAPHEME_BREAK_Hangul_L","GRAPHEME_BREAK_Hangul_V","GRAPHEME_BREAK_Hangul_T","GRAPHEME_BREAK_Hangul_LV","GRAPHEME_BREAK_Hangul_LVT","GRAPHEME_BREAK_ZWJ","GRAPHEME_BREAK_ExtPic","info","ambiguousIsWide","v","CHARWIDTH_EA_AMBIGUOUS","CHARWIDTH_WIDE","CHARWIDTH_NORMAL","CHARWIDTH_FORCE_1COLUMN","to","e","fire","event","handler","undefined","_listeners","_disposed","_event","listener","push","dispose","splice","arg1","arg2","queue","call","clearListeners","BMP_COMBINING","HIGH_COMBINING","fill","ucs","mid","min","max","bisearch","extractShouldJoin","value","state","_providers","Object","create","_active","_onChange","EventEmitter","onChange","defaultProvider","UnicodeV6","register","_activeProvider","versions","keys","activeVersion","provider","getStringCellWidth","result","precedingInfo","code","second","currentInfo","chWidth","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","_oldVersion","activate","terminal","_provider15","_provider15Graphemes","unicode","_unicode"],"sourceRoot":""}
|
pywebexec/templates/index.html
CHANGED
@@ -57,6 +57,7 @@
|
|
57
57
|
<script src="/static/js/xterm/xterm.js"></script>
|
58
58
|
<script src="/static/js/xterm/addon-canvas.js"></script>
|
59
59
|
<script src="/static/js/xterm/addon-unicode11.js"></script>
|
60
|
+
<script src="/static/js/xterm/addon-unicode-graphemes.js"></script>
|
60
61
|
<script src="/static/js/xterm/addon-fit.js"></script>
|
61
62
|
<script type="text/javascript" src="/static/js/script.js"></script>
|
62
63
|
<script type="text/javascript" src="/static/js/commands.js"></script>
|
pywebexec/templates/popup.html
CHANGED
@@ -26,6 +26,7 @@
|
|
26
26
|
<script src="/static/js/xterm/addon-canvas.js"></script>
|
27
27
|
<script src="/static/js/xterm/addon-unicode11.js"></script>
|
28
28
|
<script src="/static/js/xterm/addon-fit.js"></script>
|
29
|
+
<script src="/static/js/xterm/addon-unicode-graphemes.js"></script>
|
29
30
|
<script type="text/javascript" src="/static/js/popup.js"></script>
|
30
31
|
</body>
|
31
32
|
</html>
|
pywebexec/version.py
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
pywebexec/__init__.py,sha256=197fHJy0UDBwTTpGCGortZRr-w2kTaD7MxqdbVmTEi0,61
|
2
2
|
pywebexec/host_ip.py,sha256=Ud_HTflWVQ8789aoQ2RZdT1wGI-ccvrwSWGz_c7T3TI,1241
|
3
3
|
pywebexec/pywebexec.py,sha256=Pwsjq9VpM19l10-suEZ5nEXBv-LOaJNZy91ubuAkBos,32541
|
4
|
-
pywebexec/version.py,sha256=
|
5
|
-
pywebexec/static/css/style.css,sha256=
|
4
|
+
pywebexec/version.py,sha256=p_0hDBrc9f-T772HiFHRsyrcnjBKkPgfVRYmFuXiLTo,511
|
5
|
+
pywebexec/static/css/style.css,sha256=0hnO7QUqms5XMPkD_veYzcy1FcThuG8Lo13FRkotv-0,7986
|
6
6
|
pywebexec/static/css/xterm.css,sha256=uo5phWaUiJgcz0DAzv46uoByLLbJLeetYosL1xf68rY,5559
|
7
|
-
pywebexec/static/fonts/
|
7
|
+
pywebexec/static/fonts/CommitMonoNerdFontMono-Regular.ttf,sha256=v6nZdSx5cs_TIic8Fujrjzg9u9glWjorDIr7RlwNceM,2370228
|
8
8
|
pywebexec/static/fonts/LICENSE,sha256=gsBdbFPfoMkCWYXBnjcYEAILdO0sYdUdNw8qirJQbVI,4395
|
9
9
|
pywebexec/static/images/aborted.svg,sha256=2nuvSwGBIZGWtlM1DrBO3qiSq1reDbcZDAj9rJXBnjY,380
|
10
10
|
pywebexec/static/images/copy.svg,sha256=d9OwtGh5GzzZHzYcDrLfNxZYLth1Q64x7bRyYxu4Px0,622
|
@@ -23,23 +23,25 @@ pywebexec/static/images/resume.svg,sha256=99LP1Ya2JXakRCO9kW8JMuT_4a_CannF65Eiuw
|
|
23
23
|
pywebexec/static/images/running.svg,sha256=fBCYwYb2O9K4N3waC2nURP25NRwZlqR4PbDZy6JQMww,610
|
24
24
|
pywebexec/static/images/success.svg,sha256=NVwezvVMplt46ElW798vqGfrL21Mw_DWHUp_qiD_FU8,489
|
25
25
|
pywebexec/static/js/commands.js,sha256=TmfcauQlfIeAeC8pwQvKspc4PA_VYLbPTnVCDVBZ87I,8420
|
26
|
-
pywebexec/static/js/popup.js,sha256=
|
27
|
-
pywebexec/static/js/script.js,sha256=
|
26
|
+
pywebexec/static/js/popup.js,sha256=pYBwMuGnOCz4O1O-LmxHNlqHiZCn55ozbYchQraJp6Q,9222
|
27
|
+
pywebexec/static/js/script.js,sha256=iQcl-22b4GmGLw8lY2aviC-yd8dTYZKi8cN-KoaYwvE,18216
|
28
28
|
pywebexec/static/js/xterm/LICENSE,sha256=EU1P4eXTull-_T9I80VuwnJXubB-zLzUl3xpEYj2T1M,1083
|
29
29
|
pywebexec/static/js/xterm/addon-canvas.js,sha256=ez6QTVvsmLVNJmdJlM-ZQ5bErwlxAQ_9DUmDIptl2TM,94607
|
30
30
|
pywebexec/static/js/xterm/addon-canvas.js.map,sha256=ECBA4B-BqUpdFeRzlsEWLSQnudnhLP-yPQJ8_hKquMo,379537
|
31
31
|
pywebexec/static/js/xterm/addon-fit.js,sha256=va76Nwsb_ELuiNRv5gckAJAqTUstRc2TQ43amyPJcIk,1497
|
32
32
|
pywebexec/static/js/xterm/addon-fit.js.map,sha256=zPUOkZVKfQNvj1W_fUktD5UNNu80XwqfSEWXBVxA8uY,5477
|
33
|
+
pywebexec/static/js/xterm/addon-unicode-graphemes.js,sha256=YNtqYkjZjKvW9sz3JtyqPF9MeYK3FiNAKh5HJgYqJ4Q,17676
|
34
|
+
pywebexec/static/js/xterm/addon-unicode-graphemes.js.map,sha256=4tenCZkqmjSqKPLOkvP60iy689G09j0G4mK2T5jQGbo,61313
|
33
35
|
pywebexec/static/js/xterm/addon-unicode11.js,sha256=sMO-VAqZhHE66plpZsJO0aY50R9g1EmGsiZh46ihSNA,12253
|
34
36
|
pywebexec/static/js/xterm/addon-unicode11.js.map,sha256=paDj5KKtTIUGedQn2x7CaUTDEy3e_-CHiFyCNpoNADc,40000
|
35
37
|
pywebexec/static/js/xterm/xterm.js,sha256=H5kaw7Syg-v5bmCuI6AKUnZd06Lkb6b92p8aqwMvdJU,289441
|
36
38
|
pywebexec/static/js/xterm/xterm.js.map,sha256=Y7O2Pb-fIS7Z8AC1D5s04_aiW_Jf1f4mCfN0U_OI6Zw,1118392
|
37
39
|
pywebexec/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
-
pywebexec/templates/index.html,sha256=
|
39
|
-
pywebexec/templates/popup.html,sha256=
|
40
|
-
pywebexec-1.8.
|
41
|
-
pywebexec-1.8.
|
42
|
-
pywebexec-1.8.
|
43
|
-
pywebexec-1.8.
|
44
|
-
pywebexec-1.8.
|
45
|
-
pywebexec-1.8.
|
40
|
+
pywebexec/templates/index.html,sha256=Hqranqut5gaZrY3nWmfRmVPQgcfnkV1Jndppkj4PK30,3025
|
41
|
+
pywebexec/templates/popup.html,sha256=3kpMccKD_OLLhJ4Y9KRw6Ny8wQWjVaRrUfV9y5-bDiQ,1580
|
42
|
+
pywebexec-1.8.4.dist-info/LICENSE,sha256=gRJf0JPT_wsZJsUGlWPTS8Vypfl9vQ1qjp6sNbKykuA,1064
|
43
|
+
pywebexec-1.8.4.dist-info/METADATA,sha256=6ybiOn5xV8duhm7D_QiV7R413JWzUi64ZmACjT4Asv0,8146
|
44
|
+
pywebexec-1.8.4.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
45
|
+
pywebexec-1.8.4.dist-info/entry_points.txt,sha256=l52GBkPCXRkmlHfEyoVauyfBdg8o-CAtC8qQpOIjJK0,55
|
46
|
+
pywebexec-1.8.4.dist-info/top_level.txt,sha256=vHoHyzngrfGdm_nM7Xn_5iLmaCrf10XO1EhldgNLEQ8,10
|
47
|
+
pywebexec-1.8.4.dist-info/RECORD,,
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|