28 lines
564 B
JavaScript
28 lines
564 B
JavaScript
|
const { URL } = require('url')
|
||
|
|
||
|
const replace = '***'
|
||
|
const tokenRegex = /\bnpm_[a-zA-Z0-9]{36}\b/g
|
||
|
const guidRegex = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/g
|
||
|
|
||
|
const cleanUrl = (str) => {
|
||
|
if (typeof str !== 'string' || !str) {
|
||
|
return str
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
const url = new URL(str)
|
||
|
if (url.password) {
|
||
|
url.password = replace
|
||
|
str = url.toString()
|
||
|
}
|
||
|
} catch {
|
||
|
// ignore errors
|
||
|
}
|
||
|
|
||
|
return str
|
||
|
.replace(tokenRegex, `npm_${replace}`)
|
||
|
.replace(guidRegex, `npm_${replace}`)
|
||
|
}
|
||
|
|
||
|
module.exports = cleanUrl
|