Socket
Socket
Sign inDemoInstall

@babel/helper-module-transforms

Package Overview
Dependencies
6
Maintainers
6
Versions
114
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.0.0-beta.43 to 7.0.0-beta.44

370

lib/index.js

@@ -12,3 +12,3 @@ "use strict";

enumerable: true,
get: function () {
get: function get() {
return _helperModuleImports().isModule;

@@ -19,3 +19,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _normalizeAndLoadMetadata.hasExports;

@@ -26,3 +26,3 @@ }

enumerable: true,
get: function () {
get: function get() {
return _normalizeAndLoadMetadata.isSideEffectImport;

@@ -33,5 +33,5 @@ }

function _assert() {
const data = _interopRequireDefault(require("assert"));
var data = _interopRequireDefault(require("assert"));
_assert = function () {
_assert = function _assert() {
return data;

@@ -44,5 +44,5 @@ };

function t() {
const data = _interopRequireWildcard(require("@babel/types"));
var data = _interopRequireWildcard(require("@babel/types"));
t = function () {
t = function t() {
return data;

@@ -55,5 +55,5 @@ };

function _template() {
const data = _interopRequireDefault(require("@babel/template"));
var data = _interopRequireDefault(require("@babel/template"));
_template = function () {
_template = function _template() {
return data;

@@ -66,5 +66,5 @@ };

function _chunk() {
const data = _interopRequireDefault(require("lodash/chunk"));
var data = _interopRequireDefault(require("lodash/chunk"));
_chunk = function () {
_chunk = function _chunk() {
return data;

@@ -77,5 +77,5 @@ };

function _helperModuleImports() {
const data = require("@babel/helper-module-imports");
var data = require("@babel/helper-module-imports");
_helperModuleImports = function () {
_helperModuleImports = function _helperModuleImports() {
return data;

@@ -93,2 +93,14 @@ };

var _templateObject = _taggedTemplateLiteralLoose(["var NAME = SOURCE;"]),
_templateObject2 = _taggedTemplateLiteralLoose(["\n Object.defineProperty(EXPORTS, \"NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE;\n }\n });\n "]),
_templateObject3 = _taggedTemplateLiteralLoose(["EXPORTS.NAME = NAMESPACE;"]),
_templateObject4 = _taggedTemplateLiteralLoose(["EXPORTS.EXPORT_NAME = NAMESPACE.IMPORT_NAME;"]),
_templateObject5 = _taggedTemplateLiteralLoose(["\n Object.defineProperty(EXPORTS, \"EXPORT_NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE.IMPORT_NAME;\n },\n });\n "]),
_templateObject6 = _taggedTemplateLiteralLoose(["\n EXPORTS.__esModule = true;\n "]),
_templateObject7 = _taggedTemplateLiteralLoose(["\n Object.defineProperty(EXPORTS, \"__esModule\", {\n value: true,\n });\n "]),
_templateObject8 = _taggedTemplateLiteralLoose(["\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n\n EXPORTS[key] = NAMESPACE[key];\n });\n "]),
_templateObject9 = _taggedTemplateLiteralLoose(["\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n\n Object.defineProperty(EXPORTS, key, {\n enumerable: true,\n get: function() {\n return NAMESPACE[key];\n },\n });\n });\n "]),
_templateObject10 = _taggedTemplateLiteralLoose(["\n if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;\n "]),
_templateObject11 = _taggedTemplateLiteralLoose(["EXPORTS.NAME = VALUE"]);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

@@ -98,19 +110,20 @@

function rewriteModuleStatementsAndPrepareHeader(path, {
exportName,
strict,
allowTopLevelThis,
strictMode,
loose,
noInterop,
lazy,
esNamespaceOnly
}) {
function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
function rewriteModuleStatementsAndPrepareHeader(path, _ref) {
var exportName = _ref.exportName,
strict = _ref.strict,
allowTopLevelThis = _ref.allowTopLevelThis,
strictMode = _ref.strictMode,
loose = _ref.loose,
noInterop = _ref.noInterop,
lazy = _ref.lazy,
esNamespaceOnly = _ref.esNamespaceOnly;
(0, _assert().default)((0, _helperModuleImports().isModule)(path), "Cannot process module statements in a script");
path.node.sourceType = "script";
const meta = (0, _normalizeAndLoadMetadata.default)(path, exportName, {
noInterop,
loose,
lazy,
esNamespaceOnly
var meta = (0, _normalizeAndLoadMetadata.default)(path, exportName, {
noInterop: noInterop,
loose: loose,
lazy: lazy,
esNamespaceOnly: esNamespaceOnly
});

@@ -125,3 +138,3 @@

if (strictMode !== false) {
const hasStrict = path.node.directives.some(directive => {
var hasStrict = path.node.directives.some(function (directive) {
return directive.value.value === "use strict";

@@ -135,3 +148,3 @@ });

const headers = [];
var headers = [];

@@ -142,3 +155,3 @@ if ((0, _normalizeAndLoadMetadata.hasExports)(meta) && !strict) {

const nameList = buildExportNameListDeclaration(path, meta);
var nameList = buildExportNameListDeclaration(path, meta);

@@ -150,6 +163,6 @@ if (nameList) {

headers.push(...buildExportInitializationStatements(path, meta, loose));
headers.push.apply(headers, buildExportInitializationStatements(path, meta, loose));
return {
meta,
headers
meta: meta,
headers: headers
};

@@ -159,3 +172,3 @@ }

function ensureStatementsHoisted(statements) {
statements.forEach(header => {
statements.forEach(function (header) {
header._blockHoist = 3;

@@ -170,3 +183,3 @@ });

let helper;
var helper;

@@ -178,3 +191,3 @@ if (type === "default") {

} else {
throw new Error(`Unknown interop: ${type}`);
throw new Error("Unknown interop: " + type);
}

@@ -185,10 +198,26 @@

function buildNamespaceInitStatements(metadata, sourceMetadata, loose = false) {
const statements = [];
let srcNamespace = t().identifier(sourceMetadata.name);
function buildNamespaceInitStatements(metadata, sourceMetadata, loose) {
if (loose === void 0) {
loose = false;
}
var statements = [];
var srcNamespace = t().identifier(sourceMetadata.name);
if (sourceMetadata.lazy) srcNamespace = t().callExpression(srcNamespace, []);
for (const localName of sourceMetadata.importsNamespace) {
for (var _iterator = sourceMetadata.importsNamespace, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref2;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref2 = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref2 = _i.value;
}
var localName = _ref2;
if (localName === sourceMetadata.name) continue;
statements.push(_template().default.statement`var NAME = SOURCE;`({
statements.push(_template().default.statement(_templateObject)({
NAME: localName,

@@ -200,14 +229,19 @@ SOURCE: t().cloneNode(srcNamespace)

if (loose) {
statements.push(...buildReexportsFromMeta(metadata, sourceMetadata, loose));
statements.push.apply(statements, buildReexportsFromMeta(metadata, sourceMetadata, loose));
}
for (const exportName of sourceMetadata.reexportNamespace) {
statements.push((sourceMetadata.lazy ? _template().default.statement`
Object.defineProperty(EXPORTS, "NAME", {
enumerable: true,
get: function() {
return NAMESPACE;
}
});
` : _template().default.statement`EXPORTS.NAME = NAMESPACE;`)({
for (var _iterator2 = sourceMetadata.reexportNamespace, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref3;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref3 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref3 = _i2.value;
}
var exportName = _ref3;
statements.push((sourceMetadata.lazy ? _template().default.statement(_templateObject2) : _template().default.statement(_templateObject3))({
EXPORTS: metadata.exportName,

@@ -220,3 +254,3 @@ NAME: exportName,

if (sourceMetadata.reexportAll) {
const statement = buildNamespaceReexport(metadata, t().cloneNode(srcNamespace), loose);
var statement = buildNamespaceReexport(metadata, t().cloneNode(srcNamespace), loose);
statement.loc = sourceMetadata.reexportAll.loc;

@@ -229,32 +263,27 @@ statements.push(statement);

const getTemplateForReexport = loose => {
return loose ? _template().default.statement`EXPORTS.EXPORT_NAME = NAMESPACE.IMPORT_NAME;` : _template().default`
Object.defineProperty(EXPORTS, "EXPORT_NAME", {
enumerable: true,
get: function() {
return NAMESPACE.IMPORT_NAME;
},
});
`;
var getTemplateForReexport = function getTemplateForReexport(loose) {
return loose ? _template().default.statement(_templateObject4) : (0, _template().default)(_templateObject5);
};
const buildReexportsFromMeta = (meta, metadata, loose) => {
const namespace = metadata.lazy ? t().callExpression(t().identifier(metadata.name), []) : t().identifier(metadata.name);
const templateForCurrentMode = getTemplateForReexport(loose);
return Array.from(metadata.reexports, ([exportName, importName]) => templateForCurrentMode({
EXPORTS: meta.exportName,
EXPORT_NAME: exportName,
NAMESPACE: t().cloneNode(namespace),
IMPORT_NAME: importName
}));
var buildReexportsFromMeta = function buildReexportsFromMeta(meta, metadata, loose) {
var namespace = metadata.lazy ? t().callExpression(t().identifier(metadata.name), []) : t().identifier(metadata.name);
var templateForCurrentMode = getTemplateForReexport(loose);
return Array.from(metadata.reexports, function (_ref4) {
var exportName = _ref4[0],
importName = _ref4[1];
return templateForCurrentMode({
EXPORTS: meta.exportName,
EXPORT_NAME: exportName,
NAMESPACE: t().cloneNode(namespace),
IMPORT_NAME: importName
});
});
};
function buildESModuleHeader(metadata, enumerable = false) {
return (enumerable ? _template().default.statement`
EXPORTS.__esModule = true;
` : _template().default.statement`
Object.defineProperty(EXPORTS, "__esModule", {
value: true,
});
`)({
function buildESModuleHeader(metadata, enumerable) {
if (enumerable === void 0) {
enumerable = false;
}
return (enumerable ? _template().default.statement(_templateObject6) : _template().default.statement(_templateObject7))({
EXPORTS: metadata.exportName

@@ -265,27 +294,6 @@ });

function buildNamespaceReexport(metadata, namespace, loose) {
return (loose ? _template().default.statement`
Object.keys(NAMESPACE).forEach(function(key) {
if (key === "default" || key === "__esModule") return;
VERIFY_NAME_LIST;
EXPORTS[key] = NAMESPACE[key];
});
` : _template().default.statement`
Object.keys(NAMESPACE).forEach(function(key) {
if (key === "default" || key === "__esModule") return;
VERIFY_NAME_LIST;
Object.defineProperty(EXPORTS, key, {
enumerable: true,
get: function() {
return NAMESPACE[key];
},
});
});
`)({
return (loose ? _template().default.statement(_templateObject8) : _template().default.statement(_templateObject9))({
NAMESPACE: namespace,
EXPORTS: metadata.exportName,
VERIFY_NAME_LIST: metadata.exportNameListName ? _template().default`
if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;
`({
VERIFY_NAME_LIST: metadata.exportNameListName ? (0, _template().default)(_templateObject10)({
EXPORTS_LIST: metadata.exportNameListName

@@ -297,26 +305,88 @@ }) : null

function buildExportNameListDeclaration(programPath, metadata) {
const exportedVars = Object.create(null);
var exportedVars = Object.create(null);
for (const data of metadata.local.values()) {
for (const name of data.names) {
exportedVars[name] = true;
for (var _iterator3 = metadata.local.values(), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref5;
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref5 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref5 = _i3.value;
}
var data = _ref5;
for (var _iterator5 = data.names, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref7;
if (_isArray5) {
if (_i5 >= _iterator5.length) break;
_ref7 = _iterator5[_i5++];
} else {
_i5 = _iterator5.next();
if (_i5.done) break;
_ref7 = _i5.value;
}
var _name = _ref7;
exportedVars[_name] = true;
}
}
let hasReexport = false;
var hasReexport = false;
for (const data of metadata.source.values()) {
for (const exportName of data.reexports.keys()) {
exportedVars[exportName] = true;
for (var _iterator4 = metadata.source.values(), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref6;
if (_isArray4) {
if (_i4 >= _iterator4.length) break;
_ref6 = _iterator4[_i4++];
} else {
_i4 = _iterator4.next();
if (_i4.done) break;
_ref6 = _i4.value;
}
for (const exportName of data.reexportNamespace) {
var _data = _ref6;
for (var _iterator6 = _data.reexports.keys(), _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
var _ref8;
if (_isArray6) {
if (_i6 >= _iterator6.length) break;
_ref8 = _iterator6[_i6++];
} else {
_i6 = _iterator6.next();
if (_i6.done) break;
_ref8 = _i6.value;
}
var exportName = _ref8;
exportedVars[exportName] = true;
}
hasReexport = hasReexport || data.reexportAll;
for (var _iterator7 = _data.reexportNamespace, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
var _ref9;
if (_isArray7) {
if (_i7 >= _iterator7.length) break;
_ref9 = _iterator7[_i7++];
} else {
_i7 = _iterator7.next();
if (_i7.done) break;
_ref9 = _i7.value;
}
var _exportName = _ref9;
exportedVars[_exportName] = true;
}
hasReexport = hasReexport || _data.reexportAll;
}
if (!hasReexport || Object.keys(exportedVars).length === 0) return null;
const name = programPath.scope.generateUidIdentifier("exportNames");
var name = programPath.scope.generateUidIdentifier("exportNames");
delete exportedVars.default;

@@ -329,20 +399,64 @@ return {

function buildExportInitializationStatements(programPath, metadata, loose = false) {
const initStatements = [];
const exportNames = [];
function buildExportInitializationStatements(programPath, metadata, loose) {
if (loose === void 0) {
loose = false;
}
for (const [localName, data] of metadata.local) {
var initStatements = [];
var exportNames = [];
for (var _iterator8 = metadata.local, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
var _ref10;
if (_isArray8) {
if (_i8 >= _iterator8.length) break;
_ref10 = _iterator8[_i8++];
} else {
_i8 = _iterator8.next();
if (_i8.done) break;
_ref10 = _i8.value;
}
var _ref12 = _ref10,
localName = _ref12[0],
data = _ref12[1];
if (data.kind === "import") {} else if (data.kind === "hoisted") {
initStatements.push(buildInitStatement(metadata, data.names, t().identifier(localName)));
} else {
exportNames.push(...data.names);
exportNames.push.apply(exportNames, data.names);
}
}
for (const data of metadata.source.values()) {
for (var _iterator9 = metadata.source.values(), _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
var _ref11;
if (_isArray9) {
if (_i9 >= _iterator9.length) break;
_ref11 = _iterator9[_i9++];
} else {
_i9 = _iterator9.next();
if (_i9.done) break;
_ref11 = _i9.value;
}
var data = _ref11;
if (!loose) {
initStatements.push(...buildReexportsFromMeta(metadata, data, loose));
initStatements.push.apply(initStatements, buildReexportsFromMeta(metadata, data, loose));
}
for (const exportName of data.reexportNamespace) {
for (var _iterator10 = data.reexportNamespace, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) {
var _ref13;
if (_isArray10) {
if (_i10 >= _iterator10.length) break;
_ref13 = _iterator10[_i10++];
} else {
_i10 = _iterator10.next();
if (_i10.done) break;
_ref13 = _i10.value;
}
var exportName = _ref13;
exportNames.push(exportName);

@@ -352,3 +466,3 @@ }

initStatements.push(...(0, _chunk().default)(exportNames, 100).map(members => {
initStatements.push.apply(initStatements, (0, _chunk().default)(exportNames, 100).map(function (members) {
return buildInitStatement(metadata, members, programPath.scope.buildUndefinedNode());

@@ -360,7 +474,9 @@ }));

function buildInitStatement(metadata, exportNames, initExpr) {
return t().expressionStatement(exportNames.reduce((acc, exportName) => _template().default.expression`EXPORTS.NAME = VALUE`({
EXPORTS: metadata.exportName,
NAME: exportName,
VALUE: acc
}), initExpr));
return t().expressionStatement(exportNames.reduce(function (acc, exportName) {
return _template().default.expression(_templateObject11)({
EXPORTS: metadata.exportName,
NAME: exportName,
VALUE: acc
});
}, initExpr));
}

@@ -11,5 +11,5 @@ "use strict";

function _path() {
const data = require("path");
var data = require("path");
_path = function () {
_path = function _path() {
return data;

@@ -22,5 +22,5 @@ };

function _helperSplitExportDeclaration() {
const data = _interopRequireDefault(require("@babel/helper-split-export-declaration"));
var data = _interopRequireDefault(require("@babel/helper-split-export-declaration"));
_helperSplitExportDeclaration = function () {
_helperSplitExportDeclaration = function _helperSplitExportDeclaration() {
return data;

@@ -35,7 +35,6 @@ };

function hasExports(metadata) {
const {
local,
source
} = metadata;
return local.size > 0 || Array.from(source).some(([, meta]) => {
var local = metadata.local,
source = metadata.source;
return local.size > 0 || Array.from(source).some(function (_ref) {
var meta = _ref[1];
return meta.reexports.size > 0 || meta.reexportNamespace.size > 0 || !!meta.reexportAll;

@@ -49,8 +48,13 @@ });

function normalizeModuleAndLoadMetadata(programPath, exportName, {
noInterop = false,
loose = false,
lazy = false,
esNamespaceOnly = false
} = {}) {
function normalizeModuleAndLoadMetadata(programPath, exportName, _temp) {
var _ref2 = _temp === void 0 ? {} : _temp,
_ref2$noInterop = _ref2.noInterop,
noInterop = _ref2$noInterop === void 0 ? false : _ref2$noInterop,
_ref2$loose = _ref2.loose,
loose = _ref2$loose === void 0 ? false : _ref2$loose,
_ref2$lazy = _ref2.lazy,
lazy = _ref2$lazy === void 0 ? false : _ref2$lazy,
_ref2$esNamespaceOnly = _ref2.esNamespaceOnly,
esNamespaceOnly = _ref2$esNamespaceOnly === void 0 ? false : _ref2$esNamespaceOnly;
if (!exportName) {

@@ -61,12 +65,27 @@ exportName = programPath.scope.generateUidIdentifier("exports").name;

nameAnonymousExports(programPath);
const {
local,
source
} = getModuleMetadata(programPath, {
loose,
lazy
});
var _getModuleMetadata = getModuleMetadata(programPath, {
loose: loose,
lazy: lazy
}),
local = _getModuleMetadata.local,
source = _getModuleMetadata.source;
removeModuleDeclarations(programPath);
for (const [, metadata] of source) {
for (var _iterator = source, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref3;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref3 = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref3 = _i.value;
}
var _ref4 = _ref3,
metadata = _ref4[1];
if (metadata.importsNamespace.size > 0) {

@@ -84,19 +103,18 @@ metadata.name = metadata.importsNamespace.values().next().value;

return {
exportName,
exportName: exportName,
exportNameListName: null,
local,
source
local: local,
source: source
};
}
function getModuleMetadata(programPath, {
loose,
lazy
}) {
const localData = getLocalExportMetadata(programPath, loose);
const sourceData = new Map();
function getModuleMetadata(programPath, _ref5) {
var loose = _ref5.loose,
lazy = _ref5.lazy;
var localData = getLocalExportMetadata(programPath, loose);
var sourceData = new Map();
const getData = sourceNode => {
const source = sourceNode.value;
let data = sourceData.get(source);
var getData = function getData(sourceNode) {
var source = sourceNode.value;
var data = sourceData.get(source);

@@ -121,15 +139,15 @@ if (!data) {

programPath.get("body").forEach(child => {
programPath.get("body").forEach(function (child) {
if (child.isImportDeclaration()) {
const data = getData(child.node.source);
var data = getData(child.node.source);
if (!data.loc) data.loc = child.node.loc;
child.get("specifiers").forEach(spec => {
child.get("specifiers").forEach(function (spec) {
if (spec.isImportDefaultSpecifier()) {
const localName = spec.get("local").node.name;
var localName = spec.get("local").node.name;
data.imports.set(localName, "default");
const reexport = localData.get(localName);
var reexport = localData.get(localName);
if (reexport) {
localData.delete(localName);
reexport.names.forEach(name => {
reexport.names.forEach(function (name) {
data.reexports.set(name, "default");

@@ -139,9 +157,11 @@ });

} else if (spec.isImportNamespaceSpecifier()) {
const localName = spec.get("local").node.name;
data.importsNamespace.add(localName);
const reexport = localData.get(localName);
var _localName = spec.get("local").node.name;
data.importsNamespace.add(_localName);
if (reexport) {
localData.delete(localName);
reexport.names.forEach(name => {
var _reexport = localData.get(_localName);
if (_reexport) {
localData.delete(_localName);
_reexport.names.forEach(function (name) {
data.reexportNamespace.add(name);

@@ -151,10 +171,12 @@ });

} else if (spec.isImportSpecifier()) {
const importName = spec.get("imported").node.name;
const localName = spec.get("local").node.name;
data.imports.set(localName, importName);
const reexport = localData.get(localName);
var importName = spec.get("imported").node.name;
var _localName2 = spec.get("local").node.name;
data.imports.set(_localName2, importName);
if (reexport) {
localData.delete(localName);
reexport.names.forEach(name => {
var _reexport2 = localData.get(_localName2);
if (_reexport2) {
localData.delete(_localName2);
_reexport2.names.forEach(function (name) {
data.reexports.set(name, importName);

@@ -166,11 +188,13 @@ });

} else if (child.isExportAllDeclaration()) {
const data = getData(child.node.source);
if (!data.loc) data.loc = child.node.loc;
data.reexportAll = {
var _data = getData(child.node.source);
if (!_data.loc) _data.loc = child.node.loc;
_data.reexportAll = {
loc: child.node.loc
};
} else if (child.isExportNamedDeclaration() && child.node.source) {
const data = getData(child.node.source);
if (!data.loc) data.loc = child.node.loc;
child.get("specifiers").forEach(spec => {
var _data2 = getData(child.node.source);
if (!_data2.loc) _data2.loc = child.node.loc;
child.get("specifiers").forEach(function (spec) {
if (!spec.isExportSpecifier()) {

@@ -180,6 +204,7 @@ throw spec.buildCodeFrameError("Unexpected export specifier type");

const importName = spec.get("local").node.name;
const exportName = spec.get("exported").node.name;
data.reexports.set(exportName, importName);
var importName = spec.get("local").node.name;
var exportName = spec.get("exported").node.name;
_data2.reexports.set(exportName, importName);
if (exportName === "__esModule") {

@@ -192,3 +217,16 @@ throw exportName.buildCodeFrameError('Illegal export "__esModule".');

for (const metadata of sourceData.values()) {
for (var _iterator2 = sourceData.values(), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref6;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref6 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref6 = _i2.value;
}
var metadata = _ref6;
if (metadata.importsNamespace.size > 0) {

@@ -199,11 +237,35 @@ metadata.interop = "namespace";

let needsDefault = false;
let needsNamed = false;
var needsDefault = false;
var needsNamed = false;
for (const importName of metadata.imports.values()) {
for (var _iterator4 = metadata.imports.values(), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref8;
if (_isArray4) {
if (_i4 >= _iterator4.length) break;
_ref8 = _iterator4[_i4++];
} else {
_i4 = _iterator4.next();
if (_i4.done) break;
_ref8 = _i4.value;
}
var importName = _ref8;
if (importName === "default") needsDefault = true;else needsNamed = true;
}
for (const importName of metadata.reexports.values()) {
if (importName === "default") needsDefault = true;else needsNamed = true;
for (var _iterator5 = metadata.reexports.values(), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref9;
if (_isArray5) {
if (_i5 >= _iterator5.length) break;
_ref9 = _iterator5[_i5++];
} else {
_i5 = _iterator5.next();
if (_i5.done) break;
_ref9 = _i5.value;
}
var _importName = _ref9;
if (_importName === "default") needsDefault = true;else needsNamed = true;
}

@@ -218,12 +280,27 @@

for (const [source, metadata] of sourceData) {
if (lazy !== false && !(isSideEffectImport(metadata) || metadata.reexportAll)) {
for (var _iterator3 = sourceData, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref7;
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref7 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref7 = _i3.value;
}
var _ref10 = _ref7,
_source = _ref10[0],
_metadata = _ref10[1];
if (lazy !== false && !(isSideEffectImport(_metadata) || _metadata.reexportAll)) {
if (lazy === true) {
metadata.lazy = !/\./.test(source);
_metadata.lazy = !/\./.test(_source);
} else if (Array.isArray(lazy)) {
metadata.lazy = lazy.indexOf(source);
_metadata.lazy = lazy.indexOf(_source);
} else if (typeof lazy === "function") {
metadata.lazy = lazy(source);
_metadata.lazy = lazy(_source);
} else {
throw new Error(`.lazy must be a boolean, string array, or function`);
throw new Error(".lazy must be a boolean, string array, or function");
}

@@ -240,5 +317,5 @@ }

function getLocalExportMetadata(programPath, loose) {
const bindingKindLookup = new Map();
programPath.get("body").forEach(child => {
let kind;
var bindingKindLookup = new Map();
programPath.get("body").forEach(function (child) {
var kind;

@@ -254,3 +331,3 @@ if (child.isImportDeclaration()) {

} else if (loose && child.node.source && child.get("source").isStringLiteral()) {
child.node.specifiers.forEach(specifier => {
child.node.specifiers.forEach(function (specifier) {
bindingKindLookup.set(specifier.local.name, "block");

@@ -277,17 +354,17 @@ });

Object.keys(child.getOuterBindingIdentifiers()).forEach(name => {
Object.keys(child.getOuterBindingIdentifiers()).forEach(function (name) {
bindingKindLookup.set(name, kind);
});
});
const localMetadata = new Map();
var localMetadata = new Map();
const getLocalMetadata = idPath => {
const localName = idPath.node.name;
let metadata = localMetadata.get(localName);
var getLocalMetadata = function getLocalMetadata(idPath) {
var localName = idPath.node.name;
var metadata = localMetadata.get(localName);
if (!metadata) {
const kind = bindingKindLookup.get(localName);
var _kind = bindingKindLookup.get(localName);
if (kind === undefined) {
throw idPath.buildCodeFrameError(`Exporting local "${localName}", which is not declared.`);
if (_kind === undefined) {
throw idPath.buildCodeFrameError("Exporting local \"" + localName + "\", which is not declared.");
}

@@ -297,3 +374,3 @@

names: [],
kind
kind: _kind
};

@@ -306,8 +383,8 @@ localMetadata.set(localName, metadata);

programPath.get("body").forEach(child => {
programPath.get("body").forEach(function (child) {
if (child.isExportNamedDeclaration() && (loose || !child.node.source)) {
if (child.node.declaration) {
const declaration = child.get("declaration");
const ids = declaration.getOuterBindingIdentifierPaths();
Object.keys(ids).forEach(name => {
var declaration = child.get("declaration");
var ids = declaration.getOuterBindingIdentifierPaths();
Object.keys(ids).forEach(function (name) {
if (name === "__esModule") {

@@ -320,5 +397,5 @@ throw declaration.buildCodeFrameError('Illegal export "__esModule".');

} else {
child.get("specifiers").forEach(spec => {
const local = spec.get("local");
const exported = spec.get("exported");
child.get("specifiers").forEach(function (spec) {
var local = spec.get("local");
var exported = spec.get("exported");

@@ -333,8 +410,8 @@ if (exported.node.name === "__esModule") {

} else if (child.isExportDefaultDeclaration()) {
const declaration = child.get("declaration");
var _declaration = child.get("declaration");
if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) {
getLocalMetadata(declaration.get("id")).names.push("default");
if (_declaration.isFunctionDeclaration() || _declaration.isClassDeclaration()) {
getLocalMetadata(_declaration.get("id")).names.push("default");
} else {
throw declaration.buildCodeFrameError("Unexpected default expression export.");
throw _declaration.buildCodeFrameError("Unexpected default expression export.");
}

@@ -347,3 +424,3 @@ }

function nameAnonymousExports(programPath) {
programPath.get("body").forEach(child => {
programPath.get("body").forEach(function (child) {
if (!child.isExportDefaultDeclaration()) return;

@@ -355,3 +432,3 @@ (0, _helperSplitExportDeclaration().default)(child);

function removeModuleDeclarations(programPath) {
programPath.get("body").forEach(child => {
programPath.get("body").forEach(function (child) {
if (child.isImportDeclaration()) {

@@ -367,3 +444,3 @@ child.remove();

} else if (child.isExportDefaultDeclaration()) {
const declaration = child.get("declaration");
var declaration = child.get("declaration");

@@ -370,0 +447,0 @@ if (declaration.isFunctionDeclaration() || declaration.isClassDeclaration()) {

@@ -9,5 +9,5 @@ "use strict";

function _assert() {
const data = _interopRequireDefault(require("assert"));
var data = _interopRequireDefault(require("assert"));
_assert = function () {
_assert = function _assert() {
return data;

@@ -20,5 +20,5 @@ };

function t() {
const data = _interopRequireWildcard(require("@babel/types"));
var data = _interopRequireWildcard(require("@babel/types"));
t = function () {
t = function t() {
return data;

@@ -31,5 +31,5 @@ };

function _template() {
const data = _interopRequireDefault(require("@babel/template"));
var data = _interopRequireDefault(require("@babel/template"));
_template = function () {
_template = function _template() {
return data;

@@ -42,5 +42,5 @@ };

function _helperSimpleAccess() {
const data = _interopRequireDefault(require("@babel/helper-simple-access"));
var data = _interopRequireDefault(require("@babel/helper-simple-access"));
_helperSimpleAccess = function () {
_helperSimpleAccess = function _helperSimpleAccess() {
return data;

@@ -52,2 +52,4 @@ };

var _templateObject = _taggedTemplateLiteralLoose(["\n (function() {\n throw new Error('\"' + '", "' + '\" is read-only.');\n })()\n "]);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

@@ -57,16 +59,59 @@

function _taggedTemplateLiteralLoose(strings, raw) { if (!raw) { raw = strings.slice(0); } strings.raw = raw; return strings; }
function rewriteLiveReferences(programPath, metadata) {
const imported = new Map();
const exported = new Map();
var imported = new Map();
var exported = new Map();
const requeueInParent = path => {
var requeueInParent = function requeueInParent(path) {
programPath.requeue(path);
};
for (const [source, data] of metadata.source) {
for (const [localName, importName] of data.imports) {
for (var _iterator = metadata.source, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var _ref4 = _ref,
source = _ref4[0],
data = _ref4[1];
for (var _iterator3 = data.imports, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref5;
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref5 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) break;
_ref5 = _i3.value;
}
var _ref7 = _ref5,
localName = _ref7[0],
importName = _ref7[1];
imported.set(localName, [source, importName, null]);
}
for (const localName of data.importsNamespace) {
for (var _iterator4 = data.importsNamespace, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref6;
if (_isArray4) {
if (_i4 >= _iterator4.length) break;
_ref6 = _iterator4[_i4++];
} else {
_i4 = _iterator4.next();
if (_i4.done) break;
_ref6 = _i4.value;
}
var localName = _ref6;
imported.set(localName, [source, null, localName]);

@@ -76,5 +121,21 @@ }

for (const [local, data] of metadata.local) {
let exportMeta = exported.get(local);
for (var _iterator2 = metadata.local, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _exportMeta;
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var _ref8 = _ref2,
local = _ref8[0],
data = _ref8[1];
var exportMeta = exported.get(local);
if (!exportMeta) {

@@ -85,21 +146,24 @@ exportMeta = [];

exportMeta.push(...data.names);
(_exportMeta = exportMeta).push.apply(_exportMeta, data.names);
}
programPath.traverse(rewriteBindingInitVisitor, {
metadata,
requeueInParent,
metadata: metadata,
requeueInParent: requeueInParent,
scope: programPath.scope,
exported
exported: exported
});
(0, _helperSimpleAccess().default)(programPath, new Set([...Array.from(imported.keys()), ...Array.from(exported.keys())]));
(0, _helperSimpleAccess().default)(programPath, new Set(Array.from(imported.keys()).concat(Array.from(exported.keys()))));
programPath.traverse(rewriteReferencesVisitor, {
seen: new WeakSet(),
metadata,
requeueInParent,
metadata: metadata,
requeueInParent: requeueInParent,
scope: programPath.scope,
imported,
exported,
buildImportReference: ([source, importName, localName], identNode) => {
const meta = metadata.source.get(source);
imported: imported,
exported: exported,
buildImportReference: function buildImportReference(_ref3, identNode) {
var source = _ref3[0],
importName = _ref3[1],
localName = _ref3[2];
var meta = metadata.source.get(source);

@@ -111,3 +175,3 @@ if (localName) {

let namespace = t().identifier(meta.name);
var namespace = t().identifier(meta.name);
if (meta.lazy) namespace = t().callExpression(namespace, []);

@@ -119,26 +183,20 @@ return t().memberExpression(namespace, t().identifier(importName));

const rewriteBindingInitVisitor = {
ClassProperty(path) {
var rewriteBindingInitVisitor = {
ClassProperty: function ClassProperty(path) {
path.skip();
},
Function(path) {
Function: function Function(path) {
path.skip();
},
ClassDeclaration(path) {
const {
requeueInParent,
exported,
metadata
} = this;
const {
id
} = path.node;
ClassDeclaration: function ClassDeclaration(path) {
var requeueInParent = this.requeueInParent,
exported = this.exported,
metadata = this.metadata;
var id = path.node.id;
if (!id) throw new Error("Expected class to have a name");
const localName = id.name;
const exportNames = exported.get(localName) || [];
var localName = id.name;
var exportNames = exported.get(localName) || [];
if (exportNames.length > 0) {
const statement = t().expressionStatement(buildBindingExportAssignmentExpression(metadata, exportNames, t().identifier(localName)));
var statement = t().expressionStatement(buildBindingExportAssignmentExpression(metadata, exportNames, t().identifier(localName)));
statement._blockHoist = path.node._blockHoist;

@@ -148,14 +206,11 @@ requeueInParent(path.insertAfter(statement)[0]);

},
VariableDeclaration: function VariableDeclaration(path) {
var requeueInParent = this.requeueInParent,
exported = this.exported,
metadata = this.metadata;
Object.keys(path.getOuterBindingIdentifiers()).forEach(function (localName) {
var exportNames = exported.get(localName) || [];
VariableDeclaration(path) {
const {
requeueInParent,
exported,
metadata
} = this;
Object.keys(path.getOuterBindingIdentifiers()).forEach(localName => {
const exportNames = exported.get(localName) || [];
if (exportNames.length > 0) {
const statement = t().expressionStatement(buildBindingExportAssignmentExpression(metadata, exportNames, t().identifier(localName)));
var statement = t().expressionStatement(buildBindingExportAssignmentExpression(metadata, exportNames, t().identifier(localName)));
statement._blockHoist = path.node._blockHoist;

@@ -166,7 +221,6 @@ requeueInParent(path.insertAfter(statement)[0]);

}
};
const buildBindingExportAssignmentExpression = (metadata, exportNames, localExpr) => {
return (exportNames || []).reduce((expr, exportName) => {
var buildBindingExportAssignmentExpression = function buildBindingExportAssignmentExpression(metadata, exportNames, localExpr) {
return (exportNames || []).reduce(function (expr, exportName) {
return t().assignmentExpression("=", t().memberExpression(t().identifier(metadata.exportName), t().identifier(exportName)), expr);

@@ -176,29 +230,23 @@ }, localExpr);

const buildImportThrow = localName => {
return _template().default.expression.ast`
(function() {
throw new Error('"' + '${localName}' + '" is read-only.');
})()
`;
var buildImportThrow = function buildImportThrow(localName) {
return _template().default.expression.ast(_templateObject, localName);
};
const rewriteReferencesVisitor = {
ReferencedIdentifier(path) {
const {
seen,
buildImportReference,
scope,
imported,
requeueInParent
} = this;
var rewriteReferencesVisitor = {
ReferencedIdentifier: function ReferencedIdentifier(path) {
var seen = this.seen,
buildImportReference = this.buildImportReference,
scope = this.scope,
imported = this.imported,
requeueInParent = this.requeueInParent;
if (seen.has(path.node)) return;
seen.add(path.node);
const localName = path.node.name;
const localBinding = path.scope.getBinding(localName);
const rootBinding = scope.getBinding(localName);
var localName = path.node.name;
var localBinding = path.scope.getBinding(localName);
var rootBinding = scope.getBinding(localName);
if (rootBinding !== localBinding) return;
const importData = imported.get(localName);
var importData = imported.get(localName);
if (importData) {
const ref = buildImportReference(importData, path.node);
var ref = buildImportReference(importData, path.node);
ref.loc = path.node.loc;

@@ -211,6 +259,4 @@

} else if (path.isJSXIdentifier() && t().isMemberExpression(ref)) {
const {
object,
property
} = ref;
var object = ref.object,
property = ref.property;
path.replaceWith(t().JSXMemberExpression(t().JSXIdentifier(object.name), t().JSXIdentifier(property.name)));

@@ -225,19 +271,18 @@ } else {

},
AssignmentExpression: {
exit: function exit(path) {
var _this = this;
AssignmentExpression: {
exit(path) {
const {
scope,
seen,
imported,
exported,
requeueInParent,
buildImportReference
} = this;
var scope = this.scope,
seen = this.seen,
imported = this.imported,
exported = this.exported,
requeueInParent = this.requeueInParent,
buildImportReference = this.buildImportReference;
if (seen.has(path.node)) return;
seen.add(path.node);
const left = path.get("left");
var left = path.get("left");
if (left.isIdentifier()) {
const localName = left.node.name;
var localName = left.node.name;

@@ -248,8 +293,8 @@ if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {

const exportedNames = exported.get(localName) || [];
const importData = imported.get(localName);
var exportedNames = exported.get(localName) || [];
var importData = imported.get(localName);
if (exportedNames.length > 0 || importData) {
(0, _assert().default)(path.node.operator === "=", "Path was not simplified");
const assignment = path.node;
var assignment = path.node;

@@ -265,4 +310,6 @@ if (importData) {

} else if (left.isMemberExpression()) {} else {
const ids = left.getOuterBindingIdentifiers();
const id = Object.keys(ids).filter(localName => imported.has(localName)).pop();
var ids = left.getOuterBindingIdentifiers();
var id = Object.keys(ids).filter(function (localName) {
return imported.has(localName);
}).pop();

@@ -273,4 +320,4 @@ if (id) {

const items = [];
Object.keys(ids).forEach(localName => {
var items = [];
Object.keys(ids).forEach(function (localName) {
if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {

@@ -280,6 +327,6 @@ return;

const exportedNames = exported.get(localName) || [];
var exportedNames = exported.get(localName) || [];
if (exportedNames.length > 0) {
items.push(buildBindingExportAssignmentExpression(this.metadata, exportedNames, t().identifier(localName)));
items.push(buildBindingExportAssignmentExpression(_this.metadata, exportedNames, t().identifier(localName)));
}

@@ -289,3 +336,3 @@ });

if (items.length > 0) {
let node = t().sequenceExpression(items);
var node = t().sequenceExpression(items);

@@ -297,3 +344,3 @@ if (path.parentPath.isExpressionStatement()) {

const statement = path.insertAfter(node)[0];
var statement = path.insertAfter(node)[0];
requeueInParent(statement);

@@ -303,4 +350,3 @@ }

}
}
};

@@ -12,15 +12,12 @@ "use strict";

const rewriteThisVisitor = {
ThisExpression(path) {
var rewriteThisVisitor = {
ThisExpression: function ThisExpression(path) {
path.replaceWith(path.scope.buildUndefinedNode());
},
Function(path) {
Function: function Function(path) {
if (!path.isArrowFunctionExpression()) path.skip();
},
ClassProperty(path) {
ClassProperty: function ClassProperty(path) {
path.skip();
}
};
{
"name": "@babel/helper-module-transforms",
"version": "7.0.0-beta.43",
"version": "7.0.0-beta.44",
"description": "Babel helper functions for implementing ES6 module transformations",

@@ -11,9 +11,9 @@ "author": "Logan Smyth <loganfsmyth@gmail.com>",

"dependencies": {
"@babel/helper-module-imports": "7.0.0-beta.43",
"@babel/helper-simple-access": "7.0.0-beta.43",
"@babel/helper-split-export-declaration": "7.0.0-beta.43",
"@babel/template": "7.0.0-beta.43",
"@babel/types": "7.0.0-beta.43",
"@babel/helper-module-imports": "7.0.0-beta.44",
"@babel/helper-simple-access": "7.0.0-beta.44",
"@babel/helper-split-export-declaration": "7.0.0-beta.44",
"@babel/template": "7.0.0-beta.44",
"@babel/types": "7.0.0-beta.44",
"lodash": "^4.2.0"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc