Socket
Socket
Sign inDemoInstall

mjml-migrate

Package Overview
Dependencies
Maintainers
6
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mjml-migrate - npm Package Compare versions

Comparing version 4.6.0 to 4.6.2

40

lib/cli.js
#!/bin/env node
'use strict';
"use strict";
var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _fs = require('fs');
var _fs = _interopRequireDefault(require("fs"));
var _fs2 = _interopRequireDefault(_fs);
var _commander = _interopRequireDefault(require("commander"));
var _commander = require('commander');
var _migrate = _interopRequireDefault(require("./migrate"));
var _commander2 = _interopRequireDefault(_commander);
var _package = require("../package.json");
var _migrate = require('./migrate');
_commander["default"].version(_package.version).usage('[options] <input-file> <output-file>').parse(process.argv);
var _migrate2 = _interopRequireDefault(_migrate);
if (_commander["default"].args.length !== 2) {
_commander["default"].outputHelp();
var _package = require('../package.json');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
_commander2.default.version(_package.version).usage('[options] <input-file> <output-file>').parse(process.argv);
if (_commander2.default.args.length !== 2) {
_commander2.default.outputHelp();
process.exit(1);
}
var _program$args = (0, _slicedToArray3.default)(_commander2.default.args, 2),
var _program$args = (0, _slicedToArray2["default"])(_commander["default"].args, 2),
inputFilename = _program$args[0],
outputFilename = _program$args[1];
var input = _fs2.default.readFileSync(inputFilename, 'utf8');
var output = (0, _migrate2.default)(input);
var input = _fs["default"].readFileSync(inputFilename, 'utf8');
_fs2.default.writeFileSync(outputFilename, output);
var output = (0, _migrate["default"])(input);
// eslint-disable-next-line no-console
console.log(inputFilename + ' was converted to the MJML 4 syntax in ' + outputFilename);
_fs["default"].writeFileSync(outputFilename, output); // eslint-disable-next-line no-console
console.log("".concat(inputFilename, " was converted to the MJML 4 syntax in ").concat(outputFilename));

@@ -1,7 +0,5 @@

'use strict';
"use strict";
var unavailableTags = ['mj-html', 'mj-invoice', 'mj-list', 'mj-location'];
var attributesWithUnit = ['background-size', 'border-radius', 'border-width', 'cellpadding', 'cellspacing', 'font-size', 'height', 'icon-height', 'ico-padding', 'ico-padding-bottom', 'ico-font-size', 'ico-line-height', 'ico-padding-left', 'ico-padding-right', 'ico-padding-top', 'icon-size', 'icon-width', 'inner-padding', 'letter-spacing', 'padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-left', 'tb-border-radius', 'tb-width', 'width'];
module.exports = {

@@ -8,0 +6,0 @@ unavailableTags: unavailableTags,

@@ -1,36 +0,26 @@

'use strict';
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
exports.default = migrate;
exports["default"] = migrate;
exports.handleMjml3 = handleMjml3;
var _lodash = require('lodash');
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _mjmlParserXml = require('mjml-parser-xml');
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _mjmlParserXml2 = _interopRequireDefault(_mjmlParserXml);
var _lodash = require("lodash");
var _mjmlCore = require('mjml-core');
var _mjmlParserXml = _interopRequireDefault(require("mjml-parser-xml"));
var _jsBeautify = require('js-beautify');
var _mjmlCore = require("mjml-core");
var _config = require('./config');
var _jsBeautify = require("js-beautify");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _config = require("./config");
/* eslint-disable no-console */
var beautifyOptions = {

@@ -41,3 +31,3 @@ indent_size: 2,

preserve_newlines: false
}; /* eslint-disable no-console */
};

@@ -49,2 +39,3 @@ function removeContainerTag(bodyTag) {

}
return bodyTag;

@@ -59,4 +50,5 @@ }

if (!isNaN(value) && !(0, _lodash.isNil)(value)) {
return value + 'px';
return "".concat(value, "px");
}
return value;

@@ -67,2 +59,3 @@ }

var length = _config.attributesWithUnit.length;
for (var i = 0; i < length; i += 1) {

@@ -73,2 +66,3 @@ if (_config.attributesWithUnit[i] === attribute) {

}
return value;

@@ -95,25 +89,22 @@ }

var networks = listAllNetworks(socialTag);
socialTag.children = []; // migrate all attributes to their child attributes
socialTag.children = [];
// migrate all attributes to their child attributes
(0, _lodash.keys)(networks).forEach(function (network) {
var nameMigrated = networks[network].replace(':url', '-noshare').replace(':share', '');
var nameWithoutOpts = nameMigrated.replace('-noshare', '');
socialTag.children.push({
tagName: 'mj-social-element',
attributes: { name: nameMigrated },
content: attributes[nameWithoutOpts + '-content'] || ''
tagName: "mj-social-element",
attributes: {
name: nameMigrated
},
content: attributes["".concat(nameWithoutOpts, "-content")] || ''
});
(0, _lodash.keys)(attributes).forEach(function (attribute) {
if (attribute.match(nameWithoutOpts) && !attribute.match('content')) {
socialTag.children[network].attributes[attribute.replace(nameWithoutOpts + '-', '')] = socialTag.attributes[attribute];
socialTag.children[network].attributes[attribute.replace("".concat(nameWithoutOpts, "-"), '')] = socialTag.attributes[attribute];
delete socialTag.attributes[attribute];
}
});
});
}); // delete all content attributes from the root tag after they've been migrated
// delete all content attributes from the root tag after they've been migrated
(0, _lodash.keys)(attributes).forEach(function (attribute) {

@@ -124,3 +115,2 @@ if (attribute.match('content')) {

});
return socialTag;

@@ -136,7 +126,8 @@ }

function migrateHeroSyntax(heroTag) {
var child = (0, _lodash.find)(heroTag.children, { tagName: 'mj-hero-content' });
return (0, _extends3.default)({}, heroTag, {
var child = (0, _lodash.find)(heroTag.children, {
tagName: 'mj-hero-content'
});
return (0, _objectSpread2["default"])({}, heroTag, {
children: child.children,
attributes: (0, _extends3.default)({}, heroTag.attributes, child.attributes)
attributes: (0, _objectSpread2["default"])({}, heroTag.attributes, {}, child.attributes)
});

@@ -158,14 +149,19 @@ }

break;
case 'mj-social':
tree.children[i] = migrateSocialSyntax(tree.children[i]);
break;
case 'mj-navbar':
tree.children[i] = migrateNavbarSyntax(tree.children[i]);
break;
case 'mj-inline-links':
tree.children[i].tagName = 'mj-navbar';
break;
case 'mj-link':
tree.children[i].tagName = 'mj-navbar-link';
break;
case 'mj-hero':

@@ -180,3 +176,3 @@ tree.children[i] = migrateHeroSyntax(tree.children[i]);

} else {
console.error('Ignoring unsupported tag : ' + tree.children[i].tagName + ' on line ' + tree.children[i].line);
console.error("Ignoring unsupported tag : ".concat(tree.children[i].tagName, " on line ").concat(tree.children[i].line));
delete tree.children[i];

@@ -193,3 +189,2 @@ }

if (!node.children || !node.children.length) return false;
return node.children.some(checkV3Through);

@@ -203,10 +198,7 @@ }

content = _ref.content;
var subNode = children && children.length > 0 ? children.map(jsonToXML).join('\n') : content || '';
var stringAttrs = (0, _keys2.default)(attributes).map(function (attr) {
return attr + '="' + attributes[attr] + '"';
var stringAttrs = Object.keys(attributes).map(function (attr) {
return "".concat(attr, "=\"").concat(attributes[attr], "\"");
}).join(' ');
return '<' + tagName + (stringAttrs === '' ? '>' : ' ' + stringAttrs + '>') + subNode + '</' + tagName + '>';
return "<".concat(tagName).concat(stringAttrs === '' ? '>' : " ".concat(stringAttrs, ">")).concat(subNode, "</").concat(tagName, ">");
};

@@ -217,8 +209,8 @@

var beautify = options.beautify;
if ((typeof input === 'undefined' ? 'undefined' : (0, _typeof3.default)(input)) === 'object') return loopThrough(input);
var mjmlJson = (0, _mjmlParserXml2.default)(input, { components: _mjmlCore.components, ignoreIncludes: true });
if ((0, _typeof2["default"])(input) === 'object') return loopThrough(input);
var mjmlJson = (0, _mjmlParserXml["default"])(input, {
components: _mjmlCore.components,
ignoreIncludes: true
});
loopThrough(mjmlJson);
return beautify ? (0, _jsBeautify.html)(jsonToXML(mjmlJson), beautifyOptions) : jsonToXML(mjmlJson);

@@ -229,10 +221,7 @@ }

var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var isV3Synthax = checkV3Through(mjml);
if (!isV3Synthax) return mjml;
if (!options.noMigrateWarn) console.log('MJML v3 syntax detected, migrating to MJML v4 syntax. Use mjml -m to get the migrated MJML.');
return migrate(mjml);
}
/* eslint-enable no-console */
{
"name": "mjml-migrate",
"version": "4.6.0",
"version": "4.6.2",
"description": "A tool to migrate a template from MJML 3 to MJML 4",

@@ -10,4 +10,4 @@ "main": "lib/migrate.js",

"scripts": {
"clean": "cross-env ../../node_modules/.bin/rimraf lib",
"build": "cross-env ../../node_modules/.bin/babel src --out-dir lib"
"clean": "rimraf lib",
"build": "babel src --out-dir lib --root-mode upward"
},

@@ -21,9 +21,7 @@ "repository": {

"devDependencies": {
"babel-cli": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-3": "^6.24.1",
"cross-env": "^5.2.0"
"@babel/cli": "^7.8.4",
"rimraf": "^3.0.2"
},
"dependencies": {
"babel-runtime": "^6.26.0",
"@babel/runtime": "^7.8.7",
"commander": "^2.11.0",

@@ -35,3 +33,3 @@ "js-beautify": "^1.6.14",

},
"gitHead": "6bfd02a89a9105885b542b630360edbb75fdb080"
"gitHead": "d98f4c7ddb6e362ba50e5e6aadc66c32bb02a3ba"
}
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc