change(tracker): change attribute deprecation

This commit is contained in:
sylenien 2022-09-12 15:00:09 +02:00 committed by Delirium
parent 74048b1ce3
commit c8bd105c6c
2 changed files with 24 additions and 18 deletions

View file

@ -26,40 +26,37 @@ export default class Sanitizer {
obscureTextEmails: true,
obscureTextNumbers: false,
customCallback: false,
domSanitizer: () => [false, false],
domSanitizer: () => SanitizeLevel.Plain,
},
options,
)
}
handleNode(id: number, parentID: number, node: Node) {
if (this.options.customCallback) {
if (this.masked.has(parentID)) {
this.masked.add(id)
} else if (this.hiddenContainers.has(parentID)) {
this.hiddenContainers.add(id)
} else {
const sanitizeLevel = this.options.domSanitizer(node)
if (sanitizeLevel > 0) {
const addMasked =
sanitizeLevel === SanitizeLevel.Hidden ? this.hiddenContainers.add : this.masked.add
addMasked(id)
}
}
}
if (
this.masked.has(parentID) ||
(isElementNode(node) && hasOpenreplayAttribute(node, 'masked'))
(isElementNode(node) &&
(hasOpenreplayAttribute(node, 'masked') || hasOpenreplayAttribute(node, 'obscured')))
) {
this.masked.add(id)
}
if (
this.hiddenContainers.has(parentID) ||
(isElementNode(node) &&
(hasOpenreplayAttribute(node, 'htmlmasked') || hasOpenreplayAttribute(node, 'hidden')))
(hasOpenreplayAttribute(node, 'htmlmasked') || hasOpenreplayAttribute(node, 'hidden-html')))
) {
this.hiddenContainers.add(id)
}
if (this.options.customCallback) {
const sanitizeLevel = this.options.domSanitizer(node)
if (sanitizeLevel > 0) {
const maskedSet =
sanitizeLevel === SanitizeLevel.Hidden ? this.hiddenContainers : this.masked
maskedSet.add(id)
}
}
}
sanitize(id: number, data: string): string {

View file

@ -52,9 +52,18 @@ export function getLabelAttribute(e: Element): string | null {
}
export function hasOpenreplayAttribute(e: Element, name: string): boolean {
const deprecatedNames = ['htmlmasked']
const deprecatedNames = { htmlmasked: 'hidden-html', masked: 'obscured' }
const newName = `data-openreplay-${name}`
if (e.hasAttribute(newName)) {
// @ts-ignore
if (deprecatedNames[name]) {
deprecationWarn(
`"${newName}" attribute`,
// @ts-ignore
`"${deprecatedNames[name] as string}" attribute`,
'/installation/sanitize-data',
)
}
return true
}
const oldName = `data-asayer-${name}`