this.container = c} />
+ );
+ }
+
@bind
- onWindowResize() {
+ private onWindowResize() {
const { terminal } = this;
clearTimeout(this.resizeTimeout);
this.resizeTimeout = setTimeout(() => terminal.fit(), 250) as any;
}
- onWindowUnload(event: BeforeUnloadEvent): string {
+ private onWindowUnload(event: BeforeUnloadEvent): string {
const message = 'Close terminal? this will also terminate the command.';
event.returnValue = message;
return message;
}
@bind
- openTerminal() {
+ private openTerminal() {
if (this.terminal) {
this.terminal.dispose();
}
@@ -103,7 +109,7 @@ export default class Terminal extends Component
{
}
@bind
- onSocketOpen() {
+ private onSocketOpen() {
console.log('Websocket connection opened');
const { socket, textEncoder, terminal } = this;
@@ -112,7 +118,7 @@ export default class Terminal extends Component {
}
@bind
- onSocketClose(event: CloseEvent) {
+ private onSocketClose(event: CloseEvent) {
console.log('Websocket connection closed with code: ' + event.code);
const { terminal, openTerminal, autoReconnect } = this;
@@ -130,12 +136,12 @@ export default class Terminal extends Component {
}
@bind
- onSocketData(event: MessageEvent) {
+ private onSocketData(event: MessageEvent) {
const { terminal, textDecoder } = this;
- let rawData = new Uint8Array(event.data),
- cmd = String.fromCharCode(rawData[0]),
- data = rawData.slice(1).buffer;
+ const rawData = new Uint8Array(event.data);
+ const cmd = String.fromCharCode(rawData[0]);
+ const data = rawData.slice(1).buffer;
switch(cmd) {
case Command.OUTPUT:
@@ -146,8 +152,8 @@ export default class Terminal extends Component {
document.title = this.title;
break;
case Command.SET_PREFERENCES:
- let preferences = JSON.parse(textDecoder.decode(data));
- Object.keys(preferences).forEach(function(key) {
+ const preferences = JSON.parse(textDecoder.decode(data));
+ Object.keys(preferences).forEach((key) => {
console.log('Setting ' + key + ': ' + preferences[key]);
terminal.setOption(key, preferences[key]);
});
@@ -163,26 +169,20 @@ export default class Terminal extends Component {
}
@bind
- onTerminalResize(size: {cols: number, rows: number}) {
+ private onTerminalResize(size: {cols: number, rows: number}) {
const { terminal, socket, textEncoder } = this;
if (socket.readyState === WebSocket.OPEN) {
- let msg = JSON.stringify({columns: size.cols, rows: size.rows});
+ const msg = JSON.stringify({columns: size.cols, rows: size.rows});
socket.send(textEncoder.encode(Command.RESIZE_TERMINAL + msg));
}
setTimeout(() => {terminal.showOverlay(size.cols + 'x' + size.rows)}, 500);
}
@bind
- onTerminalData(data: string) {
+ private onTerminalData(data: string) {
const { socket, textEncoder } = this;
if (socket.readyState === WebSocket.OPEN) {
socket.send(textEncoder.encode(Command.INPUT + data));
}
}
-
- public render({ id }: Props) {
- return (
- this.container = c}>
- );
- }
}
diff --git a/html/tslint.json b/html/tslint.json
index e066f1e..5cad276 100644
--- a/html/tslint.json
+++ b/html/tslint.json
@@ -1,111 +1,52 @@
{
- "rulesDirectory": [
- "tslint-consistent-codestyle"
+ "extends": [
+ "tslint:recommended",
+ "tslint-react",
+ "tslint-eslint-rules",
+ "tslint-consistent-codestyle",
+ "tslint-config-prettier"
],
"rules": {
- "array-type": [
- true,
- "array"
- ],
- "class-name": true,
- "comment-format": [
- true,
- "check-space"
- ],
- "curly": [
- true,
- "ignore-same-line"
- ],
- "indent": [
- true,
- "spaces"
- ],
- "interface-name": [
- true,
- "always-prefix"
- ],
- "interface-over-type-literal": true,
- "typedef": [
- true,
- "call-signature",
- "parameter"
- ],
- "eofline": true,
- "new-parens": true,
- "no-duplicate-imports": true,
- "no-eval": true,
- "no-internal-module": true,
- "no-trailing-whitespace": true,
- "one-variable-per-declaration": true,
- "no-unsafe-finally": true,
- "no-var-keyword": true,
- "prefer-const": true,
- "quotemark": [
- true,
- "single"
- ],
- "semicolon": [
- true,
- "always"
- ],
- "trailing-comma": [
- true,
- {
- "multiline": {
- "objects": "never",
- "arrays": "never",
- "functions": "never",
- "typeLiterals": "ignore"
- },
- "esSpecCompliant": true
- }
- ],
- "triple-equals": true,
- "typedef-whitespace": [
- true,
- {
- "call-signature": "nospace",
- "index-signature": "nospace",
- "parameter": "nospace",
- "property-declaration": "nospace",
- "variable-declaration": "nospace"
- }
- ],
- "variable-name": [
- true,
- "ban-keywords",
- "check-format",
- "allow-leading-underscore"
- ],
- "whitespace": [
- true,
- "check-branch",
- "check-decl",
- "check-module",
- "check-operator",
- "check-rest-spread",
- "check-separator",
- "check-type",
- "check-type-operator",
- "check-preblock"
- ],
- "naming-convention": [
- true,
- {"type": "default", "format": "camelCase", "leadingUnderscore": "forbid"},
- {"type": "type", "format": "PascalCase"},
- {"type": "class", "format": "PascalCase"},
- {"type": "property", "modifiers": ["const"], "format": "UPPER_CASE"},
- {"type": "member", "modifiers": ["protected"], "format": "camelCase", "leadingUnderscore": "allow"},
- {"type": "member", "modifiers": ["protected"], "format": "camelCase", "leadingUnderscore": "require"},
- {"type": "member", "modifiers": ["private"], "format": "camelCase", "leadingUnderscore": "require"},
- {"type": "variable", "modifiers": ["const"], "format": ["camelCase", "UPPER_CASE"]},
- {"type": "interface", "prefix": "I"}
- ],
+ "interface-name": false,
+ "object-literal-sort-keys": false,
+ "no-empty-interface": false,
+ "no-submodule-imports": false,
+ "jsx-no-lambda": false,
+ "no-console": false,
+ "no-empty": false,
+ "radix": false,
+ "jsx-no-multiline-js": false,
+ "only-arrow-functions": [true, "allow-declarations"],
+ "ban-comma-operator": true,
+ "no-angle-bracket-type-assertion": false,
+ "no-arg": true,
+ "no-duplicate-case": true,
+ "no-empty-character-class": true,
+ "no-ex-assign": true,
+ "no-extra-boolean-cast": true,
+ "no-extra-semi": true,
+ "no-inner-declarations": true,
+ "no-invalid-regexp": true,
+ "no-irregular-whitespace": true,
+ "no-regex-spaces": true,
+ "no-sparse-arrays": true,
+ "no-unexpected-multiline": true,
+ "valid-jsdoc": true,
+ "valid-typeof": true,
+ "early-exit": { "severity": "warning" },
+ "no-collapsible-if": { "severity": "warning" },
+ "no-unnecessary-else": { "severity": "warning" },
+ "no-accessor-recursion": { "severity": "warning" },
"no-else-after-return": {
+ "severity": "warning",
"options": "allow-else-if"
},
- "prefer-const-enum": [
- true
- ]
+ "no-return-undefined": { "severity": "warning" },
+ "no-static-this": { "severity": "warning" },
+ "no-var-before-return": {
+ "severity": "warning",
+ "options": "allow-destructuring"
+ },
+ "prefer-const-enum": { "severity": "warning" }
}
}
diff --git a/html/yarn.lock b/html/yarn.lock
index b791e6b..809f82d 100644
--- a/html/yarn.lock
+++ b/html/yarn.lock
@@ -2058,6 +2058,14 @@ dns-txt@^2.0.2:
dependencies:
buffer-indexof "^1.0.0"
+doctrine@0.7.2:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
+ integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=
+ dependencies:
+ esutils "^1.1.6"
+ isarray "0.0.1"
+
dom-converter@^0.2:
version "0.2.0"
resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
@@ -2338,6 +2346,11 @@ estraverse@^4.1.0, estraverse@^4.1.1:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
+esutils@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
+ integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=
+
esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@@ -3405,13 +3418,6 @@ ignore@^3.3.5:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
-immutability-helper@^2.7.1:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.9.1.tgz#71c423ba387e67b6c6ceba0650572f2a2a6727df"
- integrity sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ==
- dependencies:
- invariant "^2.2.0"
-
import-fresh@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
@@ -3521,13 +3527,6 @@ interpret@^1.1.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
-invariant@^2.2.0:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
- integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
- dependencies:
- loose-envify "^1.0.0"
-
inversify@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.0.1.tgz#500d709b1434896ce5a0d58915c4a4210e34fb6e"
@@ -3925,16 +3924,16 @@ js-base64@^2.1.8:
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
+js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
js-yaml@^3.13.0, js-yaml@^3.13.1:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
@@ -4377,13 +4376,6 @@ loglevel@^1.6.1:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
-loose-envify@^1.0.0, loose-envify@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
- integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
- dependencies:
- js-tokens "^3.0.0 || ^4.0.0"
-
loud-rejection@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
@@ -6113,34 +6105,6 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.5:
source-map "^0.6.1"
supports-color "^6.1.0"
-preact-compat@^3.18.5:
- version "3.18.5"
- resolved "https://registry.yarnpkg.com/preact-compat/-/preact-compat-3.18.5.tgz#45b801de75e3016bebe8cd446f51f60d2b948bb9"
- integrity sha512-F174NW6PI5GU+T28B0ZHblhxMsFaPVaSBiaE++xrxdDVunsO0mARYfOSZizTdb/PFLqXDzcQ1IWdnEt/vIiUvw==
- dependencies:
- immutability-helper "^2.7.1"
- preact-render-to-string "^3.8.2"
- preact-transition-group "^1.1.1"
- prop-types "^15.6.2"
- standalone-react-addons-pure-render-mixin "^0.1.1"
-
-preact-render-to-string@^3.8.2:
- version "3.8.2"
- resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-3.8.2.tgz#bd72964d705a57da3a9e72098acaa073dd3ceff9"
- integrity sha512-przuZPajiurStGgxMoJP0EJeC4xj5CgHv+M7GfF3YxAdhGgEWAkhOSE0xympAFN20uMayntBZpttIZqqLl77fw==
- dependencies:
- pretty-format "^3.5.1"
-
-preact-router@^2.6.1:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/preact-router/-/preact-router-2.6.1.tgz#eec60a9f2c07a1ae4fbc6604d8a0415742fbbd89"
- integrity sha512-Ql3fptQ8hiioIw5zUcWUq5NShl7yFR4e6KBUzLbGI7+HKMIgBnH+aOITN5IrY1rbr2vhKXBdHdd9nLbbjcJTOQ==
-
-preact-transition-group@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/preact-transition-group/-/preact-transition-group-1.1.1.tgz#f0a49327ea515ece34ea2be864c4a7d29e5d6e10"
- integrity sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=
-
preact@^8.4.2:
version "8.4.2"
resolved "https://registry.yarnpkg.com/preact/-/preact-8.4.2.tgz#1263b974a17d1ea80b66590e41ef786ced5d6a23"
@@ -6164,11 +6128,6 @@ pretty-error@^2.0.2:
renderkid "^2.0.1"
utila "~0.4"
-pretty-format@^3.5.1:
- version "3.8.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385"
- integrity sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=
-
pretty-hrtime@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
@@ -6209,15 +6168,6 @@ promzard@^0.3.0:
dependencies:
read "1"
-prop-types@^15.6.2:
- version "15.7.2"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
- integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
- dependencies:
- loose-envify "^1.4.0"
- object-assign "^4.1.1"
- react-is "^16.8.1"
-
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
@@ -6403,11 +6353,6 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-is@^16.8.1:
- version "16.8.6"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
- integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
-
read-cmd-shim@^1.0.1, read-cmd-shim@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b"
@@ -7285,11 +7230,6 @@ stack-trace@0.0.10:
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
-standalone-react-addons-pure-render-mixin@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz#3c7409f4c79c40de9ac72c616cf679a994f37551"
- integrity sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=
-
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
@@ -7743,11 +7683,21 @@ ts-loader@^6.0.1:
micromatch "^4.0.0"
semver "^6.0.0"
+tslib@1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+ integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==
+
tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
+tslint-config-prettier@^1.18.0:
+ version "1.18.0"
+ resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37"
+ integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==
+
tslint-consistent-codestyle@^1.15.1:
version "1.15.1"
resolved "https://registry.yarnpkg.com/tslint-consistent-codestyle/-/tslint-consistent-codestyle-1.15.1.tgz#a0c5cd5a5860d40b659c490d8013c5732e02af8c"
@@ -7757,6 +7707,15 @@ tslint-consistent-codestyle@^1.15.1:
tslib "^1.7.1"
tsutils "^2.29.0"
+tslint-eslint-rules@^5.4.0:
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5"
+ integrity sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==
+ dependencies:
+ doctrine "0.7.2"
+ tslib "1.9.0"
+ tsutils "^3.0.0"
+
tslint-loader@^3.5.4:
version "3.5.4"
resolved "https://registry.yarnpkg.com/tslint-loader/-/tslint-loader-3.5.4.tgz#052af7f0772434451ea1b247bb55407f878a4c40"
@@ -7768,6 +7727,13 @@ tslint-loader@^3.5.4:
rimraf "^2.4.4"
semver "^5.3.0"
+tslint-react@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/tslint-react/-/tslint-react-4.0.0.tgz#b4bb4c01c32448cb14d23f143a2f5e4989bb961e"
+ integrity sha512-9fNE0fm9zNDx1+b6hgy8rgDN2WsQLRiIrn3+fbqm0tazBVF6jiaCFAITxmU+WSFWYE03Xhp1joCircXOe1WVAQ==
+ dependencies:
+ tsutils "^3.9.1"
+
tslint@^5.16.0:
version "5.16.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.16.0.tgz#ae61f9c5a98d295b9a4f4553b1b1e831c1984d67"
@@ -7794,7 +7760,7 @@ tsutils@^2.29.0:
dependencies:
tslib "^1.8.1"
-tsutils@^3.5.0:
+tsutils@^3.0.0, tsutils@^3.5.0, tsutils@^3.9.1:
version "3.10.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.10.0.tgz#6f1c95c94606e098592b0dff06590cf9659227d6"
integrity sha512-q20XSMq7jutbGB8luhKKsQldRKWvyBO2BGqni3p4yq8Ys9bEP/xQw3KepKmMRt9gJ4lvQSScrihJrcKdKoSU7Q==
diff --git a/src/index.html b/src/index.html
index d41f23e..72a9e97 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1 +1 @@
-ttyd - Terminal
\ No newline at end of file
+ttyd - Terminal
\ No newline at end of file