40 lines
863 B
JavaScript
40 lines
863 B
JavaScript
const { createHash } = require('crypto');
|
|
|
|
function escapeHtml(unsafe) {
|
|
return (unsafe || '')
|
|
.replace(/&/g, '&')
|
|
.replace(/</g, '<')
|
|
.replace(/>/g, '>')
|
|
.replace(/"/g, '"')
|
|
.replace(/`/g, ''')
|
|
.replace(/'/g, ''')
|
|
.replace(/@/g, '@')
|
|
.replace(/[\\]/g, '\\\\')
|
|
.replace(/[\"]/g, '\\"')
|
|
.replace(/[\/]/g, '\\/')
|
|
.replace(/[\b]/g, '\\b')
|
|
.replace(/[\f]/g, '\\f')
|
|
.replace(/[\n]/g, '\\n')
|
|
.replace(/[\r]/g, '\\r')
|
|
.replace(/[\t]/g, '\\t');
|
|
}
|
|
|
|
function escapeQuotes(unsafe) {
|
|
return unsafe.replace(/"/g, '\\"');
|
|
}
|
|
|
|
function escapeSingleQuotes(unsafe) {
|
|
return unsafe.replace(/'/g, "\\'");
|
|
}
|
|
|
|
function sha256hex(value) {
|
|
return createHash('sha256').update(value).digest('hex');
|
|
}
|
|
|
|
module.exports = {
|
|
escapeHtml,
|
|
escapeQuotes,
|
|
escapeSingleQuotes,
|
|
sha256hex,
|
|
};
|