{"version":3,"sources":["jsdelivr-header.js","/npm/apium-cal@14.0.0/build/index.js"],"names":[],"mappings":"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","file":"/npm/apium-cal@14.0.0/build/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/apium-cal@14.0.0/build/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","\"use strict\";\r\n/// <reference path=\"../typings/chrome-aws-lambda.d.ts\" />\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nconst fs_1 = require(\"fs\");\r\nconst lambdafs_1 = __importDefault(require(\"lambdafs\"));\r\nconst path_1 = require(\"path\");\r\nconst url_1 = require(\"url\");\r\nif (/^AWS_Lambda_nodejs(?:10|12|14)[.]x$/.test(process.env.AWS_EXECUTION_ENV) === true) {\r\n    if (process.env.FONTCONFIG_PATH === undefined) {\r\n        process.env.FONTCONFIG_PATH = '/tmp/aws';\r\n    }\r\n    if (process.env.LD_LIBRARY_PATH === undefined) {\r\n        process.env.LD_LIBRARY_PATH = '/tmp/aws/lib';\r\n    }\r\n    else if (process.env.LD_LIBRARY_PATH.startsWith('/tmp/aws/lib') !== true) {\r\n        process.env.LD_LIBRARY_PATH = [...new Set(['/tmp/aws/lib', ...process.env.LD_LIBRARY_PATH.split(':')])].join(':');\r\n    }\r\n}\r\nclass Chromium {\r\n    /**\r\n     * Downloads or symlinks a custom font and returns its basename, patching the environment so that Chromium can find it.\r\n     * If not running on AWS Lambda nor Google Cloud Functions, `null` is returned instead.\r\n     */\r\n    static font(input) {\r\n        if (Chromium.headless !== true) {\r\n            return null;\r\n        }\r\n        if (process.env.HOME === undefined) {\r\n            process.env.HOME = '/tmp';\r\n        }\r\n        if (fs_1.existsSync(`${process.env.HOME}/.fonts`) !== true) {\r\n            fs_1.mkdirSync(`${process.env.HOME}/.fonts`);\r\n        }\r\n        return new Promise((resolve, reject) => {\r\n            if (/^https?:[/][/]/i.test(input) !== true) {\r\n                input = `file://${input}`;\r\n            }\r\n            const url = new url_1.URL(input);\r\n            const output = `${process.env.HOME}/.fonts/${url.pathname.split('/').pop()}`;\r\n            if (fs_1.existsSync(output) === true) {\r\n                return resolve(output.split('/').pop());\r\n            }\r\n            if (url.protocol === 'file:') {\r\n                fs_1.access(url.pathname, (error) => {\r\n                    if (error != null) {\r\n                        return reject(error);\r\n                    }\r\n                    fs_1.symlink(url.pathname, output, (error) => {\r\n                        return error != null ? reject(error) : resolve(url.pathname.split('/').pop());\r\n                    });\r\n                });\r\n            }\r\n            else {\r\n                let handler = url.protocol === 'http:' ? require('http').get : require('https').get;\r\n                handler(input, (response) => {\r\n                    if (response.statusCode !== 200) {\r\n                        return reject(`Unexpected status code: ${response.statusCode}.`);\r\n                    }\r\n                    const stream = fs_1.createWriteStream(output);\r\n                    stream.once('error', (error) => {\r\n                        return reject(error);\r\n                    });\r\n                    response.on('data', (chunk) => {\r\n                        stream.write(chunk);\r\n                    });\r\n                    response.once('end', () => {\r\n                        stream.end(() => {\r\n                            return resolve(url.pathname.split('/').pop());\r\n                        });\r\n                    });\r\n                });\r\n            }\r\n        });\r\n    }\r\n    /**\r\n     * Returns a list of additional Chromium flags recommended for serverless environments.\r\n     * The canonical list of flags can be found on https://peter.sh/experiments/chromium-command-line-switches/.\r\n     */\r\n    static get args() {\r\n        const result = [\r\n            '--allow-running-insecure-content',\r\n            '--autoplay-policy=user-gesture-required',\r\n            '--disable-component-update',\r\n            '--disable-domain-reliability',\r\n            '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process',\r\n            '--disable-print-preview',\r\n            '--disable-setuid-sandbox',\r\n            '--disable-site-isolation-trials',\r\n            '--disable-speech-api',\r\n            '--disable-web-security',\r\n            '--disk-cache-size=33554432',\r\n            '--enable-features=SharedArrayBuffer',\r\n            '--hide-scrollbars',\r\n            '--ignore-gpu-blocklist',\r\n            '--in-process-gpu',\r\n            '--mute-audio',\r\n            '--no-default-browser-check',\r\n            '--no-pings',\r\n            '--no-sandbox',\r\n            '--no-zygote',\r\n            '--use-gl=angle',\r\n            '--use-angle=swiftshader',\r\n            '--window-size=1920,1080', // https://source.chromium.org/search?q=lang:cpp+symbol:kWindowSize&ss=chromium\r\n        ];\r\n        if (Chromium.headless === true) {\r\n            result.push('--single-process'); // https://source.chromium.org/search?q=lang:cpp+symbol:kSingleProcess&ss=chromium\r\n        }\r\n        else {\r\n            result.push('--start-maximized'); // https://source.chromium.org/search?q=lang:cpp+symbol:kStartMaximized&ss=chromium\r\n        }\r\n        return result;\r\n    }\r\n    /**\r\n     * Returns sensible default viewport settings.\r\n     */\r\n    static get defaultViewport() {\r\n        return {\r\n            deviceScaleFactor: 1,\r\n            hasTouch: false,\r\n            height: 1080,\r\n            isLandscape: true,\r\n            isMobile: false,\r\n            width: 1920,\r\n        };\r\n    }\r\n    /**\r\n     * Inflates the current version of Chromium and returns the path to the binary.\r\n     * If not running on AWS Lambda nor Google Cloud Functions, `null` is returned instead.\r\n     */\r\n    static get executablePath() {\r\n        if (Chromium.headless !== true) {\r\n            return Promise.resolve(null);\r\n        }\r\n        if (fs_1.existsSync('/tmp/chromium') === true) {\r\n            for (const file of fs_1.readdirSync('/tmp')) {\r\n                if (file.startsWith('core.chromium') === true) {\r\n                    fs_1.unlinkSync(`/tmp/${file}`);\r\n                }\r\n            }\r\n            return Promise.resolve('/tmp/chromium');\r\n        }\r\n        const input = path_1.join(__dirname, '..', 'bin');\r\n        const promises = [\r\n            lambdafs_1.default.inflate(`${input}/chromium.br`),\r\n            lambdafs_1.default.inflate(`${input}/swiftshader.tar.br`),\r\n        ];\r\n        if (/^AWS_Lambda_nodejs(?:10|12|14)[.]x$/.test(process.env.AWS_EXECUTION_ENV) === true) {\r\n            promises.push(lambdafs_1.default.inflate(`${input}/aws.tar.br`));\r\n        }\r\n        return Promise.all(promises).then((result) => result.shift());\r\n    }\r\n    /**\r\n     * Returns a boolean indicating if we are running on AWS Lambda or Google Cloud Functions.\r\n     * False is returned if Serverless environment variables `IS_LOCAL` or `IS_OFFLINE` are set.\r\n     */\r\n    static get headless() {\r\n        if (process.env.IS_LOCAL !== undefined || process.env.IS_OFFLINE !== undefined) {\r\n            return false;\r\n        }\r\n        const environments = [\r\n            'AWS_LAMBDA_FUNCTION_NAME',\r\n            'FUNCTION_NAME',\r\n            'FUNCTION_TARGET',\r\n            'FUNCTIONS_EMULATOR',\r\n        ];\r\n        return environments.some((key) => process.env[key] !== undefined);\r\n    }\r\n    /**\r\n     * Overloads puppeteer with useful methods and returns the resolved package.\r\n     */\r\n    static get puppeteer() {\r\n        for (const overload of ['Browser', 'BrowserContext', 'ElementHandle', 'FrameManager', 'Page']) {\r\n            require(`${__dirname}/puppeteer/lib/${overload}`);\r\n        }\r\n        try {\r\n            return require('puppeteer');\r\n        }\r\n        catch (error) {\r\n            if (error.code !== 'MODULE_NOT_FOUND') {\r\n                throw error;\r\n            }\r\n            return require('puppeteer-core');\r\n        }\r\n    }\r\n}\r\nmodule.exports = Chromium;\r\n"]}