@jsenv/terminal-recorder 1.4.7 → 1.4.9

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.
Files changed (30) hide show
  1. package/dist/terminal_recorder_browser.js +8 -4
  2. package/package.json +5 -6
  3. package/src/.jsenv/chrome@128.00/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-fit/lib/addon-fit.js +2 -0
  4. package/src/.jsenv/chrome@128.00/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-fit/lib/addon-fit.js.map +64 -0
  5. package/src/.jsenv/chrome@128.00/terminal_recorder.js +26 -35
  6. package/src/.jsenv/chrome@128.00/terminal_recorder.js.map +2 -2
  7. package/src/.jsenv/chrome@129.00/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-fit/lib/addon-fit.js +2 -0
  8. package/src/.jsenv/chrome@129.00/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-fit/lib/addon-fit.js.map +64 -0
  9. package/src/.jsenv/chrome@129.00/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-serialize/lib/addon-serialize.mjs +749 -0
  10. package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-serialize/lib/addon-serialize.mjs.map +11 -11
  11. package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/packages/internal/plugin-supervisor/src/client/supervisor.js +3 -3
  12. package/src/.jsenv/{chrome@127.00 → chrome@129.00}/gif_encoder.js +3 -3
  13. package/src/.jsenv/{chrome@127.00 → chrome@129.00}/gif_encoder.js.map +2 -2
  14. package/src/.jsenv/{chrome@127.00 → chrome@129.00}/terminal_recorder.js +69 -60
  15. package/src/.jsenv/{chrome@127.00 → chrome@129.00}/terminal_recorder.js.map +2 -2
  16. package/src/client/terminal_recorder.js +1 -0
  17. package/src/.jsenv/chrome@127.00/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-serialize/lib/addon-serialize.mjs +0 -749
  18. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-serialize/lib/addon-serialize.js +0 -0
  19. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-serialize/lib/addon-serialize.js.map +0 -0
  20. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-webgl/lib/addon-webgl.js +0 -0
  21. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/addon-webgl/lib/addon-webgl.js.map +0 -0
  22. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/xterm/css/xterm.css +0 -0
  23. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/xterm/lib/xterm.js +0 -0
  24. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/@fs/Users/damien.maillard/dev/perso/jsenv-core/node_modules/@xterm/xterm/lib/xterm.js.map +0 -0
  25. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/lzw_encoder.js +0 -0
  26. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/neuquant.js +0 -0
  27. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/xterm.html +0 -0
  28. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/xterm.html@L14C5-L18C14.js +0 -0
  29. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/xterm.html@L19C5-L24C14.js +0 -0
  30. /package/src/.jsenv/{chrome@127.00 → chrome@129.00}/xterm.html@L19C5-L24C14.js.map +0 -0
@@ -1,16 +1,20 @@
1
1
  function ansiRegex$1({onlyFirst = false} = {}) {
2
+ // Valid string terminator sequences are BEL, ESC\, and 0x9c
3
+ const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
2
4
  const pattern = [
3
- '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
4
- '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
5
+ `[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
6
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
5
7
  ].join('|');
6
8
 
7
9
  return new RegExp(pattern, onlyFirst ? undefined : 'g');
8
10
  }
9
11
 
10
12
  function ansiRegex({onlyFirst = false} = {}) {
13
+ // Valid string terminator sequences are BEL, ESC\, and 0x9c
14
+ const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
11
15
  const pattern = [
12
- '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)',
13
- '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'
16
+ `[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
17
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
14
18
  ].join('|');
15
19
 
16
20
  return new RegExp(pattern, onlyFirst ? undefined : 'g');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/terminal-recorder",
3
- "version": "1.4.7",
3
+ "version": "1.4.9",
4
4
  "description": "Record terminal output as .svg, .gif, .webm, .mp4",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,17 +33,16 @@
33
33
  ],
34
34
  "scripts": {
35
35
  "dev": "node ./scripts/dev.mjs",
36
- "test": "node ./scripts/test.mjs",
37
36
  "build": "node ./scripts/build.mjs",
38
37
  "prepublishOnly": "npm run build"
39
38
  },
40
39
  "dependencies": {
41
40
  "@jsenv/humanize": "1.2.8",
42
- "@jsenv/server": "15.3.0",
43
- "@playwright/browser-chromium": "1.46.0",
44
- "ansi-regex": "6.0.1",
41
+ "@jsenv/server": "15.3.1",
42
+ "@playwright/browser-chromium": "1.47.1",
43
+ "ansi-regex": "6.1.0",
45
44
  "he": "1.2.0",
46
- "playwright": "1.46.0",
45
+ "playwright": "1.47.1",
47
46
  "string-width": "5.1.2",
48
47
  "strip-ansi": "7.1.0",
49
48
  "webm-to-mp4": "1.0.0"
@@ -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.FitAddon=t():e.FitAddon=t()}(self,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,t=e._renderService.dimensions;if(0===t.css.cell.width||0===t.css.cell.height)return;const r=0===this._terminal.options.scrollback?0:e.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),o=parseInt(i.getPropertyValue("height")),s=Math.max(0,parseInt(i.getPropertyValue("width"))),n=window.getComputedStyle(this._terminal.element),l=o-(parseInt(n.getPropertyValue("padding-top"))+parseInt(n.getPropertyValue("padding-bottom"))),a=s-(parseInt(n.getPropertyValue("padding-right"))+parseInt(n.getPropertyValue("padding-left")))-r;return{cols:Math.max(2,Math.floor(a/t.css.cell.width)),rows:Math.max(1,Math.floor(l/t.css.cell.height))}}}})(),e})()));
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24tZml0LmpzIiwibWFwcGluZ3MiOiJDQUFBLFNBQTJDQSxFQUFNQyxHQUMxQixpQkFBWkMsU0FBMEMsaUJBQVhDLE9BQ3hDQSxPQUFPRCxRQUFVRCxJQUNRLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDOUNELE9BQU8sR0FBSUgsR0FDZSxpQkFBWkMsUUFDZEEsUUFBa0IsU0FBSUQsSUFFdEJELEVBQWUsU0FBSUMsR0FDcEIsQ0FURCxDQVNHSyxNQUFNLEksbUhDZVQsaUJBR1MsUUFBQUMsQ0FBU0MsR0FDZEMsS0FBS0MsVUFBWUYsQ0FDbkIsQ0FFTyxPQUFBRyxHQUFpQixDQUVqQixHQUFBQyxHQUNMLE1BQU1DLEVBQU9KLEtBQUtLLG9CQUNsQixJQUFLRCxJQUFTSixLQUFLQyxXQUFhSyxNQUFNRixFQUFLRyxPQUFTRCxNQUFNRixFQUFLSSxNQUM3RCxPQUlGLE1BQU1DLEVBQVFULEtBQUtDLFVBQWtCUyxNQUdqQ1YsS0FBS0MsVUFBVU8sT0FBU0osRUFBS0ksTUFBUVIsS0FBS0MsVUFBVU0sT0FBU0gsRUFBS0csT0FDcEVFLEVBQUtFLGVBQWVDLFFBQ3BCWixLQUFLQyxVQUFVWSxPQUFPVCxFQUFLRyxLQUFNSCxFQUFLSSxNQUUxQyxDQUVPLGlCQUFBSCxHQUNMLElBQUtMLEtBQUtDLFVBQ1IsT0FHRixJQUFLRCxLQUFLQyxVQUFVYSxVQUFZZCxLQUFLQyxVQUFVYSxRQUFRQyxjQUNyRCxPQUlGLE1BQU1OLEVBQVFULEtBQUtDLFVBQWtCUyxNQUMvQk4sRUFBMEJLLEVBQUtFLGVBQWVLLFdBRXBELEdBQTRCLElBQXhCWixFQUFLYSxJQUFJQyxLQUFLQyxPQUF3QyxJQUF6QmYsRUFBS2EsSUFBSUMsS0FBS0UsT0FDN0MsT0FHRixNQUFNQyxFQUF1RCxJQUF0Q3JCLEtBQUtDLFVBQVVxQixRQUFRQyxXQUM1QyxFQUFJZCxFQUFLZSxTQUFTQyxlQUVkQyxFQUFxQkMsT0FBT0MsaUJBQWlCNUIsS0FBS0MsVUFBVWEsUUFBUUMsZUFDcEVjLEVBQXNCQyxTQUFTSixFQUFtQkssaUJBQWlCLFdBQ25FQyxFQUFxQkMsS0FBS0MsSUFBSSxFQUFHSixTQUFTSixFQUFtQkssaUJBQWlCLFdBQzlFSSxFQUFlUixPQUFPQyxpQkFBaUI1QixLQUFLQyxVQUFVYSxTQVN0RHNCLEVBQWtCUCxHQVBqQkMsU0FBU0ssRUFBYUosaUJBQWlCLGdCQUNwQ0QsU0FBU0ssRUFBYUosaUJBQWlCLG9CQU8zQ00sRUFBaUJMLEdBTmRGLFNBQVNLLEVBQWFKLGlCQUFpQixrQkFDeENELFNBQVNLLEVBQWFKLGlCQUFpQixrQkFLaUJWLEVBS2hFLE1BSmlCLENBQ2ZkLEtBQU0wQixLQUFLQyxJQS9ESSxFQStEY0QsS0FBS0ssTUFBTUQsRUFBaUJqQyxFQUFLYSxJQUFJQyxLQUFLQyxRQUN2RVgsS0FBTXlCLEtBQUtDLElBL0RJLEVBK0RjRCxLQUFLSyxNQUFNRixFQUFrQmhDLEVBQUthLElBQUlDLEtBQUtFLFNBRzVFLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9GaXRBZGRvbi93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vRml0QWRkb24vc3JjL0ZpdEFkZG9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIkZpdEFkZG9uXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkZpdEFkZG9uXCJdID0gZmFjdG9yeSgpO1xufSkoc2VsZiwgKCkgPT4ge1xucmV0dXJuICIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE3IFRoZSB4dGVybS5qcyBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogQGxpY2Vuc2UgTUlUXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBUZXJtaW5hbCwgSVRlcm1pbmFsQWRkb24gfSBmcm9tICdAeHRlcm0veHRlcm0nO1xuaW1wb3J0IHR5cGUgeyBGaXRBZGRvbiBhcyBJRml0QXBpIH0gZnJvbSAnQHh0ZXJtL2FkZG9uLWZpdCc7XG5pbXBvcnQgeyBJUmVuZGVyRGltZW5zaW9ucyB9IGZyb20gJ2Jyb3dzZXIvcmVuZGVyZXIvc2hhcmVkL1R5cGVzJztcblxuaW50ZXJmYWNlIElUZXJtaW5hbERpbWVuc2lvbnMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByb3dzIGluIHRoZSB0ZXJtaW5hbC5cbiAgICovXG4gIHJvd3M6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSB0ZXJtaW5hbC5cbiAgICovXG4gIGNvbHM6IG51bWJlcjtcbn1cblxuY29uc3QgTUlOSU1VTV9DT0xTID0gMjtcbmNvbnN0IE1JTklNVU1fUk9XUyA9IDE7XG5cbmV4cG9ydCBjbGFzcyBGaXRBZGRvbiBpbXBsZW1lbnRzIElUZXJtaW5hbEFkZG9uICwgSUZpdEFwaSB7XG4gIHByaXZhdGUgX3Rlcm1pbmFsOiBUZXJtaW5hbCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgYWN0aXZhdGUodGVybWluYWw6IFRlcm1pbmFsKTogdm9pZCB7XG4gICAgdGhpcy5fdGVybWluYWwgPSB0ZXJtaW5hbDtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge31cblxuICBwdWJsaWMgZml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGRpbXMgPSB0aGlzLnByb3Bvc2VEaW1lbnNpb25zKCk7XG4gICAgaWYgKCFkaW1zIHx8ICF0aGlzLl90ZXJtaW5hbCB8fCBpc05hTihkaW1zLmNvbHMpIHx8IGlzTmFOKGRpbXMucm93cykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBSZW1vdmUgcmVsaWFuY2Ugb24gcHJpdmF0ZSBBUElcbiAgICBjb25zdCBjb3JlID0gKHRoaXMuX3Rlcm1pbmFsIGFzIGFueSkuX2NvcmU7XG5cbiAgICAvLyBGb3JjZSBhIGZ1bGwgcmVuZGVyXG4gICAgaWYgKHRoaXMuX3Rlcm1pbmFsLnJvd3MgIT09IGRpbXMucm93cyB8fCB0aGlzLl90ZXJtaW5hbC5jb2xzICE9PSBkaW1zLmNvbHMpIHtcbiAgICAgIGNvcmUuX3JlbmRlclNlcnZpY2UuY2xlYXIoKTtcbiAgICAgIHRoaXMuX3Rlcm1pbmFsLnJlc2l6ZShkaW1zLmNvbHMsIGRpbXMucm93cyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByb3Bvc2VEaW1lbnNpb25zKCk6IElUZXJtaW5hbERpbWVuc2lvbnMgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5fdGVybWluYWwpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl90ZXJtaW5hbC5lbGVtZW50IHx8ICF0aGlzLl90ZXJtaW5hbC5lbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogUmVtb3ZlIHJlbGlhbmNlIG9uIHByaXZhdGUgQVBJXG4gICAgY29uc3QgY29yZSA9ICh0aGlzLl90ZXJtaW5hbCBhcyBhbnkpLl9jb3JlO1xuICAgIGNvbnN0IGRpbXM6IElSZW5kZXJEaW1lbnNpb25zID0gY29yZS5fcmVuZGVyU2VydmljZS5kaW1lbnNpb25zO1xuXG4gICAgaWYgKGRpbXMuY3NzLmNlbGwud2lkdGggPT09IDAgfHwgZGltcy5jc3MuY2VsbC5oZWlnaHQgPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsYmFyV2lkdGggPSB0aGlzLl90ZXJtaW5hbC5vcHRpb25zLnNjcm9sbGJhY2sgPT09IDAgP1xuICAgICAgMCA6IGNvcmUudmlld3BvcnQuc2Nyb2xsQmFyV2lkdGg7XG5cbiAgICBjb25zdCBwYXJlbnRFbGVtZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl90ZXJtaW5hbC5lbGVtZW50LnBhcmVudEVsZW1lbnQpO1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnRIZWlnaHQgPSBwYXJzZUludChwYXJlbnRFbGVtZW50U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnaGVpZ2h0JykpO1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnRXaWR0aCA9IE1hdGgubWF4KDAsIHBhcnNlSW50KHBhcmVudEVsZW1lbnRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpKSk7XG4gICAgY29uc3QgZWxlbWVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGVybWluYWwuZWxlbWVudCk7XG4gICAgY29uc3QgZWxlbWVudFBhZGRpbmcgPSB7XG4gICAgICB0b3A6IHBhcnNlSW50KGVsZW1lbnRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXRvcCcpKSxcbiAgICAgIGJvdHRvbTogcGFyc2VJbnQoZWxlbWVudFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctYm90dG9tJykpLFxuICAgICAgcmlnaHQ6IHBhcnNlSW50KGVsZW1lbnRTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXJpZ2h0JykpLFxuICAgICAgbGVmdDogcGFyc2VJbnQoZWxlbWVudFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctbGVmdCcpKVxuICAgIH07XG4gICAgY29uc3QgZWxlbWVudFBhZGRpbmdWZXIgPSBlbGVtZW50UGFkZGluZy50b3AgKyBlbGVtZW50UGFkZGluZy5ib3R0b207XG4gICAgY29uc3QgZWxlbWVudFBhZGRpbmdIb3IgPSBlbGVtZW50UGFkZGluZy5yaWdodCArIGVsZW1lbnRQYWRkaW5nLmxlZnQ7XG4gICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gcGFyZW50RWxlbWVudEhlaWdodCAtIGVsZW1lbnRQYWRkaW5nVmVyO1xuICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gcGFyZW50RWxlbWVudFdpZHRoIC0gZWxlbWVudFBhZGRpbmdIb3IgLSBzY3JvbGxiYXJXaWR0aDtcbiAgICBjb25zdCBnZW9tZXRyeSA9IHtcbiAgICAgIGNvbHM6IE1hdGgubWF4KE1JTklNVU1fQ09MUywgTWF0aC5mbG9vcihhdmFpbGFibGVXaWR0aCAvIGRpbXMuY3NzLmNlbGwud2lkdGgpKSxcbiAgICAgIHJvd3M6IE1hdGgubWF4KE1JTklNVU1fUk9XUywgTWF0aC5mbG9vcihhdmFpbGFibGVIZWlnaHQgLyBkaW1zLmNzcy5jZWxsLmhlaWdodCkpXG4gICAgfTtcbiAgICByZXR1cm4gZ2VvbWV0cnk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJzZWxmIiwiYWN0aXZhdGUiLCJ0ZXJtaW5hbCIsInRoaXMiLCJfdGVybWluYWwiLCJkaXNwb3NlIiwiZml0IiwiZGltcyIsInByb3Bvc2VEaW1lbnNpb25zIiwiaXNOYU4iLCJjb2xzIiwicm93cyIsImNvcmUiLCJfY29yZSIsIl9yZW5kZXJTZXJ2aWNlIiwiY2xlYXIiLCJyZXNpemUiLCJlbGVtZW50IiwicGFyZW50RWxlbWVudCIsImRpbWVuc2lvbnMiLCJjc3MiLCJjZWxsIiwid2lkdGgiLCJoZWlnaHQiLCJzY3JvbGxiYXJXaWR0aCIsIm9wdGlvbnMiLCJzY3JvbGxiYWNrIiwidmlld3BvcnQiLCJzY3JvbGxCYXJXaWR0aCIsInBhcmVudEVsZW1lbnRTdHlsZSIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJwYXJlbnRFbGVtZW50SGVpZ2h0IiwicGFyc2VJbnQiLCJnZXRQcm9wZXJ0eVZhbHVlIiwicGFyZW50RWxlbWVudFdpZHRoIiwiTWF0aCIsIm1heCIsImVsZW1lbnRTdHlsZSIsImF2YWlsYWJsZUhlaWdodCIsImF2YWlsYWJsZVdpZHRoIiwiZmxvb3IiXSwic291cmNlUm9vdCI6IiJ9
@@ -0,0 +1,64 @@
1
+ {
2
+ "version": 3,
3
+ "file": "addon-fit.js",
4
+ "mappings": "CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAkB,SAAID,IAEtBD,EAAe,SAAIC,GACpB,CATD,CASGK,MAAM,I,mHCeT,iBAGS,QAAAC,CAASC,GACdC,KAAKC,UAAYF,CACnB,CAEO,OAAAG,GAAiB,CAEjB,GAAAC,GACL,MAAMC,EAAOJ,KAAKK,oBAClB,IAAKD,IAASJ,KAAKC,WAAaK,MAAMF,EAAKG,OAASD,MAAMF,EAAKI,MAC7D,OAIF,MAAMC,EAAQT,KAAKC,UAAkBS,MAGjCV,KAAKC,UAAUO,OAASJ,EAAKI,MAAQR,KAAKC,UAAUM,OAASH,EAAKG,OACpEE,EAAKE,eAAeC,QACpBZ,KAAKC,UAAUY,OAAOT,EAAKG,KAAMH,EAAKI,MAE1C,CAEO,iBAAAH,GACL,IAAKL,KAAKC,UACR,OAGF,IAAKD,KAAKC,UAAUa,UAAYd,KAAKC,UAAUa,QAAQC,cACrD,OAIF,MAAMN,EAAQT,KAAKC,UAAkBS,MAC/BN,EAA0BK,EAAKE,eAAeK,WAEpD,GAA4B,IAAxBZ,EAAKa,IAAIC,KAAKC,OAAwC,IAAzBf,EAAKa,IAAIC,KAAKE,OAC7C,OAGF,MAAMC,EAAuD,IAAtCrB,KAAKC,UAAUqB,QAAQC,WAC5C,EAAId,EAAKe,SAASC,eAEdC,EAAqBC,OAAOC,iBAAiB5B,KAAKC,UAAUa,QAAQC,eACpEc,EAAsBC,SAASJ,EAAmBK,iBAAiB,WACnEC,EAAqBC,KAAKC,IAAI,EAAGJ,SAASJ,EAAmBK,iBAAiB,WAC9EI,EAAeR,OAAOC,iBAAiB5B,KAAKC,UAAUa,SAStDsB,EAAkBP,GAPjBC,SAASK,EAAaJ,iBAAiB,gBACpCD,SAASK,EAAaJ,iBAAiB,oBAO3CM,EAAiBL,GANdF,SAASK,EAAaJ,iBAAiB,kBACxCD,SAASK,EAAaJ,iBAAiB,kBAKiBV,EAKhE,MAJiB,CACfd,KAAM0B,KAAKC,IA/DI,EA+DcD,KAAKK,MAAMD,EAAiBjC,EAAKa,IAAIC,KAAKC,QACvEX,KAAMyB,KAAKC,IA/DI,EA+DcD,KAAKK,MAAMF,EAAkBhC,EAAKa,IAAIC,KAAKE,SAG5E,E",
5
+ "sources": [
6
+ "webpack://FitAddon/webpack/universalModuleDefinition",
7
+ "webpack://FitAddon/src/FitAddon.ts"
8
+ ],
9
+ "sourcesContent": [
10
+ "(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[\"FitAddon\"] = factory();\n\telse\n\t\troot[\"FitAddon\"] = factory();\n})(self, () => {\nreturn ",
11
+ "/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport type { Terminal, ITerminalAddon } from '@xterm/xterm';\nimport type { FitAddon as IFitApi } from '@xterm/addon-fit';\nimport { IRenderDimensions } from 'browser/renderer/shared/Types';\n\ninterface ITerminalDimensions {\n /**\n * The number of rows in the terminal.\n */\n rows: number;\n\n /**\n * The number of columns in the terminal.\n */\n cols: number;\n}\n\nconst MINIMUM_COLS = 2;\nconst MINIMUM_ROWS = 1;\n\nexport class FitAddon implements ITerminalAddon , IFitApi {\n private _terminal: Terminal | undefined;\n\n public activate(terminal: Terminal): void {\n this._terminal = terminal;\n }\n\n public dispose(): void {}\n\n public fit(): void {\n const dims = this.proposeDimensions();\n if (!dims || !this._terminal || isNaN(dims.cols) || isNaN(dims.rows)) {\n return;\n }\n\n // TODO: Remove reliance on private API\n const core = (this._terminal as any)._core;\n\n // Force a full render\n if (this._terminal.rows !== dims.rows || this._terminal.cols !== dims.cols) {\n core._renderService.clear();\n this._terminal.resize(dims.cols, dims.rows);\n }\n }\n\n public proposeDimensions(): ITerminalDimensions | undefined {\n if (!this._terminal) {\n return undefined;\n }\n\n if (!this._terminal.element || !this._terminal.element.parentElement) {\n return undefined;\n }\n\n // TODO: Remove reliance on private API\n const core = (this._terminal as any)._core;\n const dims: IRenderDimensions = core._renderService.dimensions;\n\n if (dims.css.cell.width === 0 || dims.css.cell.height === 0) {\n return undefined;\n }\n\n const scrollbarWidth = this._terminal.options.scrollback === 0 ?\n 0 : core.viewport.scrollBarWidth;\n\n const parentElementStyle = window.getComputedStyle(this._terminal.element.parentElement);\n const parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));\n const parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));\n const elementStyle = window.getComputedStyle(this._terminal.element);\n const elementPadding = {\n top: parseInt(elementStyle.getPropertyValue('padding-top')),\n bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),\n right: parseInt(elementStyle.getPropertyValue('padding-right')),\n left: parseInt(elementStyle.getPropertyValue('padding-left'))\n };\n const elementPaddingVer = elementPadding.top + elementPadding.bottom;\n const elementPaddingHor = elementPadding.right + elementPadding.left;\n const availableHeight = parentElementHeight - elementPaddingVer;\n const availableWidth = parentElementWidth - elementPaddingHor - scrollbarWidth;\n const geometry = {\n cols: Math.max(MINIMUM_COLS, Math.floor(availableWidth / dims.css.cell.width)),\n rows: Math.max(MINIMUM_ROWS, Math.floor(availableHeight / dims.css.cell.height))\n };\n return geometry;\n }\n}\n"
12
+ ],
13
+ "names": [
14
+ "root",
15
+ "factory",
16
+ "exports",
17
+ "module",
18
+ "define",
19
+ "amd",
20
+ "self",
21
+ "activate",
22
+ "terminal",
23
+ "this",
24
+ "_terminal",
25
+ "dispose",
26
+ "fit",
27
+ "dims",
28
+ "proposeDimensions",
29
+ "isNaN",
30
+ "cols",
31
+ "rows",
32
+ "core",
33
+ "_core",
34
+ "_renderService",
35
+ "clear",
36
+ "resize",
37
+ "element",
38
+ "parentElement",
39
+ "dimensions",
40
+ "css",
41
+ "cell",
42
+ "width",
43
+ "height",
44
+ "scrollbarWidth",
45
+ "options",
46
+ "scrollback",
47
+ "viewport",
48
+ "scrollBarWidth",
49
+ "parentElementStyle",
50
+ "window",
51
+ "getComputedStyle",
52
+ "parentElementHeight",
53
+ "parseInt",
54
+ "getPropertyValue",
55
+ "parentElementWidth",
56
+ "Math",
57
+ "max",
58
+ "elementStyle",
59
+ "availableHeight",
60
+ "availableWidth",
61
+ "floor"
62
+ ],
63
+ "sourceRoot": ""
64
+ }