feat: updated Luxon & tlog

pull/217/head
tycrek 11 months ago
parent 1701e90bca
commit 0061ba0fc8
No known key found for this signature in database
GPG Key ID: FF8A54DCE404885A

93
package-lock.json generated

@ -14,7 +14,7 @@
"@tycrek/discord-hookr": "^0.1.0",
"@tycrek/express-postcss": "^0.4.0",
"@tycrek/joint": "^1.0.0-1",
"@tycrek/log": "^0.6.0-7",
"@tycrek/log": "^0.7.0-3",
"@tycrek/papito": "^0.3.4",
"@xoi/gps-metadata-remover": "^1.1.1",
"any-shell-escape": "^0.1.1",
@ -32,7 +32,7 @@
"ffmpeg-static": "^5.1.0",
"fs-extra": "^11.1.0",
"helmet": "^6.0.1",
"luxon": "^3.2.1",
"luxon": "^3.3.0",
"nanoid": "^3.3.4",
"node-fetch": "^2.6.7",
"node-vibrant": "^3.1.6",
@ -54,7 +54,7 @@
"@types/express-busboy": "^8.0.0",
"@types/ffmpeg-static": "^3.0.0",
"@types/fs-extra": "^9.0.12",
"@types/luxon": "^2.0.3",
"@types/luxon": "^3.3.0",
"@types/marked": "^3.0.0",
"@types/node": "^16.9.0",
"@types/node-fetch": "^2.5.12",
@ -955,37 +955,12 @@
}
},
"node_modules/@tycrek/log": {
"version": "0.6.0-7",
"resolved": "https://registry.npmjs.org/@tycrek/log/-/log-0.6.0-7.tgz",
"integrity": "sha512-jqi3zrmHh3UEA//rExIFtip1e2cEYAyIUOaCikmVVCEpz9MtjJEQEnTH9XGB0Qai9ESqZ0dzvWNcDnIEdD28Cw==",
"version": "0.7.0-3",
"resolved": "https://registry.npmjs.org/@tycrek/log/-/log-0.7.0-3.tgz",
"integrity": "sha512-cy1WYpNsMN+OEjyP/hpqVqsct4A1bG18/JTde0PmKObBdEYExnQYDp1uIgDOQSktu3hnxDG7/rAu0XWsveUpMw==",
"dependencies": {
"@tsconfig/node16": "^1.0.2",
"@types/express": "^4.17.13",
"@types/luxon": "^2.3.1",
"@types/node": "^17.0.23",
"chalk": "^4.1.1",
"luxon": "^1.27.0"
},
"engines": {
"node": ">=16.14.x",
"npm": ">=8.3.x"
},
"funding": {
"type": "patreon",
"url": "https://patreon.com/tycrek"
}
},
"node_modules/@tycrek/log/node_modules/@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="
},
"node_modules/@tycrek/log/node_modules/luxon": {
"version": "1.28.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz",
"integrity": "sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw==",
"engines": {
"node": "*"
"chalk": "^4.1.2",
"luxon": "^3.3.0"
}
},
"node_modules/@tycrek/papito": {
@ -1138,9 +1113,10 @@
"integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
},
"node_modules/@types/luxon": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.4.0.tgz",
"integrity": "sha512-oCavjEjRXuR6URJEtQm0eBdfsBiEcGBZbq21of8iGkeKxU1+1xgKuFPClaBZl2KB8ZZBSWlgk61tH6Mf+nvZVw=="
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.0.tgz",
"integrity": "sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==",
"dev": true
},
"node_modules/@types/marked": {
"version": "3.0.3",
@ -3709,9 +3685,9 @@
}
},
"node_modules/luxon": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==",
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
"integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==",
"engines": {
"node": ">=12"
}
@ -7125,28 +7101,12 @@
"integrity": "sha512-LYM2VVxCUFTf/kHKlbP7h4Phnljt/si7OQtj9ehRC9WaypYdO3BVfHovnXxcfRbShr3NPMNn2foN/zHQFN5Ltw=="
},
"@tycrek/log": {
"version": "0.6.0-7",
"resolved": "https://registry.npmjs.org/@tycrek/log/-/log-0.6.0-7.tgz",
"integrity": "sha512-jqi3zrmHh3UEA//rExIFtip1e2cEYAyIUOaCikmVVCEpz9MtjJEQEnTH9XGB0Qai9ESqZ0dzvWNcDnIEdD28Cw==",
"version": "0.7.0-3",
"resolved": "https://registry.npmjs.org/@tycrek/log/-/log-0.7.0-3.tgz",
"integrity": "sha512-cy1WYpNsMN+OEjyP/hpqVqsct4A1bG18/JTde0PmKObBdEYExnQYDp1uIgDOQSktu3hnxDG7/rAu0XWsveUpMw==",
"requires": {
"@tsconfig/node16": "^1.0.2",
"@types/express": "^4.17.13",
"@types/luxon": "^2.3.1",
"@types/node": "^17.0.23",
"chalk": "^4.1.1",
"luxon": "^1.27.0"
},
"dependencies": {
"@types/node": {
"version": "17.0.45",
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
"integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="
},
"luxon": {
"version": "1.28.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-1.28.1.tgz",
"integrity": "sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw=="
}
"chalk": "^4.1.2",
"luxon": "^3.3.0"
}
},
"@tycrek/papito": {
@ -7290,9 +7250,10 @@
"integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
},
"@types/luxon": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-2.4.0.tgz",
"integrity": "sha512-oCavjEjRXuR6URJEtQm0eBdfsBiEcGBZbq21of8iGkeKxU1+1xgKuFPClaBZl2KB8ZZBSWlgk61tH6Mf+nvZVw=="
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.0.tgz",
"integrity": "sha512-uKRI5QORDnrGFYgcdAVnHvEIvEZ8noTpP/Bg+HeUzZghwinDlIS87DEenV5r1YoOF9G4x600YsUXLWZ19rmTmg==",
"dev": true
},
"@types/marked": {
"version": "3.0.3",
@ -9252,9 +9213,9 @@
}
},
"luxon": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz",
"integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg=="
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
"integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg=="
},
"make-dir": {
"version": "3.1.0",

@ -47,7 +47,7 @@
"@tycrek/discord-hookr": "^0.1.0",
"@tycrek/express-postcss": "^0.4.0",
"@tycrek/joint": "^1.0.0-1",
"@tycrek/log": "^0.6.0-7",
"@tycrek/log": "^0.7.0-3",
"@tycrek/papito": "^0.3.4",
"@xoi/gps-metadata-remover": "^1.1.1",
"any-shell-escape": "^0.1.1",
@ -65,7 +65,7 @@
"ffmpeg-static": "^5.1.0",
"fs-extra": "^11.1.0",
"helmet": "^6.0.1",
"luxon": "^3.2.1",
"luxon": "^3.3.0",
"nanoid": "^3.3.4",
"node-fetch": "^2.6.7",
"node-vibrant": "^3.1.6",
@ -87,7 +87,7 @@
"@types/express-busboy": "^8.0.0",
"@types/ffmpeg-static": "^3.0.0",
"@types/fs-extra": "^9.0.12",
"@types/luxon": "^2.0.3",
"@types/luxon": "^3.3.0",
"@types/marked": "^3.0.0",
"@types/node": "^16.9.0",
"@types/node-fetch": "^2.5.12",

@ -78,7 +78,7 @@ const bruteforce = new ExpressBrute(new ExpressBrute.MemoryStore(), {
app.get(['/'], bruteforce.prevent, (_req, _res, next) => next());
// Express logger middleware
app.use(log.middleware());
// app.use(log.middleware());
// Body parser for API POST requests
// (I really don't like this being top level but it does not work inside the API Router as of 2022-12-24)
@ -130,7 +130,11 @@ app.use('/css', epcss({
app.use('/:resourceId', (req, _res, next) => (req.resourceId = req.params.resourceId, next()), ROUTERS.resource); // skipcq: JS-0086, JS-0090
// Error handler
app.use((err: ErrWrap, _req: Request, res: Response) => log.error(err.message).err(err).callback(() => res.sendStatus(CODE_INTERNAL_SERVER_ERROR))); // skipcq: JS-0128
app.use((err: ErrWrap, _req: Request, res: Response) => {
log.error(err.message);
console.error(err);
res.sendStatus(CODE_INTERNAL_SERVER_ERROR);
});
(async function start() {
await AuthOnStart();
@ -144,5 +148,5 @@ app.use((err: ErrWrap, _req: Request, res: Response) => log.error(err.message).e
.info('Frontend', ASS_FRONTEND.enabled ? ASS_FRONTEND.brand : 'disabled', `${ASS_FRONTEND.enabled ? `${getTrueHttp()}${getTrueDomain()}${ASS_FRONTEND.endpoint}` : ''}`)
.info('Custom index', ASS_INDEX ?? 'disabled')
.blank()
.express()!.Host(app, port, host, () => log.success('Ready for uploads', `Storing resources ${s3enabled ? 'in S3' : 'on disk'}`));
.callback(() => app.listen(port, host, () => log.success('Ready for uploads', `Storing resources ${s3enabled ? 'in S3' : 'on disk'}`)));
})();

@ -370,7 +370,7 @@ export const onStart = (authFile = 'auth.json') => new Promise((resolve, reject)
log.debug('File does not exist', authFile, 'will be created automatically');
return fs.writeJson(file, { migrated: true });
})
.catch((errWriteJson) => log.error('Failed to create auth.json').callback(reject, errWriteJson))
.catch((errWriteJson) => log.error('Failed to create auth.json').callback(() => reject(errWriteJson)))
// File exists or was created
.then(() => fs.readJson(file))
@ -393,7 +393,7 @@ export const onStart = (authFile = 'auth.json') => new Promise((resolve, reject)
// Add users to the map
return json.users.forEach((user) => users.push(user));
})
.catch((errReadJson) => log.error('Failed to read auth.json').callback(reject, errReadJson))
.catch((errReadJson) => log.error('Failed to read auth.json').callback(() => reject(errReadJson)))
.then(resolve);
});

@ -18,5 +18,5 @@ function doCheck() {
if (require.main !== module) module.exports = doCheck;
else doCheck()
.then((result) => logger.comment(`Wanted: ${ENGINES.node} (npm ${ENGINES.npm})`).node().success(result))
.then((result) => logger.comment(`Wanted: ${ENGINES.node} (npm ${ENGINES.npm})`)/* .node() */.success(result))
.catch((err) => logger.error(err) && process.exit(1));

@ -12,5 +12,5 @@ export default (file: FileData): Promise<string> =>
toArray((fs.createReadStream(file.path)))
.then((parts: any[]) => Buffer.concat(parts.map((part: any) => (Buffer.isBuffer(part) ? part : Buffer.from(part)))))
.then((buf: Buffer) => crypto.createHash('sha1').update(buf).digest('hex')) // skipcq: JS-D003
.then((hash: string) => log.debug(`Hash for ${file.originalname}`, hash, 'SHA1, hex').callback(resolve, hash))
.then((hash: string) => log.debug(`Hash for ${file.originalname}`, hash, 'SHA1, hex').callback(() => resolve(hash)))
.catch(reject));

@ -1,34 +1,10 @@
import { TLog, DateTimePreset } from '@tycrek/log';
import { TLog } from '@tycrek/log';
import { DateTime } from 'luxon';
// Set up logging
const logger = new TLog({
// @ts-ignore
level: process.env.LOG_LEVEL || (process.env.NODE_ENV === 'production' ? 'info' : 'debug'),
timestamp: {
enabled: true,
colour: 'grey',
preset: DateTimePreset.DATETIME_MED
}
});
const logger = new TLog(process.env.NODE_ENV === 'production' ? 'info' : 'debug')
.setTimestamp({ preset: DateTime.DATETIME_MED });
// Enable the Express logger
logger.enable.express({
middleware: {
excludePaths: ['favicon.ico'],
},
trim: {
enabled: true,
maxLength: 80,
delim: ': ',
},
handle404: true,
handle500: false
}).debug('Plugin enabled', 'Express');
// todo: re-enable the Express logger
/**
* @type {TLog}
*/
// yeet
export default logger;
export default logger;

@ -148,7 +148,7 @@ router.post('/', (req: Request, res: Response, next: Function) => {
log.debug(`Sending${admin ? ' admin' : ''} embed to webhook`);
hook.addEmbed(embed).send()
.then(() => log.debug(`Webhook${admin ? ' admin' : ''} sent`))
.catch((err) => log.error('Webhook error').err(err));
.catch((err) => (log.error('Webhook error'), console.error(err)));
}
// Send the response

@ -95,7 +95,7 @@ export function processUploaded(req: Request, res: Response, next: Function) { /
.callback(() => res.sendStatus(CODE_UNSUPPORTED_MEDIA_TYPE)))
.catch((err) => log
.error('Temp file could not be deleted', err)
.callback(next, err)));
.callback(() => next(err))));
// Remove unwanted fields
delete req.file.uuid;

Loading…
Cancel
Save