{"version":3,"sources":["jsdelivr-header.js","/npm/protractor-gremlins-plugin@1.0.5/protractor-gremlins.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACLA,SAAW,CAEV,MAAO,OAEP,UAAW,KACV,QAAQ,SAAW,CAClB,KAAM,KACD,QAAQ,aAAc,EACf,QAAQ,eAAc,KAC3B,IAAI,EAAS,SAAS,cAAc,UAEpC,OAAO,kBAAmB,EAE1B,IAAI,EAAc,CAChB,IAAK,GACL,KAAM,GACN,KAAM,GACN,MAAO,IAGT,OAAO,aAAa,QAAQ,cAAe,KAAK,UAAU,IAE1D,MAAM,EACJ,WAAA,CAAY,GACV,IAAI,EAAU,EACd,OAAO,SAAS,GACd,IAAI,EAAO,KAAK,MAAM,OAAO,aAAa,QAAQ,gBAElD,EAAI,gBAAkB,EAAI,SAEzB,EAAI,YAAc,EAAI,WAAY,IAAI,MAAO,WAE9C,EAAK,GAAW,EAAK,GAAS,OAAO,CAAC,IAEtC,OAAO,aAAa,QAAQ,cAAe,KAAK,UAAU,GAC5D,CACF,EAWF,OAAO,eARgB,WACrB,IAAI,EAAO,CAAC,EACZ,IAAI,IAAI,KAAO,EACb,EAAK,GAAO,IAAI,EAAK,GAEvB,OAAO,CACT,CAEwB,GAExB,EAAO,OAAS,WACd,OAAO,QACT,EAEA,EAAO,IAAM,oDACb,SAAS,KAAK,YAAY,EAAO,KAIrC,QAAS,CAAC,EAAS,CAAC,EAAG,EAAc,CAAC,KACpC,QAAQ,SAAS,OACjB,EAAS,KAAK,UAAU,GACxB,IAAI,EAAiB,EAAY,eAAiB,GASlD,OARA,QAAQ,cAAc,6NAIW,wIAI1B,QAAQ,OAAO,MAAK,IAClB,QAAQ,eAAc,IACpB,OAAO,qBAEf,MAAK,IACN,IAAI,EAAM,CACR,YAAa,GACb,YAAa,CAAC,EACd,cAAe,IAGjB,OAAO,QAAQ,SAAS,OAAO,IAAI,WAAW,MAAK,IACjD,EAAI,YAAc,EAAW,MAAK,CAAC,EAAQ,IAAW,EAAO,UAAY,EAAO,YACzE,QAAQ,SAAS,UAAU,MAAK,IACrC,EAAI,YAAc,EAClB,IAAI,IAAI,KAAO,EAAI,YACjB,EAAI,YAAY,GAAK,MAAK,CAAC,EAAI,IAAO,EAAG,UAAY,EAAG,YAe1D,OAbA,EAAI,YAAY,QAAQ,GAA+B,WAAtB,EAAM,MAAM,QAAuB,EAAe,MAAK,GAAe,EAAM,QAAQ,SAAS,OAAgB,SAAQ,IACpJ,IAAI,EAAa,EAAI,YAAY,IAAI,WAAU,GAAM,EAAG,UAAY,EAAW,YAC3E,EAAa,EAAY,GAC1B,EAAa,IAAK,EAAa,GAClC,IAAI,EAAkB,EAAI,YAAY,IAAI,MAAM,EAAY,GACxD,EAAM,CACR,QAAS,EAAW,QACpB,UAAW,EAAW,UACtB,gBAAiB,EACjB,WAAY,EAAiB,EAAgB,OAAS,IAExD,EAAI,cAAc,KAAK,EAAI,IAEtB,CAAG,MAEZ,GAEF,EAEJ,QAAS,IACA,QAAQ,eAAc,IACpB,KAAK,MAAM,OAAO,aAAa,QAAQ,kBAGlD,UAAW,IACF,QAAQ,eAAc,KAO3B,OAAO,aAAa,QAAQ,cAAe,KAAK,UAN9B,CAChB,IAAK,GACL,KAAM,GACN,KAAM,GACN,MAAO,KAE8D,KAK7E,WAAU,KA0BR,SAAW,QAAQ,YAzBJ,CACb,oBAAqB,KACZ,CACL,QAAU,IACR,IAAI,EAAW,EACX,EAAM,CACR,KAAM,EAAS,OAAS,EACxB,QAAS,MAGX,GAAG,EAAI,KAAM,CACX,IAAI,EAAU,0BACd,EAAS,SAAQ,IACf,GAAW,KAAK,EAAI,SAAO,IAE7B,EAAI,QAAU,CAChB,MACE,EAAI,QAAU,0BAGhB,OAAO,CAAG,KAKqB,GACvC,EAEJ,WAAa,IACP,EAAQ,aACV,EAAQ,SAAS,MAEb,EAER,SAAU,QAIZ,OAAO,QAAU","file":"/npm/protractor-gremlins-plugin@1.0.5/protractor-gremlins.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/protractor-gremlins-plugin@1.0.5/protractor-gremlins.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\nGremlins = {\n\n\tsetup: () => {\n\t},\n\tonPrepare: () => {\n\t\tbrowser.Gremlins = {\n\t\t\tinit: () => {\n        browser.hasGremlins = true;\n        return browser.executeScript(() => {\n          let script = document.createElement('script');\n\n          window.gremlinsFinished = false;\n\n          let gremlinLogs = {\n            log: [],\n            info: [],\n            warn: [],\n            error: []\n          };\n\n          window.localStorage.setItem('gremlinLogs', JSON.stringify(gremlinLogs));\n\n          class Logg {\n            constructor(key) {\n              let logType = key\n              return function(msg) {\n                var logs = JSON.parse(window.localStorage.getItem('gremlinLogs'));\n\n                msg.element && delete msg.element\n\n                !msg.timestamp && (msg.timestamp = new Date().getTime())\n\n                logs[logType] = logs[logType].concat([msg]);\n\n                window.localStorage.setItem('gremlinLogs', JSON.stringify(logs));\n              }\n            }\n          }\n\n          let createGremLogger = function() {\n            let hold = {};\n            for(let key in gremlinLogs) {\n              hold[key] = new Logg(key);\n            }\n            return hold;\n          }\n\n          window.GremlinsLogger = createGremLogger();\n\n          script.onload = function() {\n            window.gremlins;\n          }\n\n          script.src = \"/node_modules/clickup-gremlins.js/gremlins.min.js\";\n          document.body.appendChild(script);\n\n        });\n      },\n      unleash: (config = {}, hordeConfig = {}) => {\n        browser.Gremlins.init();\n        config = JSON.stringify(config);\n        let excludedErrors = hordeConfig.excludeErrors || [];\n        browser.executeScript(`javascript:\n          window.gremlinsFinished = false;\n          window.gremlins && window.gremlins.createHorde()\n                              .logger(window.GremlinsLogger)\n                              .unleash(${config}, function() {\n                                return window.gremlinsFinished = true;\n                              });\n        `);\n        return browser.driver.wait(() => {\n          return browser.executeScript(() => {\n            return window.gremlinsFinished;\n          });\n        }).then(finished => {\n          let ret = {\n            browserLogs: [],\n            gremlinLogs: {},\n            gremlinErrors: []\n          };\n\n          return browser.manage().logs().get('browser').then(browserLog => {\n            ret.browserLogs = browserLog.sort((entry1, entry2) => entry1.timestamp - entry2.timestamp);\n            return browser.Gremlins.getLogs().then(gremlinLogs => {\n              ret.gremlinLogs = gremlinLogs;\n              for(let key in ret.gremlinLogs) {\n                ret.gremlinLogs[key].sort((e1, e2) => e1.timestamp - e2.timestamp);\n              }\n              ret.browserLogs.filter( entry => entry.level.name_ === 'SEVERE' && !excludedErrors.some(errorString => entry.message.includes(errorString)) ).forEach(browserLog => {\n                let timeIndex = (ret.gremlinLogs.log.findIndex(lg => lg.timestamp > browserLog.timestamp) );\n                let startIndex = timeIndex - 11;\n                if(startIndex < 0) { startIndex = 0; }\n                let previousActions = ret.gremlinLogs.log.slice(startIndex, timeIndex);\n                let err = {\n                  message: browserLog.message,\n                  timestamp: browserLog.timestamp,\n                  previousActions: previousActions,\n                  lastAction: previousActions[ previousActions.length - 1 ]\n                }\n                ret.gremlinErrors.push(err);\n              });\n              return ret;\n            });\n          });\n          // return ret;\n        });\n      },\n      getLogs: () => {\n        return browser.executeScript(() => {\n          return JSON.parse(window.localStorage.getItem('gremlinLogs'));\n        });\n      },\n      resetLogs: () => {\n        return browser.executeScript(() => {\n          let gremlinLogs = {\n            log: [],\n            info: [],\n            warn: [],\n            error: []\n          };\n          window.localStorage.setItem('gremlinLogs', JSON.stringify(gremlinLogs));\n        });\n      }\n\t\t}\n\n    beforeAll(() => {\n      let matchers = {\n        toHaveGremlinErrors: () => {\n          return {\n            compare: (value) => {\n              let filtered = value;\n              let ret = {\n                pass: filtered.length > 0,\n                message: null\n              }\n\n              if(ret.pass) {\n                let message = 'Gremlins errors found: '\n                filtered.forEach(err => {\n                  message += `\\n${err.message}`\n                });\n                ret.message = message;\n              } else {\n                ret.message = 'No Gremlin errors found';\n              }\n\n              return ret;\n            }\n          }\n        }\n      }\n      jasmine && jasmine.addMatchers(matchers)\n    });\n\t},\n  onPageLoad: (browser) => {\n    if(!browser.hasGremlins) {\n      browser.Gremlins.init();\n    }\n    return;\n  },\n  teardown: () => {\n  }\n}\n\nmodule.exports = Gremlins;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"]}