utils: module loader register
No files matched your search
@@ -3,48 +3,13 @@
|
|||||||
/* eslint-disable consistent-return */
|
/* eslint-disable consistent-return */
|
||||||
/* eslint-disable no-await-in-loop */
|
/* eslint-disable no-await-in-loop */
|
||||||
/* eslint-disable import/no-dynamic-require */
|
/* eslint-disable import/no-dynamic-require */
|
||||||
const esbuild = require('esbuild');
|
require('@hydrooj/utils/lib/register');
|
||||||
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);
|
|
||||||
};
|
|
||||||
|
|
||||||
const { gt } = require('semver');
|
const { gt } = require('semver');
|
||||||
const { default: latest } = require('latest-version');
|
const { default: latest } = require('latest-version');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const ora = require('ora');
|
const { default: ora } = require('ora');
|
||||||
|
const { writeFileSync } = require('fs');
|
||||||
const { getWorkspaces, spawnAsync } = require('./utils');
|
const { getWorkspaces, spawnAsync } = require('./utils');
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
"@types/autocannon": "^7.6.1",
|
"@types/autocannon": "^7.6.1",
|
||||||
"@types/cross-spawn": "^6.0.2",
|
"@types/cross-spawn": "^6.0.2",
|
||||||
"@types/mocha": "^9.1.1",
|
"@types/mocha": "^9.1.1",
|
||||||
"@types/node": "^18.0.3",
|
"@types/node": "^18.6.4",
|
||||||
"@types/semver": "^7.3.10",
|
"@types/semver": "^7.3.10",
|
||||||
"@types/supertest": "^2.0.12",
|
"@types/supertest": "^2.0.12",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.29.0",
|
"@typescript-eslint/eslint-plugin": "^5.29.0",
|
||||||
@@ -54,14 +54,14 @@
|
|||||||
"eslint-plugin-simple-import-sort": "7.0.0",
|
"eslint-plugin-simple-import-sort": "7.0.0",
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"globby": "11.1.0",
|
"globby": "11.1.0",
|
||||||
"latest-version": "6.0.0",
|
"latest-version": "7.0.0",
|
||||||
"mocha": "^10.0.0",
|
"mocha": "^10.0.0",
|
||||||
"mongodb": "^3.7.3",
|
"mongodb": "^3.7.3",
|
||||||
"mongodb-memory-server": "^8.7.2",
|
"mongodb-memory-server": "^8.8.0",
|
||||||
"ora": "5.4.1",
|
"ora": "^6.1.2",
|
||||||
"semver": "^7.3.7",
|
"semver": "^7.3.7",
|
||||||
"supertest": "^6.2.4",
|
"supertest": "^6.2.4",
|
||||||
"typedoc": "^0.23.7",
|
"typedoc": "^0.23.10",
|
||||||
"typescript": "4.6.4"
|
"typescript": "4.6.4"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"superagent": "^7.1.5"
|
"superagent": "^8.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/js-yaml": "^4.0.5"
|
"@types/js-yaml": "^4.0.5"
|
||||||
|
|||||||
@@ -1,45 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const argv = require('cac')().parse();
|
const argv = require('cac')().parse();
|
||||||
const esbuild = require('esbuild');
|
require('@hydrooj/utils/lib/register');
|
||||||
const fs = require('fs-extra');
|
|
||||||
|
|
||||||
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')();
|
if (argv.args[0] === 'cache') require('../src/cache')();
|
||||||
else require('../src/daemon')();
|
else require('../src/daemon')();
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/hydrojudge",
|
"name": "@hydrooj/hydrojudge",
|
||||||
"bin": "bin/hydrojudge.js",
|
"bin": "bin/hydrojudge.js",
|
||||||
"version": "2.22.4",
|
"version": "2.22.5",
|
||||||
"main": "package.json",
|
"main": "package.json",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"repository": "https://github.com/hydro-dev/Hydro.git",
|
"repository": "https://github.com/hydro-dev/Hydro.git",
|
||||||
@@ -9,14 +9,13 @@
|
|||||||
"@hydrooj/utils": "workspace:*",
|
"@hydrooj/utils": "workspace:*",
|
||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
"cac": "^6.7.12",
|
"cac": "^6.7.12",
|
||||||
"esbuild": "0.14.3",
|
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"mongodb": "^3.7.3",
|
"mongodb": "^3.7.3",
|
||||||
"p-queue": "^7.2.0",
|
"p-queue": "^7.3.0",
|
||||||
"shell-quote": "^1.7.3",
|
"shell-quote": "^1.7.3",
|
||||||
"ws": "^8.8.0"
|
"ws": "^8.8.1"
|
||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
@@ -26,8 +25,5 @@
|
|||||||
"@types/lodash": "^4.14.182",
|
"@types/lodash": "^4.14.182",
|
||||||
"@types/shell-quote": "^1.7.1",
|
"@types/shell-quote": "^1.7.1",
|
||||||
"@types/ws": "^8.5.3"
|
"@types/ws": "^8.5.3"
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"hydrooj": "*"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,87 +1,7 @@
|
|||||||
#!/usr/bin/env node
|
#!/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 { default: hook } = require('require-resolve-hook');
|
||||||
const { bypass } = hook(/^(hydrooj|@hydrooj\/utils)/, (id) => bypass(() => require.resolve(id)));
|
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');
|
require('./commands');
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hydrooj",
|
"name": "hydrooj",
|
||||||
"version": "3.15.5",
|
"version": "3.15.6",
|
||||||
"bin": "bin/hydrooj.js",
|
"bin": "bin/hydrooj.js",
|
||||||
"main": "src/loader",
|
"main": "src/loader",
|
||||||
"module": "src/loader",
|
"module": "src/loader",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@graphql-tools/schema": "^8.5.0",
|
"@graphql-tools/schema": "^8.5.1",
|
||||||
"@hydrooj/utils": "workspace:*",
|
"@hydrooj/utils": "workspace:*",
|
||||||
"adm-zip": "0.5.5",
|
"adm-zip": "0.5.5",
|
||||||
"ajv": "^8.11.0",
|
"ajv": "^8.11.0",
|
||||||
@@ -21,7 +21,6 @@
|
|||||||
"detect-browser": "^5.3.0",
|
"detect-browser": "^5.3.0",
|
||||||
"emoji-regex": "^10.1.0",
|
"emoji-regex": "^10.1.0",
|
||||||
"emojis-list": "2.1.0",
|
"emojis-list": "2.1.0",
|
||||||
"esbuild": "0.14.3",
|
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"graphql": "^16.5.0",
|
"graphql": "^16.5.0",
|
||||||
"graphql-scalars": "1.17.0",
|
"graphql-scalars": "1.17.0",
|
||||||
@@ -31,7 +30,7 @@
|
|||||||
"koa-body": "^5.0.0",
|
"koa-body": "^5.0.0",
|
||||||
"koa-compress": "^5.1.0",
|
"koa-compress": "^5.1.0",
|
||||||
"koa-proxies": "^0.12.2",
|
"koa-proxies": "^0.12.2",
|
||||||
"koa-router": "^10.1.1",
|
"koa-router": "^12.0.0",
|
||||||
"koa-static-cache": "^5.1.4",
|
"koa-static-cache": "^5.1.4",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"lru-cache": "7.12.0",
|
"lru-cache": "7.12.0",
|
||||||
@@ -39,17 +38,16 @@
|
|||||||
"minio": "7.0.25",
|
"minio": "7.0.25",
|
||||||
"moment-timezone": "^0.5.34",
|
"moment-timezone": "^0.5.34",
|
||||||
"mongodb": "^3.7.3",
|
"mongodb": "^3.7.3",
|
||||||
"nanoid": "^3.3.4",
|
"nanoid": "^4.0.0",
|
||||||
"nodemailer": "^6.7.7",
|
"nodemailer": "^6.7.7",
|
||||||
"notp": "^2.0.3",
|
"notp": "^2.0.3",
|
||||||
"p-queue": "^7.2.0",
|
"p-queue": "^7.3.0",
|
||||||
"path-to-regexp": "^6.2.1",
|
"path-to-regexp": "^6.2.1",
|
||||||
"require-resolve-hook": "^1.1.0",
|
"require-resolve-hook": "^1.1.0",
|
||||||
"schemastery": "^3.5.0",
|
"schemastery": "^3.5.1",
|
||||||
"semver": "^7.3.7",
|
"semver": "^7.3.7",
|
||||||
"serialize-javascript": "^6.0.0",
|
"serialize-javascript": "^6.0.0",
|
||||||
"source-map-support": "^0.5.21",
|
"superagent": "^8.0.0",
|
||||||
"superagent": "^7.1.5",
|
|
||||||
"thirty-two": "^1.0.2",
|
"thirty-two": "^1.0.2",
|
||||||
"tx2": "^1.0.5"
|
"tx2": "^1.0.5"
|
||||||
},
|
},
|
||||||
@@ -57,7 +55,7 @@
|
|||||||
"@types/adm-zip": "^0.4.34",
|
"@types/adm-zip": "^0.4.34",
|
||||||
"@types/fs-extra": "^9.0.13",
|
"@types/fs-extra": "^9.0.13",
|
||||||
"@types/js-yaml": "^4.0.5",
|
"@types/js-yaml": "^4.0.5",
|
||||||
"@types/koa": "^2.13.4",
|
"@types/koa": "^2.13.5",
|
||||||
"@types/koa-compress": "^4.0.3",
|
"@types/koa-compress": "^4.0.3",
|
||||||
"@types/koa-router": "^7.4.4",
|
"@types/koa-router": "^7.4.4",
|
||||||
"@types/koa-static-cache": "^5.1.1",
|
"@types/koa-static-cache": "^5.1.1",
|
||||||
@@ -66,11 +64,10 @@
|
|||||||
"@types/mime-types": "^2.1.1",
|
"@types/mime-types": "^2.1.1",
|
||||||
"@types/minio": "^7.0.13",
|
"@types/minio": "^7.0.13",
|
||||||
"@types/mongodb": "^3.6.20",
|
"@types/mongodb": "^3.6.20",
|
||||||
"@types/nodemailer": "^6.4.4",
|
"@types/nodemailer": "^6.4.5",
|
||||||
"@types/notp": "^2.0.2",
|
"@types/notp": "^2.0.2",
|
||||||
"@types/semver": "^7.3.10",
|
"@types/semver": "^7.3.10",
|
||||||
"@types/serialize-javascript": "^5.0.2",
|
"@types/serialize-javascript": "^5.0.2",
|
||||||
"@types/source-map-support": "^0.5.4",
|
|
||||||
"@types/superagent": "^4.1.15",
|
"@types/superagent": "^4.1.15",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"pm2": "^5.2.0"
|
"pm2": "^5.2.0"
|
||||||
|
|||||||
@@ -16,11 +16,6 @@ export * from './interface';
|
|||||||
export { Schema, Logger };
|
export { Schema, Logger };
|
||||||
|
|
||||||
const argv = cac().parse();
|
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');
|
const logger = new Logger('loader');
|
||||||
logger.debug('%o', argv);
|
logger.debug('%o', argv);
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,6 @@
|
|||||||
"hydrooj": "*"
|
"hydrooj": "*"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"superagent": "^7.1.5"
|
"superagent": "^8.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,6 @@
|
|||||||
"hydrooj": "*"
|
"hydrooj": "*"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"superagent": "^7.1.5"
|
"superagent": "^8.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,6 @@
|
|||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"superagent": "^7.1.5"
|
"superagent": "^8.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,29 +1,4 @@
|
|||||||
const esbuild = require('esbuild');
|
require('@hydrooj/utils/lib/register');
|
||||||
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);
|
|
||||||
};
|
|
||||||
const main = require('./main');
|
const main = require('./main');
|
||||||
|
|
||||||
if (!module.parent) main();
|
if (!module.parent) main();
|
||||||
@@ -20,7 +20,7 @@ export default function LanguageSelect({
|
|||||||
const subselections = Object.keys(options).length;
|
const subselections = Object.keys(options).length;
|
||||||
if (options[sub]) return;
|
if (options[sub]) return;
|
||||||
if (!subselections) setSub('');
|
if (!subselections) setSub('');
|
||||||
if (subselections === 1) setSub(Object.keys(options)[0]);
|
setSub(Object.keys(options)[0]);
|
||||||
}, [main]);
|
}, [main]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 @@
|
|||||||
<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 |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/ui-default",
|
"name": "@hydrooj/ui-default",
|
||||||
"version": "4.39.0",
|
"version": "4.39.2",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "hydro.js",
|
"main": "hydro.js",
|
||||||
@@ -30,8 +30,9 @@
|
|||||||
"@types/qrcode": "^1.4.2",
|
"@types/qrcode": "^1.4.2",
|
||||||
"@types/react-dom": "^18.0.6",
|
"@types/react-dom": "^18.0.6",
|
||||||
"@types/redux-logger": "^3.0.9",
|
"@types/redux-logger": "^3.0.9",
|
||||||
|
"@vscode/codicons": "^0.0.32",
|
||||||
"autoprefixer": "^10.4.8",
|
"autoprefixer": "^10.4.8",
|
||||||
"browser-update": "^3.3.38",
|
"browser-update": "^3.3.40",
|
||||||
"chalk": "^5.0.1",
|
"chalk": "^5.0.1",
|
||||||
"chunk-progress-webpack-plugin": "^2.0.1",
|
"chunk-progress-webpack-plugin": "^2.0.1",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
@@ -40,7 +41,7 @@
|
|||||||
"copy-webpack-plugin": "^11.0.0",
|
"copy-webpack-plugin": "^11.0.0",
|
||||||
"css-loader": "^6.7.1",
|
"css-loader": "^6.7.1",
|
||||||
"diff": "^5.1.0",
|
"diff": "^5.1.0",
|
||||||
"diff-dom": "^4.2.3",
|
"diff-dom": "^4.2.5",
|
||||||
"echarts": "^5.3.3",
|
"echarts": "^5.3.3",
|
||||||
"emojis-keywords": "2.0.0",
|
"emojis-keywords": "2.0.0",
|
||||||
"emojis-list": "2.1.0",
|
"emojis-list": "2.1.0",
|
||||||
@@ -53,20 +54,20 @@
|
|||||||
"gulp-iconfont": "^11.0.1",
|
"gulp-iconfont": "^11.0.1",
|
||||||
"gulp-if": "^3.0.0",
|
"gulp-if": "^3.0.0",
|
||||||
"gulp-plumber": "^1.2.1",
|
"gulp-plumber": "^1.2.1",
|
||||||
"gulp-svgmin": "^3.0.0",
|
"gulp-svgmin": "^4.1.0",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"jquery-scroll-lock": "^3.1.3",
|
"jquery-scroll-lock": "^3.1.3",
|
||||||
"jquery.easing": "^1.4.1",
|
"jquery.easing": "^1.4.1",
|
||||||
"jquery.transit": "^0.9.12",
|
"jquery.transit": "^0.9.12",
|
||||||
"matchmedia-polyfill": "^0.3.2",
|
"matchmedia-polyfill": "^0.3.2",
|
||||||
"mini-css-extract-plugin": "^1.6.2",
|
"mini-css-extract-plugin": "^2.6.1",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"monaco-editor": "^0.33.0",
|
"monaco-editor": "^0.33.0",
|
||||||
"monaco-editor-nls": "^2.0.0",
|
"monaco-editor-nls": "^2.0.0",
|
||||||
"monaco-editor-webpack-plugin": "^7.0.1",
|
"monaco-editor-webpack-plugin": "^7.0.1",
|
||||||
"monaco-themes": "^0.4.2",
|
"monaco-themes": "^0.4.2",
|
||||||
"monaco-yaml": "^4.0.0",
|
"monaco-yaml": "^4.0.0",
|
||||||
"nanoid": "^3.3.4",
|
"nanoid": "^4.0.0",
|
||||||
"normalize.css": "^8.0.1",
|
"normalize.css": "^8.0.1",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pickadate": "^3.6.4",
|
"pickadate": "^3.6.4",
|
||||||
@@ -101,7 +102,7 @@
|
|||||||
"through2": "^4.0.2",
|
"through2": "^4.0.2",
|
||||||
"timeago-react": "^3.0.5",
|
"timeago-react": "^3.0.5",
|
||||||
"timeago.js": "^4.0.2",
|
"timeago.js": "^4.0.2",
|
||||||
"vditor": "^3.8.15",
|
"vditor": "^3.8.17",
|
||||||
"vinyl-buffer": "^1.0.1",
|
"vinyl-buffer": "^1.0.1",
|
||||||
"web-streams-polyfill": "^3.2.1",
|
"web-streams-polyfill": "^3.2.1",
|
||||||
"webpack": "^5.74.0",
|
"webpack": "^5.74.0",
|
||||||
@@ -110,7 +111,6 @@
|
|||||||
"webpackbar": "^5.0.2"
|
"webpackbar": "^5.0.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vscode/codicons": "^0.0.31",
|
|
||||||
"ansi_up": "^5.1.0",
|
"ansi_up": "^5.1.0",
|
||||||
"esbuild": "0.14.3",
|
"esbuild": "0.14.3",
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
"markdown-it-table-of-contents": "^0.6.0",
|
"markdown-it-table-of-contents": "^0.6.0",
|
||||||
"mongodb": "^3.7.3",
|
"mongodb": "^3.7.3",
|
||||||
"nunjucks": "^3.2.3",
|
"nunjucks": "^3.2.3",
|
||||||
"p-queue": "^7.2.0",
|
"p-queue": "^7.3.0",
|
||||||
"streamsaver": "^2.0.6",
|
"streamsaver": "^2.0.6",
|
||||||
"xss": "^1.0.13"
|
"xss": "^1.0.13"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -249,11 +249,7 @@ const page = new NamedPage(['problem_main'], () => {
|
|||||||
updateSelection();
|
updateSelection();
|
||||||
});
|
});
|
||||||
$('#searchForm').on('submit', updateSelection);
|
$('#searchForm').on('submit', updateSelection);
|
||||||
let update;
|
$('#searchForm').find('input').on('input', _.debounce(updateSelection, 500));
|
||||||
$('#searchForm').find('input').on('input', () => {
|
|
||||||
if (update) clearTimeout(update);
|
|
||||||
update = setTimeout(updateSelection, 500);
|
|
||||||
});
|
|
||||||
$(document).on('click', 'a.pager__item', (ev) => {
|
$(document).on('click', 'a.pager__item', (ev) => {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
pjax.request(ev.currentTarget.getAttribute('href')).then(() => window.scrollTo(0, 0));
|
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 sock = new WebSocket(UiContext.socketUrl);
|
||||||
const dd = new DiffDOM();
|
const dd = new DiffDOM();
|
||||||
|
|
||||||
let firstLoad = true;
|
sock.onopen = () => sock.send(JSON.stringify({ rids: UiContext.rids }));
|
||||||
sock.onopen = () => {
|
|
||||||
if (firstLoad) sock.send(JSON.stringify({ rids: UiContext.rids }));
|
|
||||||
firstLoad = false;
|
|
||||||
};
|
|
||||||
sock.onmessage = (message) => {
|
sock.onmessage = (message) => {
|
||||||
const msg = JSON.parse(message.data);
|
const msg = JSON.parse(message.data);
|
||||||
const $newTr = $(msg.html);
|
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>
|
<a href="{{ url('homework_detail' if tdoc.rule == 'homework' else 'contest_detail', tid=tdoc.docId) }}">{{ tdoc.title }}</a>
|
||||||
</dd>
|
</dd>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<dt>{{ _('Language') }}</dt>
|
{% if pdoc.config.type != 'objective' %}
|
||||||
<dd>{{ model.setting.langs[rdoc.lang].display }}</dd>
|
<dt>{{ _('Language') }}</dt>
|
||||||
|
<dd>{{ model.setting.langs[rdoc.lang].display }}</dd>
|
||||||
|
{% endif %}
|
||||||
<dt>{{ _('Submit At') }}</dt>
|
<dt>{{ _('Submit At') }}</dt>
|
||||||
<dd>{{ datetimeSpan(rdoc._id)|safe }}</dd>
|
<dd>{{ datetimeSpan(rdoc._id)|safe }}</dd>
|
||||||
{% if rdoc.judgeAt %}
|
{% if rdoc.judgeAt %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/utils",
|
"name": "@hydrooj/utils",
|
||||||
"version": "1.3.4",
|
"version": "1.3.5",
|
||||||
"description": "hydrooj utils",
|
"description": "hydrooj utils",
|
||||||
"main": "package.json",
|
"main": "package.json",
|
||||||
"repository": "https://github.com/hydro-dev/Hydro.git",
|
"repository": "https://github.com/hydro-dev/Hydro.git",
|
||||||
@@ -8,13 +8,17 @@
|
|||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"cac": "^6.7.12",
|
||||||
|
"esbuild": "0.14.3",
|
||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"moment-timezone": "^0.5.34",
|
"moment-timezone": "^0.5.34",
|
||||||
"mongodb": "^3.7.3",
|
"mongodb": "^3.7.3",
|
||||||
"systeminformation": "^5.11.24"
|
"source-map-support": "^0.5.21",
|
||||||
|
"systeminformation": "^5.12.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/fs-extra": "^9.0.13"
|
"@types/fs-extra": "^9.0.13",
|
||||||
|
"@types/source-map-support": "^0.5.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,11 +16,11 @@
|
|||||||
"puppeteer-extra": "3.3.0",
|
"puppeteer-extra": "3.3.0",
|
||||||
"puppeteer-extra-plugin-portal": "3.1.0",
|
"puppeteer-extra-plugin-portal": "3.1.0",
|
||||||
"puppeteer-extra-plugin-stealth": "2.10.1",
|
"puppeteer-extra-plugin-stealth": "2.10.1",
|
||||||
"superagent": "^7.1.5",
|
"superagent": "^8.0.0",
|
||||||
"superagent-proxy": "^3.0.0"
|
"superagent-proxy": "^3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jsdom": "^16.2.14",
|
"@types/jsdom": "^16.2.15",
|
||||||
"@types/lodash": "^4.14.182",
|
"@types/lodash": "^4.14.182",
|
||||||
"@types/superagent": "^4.1.15",
|
"@types/superagent": "^4.1.15",
|
||||||
"@types/superagent-proxy": "^3.0.0"
|
"@types/superagent-proxy": "^3.0.0"
|
||||||
|
|||||||