{"version":3,"sources":["jsdelivr-header.js","/npm/puppeteer-cucumber-js@1.6.2/index.js"],"names":[],"mappings":"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","file":"/npm/puppeteer-cucumber-js@1.6.2/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/puppeteer-cucumber-js@1.6.2/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\n\nvar fs = require('fs-plus');\nvar path = require('path');\nvar program = require('commander');\nvar pjson = require('./package.json');\nvar cucumber = require('cucumber');\nvar chalk = require('chalk');\nvar helpers = require('./runtime/helpers.js');\nvar merge = require('merge');\nvar requireDir = require('require-dir');\nvar textFilesLoader = require('text-files-loader');\nvar networkSpeeds = require('./runtime/network-speed.js');\n\nvar config = {\n    featureFiles: './features',\n    steps: './features/step-definitions',\n    pageObjects: './features/page-objects',\n    sharedObjects: './features/shared-objects',\n    reports: './features/reports',\n    browser: 'chrome',\n    browserTeardownStrategy: 'always',\n    timeout: 15000,\n    headless: false,\n    devTools: false,\n    slowMo: 10\n};\n\nfolderCheck();\n\n// global defaults (before cli commands)\nglobal.browserName = 'chrome';\nglobal.browserPath = '';\nglobal.browserTeardownStrategy = config.browserTeardownStrategy;\nglobal.headless = config.headless;\nglobal.devTools = config.devTools;\nglobal.userAgent = '';\nglobal.disableLaunchReport = false;\nglobal.noScreenshot = false;\nglobal.slowMo = config.slowMo;\n\nprogram\n    .version(pjson.version)\n    .description(pjson.description)\n    .option('--tags <@tagname>', 'cucumber @tag name to run', collectPaths, [])\n    .option('--featureFiles <paths>', 'comma-separated list of feature files or path to directory. defaults to ' + config.featureFiles, config.featureFiles)\n    .option('--browser <name>', 'name of browser to use (chrome, firefox, edge, brave). default ' + config.browser, config.browser)\n    .option('--browserPath <path>', 'optional path to a browser executable')\n    .option('--browser-teardown <optional>', 'browser teardown after each scenario (always, clear, none). defaults ' + config.browserTeardownStrategy, config.browserTeardownStrategy)\n    .option('--headless', 'whether to run browser in headless mode. defaults to true unless the devtools option is true', config.headless)\n    .option('--devTools', 'auto-open a DevTools. if true headless mode is disabled.', config.devTools)\n    .option('--noScreenshot', 'disable auto capturing of screenshots when an error is encountered')\n    .option('--disableLaunchReport', 'Disables the auto opening the browser with test report')\n    .option('--timeOut <number>', 'steps definition timeout in milliseconds. defaults to ' + config.timeout, coerceInt, config.timeout)\n    .option('--worldParameters <JSON>', 'JSON object to pass to cucumber-js world constructor. defaults to empty', config.worldParameters)\n    .option('--userAgent <string>', 'user agent string')\n    .option('--failFast', 'abort the run on first failure')\n    .option('--slowMo <number>', 'specified amount of milliseconds to slow down Puppeteer operations by. Defaults to ' + config.slowMo)\n    .option('--networkSpeed <name>', 'simulate connection speeds, options are: gprs, 2g, 3g, 4g, dsl, wifi. Defaults is unset (full speed)')\n    .option('--updateBaselineImage', 'automatically update the baseline image after a failed comparison')\n    .parse(process.argv);\n\nprogram.on('--help', function () {\n    console.log('  For more details please visit https://github.com/orca-scan/puppeteer-cucumber-js#readme\\n');\n});\n\n// name of the browser to use for the test\nglobal.browserName = program.browser || global.browserName;\n\n// if user specified a browser path, check it exists first\nif (program.browserPath) {\n    if (fs.existsSync(program.browserPath)) {\n        global.browserPath = program.browserPath;\n    }\n    else {\n        throw new Error('browserPath not found');\n    }\n}\n\n// if user specified brave, attempt to find the path\nif (program.browser === 'brave' && global.browserPath === '') {\n    var bravePath = findBrave();\n    if (bravePath) {\n        global.browserPath = bravePath;\n        global.browserName = '';\n    }\n    else {\n        throw new Error('Brave Browser not found, check your installation or provide the path using --browserPath');\n    }\n}\n\n// how should the browser clean up\nglobal.browserTeardownStrategy = program.browserTeardown || global.browserTeardownStrategy;\n\n// should the browser be headless?\nglobal.headless = program.headless;\n\n// pass dev tools option\nglobal.devTools = program.devTools;\n\n// pass user agent if set (remove wrapped quotes)\nglobal.userAgent = String(program.userAgent || '').replace(/(^\"|\"$)/g, '');\n\n// used within world.js to import page objects\nvar pageObjectPath = path.resolve(config.pageObjects);\n\n// load page objects (after global vars have been created)\nif (fs.existsSync(pageObjectPath)) {\n\n    // require all page objects using camel case as object names\n    global.pageObjects = requireDir(pageObjectPath, { camelcase: true, recurse: true });\n}\n\n// used within world.js to output reports\nglobal.reportsPath = path.resolve(config.reports);\nif (!fs.existsSync(config.reports)) {\n    fs.makeTreeSync(config.reports);\n}\n\n// used within world.js to decide if reports should be generated\nglobal.disableLaunchReport = (program.disableLaunchReport);\n\n// used with world.js to determine if a screenshot should be captured on error\nglobal.noScreenshot = (program.noScreenshot);\n\n// set the default timeout if not passed via the command line\nglobal.DEFAULT_TIMEOUT = program.timeOut || config.timeout;\n\n// set the default slowMo if not passed via the command line\nglobal.DEFAULT_SLOW_MO = program.slowMo || config.slowMo;\n\n// set network speed if present\nif (program.networkSpeed) {\n\n    // if network speed is defined, use it\n    if (networkSpeeds[program.networkSpeed]) {\n        global.networkSpeed = networkSpeeds[program.networkSpeed];\n    }\n    // otherwise throw an error\n    else {\n        throw new Error('Invalid --networkSpeed, options are ' + Object.keys(networkSpeeds));\n    }\n}\n\n// used within world.js to import shared objects into the shared namespace\nvar sharedObjectsPath = path.resolve(config.sharedObjects);\n\n// import shared objects\nif (fs.existsSync(sharedObjectsPath)) {\n\n    var allDirs = {};\n    var dir = requireDir(sharedObjectsPath, { camelcase: true, recurse: true });\n\n    merge(allDirs, dir);\n\n    // if we managed to import some directories, expose them\n    if (Object.keys(allDirs).length > 0) {\n\n        // expose globally\n        global.sharedObjects = allDirs;\n    }\n}\n\n// add helpers\nglobal.helpers = helpers;\n\n// rewrite command line switches for cucumber\nprocess.argv.splice(2, 100);\n\n// allow specific feature files to be executed\nif (program.featureFiles) {\n    var splitFeatureFiles = program.featureFiles.split(',');\n\n    splitFeatureFiles.forEach(function (feature) {\n        process.argv.push(feature);\n    });\n}\n\n// add switch to tell cucumber to produce json report files\nprocess.argv.push('-f');\nprocess.argv.push('pretty');\nprocess.argv.push('-f');\nprocess.argv.push('json:' + path.resolve(__dirname, global.reportsPath, 'cucumber-report.json'));\n\n// add cucumber world as first required script (this sets up the globals)\nprocess.argv.push('-r');\nprocess.argv.push(path.resolve(__dirname, 'runtime/world.js'));\n\n// add path to import step definitions\nprocess.argv.push('-r');\nprocess.argv.push(path.resolve(config.steps));\n\nif (program.failFast) {\n    process.argv.push('--fail-fast');\n}\n\n// add tag(s)\nif (program.tags) {\n\n    // get all tags from feature files\n    var tagsFound = getFeaturesFileTags();\n\n    // go through each tag user passed in\n    program.tags.forEach(function (tag) {\n\n        // if tag does not start with `@` exit with error\n        if (tag[0] !== '@') {\n            logErrorToConsole('tags must start with a @');\n            process.exit();\n        }\n\n        // if tag does not exist in feature files, error\n        if (tagsFound.indexOf(tag) === -1) {\n            logErrorToConsole(`tag ${tag} not found`);\n            process.exit();\n        }\n    });\n\n    program.tags.forEach(function (tag) {\n        process.argv.push('-t');\n        process.argv.push(tag);\n    });\n}\n\nif (program.worldParameters) {\n    process.argv.push('--world-parameters');\n    process.argv.push(program.worldParameters);\n}\n\n// add strict option (fail if there are any undefined or pending steps)\nprocess.argv.push('-S');\n\n// // abort the run on first failure\n// process.argv.push('--fail-fast');\n\n//\n// execute cucumber\n//\nvar cucumberCli = new cucumber.Cli(process.argv);\n\nglobal.cucumber = cucumber;\n\ncucumberCli.run(function (succeeded) {\n\n    var code = succeeded ? 0 : 1;\n\n    function exitNow() {\n        process.exit(code);\n    }\n\n    if (process.stdout.write('')) {\n        exitNow();\n    }\n    else {\n        // write() returned false, kernel buffer is not empty yet...\n        process.stdout.on('drain', exitNow);\n    }\n});\n\n/**\n * Check if required folders exist\n * @return {void}\n */\nfunction folderCheck() {\n\n    if (!fs.existsSync(config.featureFiles)) {\n        logErrorToConsole(config.featureFiles + ' folder not found');\n        process.exit();\n    }\n\n    if (!fs.existsSync(config.steps)) {\n        logErrorToConsole(config.steps + ' folder not found');\n        process.exit();\n    }\n\n    if (!fs.existsSync(config.pageObjects)) {\n        logErrorToConsole(config.pageObjects + ' folder not found');\n        process.exit();\n    }\n}\n\n/**\n * Writes an error message to the console in red\n * @param {string} message - error message\n * @returns {void}\n */\nfunction logErrorToConsole(message) {\n    console.log(chalk.red('Error: ' + message || ''));\n}\n\nfunction findBrave() {\n\n    var locations = [\n        '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser',\n        'C:\\\\Program Files (x86)\\\\BraveSoftware\\\\Brave-Browser\\\\Application\\\\brave.exe'\n    ];\n\n    return locations.find(function(item) {\n        return fs.existsSync(item);\n    });\n}\n\nfunction collectPaths(value, paths) {\n    paths.push(value);\n    return paths;\n}\n\nfunction coerceInt(value, defaultValue) {\n\n    var int = parseInt(value, 10);\n\n    if (typeof int === 'number') return int;\n\n    return defaultValue;\n}\n\n/**\n * Get tags from feature files\n * @returns {Array<string>} list of all tags found\n */\nfunction getFeaturesFileTags() {\n\n    // load all feature files into memory\n    textFilesLoader.setup({ matchRegExp: /\\.feature/ });\n    var featureFiles = textFilesLoader.loadSync(path.resolve(config.featureFiles));\n\n    var result = [];\n\n    // go through each one and extract @tags\n    Object.keys(featureFiles).forEach(function(key) {\n\n        var content = String(featureFiles[key] || '');\n\n        result = result.concat(content.match(new RegExp('@[a-z0-9]+', 'g')));\n    });\n\n    return result;\n}"]}