mjml-migrate
Advanced tools
Comparing version 4.6.0 to 4.6.2
#!/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" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
2
10846
200
+ Added@babel/runtime@^7.8.7
+ Added@babel/runtime@7.25.6(transitive)
+ Addedregenerator-runtime@0.14.1(transitive)
- Removedbabel-runtime@^6.26.0