Commit d2999c75 authored by 神楽坂玲奈's avatar 神楽坂玲奈

some file

parent 5577fb23
const raw = require('raw-socket');
const socket = raw.createSocket({ protocol: raw.Protocol.UDP });
const handler = {
connect(local_port, remote_port, remote_address) {
let buffer = Buffer.alloc(9);
buffer.writeUInt16BE(local_port, 0);
buffer.writeUInt16BE(remote_port, 2);
buffer.writeUInt16BE(buffer.length, 4);
socket.send(buffer, 0, buffer.length, remote_address, (error, bytes) => {
if (error) {
throw error;
}
});
},
};
process.on('message', (message) => {
handler[message.action](...message.arguments);
});
process.on('disconnect', process.exit);
process.send('initialized');
......@@ -11,10 +11,12 @@
"@electron/remote": "^1.2.1",
"electron-browser-storage": "^1.0.7",
"electron-is-dev": "^2.0.0",
"electron-updater": "^4.3.9"
"electron-updater": "^4.3.9",
"raw-socket": "^1.7.0"
},
"devDependencies": {
"@angular-builders/custom-webpack": "^12.1.1",
"@angular-devkit/build-angular": "~12.2.5",
"@angular/animations": "~12.2.5",
"@angular/cli": "~12.2.5",
"@angular/common": "~12.2.5",
......@@ -91,7 +93,84 @@
"node": ">=12.14.1"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@angular-devkit/build-angular": {
"node_modules/@angular-builders/custom-webpack/node_modules/ts-node": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
"integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
"dev": true,
"dependencies": {
"@cspotcode/source-map-support": "0.6.1",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"yn": "3.1.1"
},
"bin": {
"ts-node": "dist/bin.js",
"ts-node-cwd": "dist/bin-cwd.js",
"ts-node-script": "dist/bin-script.js",
"ts-node-transpile-only": "dist/bin-transpile.js",
"ts-script": "dist/bin-script-deprecated.js"
},
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"@swc/core": ">=1.2.50",
"@swc/wasm": ">=1.2.50",
"@types/node": "*",
"typescript": ">=2.7"
},
"peerDependenciesMeta": {
"@swc/core": {
"optional": true
},
"@swc/wasm": {
"optional": true
}
}
},
"node_modules/@angular-devkit/architect": {
"version": "0.1202.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz",
"integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==",
"dev": true,
"dependencies": {
"@angular-devkit/core": "12.2.5",
"rxjs": "6.6.7"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
"npm": "^6.11.0 || ^7.5.6",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular-devkit/architect/node_modules/rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dev": true,
"dependencies": {
"tslib": "^1.9.0"
},
"engines": {
"npm": ">=2.0.0"
}
},
"node_modules/@angular-devkit/architect/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
"node_modules/@angular-devkit/build-angular": {
"version": "12.2.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.5.tgz",
"integrity": "sha512-v44FAFMGSXJLKx25REXdoTdW/WzNXV3BDJam9ZKHFOrdtwJek4D/tEdtNHiQP4HberOHzmVjvKffa5VYXzZ40g==",
......@@ -207,7 +286,7 @@
}
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@babel/core": {
"node_modules/@angular-devkit/build-angular/node_modules/@babel/core": {
"version": "7.14.8",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz",
"integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==",
......@@ -237,7 +316,7 @@
"url": "https://opencollective.com/babel"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@babel/core/node_modules/semver": {
"node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
......@@ -246,7 +325,7 @@
"semver": "bin/semver.js"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@babel/core/node_modules/source-map": {
"node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
......@@ -255,7 +334,7 @@
"node": ">=0.10.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@babel/generator": {
"node_modules/@angular-devkit/build-angular/node_modules/@babel/generator": {
"version": "7.14.8",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz",
"integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==",
......@@ -269,7 +348,7 @@
"node": ">=6.9.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@babel/generator/node_modules/source-map": {
"node_modules/@angular-devkit/build-angular/node_modules/@babel/generator/node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
......@@ -278,7 +357,7 @@
"node": ">=0.10.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@babel/template": {
"node_modules/@angular-devkit/build-angular/node_modules/@babel/template": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
"integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==",
......@@ -292,23 +371,7 @@
"node": ">=6.9.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/@ngtools/webpack": {
"version": "12.2.5",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.5.tgz",
"integrity": "sha512-wc+ovfJucCxAjoP3ExnJll8K3nAoNCiFyDEO8dgHkriY/IWhGdwOu1eduHgfT/mWS40Awj/inJJir9oTi4YBVg==",
"dev": true,
"engines": {
"node": "^12.14.1 || >=14.0.0",
"npm": "^6.11.0 || ^7.5.6",
"yarn": ">= 1.13.0"
},
"peerDependencies": {
"@angular/compiler-cli": "^12.0.0",
"typescript": "~4.2.3 || ~4.3.2",
"webpack": "^5.30.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/cacache": {
"node_modules/@angular-devkit/build-angular/node_modules/cacache": {
"version": "15.2.0",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz",
"integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==",
......@@ -336,7 +399,7 @@
"node": ">= 10"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/core-js": {
"node_modules/@angular-devkit/build-angular/node_modules/core-js": {
"version": "3.16.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.0.tgz",
"integrity": "sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g==",
......@@ -347,7 +410,7 @@
"url": "https://opencollective.com/core-js"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/mkdirp": {
"node_modules/@angular-devkit/build-angular/node_modules/mkdirp": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
......@@ -359,7 +422,7 @@
"node": ">=10"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/rimraf": {
"node_modules/@angular-devkit/build-angular/node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
......@@ -374,7 +437,7 @@
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/rxjs": {
"node_modules/@angular-devkit/build-angular/node_modules/rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
......@@ -386,13 +449,13 @@
"npm": ">=2.0.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/rxjs/node_modules/tslib": {
"node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
"node_modules/@angular-builders/custom-webpack/node_modules/terser": {
"node_modules/@angular-devkit/build-angular/node_modules/terser": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz",
"integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==",
......@@ -409,7 +472,7 @@
"node": ">=10"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/terser-webpack-plugin": {
"node_modules/@angular-devkit/build-angular/node_modules/terser-webpack-plugin": {
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz",
"integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==",
......@@ -433,7 +496,7 @@
"webpack": "^5.1.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/terser-webpack-plugin/node_modules/source-map": {
"node_modules/@angular-devkit/build-angular/node_modules/terser-webpack-plugin/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
......@@ -442,57 +505,13 @@
"node": ">=0.10.0"
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/ts-node": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
"integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
"dev": true,
"dependencies": {
"@cspotcode/source-map-support": "0.6.1",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"yn": "3.1.1"
},
"bin": {
"ts-node": "dist/bin.js",
"ts-node-cwd": "dist/bin-cwd.js",
"ts-node-script": "dist/bin-script.js",
"ts-node-transpile-only": "dist/bin-transpile.js",
"ts-script": "dist/bin-script-deprecated.js"
},
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"@swc/core": ">=1.2.50",
"@swc/wasm": ">=1.2.50",
"@types/node": "*",
"typescript": ">=2.7"
},
"peerDependenciesMeta": {
"@swc/core": {
"optional": true
},
"@swc/wasm": {
"optional": true
}
}
},
"node_modules/@angular-builders/custom-webpack/node_modules/tslib": {
"node_modules/@angular-devkit/build-angular/node_modules/tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
"dev": true
},
"node_modules/@angular-builders/custom-webpack/node_modules/webpack": {
"node_modules/@angular-devkit/build-angular/node_modules/webpack": {
"version": "5.50.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.50.0.tgz",
"integrity": "sha512-hqxI7t/KVygs0WRv/kTgUW8Kl3YC81uyWQSo/7WUs5LsuRw0htH/fCwbVBGCuiX/t4s7qzjXFcf41O8Reiypag==",
......@@ -539,39 +558,6 @@
}
}
},
"node_modules/@angular-devkit/architect": {
"version": "0.1202.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz",
"integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==",
"dev": true,
"dependencies": {
"@angular-devkit/core": "12.2.5",
"rxjs": "6.6.7"
},
"engines": {
"node": "^12.14.1 || >=14.0.0",
"npm": "^6.11.0 || ^7.5.6",
"yarn": ">= 1.13.0"
}
},
"node_modules/@angular-devkit/architect/node_modules/rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dev": true,
"dependencies": {
"tslib": "^1.9.0"
},
"engines": {
"npm": ">=2.0.0"
}
},
"node_modules/@angular-devkit/architect/node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
"node_modules/@angular-devkit/build-optimizer": {
"version": "0.1202.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.5.tgz",
......@@ -3004,6 +2990,22 @@
"node": ">= 10.0.0"
}
},
"node_modules/@ngtools/webpack": {
"version": "12.2.5",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.5.tgz",
"integrity": "sha512-wc+ovfJucCxAjoP3ExnJll8K3nAoNCiFyDEO8dgHkriY/IWhGdwOu1eduHgfT/mWS40Awj/inJJir9oTi4YBVg==",
"dev": true,
"engines": {
"node": "^12.14.1 || >=14.0.0",
"npm": "^6.11.0 || ^7.5.6",
"yarn": ">= 1.13.0"
},
"peerDependencies": {
"@angular/compiler-cli": "^12.0.0",
"typescript": "~4.2.3 || ~4.3.2",
"webpack": "^5.30.0"
}
},
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
......@@ -15492,6 +15494,20 @@
"node": ">=0.10.0"
}
},
"node_modules/raw-socket": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/raw-socket/-/raw-socket-1.7.0.tgz",
"integrity": "sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ==",
"hasInstallScript": true,
"dependencies": {
"nan": "2.14.*"
}
},
"node_modules/raw-socket/node_modules/nan": {
"version": "2.14.2",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
},
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
......@@ -19647,83 +19663,132 @@
"webpack-merge": "^5.7.3"
},
"dependencies": {
"@angular-devkit/build-angular": {
"version": "12.2.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.5.tgz",
"integrity": "sha512-v44FAFMGSXJLKx25REXdoTdW/WzNXV3BDJam9ZKHFOrdtwJek4D/tEdtNHiQP4HberOHzmVjvKffa5VYXzZ40g==",
"dev": true,
"requires": {
"@ampproject/remapping": "1.0.1",
"@angular-devkit/architect": "0.1202.5",
"@angular-devkit/build-optimizer": "0.1202.5",
"@angular-devkit/build-webpack": "0.1202.5",
"@angular-devkit/core": "12.2.5",
"@babel/core": "7.14.8",
"@babel/generator": "7.14.8",
"@babel/helper-annotate-as-pure": "7.14.5",
"@babel/plugin-proposal-async-generator-functions": "7.14.7",
"@babel/plugin-transform-async-to-generator": "7.14.5",
"@babel/plugin-transform-runtime": "7.14.5",
"@babel/preset-env": "7.14.8",
"@babel/runtime": "7.14.8",
"@babel/template": "7.14.5",
"@discoveryjs/json-ext": "0.5.3",
"@jsdevtools/coverage-istanbul-loader": "3.0.5",
"@ngtools/webpack": "12.2.5",
"ansi-colors": "4.1.1",
"babel-loader": "8.2.2",
"browserslist": "^4.9.1",
"cacache": "15.2.0",
"caniuse-lite": "^1.0.30001032",
"circular-dependency-plugin": "5.2.2",
"copy-webpack-plugin": "9.0.1",
"core-js": "3.16.0",
"critters": "0.0.10",
"css-loader": "6.2.0",
"css-minimizer-webpack-plugin": "3.0.2",
"esbuild": "0.12.24",
"find-cache-dir": "3.3.1",
"glob": "7.1.7",
"https-proxy-agent": "5.0.0",
"inquirer": "8.1.2",
"karma-source-map-support": "1.4.0",
"less": "4.1.1",
"less-loader": "10.0.1",
"license-webpack-plugin": "2.3.20",
"loader-utils": "2.0.0",
"mini-css-extract-plugin": "2.2.1",
"minimatch": "3.0.4",
"open": "8.2.1",
"ora": "5.4.1",
"parse5-html-rewriting-stream": "6.0.1",
"piscina": "3.1.0",
"postcss": "8.3.6",
"postcss-import": "14.0.2",
"postcss-loader": "6.1.1",
"postcss-preset-env": "6.7.0",
"regenerator-runtime": "0.13.9",
"resolve-url-loader": "4.0.0",
"rxjs": "6.6.7",
"sass": "1.36.0",
"sass-loader": "12.1.0",
"semver": "7.3.5",
"source-map-loader": "3.0.0",
"source-map-support": "0.5.19",
"style-loader": "3.2.1",
"stylus": "0.54.8",
"stylus-loader": "6.1.0",
"terser": "5.7.1",
"terser-webpack-plugin": "5.1.4",
"text-table": "0.2.0",
"tree-kill": "1.2.2",
"tslib": "2.3.0",
"webpack": "5.50.0",
"webpack-dev-middleware": "5.0.0",
"webpack-dev-server": "3.11.2",
"webpack-merge": "5.8.0",
"webpack-subresource-integrity": "1.5.2"
"ts-node": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
"integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
"dev": true,
"requires": {
"@cspotcode/source-map-support": "0.6.1",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"yn": "3.1.1"
}
}
}
},
"@angular-devkit/architect": {
"version": "0.1202.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz",
"integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==",
"dev": true,
"requires": {
"@angular-devkit/core": "12.2.5",
"rxjs": "6.6.7"
},
"dependencies": {
"rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
}
},
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
}
}
},
"@angular-devkit/build-angular": {
"version": "12.2.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.5.tgz",
"integrity": "sha512-v44FAFMGSXJLKx25REXdoTdW/WzNXV3BDJam9ZKHFOrdtwJek4D/tEdtNHiQP4HberOHzmVjvKffa5VYXzZ40g==",
"dev": true,
"requires": {
"@ampproject/remapping": "1.0.1",
"@angular-devkit/architect": "0.1202.5",
"@angular-devkit/build-optimizer": "0.1202.5",
"@angular-devkit/build-webpack": "0.1202.5",
"@angular-devkit/core": "12.2.5",
"@babel/core": "7.14.8",
"@babel/generator": "7.14.8",
"@babel/helper-annotate-as-pure": "7.14.5",
"@babel/plugin-proposal-async-generator-functions": "7.14.7",
"@babel/plugin-transform-async-to-generator": "7.14.5",
"@babel/plugin-transform-runtime": "7.14.5",
"@babel/preset-env": "7.14.8",
"@babel/runtime": "7.14.8",
"@babel/template": "7.14.5",
"@discoveryjs/json-ext": "0.5.3",
"@jsdevtools/coverage-istanbul-loader": "3.0.5",
"@ngtools/webpack": "12.2.5",
"ansi-colors": "4.1.1",
"babel-loader": "8.2.2",
"browserslist": "^4.9.1",
"cacache": "15.2.0",
"caniuse-lite": "^1.0.30001032",
"circular-dependency-plugin": "5.2.2",
"copy-webpack-plugin": "9.0.1",
"core-js": "3.16.0",
"critters": "0.0.10",
"css-loader": "6.2.0",
"css-minimizer-webpack-plugin": "3.0.2",
"esbuild": "0.12.24",
"find-cache-dir": "3.3.1",
"glob": "7.1.7",
"https-proxy-agent": "5.0.0",
"inquirer": "8.1.2",
"karma-source-map-support": "1.4.0",
"less": "4.1.1",
"less-loader": "10.0.1",
"license-webpack-plugin": "2.3.20",
"loader-utils": "2.0.0",
"mini-css-extract-plugin": "2.2.1",
"minimatch": "3.0.4",
"open": "8.2.1",
"ora": "5.4.1",
"parse5-html-rewriting-stream": "6.0.1",
"piscina": "3.1.0",
"postcss": "8.3.6",
"postcss-import": "14.0.2",
"postcss-loader": "6.1.1",
"postcss-preset-env": "6.7.0",
"regenerator-runtime": "0.13.9",
"resolve-url-loader": "4.0.0",
"rxjs": "6.6.7",
"sass": "1.36.0",
"sass-loader": "12.1.0",
"semver": "7.3.5",
"source-map-loader": "3.0.0",
"source-map-support": "0.5.19",
"style-loader": "3.2.1",
"stylus": "0.54.8",
"stylus-loader": "6.1.0",
"terser": "5.7.1",
"terser-webpack-plugin": "5.1.4",
"text-table": "0.2.0",
"tree-kill": "1.2.2",
"tslib": "2.3.0",
"webpack": "5.50.0",
"webpack-dev-middleware": "5.0.0",
"webpack-dev-server": "3.11.2",
"webpack-merge": "5.8.0",
"webpack-subresource-integrity": "1.5.2"
},
"dependencies": {
"@babel/core": {
"version": "7.14.8",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz",
......@@ -19791,13 +19856,6 @@
"@babel/types": "^7.14.5"
}
},
"@ngtools/webpack": {
"version": "12.2.5",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.5.tgz",
"integrity": "sha512-wc+ovfJucCxAjoP3ExnJll8K3nAoNCiFyDEO8dgHkriY/IWhGdwOu1eduHgfT/mWS40Awj/inJJir9oTi4YBVg==",
"dev": true,
"requires": {}
},
"cacache": {
"version": "15.2.0",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz",
......@@ -19894,26 +19952,6 @@
}
}
},
"ts-node": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
"integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
"dev": true,
"requires": {
"@cspotcode/source-map-support": "0.6.1",
"@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0",
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"yn": "3.1.1"
}
},
"tslib": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
......@@ -19954,33 +19992,6 @@
}
}
},
"@angular-devkit/architect": {
"version": "0.1202.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.5.tgz",
"integrity": "sha512-HiF8RceDrvP7m8Qm53KWVpekESX0UIK4/tOg9mgFMcS/2utRnPzuu4WbfrcY9DRrsoMWLXQs6j/UVXqf8PzXJw==",
"dev": true,
"requires": {
"@angular-devkit/core": "12.2.5",
"rxjs": "6.6.7"
},
"dependencies": {
"rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
"integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
}
},
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
}
}
},
"@angular-devkit/build-optimizer": {
"version": "0.1202.5",
"resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.5.tgz",
......@@ -21700,6 +21711,13 @@
}
}
},
"@ngtools/webpack": {
"version": "12.2.5",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.5.tgz",
"integrity": "sha512-wc+ovfJucCxAjoP3ExnJll8K3nAoNCiFyDEO8dgHkriY/IWhGdwOu1eduHgfT/mWS40Awj/inJJir9oTi4YBVg==",
"dev": true,
"requires": {}
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
......@@ -31300,6 +31318,21 @@
}
}
},
"raw-socket": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/raw-socket/-/raw-socket-1.7.0.tgz",
"integrity": "sha512-mXqWihgwaFNmV5le0dWk5o+03M3A2zBIkC9BNaE6R0CJN9eYot++j2FIqgNSDq6/Vmu32PPI155SiiWNV2yyFQ==",
"requires": {
"nan": "2.14.*"
},
"dependencies": {
"nan": {
"version": "2.14.2",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
}
}
},
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<!--<meta name="description" content="">-->
<!--<meta name="author" content="">-->
<!--<link rel="icon" href="../../favicon.ico">-->
<title id="title"></title>
<!-- Bootstrap core CSS -->
<link href="node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="node_modules/vue/dist/vue.min.js"></script>
<style>
h1 {
margin-top: 10px;
margin-bottom: 20px;
text-align: center;
}
#actions {
margin-top: 20px;
text-align: center;
}
</style>
</head>
<body>
<div id="vueApp">
<div class="container">
<h1>{{pageText.updateTitle}}</h1>
<p v-for="(msg, index) in pageText.updateMsg" >{{msg}}</p>
<p>{{pageText.updateFailed.p1}} <a href="https://mycard.moe" target="_blank">{{pageText.updateFailed.p2}}</a> {{pageText.updateFailed.p3}}</p>
<p id="actions">
<button @click="onClose" type="button" class="btn btn-secondary">{{pageText.actions.close}}</button>
<button @click="onUpdate" type="button" class="btn btn-primary">{{pageText.actions.update}}</button>
</p>
</div>
</div>
<script>
const {ipcRenderer, remote} = require('electron');
const lang = require('./lang.js')
var app = new Vue({
el: '#vueApp',
created: function () {
let locale = localStorage.getItem('locale') || remote.app.getLocale();
if (locale.startsWith('zh-')) {
locale = 'zh-CN'
} else {
locale = 'en-US'
}
this.pageText = lang['update'][locale]
document.getElementById('title').innerHTML = this.pageText.pageTitle
},
methods: {
onClose(){
window.close()
},
onUpdate(){
ipcRenderer.send('update')
}
},
data: {
message: 'Hello Vue!',
pageText:{}
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link href="../node_modules/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
<style>
@font-face {
font-family: 'Mogra';
font-style: normal;
font-weight: 400;
src: url('../font/Mogra-Regular.ttf');
}
html,div,body,td,tr{
background: rgba(0,0,0,0);
font-size:14px;
font-family:-apple-system, Arial, 'Source Sans Pro', "Microsoft YaHei", 'Microsoft JhengHei', "WenQuanYi Micro Hei", sans-serif;
/*font-family: Mogra;*/
padding:0;
margin:0;
/*color:#00a4d9;*/
}
td{
line-height: 17px;
}
i:hover {
color: #0b88b1;
}
.window{
padding:5px;
border: #00a4d9 1px solid;
width:200px;
position: relative;
height: 220px;
}
.icon{
width:60px;
height:60px;
float: left;
}
.icon img{
height: 100%
}
.info{
float:left;
line-height: 20px;
}
.again{
cursor: pointer;
font-size: 12px;
background:#00a4d9;
color:#fff;
border-radius: 15px;
width:130px;
height: 30px;
line-height: 30px;
text-align: center;
margin:5px auto 0;
position: absolute;
bottom : 5px;
left: 35px;
}
.red{
color:red;
}
.green{
color:green;
}
.close{
position:absolute;
top:5px;
left:5px;
z-index: 999;
}
#winOrLose{
position: absolute;
right: 5px;
top: 5px;
}
#winOrLose div{
font-family: Mogra;
font-weight: 900;
font-size: 25px;
display: none;
}
#win{
color:#00a4d9;
}
#lose{
color:#922
}
#draw{
color: green;
}
#title{
text-align: center;
}
#info td:nth-child(1){
width:70px;
}
#rewards td:nth-child(1){
width:150px;
}
</style>
</head>
<body>
<div class="window">
<i onclick="window.opener=null;window.close();" class="fa fa-times close" title="关闭"></i>
<div>
<div id="title"></div>
<div>
<div class="icon">
<img id="icon" src="https://ygobbs.com/user_avatar/ygobbs.com/breakegg/25/1.png"/>
</div>
<div class="info">
<span id="myName">myname</span>
<table id="info">
</table>
</div>
</div>
<div id="winOrLose">
<div id="win">Win!</div>
<div id="lose">LOSE</div>
<div id="draw">DRAW</div>
</div>
<div style="clear:both"></div>
</div>
<hr/>
<div>
奖励结算
<table id="rewards">
</table>
<div class="again" onclick="again()">再来一局!</div>
</div>
</div>
<!--<div class="window">-->
<!--<div>-->
<!--<div id="title">竞技匹配</div>-->
<!--<div>-->
<!--<div class="icon">-->
<!--<img src="https://ygobbs.com/user_avatar/ygobbs.com/breakegg/25/1.png"/>-->
<!--</div>-->
<!--<div class="info">-->
<!--<span id="myName">myname</span>-->
<!--<table id="info">-->
<!--<tr>-->
<!--<td>胜:<span id="winTimes">11</span></td>-->
<!--<td>负:<span id="loseTimes">10</span></td>-->
<!--</tr>-->
<!--<tr>-->
<!--<td>排名:<span id="rank">10</span></td>-->
<!--<td><span id="EXPORDP">DP:</span><span id="EXP_DP">793</span></td>-->
<!--</tr>-->
<!--</table>-->
<!--</div>-->
<!--</div>-->
<!--<div id="winOrLose">-->
<!--<div id="win">Win!</div>-->
<!--<div id="lose">LOSE</div>-->
<!--<div id="draw">DRAW</div>-->
<!--</div>-->
<!--<div style="clear:both"></div>-->
<!--</div>-->
<!--<hr/>-->
<!--<div>-->
<!--奖励结算-->
<!--<table id="rewards">-->
<!--<tr>-->
<!--<td>D.P</td>-->
<!--<td>+7</td>-->
<!--</tr>-->
<!--<tr>-->
<!--<td>EXP</td>-->
<!--<td>+1</td>-->
<!--</tr>-->
<!--<tr>-->
<!--<td>D.P(首胜)</td>-->
<!--<td>+4</td>-->
<!--</tr>-->
<!--</table>-->
<!--<div class="again">再来一局!</div>-->
<!--</div>-->
<!--</div>-->
<script>
window.exports = {}
</script>
<script src="end_YGOPro_single.js"></script>
</body>
</html>
/**
* Created by break on 2017/6/9.
*/
import $ from 'jquery';
let data_url = (new URL(document.location.toString())).searchParams;
let data_str = data_url.get('data');
// {
// "usernamea": "Joe1991",
// "usernameb": "zh99998",
// "userscorea": 1,
// "userscoreb": 2,
// "expa": 1,
// "expb": 30,
// "expa_ex": 0.5,
// "expb_ex": 29,
// "pta": -2.45677803214143,
// "ptb": 562.760086898395,
// "pta_ex": -1.25048918195558,
// "ptb_ex": 561.553798048209,
// "type": "athletic",
// "start_time": "2017-06-17T12:26:33.000Z",
// "end_time": "2017-06-17T12:26:33.000Z",
// "winner": "zh99998",
// "isfirstwin": false,
// "myname":"zh99998",
// "athletic_win":23,
// "athletic_lose":0,
// "entertain_win":7,
// "entertain_lose":0,
// "exp_rank":"1685",
// "arena_rank":"335",
// "exp_rank_ex":"1685",
// "arena_rank_ex":"335",
// }
let data = JSON.parse(data_str!);
let titleStr;
let icon = 'https://ygobbs.com/user_avatar/ygobbs.com/' + data.myname + '/120/1.png';
let myMame = data.myname;
let winTimes, loseTimes, rank, rank_up, DP, DP_up, DP_up_sum, EXP, EXP_up;
let winOrLose = 0;
let isMyFirstWin;
if (data.type === 'entertain') {
titleStr = '娱乐匹配';
winTimes = data.entertain_win;
loseTimes = data.entertain_lose;
rank = data.exp_rank;
rank_up = data.exp_rank_ex - data.exp_rank ;
} else {
titleStr = '竞技匹配';
winTimes = data.athletic_win;
loseTimes = data.athletic_lose;
rank = data.arena_rank;
rank_up = data.arena_rank_ex - data.arena_rank ;
}
if (data.usernamea === data.myname) {
if ( data.userscorea > data.userscoreb) {
winOrLose = 1;
}else if ( data.userscorea < data.userscoreb) {
winOrLose = -1;
}else {
winOrLose = 0;
}
DP = parseInt(data.pta);
DP_up_sum = Math.floor( data.pta - data.pta_ex );
EXP = parseInt(data.expa);
EXP_up = Math.floor( data.expa - data.expa_ex );
}else {
if ( data.userscorea < data.userscoreb) {
winOrLose = 1;
}else if ( data.userscorea > data.userscoreb) {
winOrLose = -1;
}else {
winOrLose = 0;
}
DP = parseInt(data.ptb);
DP_up_sum = Math.floor( data.ptb - data.ptb_ex );
EXP = parseInt(data.expb);
EXP_up = Math.floor( data.expb - data.expb_ex );
}
isMyFirstWin = (winOrLose > 0 && data.isfirstwin) ? true : false;
DP_up = DP_up_sum - (isMyFirstWin ? 4 : 0);
// =========================================================================
$('#title').html(titleStr);
$('#icon').attr('src', icon);
$('#myName').html(myMame);
$('#' + (winOrLose ? (winOrLose > 0 ? 'win' : 'lose') : 'draw') ).show();
let tr1 = '<tr>' +
'<td>胜:<span class="' + (winOrLose > 0 ? 'green' : '') + '">' + winTimes + '</span></td>' +
'<td>负:<span class="' + (winOrLose < 0 ? 'red' : '') + '">' + loseTimes + '</span></td>' +
'</tr>';
let tr2 = `<tr>
<td>排名:<span id="rank" class="${rank_up ? (rank_up > 0 ? 'green' : 'red') : '' } ">${rank}</span></td>
<td>${data.type === 'entertain' ? 'EXP:' : 'DP:'}
<span id="EXP_DP" ${data.type === 'entertain' ?
('class="' + (EXP_up > 0 ? 'green' : (EXP_up < 0 ? 'red' : '')) + '">' + EXP) :
('class="' + (DP_up_sum > 0 ? 'green' : (DP_up_sum < 0 ? 'red' : '')) + '">' + DP)
}</span>
</td>
</tr>`;
$('#info').append(tr1).append(tr2);
let tr_DP = DP_up ? `
<tr>
<td>D.P</td>
${DP_up > 0 ? `<td class="green">+${ DP_up }</td>` : `<td class="red">${ DP_up }</td>`}
</tr>
` : ``;
let tr_EXP = EXP_up ? `
<tr>
<td>EXP</td>
${EXP_up > 0 ? `<td class="green">+${ EXP_up }</td>` : `<td class="red">${ EXP_up }</td>`}
</tr>
` : ``;
let tr_FirstWin = isMyFirstWin ? `
<tr>
<td>首胜</td>
<td class="green">+4</td>
</tr>
` : ``
let tr_rewards = tr_EXP + tr_DP + tr_FirstWin;
tr_rewards = tr_rewards === '' ? '<tr><td>无</td></tr>' : tr_rewards;
$('#rewards').append(tr_rewards);
function again() {
let {ipcRenderer} = require('electron');
ipcRenderer.send('YGOPro', data.type);
window.opener=null;
window.close();
}
let t = setTimeout(function () {
window.opener = null;
window.close();
}, 5000);
$('html').hover(function () {
clearTimeout(t);
});
......@@ -5,6 +5,7 @@ module.exports = {
externals: {
bufferutil: 'commonjs2 bufferutil',
'utf-8-validate': 'commonjs2 utf-8-validate',
'raw-socket': 'commonjs2 raw-socket',
},
plugins: [
new CopyPlugin({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment