"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; function helpers() { const data = require("@babel/helpers"); helpers = function () { return data; }; return data; } function _generator() { const data = require("@babel/generator"); _generator = function () { return data; }; return data; } function _template() { const data = require("@babel/template"); _template = function () { return data; }; return data; } function _t() { const data = require("@babel/types"); _t = function () { return data; }; return data; } var _file = require("../transformation/file/file"); const { arrayExpression, assignmentExpression, binaryExpression, blockStatement, callExpression, cloneNode, conditionalExpression, exportNamedDeclaration, exportSpecifier, expressionStatement, functionExpression, identifier, memberExpression, objectExpression, program, stringLiteral, unaryExpression, variableDeclaration, variableDeclarator } = _t(); const buildUmdWrapper = replacements => _template().default.statement` (function (root, factory) { if (typeof define === "function" && define.amd) { define(AMD_ARGUMENTS, factory); } else if (typeof exports === "object") { factory(COMMON_ARGUMENTS); } else { factory(BROWSER_ARGUMENTS); } })(UMD_ROOT, function (FACTORY_PARAMETERS) { FACTORY_BODY }); `(replacements); function buildGlobal(allowlist) { const namespace = identifier("babelHelpers"); const body = []; const container = functionExpression(null, [identifier("global")], blockStatement(body)); const tree = program([expressionStatement(callExpression(container, [conditionalExpression(binaryExpression("===", unaryExpression("typeof", identifier("global")), stringLiteral("undefined")), identifier("self"), identifier("global"))]))]); body.push(variableDeclaration("var", [variableDeclarator(namespace, assignmentExpression("=", memberExpression(identifier("global"), namespace), objectExpression([])))])); buildHelpers(body, namespace, allowlist); return tree; } function buildModule(allowlist) { const body = []; const refs = buildHelpers(body, null, allowlist); body.unshift(exportNamedDeclaration(null, Object.keys(refs).map(name => { return exportSpecifier(cloneNode(refs[name]), identifier(name)); }))); return program(body, [], "module"); } function buildUmd(allowlist) { const namespace = identifier("babelHelpers"); const body = []; body.push(variableDeclaration("var", [variableDeclarator(namespace, identifier("global"))])); buildHelpers(body, namespace, allowlist); return program([buildUmdWrapper({ FACTORY_PARAMETERS: identifier("global"), BROWSER_ARGUMENTS: assignmentExpression("=", memberExpression(identifier("root"), namespace), objectExpression([])), COMMON_ARGUMENTS: identifier("exports"), AMD_ARGUMENTS: arrayExpression([stringLiteral("exports")]), FACTORY_BODY: body, UMD_ROOT: identifier("this") })]); } function buildVar(allowlist) { const namespace = identifier("babelHelpers"); const body = []; body.push(variableDeclaration("var", [variableDeclarator(namespace, objectExpression([]))])); const tree = program(body); buildHelpers(body, namespace, allowlist); body.push(expressionStatement(namespace)); return tree; } function buildHelpers(body, namespace, allowlist) { const getHelperReference = name => { return namespace ? memberExpression(namespace, identifier(name)) : identifier(`_${name}`); }; const refs = {}; helpers().list.forEach(function (name) { if (allowlist && allowlist.indexOf(name) < 0) return; const ref = refs[name] = getHelperReference(name); helpers().ensure(name, _file.default); const { nodes } = helpers().get(name, getHelperReference, ref); body.push(...nodes); }); return refs; } function _default(allowlist, outputType = "global") { let tree; const build = { global: buildGlobal, module: buildModule, umd: buildUmd, var: buildVar }[outputType]; if (build) { tree = build(allowlist); } else { throw new Error(`Unsupported output type ${outputType}`); } return (0, _generator().default)(tree).code; } 0 && 0;