mirror of
https://github.com/tsl0922/ttyd.git
synced 2025-12-23 20:24:20 +01:00
html: add tslint to webpack
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
import '../sass/app.scss';
|
import '../sass/app.scss';
|
||||||
|
|
||||||
import { Terminal, ITerminalOptions, IDisposable } from 'xterm';
|
import { Terminal, ITerminalOptions, IDisposable } from 'xterm';
|
||||||
import * as fit from 'xterm/lib/addons/fit/fit'
|
import * as fit from 'xterm/lib/addons/fit/fit';
|
||||||
import * as Zmodem from 'zmodem.js/src/zmodem_browser';
|
import * as Zmodem from 'zmodem.js/src/zmodem_browser';
|
||||||
|
|
||||||
import * as overlay from './overlay'
|
import * as overlay from './overlay';
|
||||||
import { Modal } from './zmodem'
|
import { Modal } from './zmodem';
|
||||||
|
|
||||||
Terminal.applyAddon(fit);
|
Terminal.applyAddon(fit);
|
||||||
Terminal.applyAddon(overlay);
|
Terminal.applyAddon(overlay);
|
||||||
@@ -28,31 +28,31 @@ declare let window: IWindowWithTerminal;
|
|||||||
|
|
||||||
const modal = new Modal();
|
const modal = new Modal();
|
||||||
const terminalContainer = document.getElementById('terminal-container');
|
const terminalContainer = document.getElementById('terminal-container');
|
||||||
const protocol = window.location.protocol === 'https:' ? 'wss://': 'ws://';
|
const protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';
|
||||||
const wsPath = window.location.pathname.endsWith('/') ? 'ws' : '/ws';
|
const wsPath = window.location.pathname.endsWith('/') ? 'ws' : '/ws';
|
||||||
const url = [protocol, window.location.host, window.location.pathname, wsPath, window.location.search].join('');
|
const url = [protocol, window.location.host, window.location.pathname, wsPath, window.location.search].join('');
|
||||||
const textDecoder = new TextDecoder();
|
const textDecoder = new TextDecoder();
|
||||||
const textEncoder = new TextEncoder();
|
const textEncoder = new TextEncoder();
|
||||||
|
|
||||||
let authToken = (typeof window.tty_auth_token !== 'undefined') ? window.tty_auth_token : null;
|
const authToken = (typeof window.tty_auth_token !== 'undefined') ? window.tty_auth_token : null;
|
||||||
let autoReconnect = -1;
|
let autoReconnect = -1;
|
||||||
let term: ITtydTerminal;
|
let term: ITtydTerminal;
|
||||||
let title: string;
|
let title: string;
|
||||||
let wsError: boolean;
|
let wsError: boolean;
|
||||||
|
|
||||||
let openWs = function() {
|
const openWs = function(): void {
|
||||||
let ws = new WebSocket(url, ['tty']);
|
const ws = new WebSocket(url, ['tty']);
|
||||||
let sendMessage = function (message) {
|
const sendMessage = function (message: string): void {
|
||||||
if (ws.readyState === WebSocket.OPEN) {
|
if (ws.readyState === WebSocket.OPEN) {
|
||||||
ws.send(textEncoder.encode(message));
|
ws.send(textEncoder.encode(message));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let unloadCallback = function (event) {
|
const unloadCallback = function (event: BeforeUnloadEvent): string {
|
||||||
let message = 'Close terminal? this will also terminate the command.';
|
const message = 'Close terminal? this will also terminate the command.';
|
||||||
event.returnValue = message;
|
event.returnValue = message;
|
||||||
return message;
|
return message;
|
||||||
};
|
};
|
||||||
let resetTerm = function() {
|
const resetTerm = function(): void {
|
||||||
modal.hide();
|
modal.hide();
|
||||||
clearTimeout(term.reconnectTimeout);
|
clearTimeout(term.reconnectTimeout);
|
||||||
if (ws.readyState !== WebSocket.CLOSED) {
|
if (ws.readyState !== WebSocket.CLOSED) {
|
||||||
@@ -61,31 +61,31 @@ let openWs = function() {
|
|||||||
openWs();
|
openWs();
|
||||||
};
|
};
|
||||||
|
|
||||||
let zsentry = new Zmodem.Sentry({
|
const zsentry = new Zmodem.Sentry({
|
||||||
to_terminal: function _to_terminal(octets) {
|
to_terminal: function(octets: ArrayBuffer): any {
|
||||||
let buffer = new Uint8Array(octets).buffer;
|
const buffer = new Uint8Array(octets).buffer;
|
||||||
term.write(textDecoder.decode(buffer));
|
term.write(textDecoder.decode(buffer));
|
||||||
},
|
},
|
||||||
|
|
||||||
sender: function _ws_sender_func(octets) {
|
sender: function(octets: number[]): any {
|
||||||
// limit max packet size to 4096
|
// limit max packet size to 4096
|
||||||
while (octets.length) {
|
while (octets.length) {
|
||||||
let chunk = octets.splice(0, 4095);
|
const chunk = octets.splice(0, 4095);
|
||||||
let buffer = new Uint8Array(chunk.length + 1);
|
const buffer = new Uint8Array(chunk.length + 1);
|
||||||
buffer[0]= '0'.charCodeAt(0);
|
buffer[0] = '0'.charCodeAt(0);
|
||||||
buffer.set(chunk, 1);
|
buffer.set(chunk, 1);
|
||||||
ws.send(buffer);
|
ws.send(buffer);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
on_retract: function _on_retract() {
|
on_retract: function(): any {
|
||||||
// console.log('on_retract');
|
// console.log('on_retract');
|
||||||
},
|
},
|
||||||
|
|
||||||
on_detect: function _on_detect(detection) {
|
on_detect: function(detection: any): any {
|
||||||
term.setOption('disableStdin', true);
|
term.setOption('disableStdin', true);
|
||||||
let zsession = detection.confirm();
|
const zsession = detection.confirm();
|
||||||
let promise = zsession.type === 'send' ? modal.handleSend(zsession) : modal.handleReceive(zsession);
|
const promise = zsession.type === 'send' ? modal.handleSend(zsession) : modal.handleReceive(zsession);
|
||||||
promise.catch(console.error.bind(console)).then(() => {
|
promise.catch(console.error.bind(console)).then(() => {
|
||||||
modal.hide();
|
modal.hide();
|
||||||
term.setOption('disableStdin', false);
|
term.setOption('disableStdin', false);
|
||||||
@@ -95,7 +95,7 @@ let openWs = function() {
|
|||||||
|
|
||||||
ws.binaryType = 'arraybuffer';
|
ws.binaryType = 'arraybuffer';
|
||||||
|
|
||||||
ws.onopen = function() {
|
ws.onopen = function(): void {
|
||||||
console.log('[ttyd] websocket opened');
|
console.log('[ttyd] websocket opened');
|
||||||
wsError = false;
|
wsError = false;
|
||||||
sendMessage(JSON.stringify({AuthToken: authToken}));
|
sendMessage(JSON.stringify({AuthToken: authToken}));
|
||||||
@@ -163,11 +163,11 @@ let openWs = function() {
|
|||||||
term.focus();
|
term.focus();
|
||||||
};
|
};
|
||||||
|
|
||||||
ws.onmessage = function(event: MessageEvent) {
|
ws.onmessage = function(event: MessageEvent): void {
|
||||||
let rawData = new Uint8Array(event.data),
|
const rawData = new Uint8Array(event.data);
|
||||||
cmd = String.fromCharCode(rawData[0]),
|
const cmd = String.fromCharCode(rawData[0]);
|
||||||
data = rawData.slice(1).buffer;
|
const data = rawData.slice(1).buffer;
|
||||||
switch(cmd) {
|
switch (cmd) {
|
||||||
case '0':
|
case '0':
|
||||||
try {
|
try {
|
||||||
zsentry.consume(data);
|
zsentry.consume(data);
|
||||||
@@ -181,7 +181,7 @@ let openWs = function() {
|
|||||||
document.title = title;
|
document.title = title;
|
||||||
break;
|
break;
|
||||||
case '2':
|
case '2':
|
||||||
let preferences = JSON.parse(textDecoder.decode(data));
|
const preferences = JSON.parse(textDecoder.decode(data));
|
||||||
Object.keys(preferences).forEach((key) => {
|
Object.keys(preferences).forEach((key) => {
|
||||||
console.log('[ttyd] xterm option: ' + key + '=' + preferences[key]);
|
console.log('[ttyd] xterm option: ' + key + '=' + preferences[key]);
|
||||||
term.setOption(key, preferences[key]);
|
term.setOption(key, preferences[key]);
|
||||||
@@ -197,7 +197,7 @@ let openWs = function() {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ws.onclose = function(event: CloseEvent) {
|
ws.onclose = function(event: CloseEvent): void {
|
||||||
console.log('[ttyd] websocket closed, code: ' + event.code);
|
console.log('[ttyd] websocket closed, code: ' + event.code);
|
||||||
modal.hide();
|
modal.hide();
|
||||||
if (term) {
|
if (term) {
|
||||||
|
|||||||
@@ -3,15 +3,16 @@
|
|||||||
import { Terminal } from 'xterm';
|
import { Terminal } from 'xterm';
|
||||||
|
|
||||||
interface IOverlayAddonTerminal extends Terminal {
|
interface IOverlayAddonTerminal extends Terminal {
|
||||||
__overlayNode?: HTMLElement
|
__overlayNode?: HTMLElement;
|
||||||
__overlayTimeout?: number
|
__overlayTimeout?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function showOverlay(term: Terminal, msg: string, timeout: number): void {
|
export function showOverlay(term: Terminal, msg: string, timeout: number): void {
|
||||||
const addonTerminal = <IOverlayAddonTerminal> term;
|
const addonTerminal = <IOverlayAddonTerminal> term;
|
||||||
if (!addonTerminal.__overlayNode) {
|
if (!addonTerminal.__overlayNode) {
|
||||||
if (!term.element)
|
if (!term.element) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
addonTerminal.__overlayNode = document.createElement('div');
|
addonTerminal.__overlayNode = document.createElement('div');
|
||||||
addonTerminal.__overlayNode.style.cssText = (
|
addonTerminal.__overlayNode.style.cssText = (
|
||||||
'border-radius: 15px;' +
|
'border-radius: 15px;' +
|
||||||
@@ -29,14 +30,15 @@ export function showOverlay(term: Terminal, msg: string, timeout: number): void
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
}, true);
|
}, true);
|
||||||
}
|
}
|
||||||
addonTerminal.__overlayNode.style.color = "#101010";
|
addonTerminal.__overlayNode.style.color = '#101010';
|
||||||
addonTerminal.__overlayNode.style.backgroundColor = "#f0f0f0";
|
addonTerminal.__overlayNode.style.backgroundColor = '#f0f0f0';
|
||||||
|
|
||||||
addonTerminal.__overlayNode.textContent = msg;
|
addonTerminal.__overlayNode.textContent = msg;
|
||||||
addonTerminal.__overlayNode.style.opacity = '0.75';
|
addonTerminal.__overlayNode.style.opacity = '0.75';
|
||||||
|
|
||||||
if (!addonTerminal.__overlayNode.parentNode)
|
if (!addonTerminal.__overlayNode.parentNode) {
|
||||||
term.element.appendChild(addonTerminal.__overlayNode);
|
term.element.appendChild(addonTerminal.__overlayNode);
|
||||||
|
}
|
||||||
|
|
||||||
const divSize = term.element.getBoundingClientRect();
|
const divSize = term.element.getBoundingClientRect();
|
||||||
const overlaySize = addonTerminal.__overlayNode.getBoundingClientRect();
|
const overlaySize = addonTerminal.__overlayNode.getBoundingClientRect();
|
||||||
@@ -44,17 +46,20 @@ export function showOverlay(term: Terminal, msg: string, timeout: number): void
|
|||||||
addonTerminal.__overlayNode.style.top = (divSize.height - overlaySize.height) / 2 + 'px';
|
addonTerminal.__overlayNode.style.top = (divSize.height - overlaySize.height) / 2 + 'px';
|
||||||
addonTerminal.__overlayNode.style.left = (divSize.width - overlaySize.width) / 2 + 'px';
|
addonTerminal.__overlayNode.style.left = (divSize.width - overlaySize.width) / 2 + 'px';
|
||||||
|
|
||||||
if (addonTerminal.__overlayTimeout)
|
if (addonTerminal.__overlayTimeout) {
|
||||||
clearTimeout(addonTerminal.__overlayTimeout);
|
clearTimeout(addonTerminal.__overlayTimeout);
|
||||||
|
}
|
||||||
|
|
||||||
if (timeout === null)
|
if (timeout === null) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
addonTerminal.__overlayTimeout = <number><any>setTimeout(() => {
|
addonTerminal.__overlayTimeout = <number><any>setTimeout(() => {
|
||||||
addonTerminal.__overlayNode.style.opacity = '0';
|
addonTerminal.__overlayNode.style.opacity = '0';
|
||||||
addonTerminal.__overlayTimeout = <number><any>setTimeout(() => {
|
addonTerminal.__overlayTimeout = <number><any>setTimeout(() => {
|
||||||
if (addonTerminal.__overlayNode.parentNode)
|
if (addonTerminal.__overlayNode.parentNode) {
|
||||||
addonTerminal.__overlayNode.parentNode.removeChild(addonTerminal.__overlayNode);
|
addonTerminal.__overlayNode.parentNode.removeChild(addonTerminal.__overlayNode);
|
||||||
|
}
|
||||||
addonTerminal.__overlayTimeout = null;
|
addonTerminal.__overlayTimeout = null;
|
||||||
addonTerminal.__overlayNode.style.opacity = '0.75';
|
addonTerminal.__overlayNode.style.opacity = '0.75';
|
||||||
}, 200);
|
}, 200);
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ function bytesHuman (bytes: any, precision: number): string {
|
|||||||
if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) return '-';
|
if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) return '-';
|
||||||
if (bytes === 0) return '0';
|
if (bytes === 0) return '0';
|
||||||
if (typeof precision === 'undefined') precision = 1;
|
if (typeof precision === 'undefined') precision = 1;
|
||||||
let units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'],
|
const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
||||||
number = Math.floor(Math.log(bytes) / Math.log(1024));
|
const num = Math.floor(Math.log(bytes) / Math.log(1024));
|
||||||
return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + units[number];
|
return (bytes / Math.pow(1024, Math.floor(num))).toFixed(precision) + ' ' + units[num];
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Modal {
|
export class Modal {
|
||||||
@@ -69,7 +69,7 @@ export class Modal {
|
|||||||
this.progress = new Progress();
|
this.progress = new Progress();
|
||||||
}
|
}
|
||||||
|
|
||||||
public reset(title): void {
|
public reset(title: string): void {
|
||||||
this.header.textContent = title;
|
this.header.textContent = title;
|
||||||
this.status.element.style.display = 'none';
|
this.status.element.style.display = 'none';
|
||||||
this.choose.element.style.display = 'none';
|
this.choose.element.style.display = 'none';
|
||||||
@@ -85,7 +85,7 @@ export class Modal {
|
|||||||
this.element.classList.remove('is-active');
|
this.element.classList.remove('is-active');
|
||||||
}
|
}
|
||||||
|
|
||||||
public updateFileInfo(fileInfo): void {
|
public updateFileInfo(fileInfo: any): void {
|
||||||
this.status.element.style.display = '';
|
this.status.element.style.display = '';
|
||||||
this.choose.element.style.display = 'none';
|
this.choose.element.style.display = 'none';
|
||||||
this.progress.element.style.display = '';
|
this.progress.element.style.display = '';
|
||||||
@@ -94,11 +94,11 @@ export class Modal {
|
|||||||
this.progress.fileName.textContent = fileInfo.name;
|
this.progress.fileName.textContent = fileInfo.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public showReceive(xfer): void {
|
public showReceive(xfer: any): void {
|
||||||
this.reset('Receiving files');
|
this.reset('Receiving files');
|
||||||
this.updateFileInfo(xfer.get_details());
|
this.updateFileInfo(xfer.get_details());
|
||||||
this.progress.skip.disabled = false;
|
this.progress.skip.disabled = false;
|
||||||
this.progress.skip.onclick = function () {
|
this.progress.skip.onclick = function (): void {
|
||||||
(<HTMLLinkElement>this).disabled = true;
|
(<HTMLLinkElement>this).disabled = true;
|
||||||
xfer.skip();
|
xfer.skip();
|
||||||
};
|
};
|
||||||
@@ -106,17 +106,17 @@ export class Modal {
|
|||||||
this.element.classList.add('is-active');
|
this.element.classList.add('is-active');
|
||||||
}
|
}
|
||||||
|
|
||||||
public showSend(callback): void {
|
public showSend(callback: (files: FileList) => any): void {
|
||||||
this.reset('Sending files');
|
this.reset('Sending files');
|
||||||
this.choose.element.style.display = '';
|
this.choose.element.style.display = '';
|
||||||
this.choose.files.disabled = false;
|
this.choose.files.disabled = false;
|
||||||
this.choose.files.value = '';
|
this.choose.files.value = '';
|
||||||
this.choose.filesNames.textContent = '';
|
this.choose.filesNames.textContent = '';
|
||||||
let self:Modal = this;
|
const self: Modal = this;
|
||||||
this.choose.files.onchange = function () {
|
this.choose.files.onchange = function (): void {
|
||||||
(<HTMLInputElement>this).disabled = true;
|
(<HTMLInputElement>this).disabled = true;
|
||||||
let files:FileList = (<HTMLInputElement>this).files;
|
const files: FileList = (<HTMLInputElement>this).files;
|
||||||
let fileNames:string = '';
|
let fileNames: string = '';
|
||||||
for (let i = 0; i < files.length; i++) {
|
for (let i = 0; i < files.length; i++) {
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
fileNames = files[i].name;
|
fileNames = files[i].name;
|
||||||
@@ -130,20 +130,20 @@ export class Modal {
|
|||||||
this.element.classList.add('is-active');
|
this.element.classList.add('is-active');
|
||||||
}
|
}
|
||||||
|
|
||||||
public updateProgress(xfer): void {
|
public updateProgress(xfer: any): void {
|
||||||
let size = xfer.get_details().size;
|
const size = xfer.get_details().size;
|
||||||
let offset = xfer.get_offset();
|
const offset = xfer.get_offset();
|
||||||
this.progress.bytesReceived.textContent = bytesHuman(offset, 2);
|
this.progress.bytesReceived.textContent = bytesHuman(offset, 2);
|
||||||
this.progress.bytesFile.textContent = bytesHuman(size, 2);
|
this.progress.bytesFile.textContent = bytesHuman(size, 2);
|
||||||
|
|
||||||
let percentReceived = (100 * offset / size).toFixed(2);
|
const percentReceived = (100 * offset / size).toFixed(2);
|
||||||
this.progress.percentReceived.textContent = percentReceived + '%';
|
this.progress.percentReceived.textContent = percentReceived + '%';
|
||||||
|
|
||||||
this.progress.progressBar.textContent = percentReceived + '%';
|
this.progress.progressBar.textContent = percentReceived + '%';
|
||||||
this.progress.progressBar.setAttribute('value', percentReceived);
|
this.progress.progressBar.setAttribute('value', percentReceived);
|
||||||
}
|
}
|
||||||
|
|
||||||
public handleSend(zsession): Promise<any> {
|
public handleSend(zsession: any): Promise<any> {
|
||||||
return new Promise((res) => {
|
return new Promise((res) => {
|
||||||
this.showSend((files) => {
|
this.showSend((files) => {
|
||||||
Zmodem.Browser.send_files(
|
Zmodem.Browser.send_files(
|
||||||
@@ -166,10 +166,10 @@ export class Modal {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public handleReceive(zsession): Promise<any> {
|
public handleReceive(zsession: any): Promise<any> {
|
||||||
zsession.on('offer', (xfer) => {
|
zsession.on('offer', (xfer) => {
|
||||||
this.showReceive(xfer);
|
this.showReceive(xfer);
|
||||||
let fileBuffer = [];
|
const fileBuffer = [];
|
||||||
xfer.on('input', (payload) => {
|
xfer.on('input', (payload) => {
|
||||||
this.updateProgress(xfer);
|
this.updateProgress(xfer);
|
||||||
fileBuffer.push(new Uint8Array(payload));
|
fileBuffer.push(new Uint8Array(payload));
|
||||||
@@ -181,10 +181,10 @@ export class Modal {
|
|||||||
);
|
);
|
||||||
}, console.error.bind(console));
|
}, console.error.bind(console));
|
||||||
});
|
});
|
||||||
let promise = new Promise((res) => {
|
const promise = new Promise((res) => {
|
||||||
zsession.on('session_end', () => res());
|
zsession.on('session_end', () => res());
|
||||||
});
|
});
|
||||||
zsession.start();
|
zsession.start();
|
||||||
return promise;
|
return promise;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,8 +10,9 @@
|
|||||||
"author": "Shuanglei Tao <tsl0922@gmail.com>",
|
"author": "Shuanglei Tao <tsl0922@gmail.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "NODE_ENV=production npx wp --config webpack.prod.js && gulp",
|
"build": "NODE_ENV=production webpack --config webpack.prod.js && gulp",
|
||||||
"start": "gulp clean && npx webpack-dev-server --config webpack.dev.js"
|
"prestart": "gulp clean",
|
||||||
|
"start": "webpack-dev-server --config webpack.dev.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"xterm": "^3.13.0",
|
"xterm": "^3.13.0",
|
||||||
@@ -32,11 +33,13 @@
|
|||||||
"style-loader": "^0.23.1",
|
"style-loader": "^0.23.1",
|
||||||
"terser-webpack-plugin": "^1.2.4",
|
"terser-webpack-plugin": "^1.2.4",
|
||||||
"ts-loader": "^6.0.0",
|
"ts-loader": "^6.0.0",
|
||||||
|
"tslint": "^5.16.0",
|
||||||
|
"tslint-consistent-codestyle": "^1.15.1",
|
||||||
|
"tslint-loader": "^3.5.4",
|
||||||
"typescript": "^3.4.5",
|
"typescript": "^3.4.5",
|
||||||
"webpack": "^4.31.0",
|
"webpack": "^4.31.0",
|
||||||
"webpack-cli": "^3.3.2",
|
"webpack-cli": "^3.3.2",
|
||||||
"webpack-dev-server": "^3.3.1",
|
"webpack-dev-server": "^3.3.1",
|
||||||
"webpack-merge": "^4.2.1",
|
"webpack-merge": "^4.2.1"
|
||||||
"webpack-nano": "^0.6.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
111
html/tslint.json
Normal file
111
html/tslint.json
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
{
|
||||||
|
"rulesDirectory": [
|
||||||
|
"tslint-consistent-codestyle"
|
||||||
|
],
|
||||||
|
"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"}
|
||||||
|
],
|
||||||
|
"no-else-after-return": {
|
||||||
|
"options": "allow-else-if"
|
||||||
|
},
|
||||||
|
"prefer-const-enum": [
|
||||||
|
true
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,6 +12,11 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.ts$/,
|
||||||
|
enforce: 'pre',
|
||||||
|
use: 'tslint-loader',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
test: /\.tsx?$/,
|
test: /\.tsx?$/,
|
||||||
use: 'ts-loader',
|
use: 'ts-loader',
|
||||||
|
|||||||
157
html/yarn.lock
157
html/yarn.lock
@@ -2,6 +2,41 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@babel/code-frame@^7.0.0":
|
||||||
|
version "7.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
|
||||||
|
integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/highlight" "^7.0.0"
|
||||||
|
|
||||||
|
"@babel/highlight@^7.0.0":
|
||||||
|
version "7.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
|
||||||
|
integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
|
||||||
|
dependencies:
|
||||||
|
chalk "^2.0.0"
|
||||||
|
esutils "^2.0.2"
|
||||||
|
js-tokens "^4.0.0"
|
||||||
|
|
||||||
|
"@fimbul/bifrost@^0.17.0":
|
||||||
|
version "0.17.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@fimbul/bifrost/-/bifrost-0.17.0.tgz#f0383ba7e40992e3193dc87e2ddfde2ad62a9cf4"
|
||||||
|
integrity sha512-gVTkJAOef5HtN6LPmrtt5fAUmBywwlgmObsU3FBhPoNeXPLaIl2zywXkJEtvvVLQnaFmtff3x+wIj5lHRCDE3Q==
|
||||||
|
dependencies:
|
||||||
|
"@fimbul/ymir" "^0.17.0"
|
||||||
|
get-caller-file "^2.0.0"
|
||||||
|
tslib "^1.8.1"
|
||||||
|
tsutils "^3.5.0"
|
||||||
|
|
||||||
|
"@fimbul/ymir@^0.17.0":
|
||||||
|
version "0.17.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@fimbul/ymir/-/ymir-0.17.0.tgz#4f28389b9f804d1cd202e11983af1743488b7815"
|
||||||
|
integrity sha512-xMXM9KTXRLHLVS6dnX1JhHNEkmWHcAVCQ/4+DA1KKwC/AFnGHzu/7QfQttEPgw3xplT+ILf9e3i64jrFwB3JtA==
|
||||||
|
dependencies:
|
||||||
|
inversify "^5.0.0"
|
||||||
|
reflect-metadata "^0.1.12"
|
||||||
|
tslib "^1.8.1"
|
||||||
|
|
||||||
"@types/events@*":
|
"@types/events@*":
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
|
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
|
||||||
@@ -790,7 +825,7 @@ buffer@^4.3.0:
|
|||||||
ieee754 "^1.1.4"
|
ieee754 "^1.1.4"
|
||||||
isarray "^1.0.0"
|
isarray "^1.0.0"
|
||||||
|
|
||||||
builtin-modules@^1.0.0:
|
builtin-modules@^1.0.0, builtin-modules@^1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
|
||||||
integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
|
integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
|
||||||
@@ -926,7 +961,7 @@ chalk@^1.1.1:
|
|||||||
strip-ansi "^3.0.0"
|
strip-ansi "^3.0.0"
|
||||||
supports-color "^2.0.0"
|
supports-color "^2.0.0"
|
||||||
|
|
||||||
chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
|
chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
|
||||||
version "2.4.2"
|
version "2.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||||
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
||||||
@@ -1119,7 +1154,7 @@ commander@2.15.x:
|
|||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
|
||||||
integrity sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=
|
integrity sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=
|
||||||
|
|
||||||
commander@^2.19.0:
|
commander@^2.12.1, commander@^2.19.0:
|
||||||
version "2.20.0"
|
version "2.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
|
||||||
integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
|
integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
|
||||||
@@ -1724,6 +1759,11 @@ detect-node@^2.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
|
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
|
||||||
integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
|
integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
|
||||||
|
|
||||||
|
diff@^3.2.0:
|
||||||
|
version "3.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
|
||||||
|
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
|
||||||
|
|
||||||
diffie-hellman@^5.0.0:
|
diffie-hellman@^5.0.0:
|
||||||
version "5.0.3"
|
version "5.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
||||||
@@ -2067,6 +2107,11 @@ estraverse@^4.1.0, estraverse@^4.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
|
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
|
||||||
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
|
integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
|
||||||
|
|
||||||
|
esutils@^2.0.2:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
|
||||||
|
integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
|
||||||
|
|
||||||
etag@~1.8.1:
|
etag@~1.8.1:
|
||||||
version "1.8.1"
|
version "1.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
||||||
@@ -2510,6 +2555,11 @@ get-caller-file@^1.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
|
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
|
||||||
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
|
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
|
||||||
|
|
||||||
|
get-caller-file@^2.0.0:
|
||||||
|
version "2.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||||
|
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||||
|
|
||||||
get-stdin@^4.0.1:
|
get-stdin@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
|
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
|
||||||
@@ -3144,6 +3194,11 @@ interpret@^1.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
|
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
|
||||||
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
|
integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
|
||||||
|
|
||||||
|
inversify@^5.0.0:
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.0.1.tgz#500d709b1434896ce5a0d58915c4a4210e34fb6e"
|
||||||
|
integrity sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==
|
||||||
|
|
||||||
invert-kv@^1.0.0:
|
invert-kv@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
|
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
|
||||||
@@ -3509,7 +3564,12 @@ js-base64@^2.1.8:
|
|||||||
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.0.tgz#9e566fee624751a1d720c966cd6226d29d4025aa"
|
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.0.tgz#9e566fee624751a1d720c966cd6226d29d4025aa"
|
||||||
integrity sha1-nlZv7mJHUaHXIMlmzWIm0p1AJao=
|
integrity sha1-nlZv7mJHUaHXIMlmzWIm0p1AJao=
|
||||||
|
|
||||||
js-yaml@^3.13.1:
|
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"
|
version "3.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
|
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
|
||||||
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
|
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
|
||||||
@@ -5441,13 +5501,6 @@ rechoir@^0.6.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
resolve "^1.1.6"
|
resolve "^1.1.6"
|
||||||
|
|
||||||
rechoir@^0.7.0:
|
|
||||||
version "0.7.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca"
|
|
||||||
integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==
|
|
||||||
dependencies:
|
|
||||||
resolve "^1.9.0"
|
|
||||||
|
|
||||||
redent@^1.0.0:
|
redent@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
|
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
|
||||||
@@ -5456,6 +5509,11 @@ redent@^1.0.0:
|
|||||||
indent-string "^2.1.0"
|
indent-string "^2.1.0"
|
||||||
strip-indent "^1.0.1"
|
strip-indent "^1.0.1"
|
||||||
|
|
||||||
|
reflect-metadata@^0.1.12:
|
||||||
|
version "0.1.13"
|
||||||
|
resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08"
|
||||||
|
integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==
|
||||||
|
|
||||||
regex-not@^1.0.0, regex-not@^1.0.2:
|
regex-not@^1.0.0, regex-not@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
|
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
|
||||||
@@ -5606,7 +5664,7 @@ resolve-url@^0.2.1:
|
|||||||
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
|
||||||
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
|
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
|
||||||
|
|
||||||
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.4.0, resolve@^1.9.0:
|
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0:
|
||||||
version "1.11.0"
|
version "1.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232"
|
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232"
|
||||||
integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==
|
integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==
|
||||||
@@ -5642,7 +5700,7 @@ rimraf@2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
glob "^7.0.5"
|
glob "^7.0.5"
|
||||||
|
|
||||||
rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
|
rimraf@^2.4.4, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
|
||||||
version "2.6.3"
|
version "2.6.3"
|
||||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
|
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
|
||||||
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
|
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
|
||||||
@@ -6499,11 +6557,64 @@ ts-loader@^6.0.0:
|
|||||||
micromatch "^4.0.0"
|
micromatch "^4.0.0"
|
||||||
semver "^6.0.0"
|
semver "^6.0.0"
|
||||||
|
|
||||||
tslib@^1.9.0:
|
tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
|
||||||
version "1.9.3"
|
version "1.9.3"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
|
||||||
integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
|
integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
|
||||||
|
|
||||||
|
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"
|
||||||
|
integrity sha512-38Y3Dz4zcABe/PlPAQSGNEWPGVq0OzcIQR7SEU6dNujp/SgvhxhJOhIhI9gY4r0I3/TNtvVQwARWor9O9LPZWg==
|
||||||
|
dependencies:
|
||||||
|
"@fimbul/bifrost" "^0.17.0"
|
||||||
|
tslib "^1.7.1"
|
||||||
|
tsutils "^2.29.0"
|
||||||
|
|
||||||
|
tslint-loader@^3.5.4:
|
||||||
|
version "3.5.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/tslint-loader/-/tslint-loader-3.5.4.tgz#052af7f0772434451ea1b247bb55407f878a4c40"
|
||||||
|
integrity sha512-jBHNNppXut6SgZ7CsTBh+6oMwVum9n8azbmcYSeMlsABhWWoHwjq631vIFXef3VSd75cCdX3rc6kstsB7rSVVw==
|
||||||
|
dependencies:
|
||||||
|
loader-utils "^1.0.2"
|
||||||
|
mkdirp "^0.5.1"
|
||||||
|
object-assign "^4.1.1"
|
||||||
|
rimraf "^2.4.4"
|
||||||
|
semver "^5.3.0"
|
||||||
|
|
||||||
|
tslint@^5.16.0:
|
||||||
|
version "5.16.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.16.0.tgz#ae61f9c5a98d295b9a4f4553b1b1e831c1984d67"
|
||||||
|
integrity sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/code-frame" "^7.0.0"
|
||||||
|
builtin-modules "^1.1.1"
|
||||||
|
chalk "^2.3.0"
|
||||||
|
commander "^2.12.1"
|
||||||
|
diff "^3.2.0"
|
||||||
|
glob "^7.1.1"
|
||||||
|
js-yaml "^3.13.0"
|
||||||
|
minimatch "^3.0.4"
|
||||||
|
mkdirp "^0.5.1"
|
||||||
|
resolve "^1.3.2"
|
||||||
|
semver "^5.3.0"
|
||||||
|
tslib "^1.8.0"
|
||||||
|
tsutils "^2.29.0"
|
||||||
|
|
||||||
|
tsutils@^2.29.0:
|
||||||
|
version "2.29.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
|
||||||
|
integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
|
||||||
|
dependencies:
|
||||||
|
tslib "^1.8.1"
|
||||||
|
|
||||||
|
tsutils@^3.5.0:
|
||||||
|
version "3.10.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.10.0.tgz#6f1c95c94606e098592b0dff06590cf9659227d6"
|
||||||
|
integrity sha512-q20XSMq7jutbGB8luhKKsQldRKWvyBO2BGqni3p4yq8Ys9bEP/xQw3KepKmMRt9gJ4lvQSScrihJrcKdKoSU7Q==
|
||||||
|
dependencies:
|
||||||
|
tslib "^1.8.1"
|
||||||
|
|
||||||
tty-browserify@0.0.0:
|
tty-browserify@0.0.0:
|
||||||
version "0.0.0"
|
version "0.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
|
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
|
||||||
@@ -6927,16 +7038,6 @@ webpack-merge@^4.2.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
lodash "^4.17.5"
|
lodash "^4.17.5"
|
||||||
|
|
||||||
webpack-nano@^0.6.2:
|
|
||||||
version "0.6.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/webpack-nano/-/webpack-nano-0.6.2.tgz#9a8224b693f6a903371fbc4a731b5a10cef4d37d"
|
|
||||||
integrity sha512-N6BgPssm3vsKfx9zLPJh8DdgzmoXvyh9OKtdum44ahZvGgHOwuLswIxuQvtC8QQXgQGL4tNZ3lXfXbhqaafPVA==
|
|
||||||
dependencies:
|
|
||||||
chalk "^2.4.1"
|
|
||||||
import-local "^2.0.0"
|
|
||||||
rechoir "^0.7.0"
|
|
||||||
yargs-parser "^13.0.0"
|
|
||||||
|
|
||||||
webpack-sources@^1.1.0, webpack-sources@^1.3.0:
|
webpack-sources@^1.1.0, webpack-sources@^1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
|
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
|
||||||
@@ -7077,14 +7178,6 @@ yargs-parser@^11.1.1:
|
|||||||
camelcase "^5.0.0"
|
camelcase "^5.0.0"
|
||||||
decamelize "^1.2.0"
|
decamelize "^1.2.0"
|
||||||
|
|
||||||
yargs-parser@^13.0.0:
|
|
||||||
version "13.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f"
|
|
||||||
integrity sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==
|
|
||||||
dependencies:
|
|
||||||
camelcase "^5.0.0"
|
|
||||||
decamelize "^1.2.0"
|
|
||||||
|
|
||||||
yargs-parser@^5.0.0:
|
yargs-parser@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
|
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
|
||||||
|
|||||||
4
src/index.html
vendored
4
src/index.html
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user