utils: module loader register

This commit is contained in:
undefined committed 2022-08-07 05:05:45 +08:00
1 parent 20bbda794e
commit 7dafab8344
50 files changed
+83 -275

No files matched your search

+3 -38
View File
@@ -3,48 +3,13 @@
/* eslint-disable consistent-return */
/* eslint-disable no-await-in-loop */
/* eslint-disable import/no-dynamic-require */
const esbuild = require('esbuild');
const { readFileSync, writeFileSync } = require('fs');
const major = +process.version.split('.')[0].split('v')[1];
const minor = +process.version.split('.')[1];
let transformTimeUsage = 0;
let transformCount = 0;
let displayTimeout;
function transform(filename) {
const start = new Date();
const result = esbuild.buildSync({
entryPoints: [filename],
sourcemap: 'inline',
platform: 'node',
format: 'cjs',
target: `node${major}.${minor}`,
jsx: 'transform',
write: false,
});
if (result.warnings.length) console.warn(result.warnings);
transformTimeUsage += new Date().getTime() - start.getTime();
transformCount++;
if (displayTimeout) clearTimeout(displayTimeout);
displayTimeout = setTimeout(() => console.log(`Transformed ${transformCount} files. (${transformTimeUsage}ms)`), 1000);
return result.outputFiles[0].text;
}
const ESM = ['p-queue', 'p-timeout', 'latest-version'];
require.extensions['.js'] = function loader(module, filename) {
if (ESM.filter((i) => filename.includes(i)).length || major < 14) {
return module._compile(transform(filename), filename);
}
const content = readFileSync(filename, 'utf-8');
return module._compile(content, filename);
};
require.extensions['.ts'] = require.extensions['.tsx'] = function loader(module, filename) {
return module._compile(transform(filename), filename);
};
require('@hydrooj/utils/lib/register');
const { gt } = require('semver');
const { default: latest } = require('latest-version');
const path = require('path');
const ora = require('ora');
const { default: ora } = require('ora');
const { writeFileSync } = require('fs');
const { getWorkspaces, spawnAsync } = require('./utils');
const {
+5 -5
View File
@@ -33,7 +33,7 @@
"@types/autocannon": "^7.6.1",
"@types/cross-spawn": "^6.0.2",
"@types/mocha": "^9.1.1",
"@types/node": "^18.0.3",
"@types/node": "^18.6.4",
"@types/semver": "^7.3.10",
"@types/supertest": "^2.0.12",
"@typescript-eslint/eslint-plugin": "^5.29.0",
@@ -54,14 +54,14 @@
"eslint-plugin-simple-import-sort": "7.0.0",
"fs-extra": "^10.1.0",
"globby": "11.1.0",
"latest-version": "6.0.0",
"latest-version": "7.0.0",
"mocha": "^10.0.0",
"mongodb": "^3.7.3",
"mongodb-memory-server": "^8.7.2",
"ora": "5.4.1",
"mongodb-memory-server": "^8.8.0",
"ora": "^6.1.2",
"semver": "^7.3.7",
"supertest": "^6.2.4",
"typedoc": "^0.23.7",
"typedoc": "^0.23.10",
"typescript": "4.6.4"
},
"resolutions": {
+1 -1
View File
@@ -8,7 +8,7 @@
"preferUnplugged": true,
"dependencies": {
"js-yaml": "^4.1.0",
"superagent": "^7.1.5"
"superagent": "^8.0.0"
},
"devDependencies": {
"@types/js-yaml": "^4.0.5"
+1 -39
View File
@@ -1,45 +1,7 @@
#!/usr/bin/env node
const argv = require('cac')().parse();
const esbuild = require('esbuild');
const fs = require('fs-extra');
require('@hydrooj/utils/lib/register');
const major = +process.version.split('.')[0].split('v')[1];
const minor = +process.version.split('.')[1];
let transformTimeUsage = 0;
let transformCount = 0;
let displayTimeout;
function transform(filename) {
const start = new Date();
const result = esbuild.buildSync({
entryPoints: [filename],
sourcemap: 'inline',
platform: 'node',
format: 'cjs',
target: `node${major}.${minor}`,
jsx: 'transform',
write: false,
});
if (result.warnings.length) console.warn(result.warnings);
transformTimeUsage += new Date().getTime() - start.getTime();
transformCount++;
if (displayTimeout) clearTimeout(displayTimeout);
displayTimeout = setTimeout(() => console.log(`Transformed ${transformCount} files. (${transformTimeUsage}ms)`), 1000);
return result.outputFiles[0].text;
}
const ESM = ['p-queue', 'p-timeout'];
require.extensions['.js'] = function loader(module, filename) {
if (ESM.filter((i) => filename.includes(i)).length || major < 14) {
return module._compile(transform(filename), filename);
}
const content = fs.readFileSync(filename, 'utf-8');
return module._compile(content, filename);
};
require.extensions['.ts'] = require.extensions['.tsx'] = function loader(module, filename) {
return module._compile(transform(filename), filename);
};
if (argv.options.debug) process.env.DEV = 'on';
if (argv.args[0] === 'cache') require('../src/cache')();
else require('../src/daemon')();
+3 -7
View File
@@ -1,7 +1,7 @@
{
"name": "@hydrooj/hydrojudge",
"bin": "bin/hydrojudge.js",
"version": "2.22.4",
"version": "2.22.5",
"main": "package.json",
"author": "undefined <i@undefined.moe>",
"repository": "https://github.com/hydro-dev/Hydro.git",
@@ -9,14 +9,13 @@
"@hydrooj/utils": "workspace:*",
"axios": "^0.27.2",
"cac": "^6.7.12",
"esbuild": "0.14.3",
"fs-extra": "^10.1.0",
"js-yaml": "^4.1.0",
"lodash": "^4.17.21",
"mongodb": "^3.7.3",
"p-queue": "^7.2.0",
"p-queue": "^7.3.0",
"shell-quote": "^1.7.3",
"ws": "^8.8.0"
"ws": "^8.8.1"
},
"preferUnplugged": true,
"license": "AGPL-3.0-or-later",
@@ -26,8 +25,5 @@
"@types/lodash": "^4.14.182",
"@types/shell-quote": "^1.7.1",
"@types/ws": "^8.5.3"
},
"peerDependencies": {
"hydrooj": "*"
}
}
+1 -81
View File
@@ -1,87 +1,7 @@
#!/usr/bin/env node
require('@hydrooj/utils/lib/register');
/* eslint-disable consistent-return */
const map = {};
require('source-map-support').install({
handleUncaughtExceptions: false,
environment: 'node',
retrieveSourceMap(file) {
if (map[file]) {
return {
url: file,
map: map[file],
};
}
return null;
},
});
const path = require('path');
const vm = require('vm');
const fs = require('fs-extra');
const esbuild = require('esbuild');
const { default: hook } = require('require-resolve-hook');
const { bypass } = hook(/^(hydrooj|@hydrooj\/utils)/, (id) => bypass(() => require.resolve(id)));
if (!process.env.NODE_APP_INSTANCE) process.env.NODE_APP_INSTANCE = '0';
const major = +process.version.split('.')[0].split('v')[1];
const minor = +process.version.split('.')[1];
function transform(filename) {
const code = fs.readFileSync(filename, 'utf-8');
const result = esbuild.transformSync(code, {
sourcefile: filename,
sourcemap: 'both',
format: 'cjs',
loader: 'tsx',
target: `node${major}.${minor}`,
jsx: 'transform',
});
if (result.warnings.length) console.warn(result.warnings);
map[filename] = result.map;
return result.code;
}
const ESM = ['p-queue', 'p-timeout'];
const _script = new vm.Script('"Hydro"', { produceCachedData: true });
const bytecode = (_script.createCachedData && _script.createCachedData.call)
? _script.createCachedData()
: _script.cachedData;
require.extensions['.js'] = function loader(module, filename) {
if (ESM.filter((i) => filename.includes(i)).length || major < 14) {
return module._compile(transform(filename), filename);
}
const content = fs.readFileSync(filename, 'utf-8');
return module._compile(content, filename);
};
require.extensions['.ts'] = require.extensions['.tsx'] = function loader(module, filename) {
return module._compile(transform(filename), filename);
};
require.extensions['.jsc'] = function loader(module, filename) {
const buf = fs.readFileSync(filename);
bytecode.slice(12, 16).copy(buf, 12);
if (![12, 13, 14, 15, 16, 17].filter((i) => process.version.startsWith(`v${i}`)).length) {
bytecode.slice(16, 20).copy(buf, 16);
}
// eslint-disable-next-line no-return-assign
const length = buf.slice(8, 12).reduce((sum, number, power) => sum += number * (256 ** power), 0);
let dummyCode = '';
if (length > 1) dummyCode = `"${'\u200b'.repeat(length - 2)}"`;
const script = new vm.Script(dummyCode, {
filename,
lineOffset: 0,
displayErrors: true,
cachedData: buf,
});
if (script.cachedDataRejected) throw new Error(`cacheDataRejected on ${filename}`);
const compiledWrapper = script.runInThisContext({
filename,
lineOffset: 0,
columnOffset: 0,
displayErrors: true,
});
const dirname = path.dirname(filename);
const args = [module.exports, require, module, filename, dirname, process, global];
return compiledWrapper.apply(module.exports, args);
};
require('./commands');
+9 -12
View File
@@ -1,6 +1,6 @@
{
"name": "hydrooj",
"version": "3.15.5",
"version": "3.15.6",
"bin": "bin/hydrooj.js",
"main": "src/loader",
"module": "src/loader",
@@ -12,7 +12,7 @@
},
"preferUnplugged": true,
"dependencies": {
"@graphql-tools/schema": "^8.5.0",
"@graphql-tools/schema": "^8.5.1",
"@hydrooj/utils": "workspace:*",
"adm-zip": "0.5.5",
"ajv": "^8.11.0",
@@ -21,7 +21,6 @@
"detect-browser": "^5.3.0",
"emoji-regex": "^10.1.0",
"emojis-list": "2.1.0",
"esbuild": "0.14.3",
"fs-extra": "^10.1.0",
"graphql": "^16.5.0",
"graphql-scalars": "1.17.0",
@@ -31,7 +30,7 @@
"koa-body": "^5.0.0",
"koa-compress": "^5.1.0",
"koa-proxies": "^0.12.2",
"koa-router": "^10.1.1",
"koa-router": "^12.0.0",
"koa-static-cache": "^5.1.4",
"lodash": "^4.17.21",
"lru-cache": "7.12.0",
@@ -39,17 +38,16 @@
"minio": "7.0.25",
"moment-timezone": "^0.5.34",
"mongodb": "^3.7.3",
"nanoid": "^3.3.4",
"nanoid": "^4.0.0",
"nodemailer": "^6.7.7",
"notp": "^2.0.3",
"p-queue": "^7.2.0",
"p-queue": "^7.3.0",
"path-to-regexp": "^6.2.1",
"require-resolve-hook": "^1.1.0",
"schemastery": "^3.5.0",
"schemastery": "^3.5.1",
"semver": "^7.3.7",
"serialize-javascript": "^6.0.0",
"source-map-support": "^0.5.21",
"superagent": "^7.1.5",
"superagent": "^8.0.0",
"thirty-two": "^1.0.2",
"tx2": "^1.0.5"
},
@@ -57,7 +55,7 @@
"@types/adm-zip": "^0.4.34",
"@types/fs-extra": "^9.0.13",
"@types/js-yaml": "^4.0.5",
"@types/koa": "^2.13.4",
"@types/koa": "^2.13.5",
"@types/koa-compress": "^4.0.3",
"@types/koa-router": "^7.4.4",
"@types/koa-static-cache": "^5.1.1",
@@ -66,11 +64,10 @@
"@types/mime-types": "^2.1.1",
"@types/minio": "^7.0.13",
"@types/mongodb": "^3.6.20",
"@types/nodemailer": "^6.4.4",
"@types/nodemailer": "^6.4.5",
"@types/notp": "^2.0.2",
"@types/semver": "^7.3.10",
"@types/serialize-javascript": "^5.0.2",
"@types/source-map-support": "^0.5.4",
"@types/superagent": "^4.1.15",
"moment": "^2.29.4",
"pm2": "^5.2.0"
-5
View File
@@ -16,11 +16,6 @@ export * from './interface';
export { Schema, Logger };
const argv = cac().parse();
if (argv.options.debug) {
console.log('Debug mode enabled');
process.env.NODE_ENV = 'development';
process.env.DEV = 'on';
} else process.env.NODE_ENV = process.env.NODE_ENV || 'production';
const logger = new Logger('loader');
logger.debug('%o', argv);
+1 -1
View File
@@ -13,6 +13,6 @@
"hydrooj": "*"
},
"dependencies": {
"superagent": "^7.1.5"
"superagent": "^8.0.0"
}
}
+1 -1
View File
@@ -13,6 +13,6 @@
"hydrooj": "*"
},
"dependencies": {
"superagent": "^7.1.5"
"superagent": "^8.0.0"
}
}
+1 -1
View File
@@ -8,6 +8,6 @@
"license": "AGPL-3.0-or-later",
"preferUnplugged": true,
"dependencies": {
"superagent": "^7.1.5"
"superagent": "^8.0.0"
}
}
+1 -26
View File
@@ -1,29 +1,4 @@
const esbuild = require('esbuild');
const fs = require('fs');
function transform(filename) {
const result = esbuild.buildSync({
entryPoints: [filename],
sourcemap: 'inline',
platform: 'node',
format: 'cjs',
target: 'node12',
jsx: 'transform',
write: false,
});
if (result.warnings.length) console.warn(result.warnings);
return result.outputFiles[0].text;
}
require.extensions['.js'] = function loader(module, filename) {
if (filename.includes('chalk') || (!filename.includes('node_modules') && !filename.includes('postcss.config.js'))) {
return module._compile(transform(filename), filename);
}
const content = fs.readFileSync(filename, 'utf-8');
return module._compile(content, filename);
};
require.extensions['.ts'] = function loader(module, filename) {
return module._compile(transform(filename), filename);
};
require('@hydrooj/utils/lib/register');
const main = require('./main');
if (!module.parent) main();
@@ -20,7 +20,7 @@ export default function LanguageSelect({
const subselections = Object.keys(options).length;
if (options[sub]) return;
if (!subselections) setSub('');
if (subselections === 1) setSub(Object.keys(options)[0]);
setSub(Object.keys(options)[0]);
}, [main]);
return (
+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path class="cls-1" d="M0 48.5v873A48.65 48.65 0 0048.5 970h97V0h-97A48.64 48.64 0 000 48.5zM679 0h-97v388l-97-97-97 97V0H194v970h485a48.65 48.65 0 0048.5-48.5v-873A48.64 48.64 0 00679 0z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path class="cls-1" d="M0 48.5v873A48.65 48.65 0 0 0 48.5 970h97V0h-97A48.64 48.64 0 0 0 0 48.5zM679 0h-97v388l-97-97-97 97V0H194v970h485a48.65 48.65 0 0 0 48.5-48.5v-873A48.64 48.64 0 0 0 679 0z"/></svg>

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 268 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M375 625l417-417 83 84-500 500-250-250 83-84 167 167z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m375 625 417-417 83 84-500 500-250-250 83-84 167 167z"/></svg>

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 135 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M583 250L333 500l250 250 84-83-167-167 167-167-84-83z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M583 250 333 500l250 250 84-83-167-167 167-167-84-83z"/></svg>

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 135 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M417 250l250 250-250 250-84-83 167-167-167-167 84-83z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m417 250 250 250-250 250-84-83 167-167-167-167 84-83z"/></svg>

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 135 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M833 250L583 500l250 250-83 83-250-250-250 250-83-83 250-250-250-250 83-83 250 250 250-250 83 83z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M833 250 583 500l250 250-83 83-250-250-250 250-83-83 250-250-250-250 83-83 250 250 250-250 83 83z"/></svg>

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 179 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M563 719l93 93 313-312-313-313-93 94 218 219zM438 281l-94-94L31 500l313 312 94-93-219-219z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m563 719 93 93 313-312-313-313-93 94 218 219zM438 281l-94-94L31 500l313 312 94-93-219-219z"/></svg>

Before

Width:  |  Height:  |  Size: 172 B

After

Width:  |  Height:  |  Size: 172 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M300 400H50a50.15 50.15 0 00-50 50v100a50.15 50.15 0 0050 50h250a50.15 50.15 0 0050-50V450a50.15 50.15 0 00-50-50zm650-300H700a50.15 50.15 0 00-50 50v100a50.15 50.15 0 0050 50h250a50.15 50.15 0 0050-50V150a50.15 50.15 0 00-50-50zm0 150H700V150h250zM300 700H50a50.15 50.15 0 00-50 50v100a50.15 50.15 0 0050 50h250a50.15 50.15 0 0050-50V750a50.15 50.15 0 00-50-50zm0-600H50a50.15 50.15 0 00-50 50v100a50.15 50.15 0 0050 50h250a50.15 50.15 0 0050-50V150a50.15 50.15 0 00-50-50zM500 0a50.15 50.15 0 00-50 50v900a50.15 50.15 0 0050 50 50.15 50.15 0 0050-50V50a50.15 50.15 0 00-50-50zm450 700H700a50.15 50.15 0 00-50 50v100a50.15 50.15 0 0050 50h250a50.15 50.15 0 0050-50V750a50.15 50.15 0 00-50-50zm0 150H700V750h250zm0-450H700a50.15 50.15 0 00-50 50v100a50.15 50.15 0 0050 50h250a50.15 50.15 0 0050-50V450a50.15 50.15 0 00-50-50zm0 150H700V450h250z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M300 400H50a50.15 50.15 0 0 0-50 50v100a50.15 50.15 0 0 0 50 50h250a50.15 50.15 0 0 0 50-50V450a50.15 50.15 0 0 0-50-50zm650-300H700a50.15 50.15 0 0 0-50 50v100a50.15 50.15 0 0 0 50 50h250a50.15 50.15 0 0 0 50-50V150a50.15 50.15 0 0 0-50-50zm0 150H700V150h250zM300 700H50a50.15 50.15 0 0 0-50 50v100a50.15 50.15 0 0 0 50 50h250a50.15 50.15 0 0 0 50-50V750a50.15 50.15 0 0 0-50-50zm0-600H50a50.15 50.15 0 0 0-50 50v100a50.15 50.15 0 0 0 50 50h250a50.15 50.15 0 0 0 50-50V150a50.15 50.15 0 0 0-50-50zM500 0a50.15 50.15 0 0 0-50 50v900a50.15 50.15 0 0 0 50 50 50.15 50.15 0 0 0 50-50V50a50.15 50.15 0 0 0-50-50zm450 700H700a50.15 50.15 0 0 0-50 50v100a50.15 50.15 0 0 0 50 50h250a50.15 50.15 0 0 0 50-50V750a50.15 50.15 0 0 0-50-50zm0 150H700V750h250zm0-450H700a50.15 50.15 0 0 0-50 50v100a50.15 50.15 0 0 0 50 50h250a50.15 50.15 0 0 0 50-50V450a50.15 50.15 0 0 0-50-50zm0 150H700V450h250z"/></svg>

Before

Width:  |  Height:  |  Size: 926 B

After

Width:  |  Height:  |  Size: 968 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M125 437l63 250h625l62-250c31 0 63-25 63-62s-32-56-63-56-56 25-56 56v19l-131 87-157-250c13-12 25-31 25-50 0-31-25-56-56-56s-56 25-56 56c0 19 12 38 25 50L313 481l-132-87v-19c0-31-25-56-56-56s-62 25-62 56 31 62 62 62zm63 313h625v125H188V750z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m125 437 63 250h625l62-250c31 0 63-25 63-62s-32-56-63-56-56 25-56 56v19l-131 87-157-250c13-12 25-31 25-50 0-31-25-56-56-56s-56 25-56 56c0 19 12 38 25 50L313 481l-132-87v-19c0-31-25-56-56-56s-62 25-62 56 31 62 62 62zm63 313h625v125H188V750z"/></svg>

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 321 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M863 296l-75 75-155-154 75-75c9-9 17-13 30-13s20 4 29 13l96 95c8 9 12 17 12 30 0 8-4 20-12 29zM125 717l458-459 155 159-459 458H121V717z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m863 296-75 75-155-154 75-75c9-9 17-13 30-13s20 4 29 13l96 95c8 9 12 17 12 30 0 8-4 20-12 29zM125 717l458-459 155 159-459 458H121V717z"/></svg>

Before

Width:  |  Height:  |  Size: 217 B

After

Width:  |  Height:  |  Size: 216 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M475 0c262.34 0 475 212.66 475 475S737.34 950 475 950 0 737.34 0 475 212.66 0 475 0zm0 95C265.13 95 95 265.13 95 475s170.13 380 380 380 380-170.13 380-380S684.87 95 475 95zM285 475l.71 10.22C295.38 589.93 376.43 665 475 665c101.75 0 184.83-80 189.77-180.52L665 475h95l-.6 11.31C748.34 643.74 625.25 760 475 760c-153.82 0-279.18-121.86-284.8-274.32L190 475zm71.25-190A71.25 71.25 0 11285 356.25 71.25 71.25 0 01356.25 285zm237.5 0a71.25 71.25 0 11-71.25 71.25A71.25 71.25 0 01593.75 285z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M475 0c262.34 0 475 212.66 475 475S737.34 950 475 950 0 737.34 0 475 212.66 0 475 0zm0 95C265.13 95 95 265.13 95 475s170.13 380 380 380 380-170.13 380-380S684.87 95 475 95zM285 475l.71 10.22C295.38 589.93 376.43 665 475 665c101.75 0 184.83-80 189.77-180.52L665 475h95l-.6 11.31C748.34 643.74 625.25 760 475 760c-153.82 0-279.18-121.86-284.8-274.32L190 475zm71.25-190A71.25 71.25 0 1 1 285 356.25 71.25 71.25 0 0 1 356.25 285zm237.5 0a71.25 71.25 0 1 1-71.25 71.25A71.25 71.25 0 0 1 593.75 285z"/></svg>

Before

Width:  |  Height:  |  Size: 568 B

After

Width:  |  Height:  |  Size: 575 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M850 196L692 75c-43-33-106-25-140 18L132 638c-34 44-25 107 18 140l158 122c43 33 107 25 140-18l420-545c34-44 26-107-18-141zM427 811l-26 34c-8 10-20 15-32 15-7 0-16-1-25-8L187 731c-9-7-14-16-15-27s1-21 7-29l27-34c8-10 20-16 32-16 6 0 16 2 25 9l157 121c9 6 14 16 15 26 2 11-1 21-8 30z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M850 196 692 75c-43-33-106-25-140 18L132 638c-34 44-25 107 18 140l158 122c43 33 107 25 140-18l420-545c34-44 26-107-18-141zM427 811l-26 34c-8 10-20 15-32 15-7 0-16-1-25-8L187 731c-9-7-14-16-15-27s1-21 7-29l27-34c8-10 20-16 32-16 6 0 16 2 25 9l157 121c9 6 14 16 15 26 2 11-1 21-8 30z"/></svg>

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 363 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M250 583l250-250 250 250-83 84-167-167-167 167-83-84z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m250 583 250-250 250 250-83 84-167-167-167 167-83-84z"/></svg>

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 135 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M250 417l250 250 250-250-83-84-167 167-167-167-83 84z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m250 417 250 250 250-250-83-84-167 167-167-167-83 84z"/></svg>

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 135 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M504 773l-4 4-5-4C298 593 167 475 167 354c0-83 62-146 146-146 64 0 126 42 148 99h78c22-57 84-99 149-99 83 0 145 63 145 146 0 121-130 239-329 419zm184-648c-73 0-143 34-188 87-45-53-115-87-187-87-129 0-230 100-230 229 0 157 142 286 357 481l60 55 60-55c215-195 357-324 357-481 0-129-101-229-229-229z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m504 773-4 4-5-4C298 593 167 475 167 354c0-83 62-146 146-146 64 0 126 42 148 99h78c22-57 84-99 149-99 83 0 145 63 145 146 0 121-130 239-329 419zm184-648c-73 0-143 34-188 87-45-53-115-87-187-87-129 0-230 100-230 229 0 157 142 286 357 481l60 55 60-55c215-195 357-324 357-481 0-129-101-229-229-229z"/></svg>

Before

Width:  |  Height:  |  Size: 378 B

After

Width:  |  Height:  |  Size: 377 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M500 890l-60-55C225 640 83 511 83 354c0-129 101-229 230-229 72 0 142 34 187 87 45-53 115-87 188-87 128 0 229 100 229 229 0 157-142 286-357 481l-60 55z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m500 890-60-55C225 640 83 511 83 354c0-129 101-229 230-229 72 0 142 34 187 87 45-53 115-87 188-87 128 0 229 100 229 229 0 157-142 286-357 481l-60 55z"/></svg>

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 231 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M993 487L743 174c-6-7-15-12-24-12H281c-9 0-18 5-24 12L7 487c-5 5-7 12-7 19v282c0 34 28 62 63 62h875c34 0 62-28 62-62V506c0-7-2-14-7-19zm-55 50H719L594 662H406L281 537H63v-20l233-292h408l234 292v20zM719 350H281c-17 0-31-14-31-31s14-32 31-32h438c17 0 31 14 31 32s-14 31-31 31zm62 125H219c-17 0-31-14-31-31s14-32 31-32h562c18 0 32 14 32 32s-14 31-32 31z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M993 487 743 174c-6-7-15-12-24-12H281c-9 0-18 5-24 12L7 487c-5 5-7 12-7 19v282c0 34 28 62 63 62h875c34 0 62-28 62-62V506c0-7-2-14-7-19zm-55 50H719L594 662H406L281 537H63v-20l233-292h408l234 292v20zM719 350H281c-17 0-31-14-31-31s14-32 31-32h438c17 0 31 14 31 32s-14 31-31 31zm62 125H219c-17 0-31-14-31-31s14-32 31-32h562c18 0 32 14 32 32s-14 31-32 31z"/></svg>

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 432 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M356 562L213 750h581L606 500 463 687c-7 0-107-125-107-125zm519 232c0 18-6 43-25 56s-37 25-56 25H206c-18 0-43-6-56-25s-25-38-25-56V206c0-19 6-37 25-56s38-25 56-25h582c18 0 43 6 56 25s31 37 31 56v588z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M356 562 213 750h581L606 500 463 687c-7 0-107-125-107-125zm519 232c0 18-6 43-25 56s-37 25-56 25H206c-18 0-43-6-56-25s-25-38-25-56V206c0-19 6-37 25-56s38-25 56-25h582c18 0 43 6 56 25s31 37 31 56v588z"/></svg>

Before

Width:  |  Height:  |  Size: 280 B

After

Width:  |  Height:  |  Size: 280 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M934 786L625 271V62h31c17 0 32-14 32-31S673 0 656 0H344c-17 0-31 14-31 31s14 31 31 31h31v209L66 786c-71 118-16 214 122 214h625c137 0 192-96 121-214zM235 625l203-337V62h125v226l202 337H235z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M934 786 625 271V62h31c17 0 32-14 32-31S673 0 656 0H344c-17 0-31 14-31 31s14 31 31 31h31v209L66 786c-71 118-16 214 122 214h625c137 0 192-96 121-214zM235 625l203-337V62h125v226l202 337H235z"/></svg>

Before

Width:  |  Height:  |  Size: 270 B

After

Width:  |  Height:  |  Size: 270 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M188 62v750h750V62H188zm687 688H250V125h625v625zM125 875V219l-62-63v782h781l-63-63H125zm219-625l156 156-187 188 93 93 188-187 156 156V250z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M188 62v750h750V62H188zm687 688H250V125h625v625zM125 875V219l-62-63v782h781l-63-63H125zm219-625 156 156-187 188 93 93 188-187 156 156V250z"/></svg>

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 220 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M252 436L109 188C201 73 342 0 500 0c183 0 343 98 430 245H522c-7-1-14-1-22-1-119 0-219 82-248 192zm427-119h287c22 57 34 119 34 183 0 274-221 497-494 500l204-354c29-42 46-92 46-146 0-72-30-136-77-183zM318 500c0-100 82-182 182-182s182 82 182 182-82 182-182 182-182-82-182-182zm251 246L425 994C185 958 0 751 0 500c0-89 23-173 64-245l204 353c41 87 130 148 232 148 24 0 47-3 69-9z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M252 436 109 188C201 73 342 0 500 0c183 0 343 98 430 245H522c-7-1-14-1-22-1-119 0-219 82-248 192zm427-119h287c22 57 34 119 34 183 0 274-221 497-494 500l204-354c29-42 46-92 46-146 0-72-30-136-77-183zM318 500c0-100 82-182 182-182s182 82 182 182-82 182-182 182-182-82-182-182zm251 246L425 994C185 958 0 751 0 500c0-89 23-173 64-245l204 353c41 87 130 148 232 148 24 0 47-3 69-9z"/></svg>

Before

Width:  |  Height:  |  Size: 456 B

After

Width:  |  Height:  |  Size: 456 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M500 1000c276 0 500-224 500-500S776 0 500 0 0 224 0 500s224 500 500 500zm0-906c224 0 406 182 406 406S724 906 500 906 94 724 94 500 276 94 500 94zm228 493l22 75-427 125-21-75zM250 312c0-34 28-62 63-62s62 28 62 62c0 35-28 63-62 63s-63-28-63-63zm375 0c0-34 28-62 63-62s62 28 62 62c0 35-28 63-62 63s-63-28-63-63z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M500 1000c276 0 500-224 500-500S776 0 500 0 0 224 0 500s224 500 500 500zm0-906c224 0 406 182 406 406S724 906 500 906 94 724 94 500 276 94 500 94zm228 493 22 75-427 125-21-75zM250 312c0-34 28-62 63-62s62 28 62 62c0 35-28 63-62 63s-63-28-63-63zm375 0c0-34 28-62 63-62s62 28 62 62c0 35-28 63-62 63s-63-28-63-63z"/></svg>

Before

Width:  |  Height:  |  Size: 390 B

After

Width:  |  Height:  |  Size: 390 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M625 750l63-188H563V250h250v312l-63 188H625zm-375 0l63-188H188V250h250v312l-63 188H250z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m625 750 63-188H563V250h250v312l-63 188H625zm-375 0 63-188H188V250h250v312l-63 188H250z"/></svg>

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 169 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M408 596c50 0 96-17 134-54s54-80 54-134c0-50-17-96-54-133s-80-54-134-54-95 16-133 54-54 79-54 133c0 50 17 96 54 134s79 54 133 54zm250-13l209 213-67 67-213-205v-33l-4-13c-50 42-104 63-175 63-75 0-137-25-191-79s-80-117-80-192 25-142 80-192 116-79 191-79 138 25 192 79 79 117 79 192c0 67-21 121-62 171l12 4h29z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M408 596c50 0 96-17 134-54s54-80 54-134c0-50-17-96-54-133s-80-54-134-54-95 16-133 54-54 79-54 133c0 50 17 96 54 134s79 54 133 54zm250-13 209 213-67 67-213-205v-33l-4-13c-50 42-104 63-175 63-75 0-137-25-191-79s-80-117-80-192 25-142 80-192 116-79 191-79 138 25 192 79 79 117 79 192c0 67-21 121-62 171l12 4h29z"/></svg>

Before

Width:  |  Height:  |  Size: 389 B

After

Width:  |  Height:  |  Size: 389 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M500 83l333 167v212c0 205-141 409-333 455-192-46-333-250-333-455V250L500 83zm0 417v329c138-42 229-162 250-329H500zm0 0V167L250 287v213h250z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m500 83 333 167v212c0 205-141 409-333 455-192-46-333-250-333-455V250L500 83zm0 417v329c138-42 229-162 250-329H500zm0 0V167L250 287v213h250z"/></svg>

Before

Width:  |  Height:  |  Size: 221 B

After

Width:  |  Height:  |  Size: 221 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M125 875l750-375-750-375v294l531 81-531 81v294z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m125 875 750-375-750-375v294l531 81-531 81v294z"/></svg>

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 129 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M1000 312L500 62 0 312l500 250 500-250zM500 145l334 167-334 167-334-167 334-167zm400 305l100 50-500 250L0 500l100-50 400 200zm0 187l100 50-500 251L0 687l100-50 400 200z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M1000 312 500 62 0 312l500 250 500-250zM500 145l334 167-334 167-334-167 334-167zm400 305 100 50-500 250L0 500l100-50 400 200zm0 187 100 50-500 251L0 687l100-50 400 200z"/></svg>

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 250 B

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M969 394l-325-44L500 56 356 350 31 394l232 231-57 319 288-150 287 150-56-319 244-231zM500 719L294 831l37-231-162-163 231-31 100-206 100 206 231 31-162 163 37 231-206-112z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m969 394-325-44L500 56 356 350 31 394l232 231-57 319 288-150 287 150-56-319 244-231zM500 719 294 831l37-231-162-163 231-31 100-206 100 206 231 31-162 163 37 231-206-112z"/></svg>

Before

Width:  |  Height:  |  Size: 252 B

After

Width:  |  Height:  |  Size: 251 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M969 394l-325-44L500 56 356 350 31 394l232 231-57 319 288-150 287 150-56-319 244-231z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="m969 394-325-44L500 56 356 350 31 394l232 231-57 319 288-150 287 150-56-319 244-231z"/></svg>

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 166 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M542 583V417h-84v166h84zm0 167v-83h-84v83h84zM42 917L500 83l458 834H42z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M542 583V417h-84v166h84zm0 167v-83h-84v83h84zM42 917 500 83l458 834H42z"/></svg>

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 153 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M900 750L525 429c8-17 17-33 21-54 4-17 8-38 8-58 0-34-4-63-17-92s-29-54-50-75c-20-21-45-38-75-50s-58-17-91-17c-13 0-25 0-34 4s-20 5-33 9l138 137c8 9 12 21 12 38s-4 25-12 37l-84 84c-8 8-20 12-37 12s-29-4-38-12L96 254c-4 13-4 21-8 33s-5 25-5 34c0 33 5 62 17 91s29 55 50 75 46 38 75 50c29 13 58 17 92 17 21 0 41-4 58-8s38-13 50-21l321 375c8 13 21 17 33 17s25-4 38-17l83-83c8-9 17-21 12-38 5-8-4-21-12-29z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"><path d="M900 750 525 429c8-17 17-33 21-54 4-17 8-38 8-58 0-34-4-63-17-92s-29-54-50-75c-20-21-45-38-75-50s-58-17-91-17c-13 0-25 0-34 4s-20 5-33 9l138 137c8 9 12 21 12 38s-4 25-12 37l-84 84c-8 8-20 12-37 12s-29-4-38-12L96 254c-4 13-4 21-8 33s-5 25-5 34c0 33 5 62 17 91s29 55 50 75 46 38 75 50c29 13 58 17 92 17 21 0 41-4 58-8s38-13 50-21l321 375c8 13 21 17 33 17s25-4 38-17l83-83c8-9 17-21 12-38 5-8-4-21-12-29z"/></svg>

Before

Width:  |  Height:  |  Size: 483 B

After

Width:  |  Height:  |  Size: 483 B

+9 -9
View File
@@ -1,6 +1,6 @@
{
"name": "@hydrooj/ui-default",
"version": "4.39.0",
"version": "4.39.2",
"author": "undefined <i@undefined.moe>",
"license": "AGPL-3.0",
"main": "hydro.js",
@@ -30,8 +30,9 @@
"@types/qrcode": "^1.4.2",
"@types/react-dom": "^18.0.6",
"@types/redux-logger": "^3.0.9",
"@vscode/codicons": "^0.0.32",
"autoprefixer": "^10.4.8",
"browser-update": "^3.3.38",
"browser-update": "^3.3.40",
"chalk": "^5.0.1",
"chunk-progress-webpack-plugin": "^2.0.1",
"classnames": "^2.3.1",
@@ -40,7 +41,7 @@
"copy-webpack-plugin": "^11.0.0",
"css-loader": "^6.7.1",
"diff": "^5.1.0",
"diff-dom": "^4.2.3",
"diff-dom": "^4.2.5",
"echarts": "^5.3.3",
"emojis-keywords": "2.0.0",
"emojis-list": "2.1.0",
@@ -53,20 +54,20 @@
"gulp-iconfont": "^11.0.1",
"gulp-if": "^3.0.0",
"gulp-plumber": "^1.2.1",
"gulp-svgmin": "^3.0.0",
"gulp-svgmin": "^4.1.0",
"jquery": "^3.6.0",
"jquery-scroll-lock": "^3.1.3",
"jquery.easing": "^1.4.1",
"jquery.transit": "^0.9.12",
"matchmedia-polyfill": "^0.3.2",
"mini-css-extract-plugin": "^1.6.2",
"mini-css-extract-plugin": "^2.6.1",
"moment": "^2.29.4",
"monaco-editor": "^0.33.0",
"monaco-editor-nls": "^2.0.0",
"monaco-editor-webpack-plugin": "^7.0.1",
"monaco-themes": "^0.4.2",
"monaco-yaml": "^4.0.0",
"nanoid": "^3.3.4",
"nanoid": "^4.0.0",
"normalize.css": "^8.0.1",
"nprogress": "^0.2.0",
"pickadate": "^3.6.4",
@@ -101,7 +102,7 @@
"through2": "^4.0.2",
"timeago-react": "^3.0.5",
"timeago.js": "^4.0.2",
"vditor": "^3.8.15",
"vditor": "^3.8.17",
"vinyl-buffer": "^1.0.1",
"web-streams-polyfill": "^3.2.1",
"webpack": "^5.74.0",
@@ -110,7 +111,6 @@
"webpackbar": "^5.0.2"
},
"dependencies": {
"@vscode/codicons": "^0.0.31",
"ansi_up": "^5.1.0",
"esbuild": "0.14.3",
"fs-extra": "^10.1.0",
@@ -128,7 +128,7 @@
"markdown-it-table-of-contents": "^0.6.0",
"mongodb": "^3.7.3",
"nunjucks": "^3.2.3",
"p-queue": "^7.2.0",
"p-queue": "^7.3.0",
"streamsaver": "^2.0.6",
"xss": "^1.0.13"
}
@@ -249,11 +249,7 @@ const page = new NamedPage(['problem_main'], () => {
updateSelection();
});
$('#searchForm').on('submit', updateSelection);
let update;
$('#searchForm').find('input').on('input', () => {
if (update) clearTimeout(update);
update = setTimeout(updateSelection, 500);
});
$('#searchForm').find('input').on('input', _.debounce(updateSelection, 500));
$(document).on('click', 'a.pager__item', (ev) => {
ev.preventDefault();
pjax.request(ev.currentTarget.getAttribute('href')).then(() => window.scrollTo(0, 0));
@@ -14,11 +14,7 @@ const page = new NamedPage('record_main', async () => {
const sock = new WebSocket(UiContext.socketUrl);
const dd = new DiffDOM();
let firstLoad = true;
sock.onopen = () => {
if (firstLoad) sock.send(JSON.stringify({ rids: UiContext.rids }));
firstLoad = false;
};
sock.onopen = () => sock.send(JSON.stringify({ rids: UiContext.rids }));
sock.onmessage = (message) => {
const msg = JSON.parse(message.data);
const $newTr = $(msg.html);
@@ -66,8 +66,10 @@
<a href="{{ url('homework_detail' if tdoc.rule == 'homework' else 'contest_detail', tid=tdoc.docId) }}">{{ tdoc.title }}</a>
</dd>
{% endif %}
<dt>{{ _('Language') }}</dt>
<dd>{{ model.setting.langs[rdoc.lang].display }}</dd>
{% if pdoc.config.type != 'objective' %}
<dt>{{ _('Language') }}</dt>
<dd>{{ model.setting.langs[rdoc.lang].display }}</dd>
{% endif %}
<dt>{{ _('Submit At') }}</dt>
<dd>{{ datetimeSpan(rdoc._id)|safe }}</dd>
{% if rdoc.judgeAt %}
+7 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@hydrooj/utils",
"version": "1.3.4",
"version": "1.3.5",
"description": "hydrooj utils",
"main": "package.json",
"repository": "https://github.com/hydro-dev/Hydro.git",
@@ -8,13 +8,17 @@
"license": "AGPL-3.0-or-later",
"preferUnplugged": true,
"dependencies": {
"cac": "^6.7.12",
"esbuild": "0.14.3",
"fs-extra": "^10.1.0",
"js-yaml": "^4.1.0",
"moment-timezone": "^0.5.34",
"mongodb": "^3.7.3",
"systeminformation": "^5.11.24"
"source-map-support": "^0.5.21",
"systeminformation": "^5.12.3"
},
"devDependencies": {
"@types/fs-extra": "^9.0.13"
"@types/fs-extra": "^9.0.13",
"@types/source-map-support": "^0.5.4"
}
}
+2 -2
View File
@@ -16,11 +16,11 @@
"puppeteer-extra": "3.3.0",
"puppeteer-extra-plugin-portal": "3.1.0",
"puppeteer-extra-plugin-stealth": "2.10.1",
"superagent": "^7.1.5",
"superagent": "^8.0.0",
"superagent-proxy": "^3.0.0"
},
"devDependencies": {
"@types/jsdom": "^16.2.14",
"@types/jsdom": "^16.2.15",
"@types/lodash": "^4.14.182",
"@types/superagent": "^4.1.15",
"@types/superagent-proxy": "^3.0.0"