UNPKG

@revoloo/cypress6

Version:

Cypress.io end to end testing tool

41 lines (37 loc) 1.58 kB
const pumpify = require('pumpify') const { replaceStream } = require('./replace_stream') const utf8Stream = require('utf8-stream') const topOrParentEqualityBeforeRe = /((?:\bwindow\b|\bself\b)(?:\.|\[['"](?:top|self)['"]\])?\s*[!=]==?\s*(?:(?:window|self)(?:\.|\[['"]))?)(top|parent)(?![\w])/g const topOrParentEqualityAfterRe = /(top|parent)((?:["']\])?\s*[!=]==?\s*(?:\bwindow\b|\bself\b))/g const topOrParentLocationOrFramesRe = /([^\da-zA-Z\(\)])?(\btop\b|\bparent\b)([.])(\blocation\b|\bframes\b)/g const jiraTopWindowGetterRe = /(!function\s*\((\w{1})\)\s*{\s*return\s*\w{1}\s*(?:={2,})\s*\w{1}\.parent)(\s*}\(\w{1}\))/g const jiraTopWindowGetterUnMinifiedRe = /(function\s*\w{1,}\s*\((\w{1})\)\s*{\s*return\s*\w{1}\s*(?:={2,})\s*\w{1}\.parent)(\s*;\s*})/g export function strip (html: string) { return html .replace(topOrParentEqualityBeforeRe, '$1self') .replace(topOrParentEqualityAfterRe, 'self$2') .replace(topOrParentLocationOrFramesRe, '$1self$3$4') .replace(jiraTopWindowGetterRe, '$1 || $2.parent.__Cypress__$3') .replace(jiraTopWindowGetterUnMinifiedRe, '$1 || $2.parent.__Cypress__$3') } export function stripStream () { return pumpify( utf8Stream(), replaceStream( [ topOrParentEqualityBeforeRe, topOrParentEqualityAfterRe, topOrParentLocationOrFramesRe, jiraTopWindowGetterRe, jiraTopWindowGetterUnMinifiedRe, ], [ '$1self', 'self$2', '$1self$3$4', '$1 || $2.parent.__Cypress__$3', '$1 || $2.parent.__Cypress__$3', ], ), ) }