"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const lodash_1 = require("lodash");
const internal_modules_prefix_1 = __importDefault(require("./internal-modules-prefix"));
const is_file_protocol_1 = __importDefault(require("../shared/utils/is-file-protocol"));
const BABEL = require.resolve('@babel/core');
const BABEL_MODULES_DIR = BABEL.replace(new RegExp(`^(.*${(0, lodash_1.escapeRegExp)(path_1.sep)}node_modules${(0, lodash_1.escapeRegExp)(path_1.sep)})(.*)`), '$1');
const BABEL_7 = BABEL_MODULES_DIR + '@babel';
const BABEL_RELATED = BABEL_MODULES_DIR + 'babel-';
const REGENERATOR_RUNTIME = BABEL_MODULES_DIR + 'regenerator-runtime' + path_1.sep;
const GENSYNC = BABEL_MODULES_DIR + 'gensync'; // NOTE: @babel/parser uses this module internally.
const TESTCAFE_LIB = (0, path_1.join)(__dirname, '../');
const TESTCAFE_BIN = (0, path_1.join)(__dirname, '../../bin');
const TESTCAFE_SRC = (0, path_1.join)(__dirname, '../../src');
const TESTCAFE_HAMMERHEAD = require.resolve('testcafe-hammerhead');
const SOURCE_MAP_SUPPORT = require.resolve('source-map-support');
const INTERNAL_STARTS_WITH_PATH_SEGMENTS = [
    TESTCAFE_LIB,
    TESTCAFE_BIN,
    TESTCAFE_SRC,
    BABEL_RELATED,
    REGENERATOR_RUNTIME,
    GENSYNC,
    BABEL_7,
    internal_modules_prefix_1.default,
];
const INTERNAL_INCLUDES_PATH_SEGMENTS = [
    SOURCE_MAP_SUPPORT,
    TESTCAFE_HAMMERHEAD,
];
function isInternalFile(filename = '') {
    return !filename ||
        !(filename.includes(path_1.sep) || (0, is_file_protocol_1.default)(filename)) ||
        INTERNAL_INCLUDES_PATH_SEGMENTS.some(pathSegment => filename.includes(pathSegment)) ||
        INTERNAL_STARTS_WITH_PATH_SEGMENTS.some(pathSegment => filename.startsWith(pathSegment));
}
function default_1(frame) {
    // NOTE: filter out the internals of node.js and assertion libraries
    const filename = frame.getFileName();
    return isInternalFile(filename);
}
exports.default = default_1;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW50ZXJuYWwtc3RhY2stZnJhbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL2lzLWludGVybmFsLXN0YWNrLWZyYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWlDO0FBQ2pDLG1DQUFrRDtBQUNsRCx3RkFBZ0U7QUFFaEUsd0ZBQThEO0FBRTlELE1BQU0sS0FBSyxHQUFpQixPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzNELE1BQU0saUJBQWlCLEdBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUEscUJBQVEsRUFBQyxVQUFHLENBQUMsZUFBZSxJQUFBLHFCQUFRLEVBQUMsVUFBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JILE1BQU0sT0FBTyxHQUFlLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztBQUN6RCxNQUFNLGFBQWEsR0FBUyxpQkFBaUIsR0FBRyxRQUFRLENBQUM7QUFDekQsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsR0FBRyxxQkFBcUIsR0FBRyxVQUFHLENBQUM7QUFDNUUsTUFBTSxPQUFPLEdBQWUsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBQUMsbURBQW1EO0FBQzlHLE1BQU0sWUFBWSxHQUFVLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNuRCxNQUFNLFlBQVksR0FBVSxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDekQsTUFBTSxZQUFZLEdBQVUsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3pELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ25FLE1BQU0sa0JBQWtCLEdBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxFLE1BQU0sa0NBQWtDLEdBQUc7SUFDdkMsWUFBWTtJQUNaLFlBQVk7SUFDWixZQUFZO0lBQ1osYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixPQUFPO0lBQ1AsT0FBTztJQUNQLGlDQUF1QjtDQUMxQixDQUFDO0FBRUYsTUFBTSwrQkFBK0IsR0FBRztJQUNwQyxrQkFBa0I7SUFDbEIsbUJBQW1CO0NBQ3RCLENBQUM7QUFFRixTQUFTLGNBQWMsQ0FBRSxRQUFRLEdBQUcsRUFBRTtJQUNsQyxPQUFPLENBQUMsUUFBUTtRQUNaLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQUcsQ0FBQyxJQUFJLElBQUEsMEJBQWMsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25GLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNqRyxDQUFDO0FBRUQsbUJBQXlCLEtBQWlCO0lBQ3RDLG9FQUFvRTtJQUNwRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFckMsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUxELDRCQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VwLCBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBlc2NhcGVSZWdFeHAgYXMgZXNjYXBlUmUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IElOVEVSTkFMX01PRFVMRVNfUFJFRklYIGZyb20gJy4vaW50ZXJuYWwtbW9kdWxlcy1wcmVmaXgnO1xuaW1wb3J0IHsgU3RhY2tGcmFtZSB9IGZyb20gJ2Vycm9yLXN0YWNrLXBhcnNlcic7XG5pbXBvcnQgaXNGaWxlUHJvdG9jb2wgZnJvbSAnLi4vc2hhcmVkL3V0aWxzL2lzLWZpbGUtcHJvdG9jb2wnO1xuXG5jb25zdCBCQUJFTCAgICAgICAgICAgICAgID0gcmVxdWlyZS5yZXNvbHZlKCdAYmFiZWwvY29yZScpO1xuY29uc3QgQkFCRUxfTU9EVUxFU19ESVIgICA9IEJBQkVMLnJlcGxhY2UobmV3IFJlZ0V4cChgXiguKiR7ZXNjYXBlUmUoc2VwKX1ub2RlX21vZHVsZXMke2VzY2FwZVJlKHNlcCl9KSguKilgKSwgJyQxJyk7XG5jb25zdCBCQUJFTF83ICAgICAgICAgICAgID0gQkFCRUxfTU9EVUxFU19ESVIgKyAnQGJhYmVsJztcbmNvbnN0IEJBQkVMX1JFTEFURUQgICAgICAgPSBCQUJFTF9NT0RVTEVTX0RJUiArICdiYWJlbC0nO1xuY29uc3QgUkVHRU5FUkFUT1JfUlVOVElNRSA9IEJBQkVMX01PRFVMRVNfRElSICsgJ3JlZ2VuZXJhdG9yLXJ1bnRpbWUnICsgc2VwO1xuY29uc3QgR0VOU1lOQyAgICAgICAgICAgICA9IEJBQkVMX01PRFVMRVNfRElSICsgJ2dlbnN5bmMnOyAvLyBOT1RFOiBAYmFiZWwvcGFyc2VyIHVzZXMgdGhpcyBtb2R1bGUgaW50ZXJuYWxseS5cbmNvbnN0IFRFU1RDQUZFX0xJQiAgICAgICAgPSBqb2luKF9fZGlybmFtZSwgJy4uLycpO1xuY29uc3QgVEVTVENBRkVfQklOICAgICAgICA9IGpvaW4oX19kaXJuYW1lLCAnLi4vLi4vYmluJyk7XG5jb25zdCBURVNUQ0FGRV9TUkMgICAgICAgID0gam9pbihfX2Rpcm5hbWUsICcuLi8uLi9zcmMnKTtcbmNvbnN0IFRFU1RDQUZFX0hBTU1FUkhFQUQgPSByZXF1aXJlLnJlc29sdmUoJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnKTtcbmNvbnN0IFNPVVJDRV9NQVBfU1VQUE9SVCAgPSByZXF1aXJlLnJlc29sdmUoJ3NvdXJjZS1tYXAtc3VwcG9ydCcpO1xuXG5jb25zdCBJTlRFUk5BTF9TVEFSVFNfV0lUSF9QQVRIX1NFR01FTlRTID0gW1xuICAgIFRFU1RDQUZFX0xJQixcbiAgICBURVNUQ0FGRV9CSU4sXG4gICAgVEVTVENBRkVfU1JDLFxuICAgIEJBQkVMX1JFTEFURUQsXG4gICAgUkVHRU5FUkFUT1JfUlVOVElNRSxcbiAgICBHRU5TWU5DLFxuICAgIEJBQkVMXzcsXG4gICAgSU5URVJOQUxfTU9EVUxFU19QUkVGSVgsXG5dO1xuXG5jb25zdCBJTlRFUk5BTF9JTkNMVURFU19QQVRIX1NFR01FTlRTID0gW1xuICAgIFNPVVJDRV9NQVBfU1VQUE9SVCxcbiAgICBURVNUQ0FGRV9IQU1NRVJIRUFELFxuXTtcblxuZnVuY3Rpb24gaXNJbnRlcm5hbEZpbGUgKGZpbGVuYW1lID0gJycpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWZpbGVuYW1lIHx8XG4gICAgICAgICEoZmlsZW5hbWUuaW5jbHVkZXMoc2VwKSB8fCBpc0ZpbGVQcm90b2NvbChmaWxlbmFtZSkpIHx8XG4gICAgICAgIElOVEVSTkFMX0lOQ0xVREVTX1BBVEhfU0VHTUVOVFMuc29tZShwYXRoU2VnbWVudCA9PiBmaWxlbmFtZS5pbmNsdWRlcyhwYXRoU2VnbWVudCkpIHx8XG4gICAgICAgIElOVEVSTkFMX1NUQVJUU19XSVRIX1BBVEhfU0VHTUVOVFMuc29tZShwYXRoU2VnbWVudCA9PiBmaWxlbmFtZS5zdGFydHNXaXRoKHBhdGhTZWdtZW50KSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChmcmFtZTogU3RhY2tGcmFtZSk6IGJvb2xlYW4ge1xuICAgIC8vIE5PVEU6IGZpbHRlciBvdXQgdGhlIGludGVybmFscyBvZiBub2RlLmpzIGFuZCBhc3NlcnRpb24gbGlicmFyaWVzXG4gICAgY29uc3QgZmlsZW5hbWUgPSBmcmFtZS5nZXRGaWxlTmFtZSgpO1xuXG4gICAgcmV0dXJuIGlzSW50ZXJuYWxGaWxlKGZpbGVuYW1lKTtcbn1cbiJdfQ==