Included MJML4
This commit is contained in:
parent
e2093e22fe
commit
9f467762c0
18 changed files with 15949 additions and 3889 deletions
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "client/mjml/mjml-git"]
|
||||
path = client/mjml/mjml-git
|
||||
url = git@github.com:mjmlio/mjml.git
|
1
client/mjml/.gitignore
vendored
Normal file
1
client/mjml/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
/dist
|
1
client/mjml/mjml-git
Submodule
1
client/mjml/mjml-git
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 3ff2c60ae31a561a2fb7695bcf4eb012f6d43ede
|
9
client/mjml/mocks/fs.js
Normal file
9
client/mjml/mocks/fs.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
export default {
|
||||
readFileSync: (filename) => {
|
||||
if (filename === '/.mjmlconfig') {
|
||||
return '{ "packages": [] }';
|
||||
} else {
|
||||
console.log('readFileSync - unknown file name "' + filename + '"');
|
||||
}
|
||||
}
|
||||
};
|
1
client/mjml/mocks/uglify-js.js
Normal file
1
client/mjml/mocks/uglify-js.js
Normal file
|
@ -0,0 +1 @@
|
|||
export default {};
|
8300
client/mjml/package-lock.json
generated
Normal file
8300
client/mjml/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
32
client/mjml/package.json
Normal file
32
client/mjml/package.json
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"name": "mjml",
|
||||
"description": "mjml",
|
||||
"version": "4.2.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"html-minifier": "^3.5.3",
|
||||
"js-beautify": "^1.6.14",
|
||||
"juice": "^4.1.0",
|
||||
"lodash": "^4.17.2",
|
||||
"htmlparser2": "^3.9.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.24.1",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-plugin-transform-decorators-legacy": "^1.3.4",
|
||||
"babel-plugin-transform-function-bind": "^6.22.0",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"babel-preset-react": "^6.24.1",
|
||||
"babel-preset-stage-1": "^6.24.1",
|
||||
"css-loader": "^0.28.4",
|
||||
"file-loader": "^2.0.0",
|
||||
"i18next-conv": "^3.0.3",
|
||||
"node-sass": "^4.5.3",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"raw-loader": "^0.5.1",
|
||||
"sass-loader": "^6.0.6",
|
||||
"style-loader": "^0.18.2",
|
||||
"url-loader": "^0.5.9",
|
||||
"webpack": "^2.6.1"
|
||||
}
|
||||
}
|
135
client/mjml/webpack.config.js
Normal file
135
client/mjml/webpack.config.js
Normal file
|
@ -0,0 +1,135 @@
|
|||
const webpack = require('webpack');
|
||||
const path = require('path');
|
||||
|
||||
|
||||
module.exports = {
|
||||
entry: {
|
||||
"mjml": ['./mjml-git/packages/mjml/src/index'],
|
||||
},
|
||||
output: {
|
||||
library: 'mjml',
|
||||
filename: '[name].js',
|
||||
path: path.resolve(__dirname, './dist'),
|
||||
libraryTarget: 'umd',
|
||||
umdNamedDefine: true
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
'mjml-core/lib': path.resolve(__dirname, './mjml-git/packages/mjml-core/src'),
|
||||
'mjml-accordion': path.resolve(__dirname, './mjml-git/packages/mjml-accordion/src'),
|
||||
'mjml-body': path.resolve(__dirname, './mjml-git/packages/mjml-body/src'),
|
||||
'mjml-button': path.resolve(__dirname, './mjml-git/packages/mjml-button/src'),
|
||||
'mjml-carousel': path.resolve(__dirname, './mjml-git/packages/mjml-carousel/src'),
|
||||
'mjml-cli': path.resolve(__dirname, './mjml-git/packages/mjml-cli/src'),
|
||||
'mjml-column': path.resolve(__dirname, './mjml-git/packages/mjml-column/src'),
|
||||
'mjml-core': path.resolve(__dirname, './mjml-git/packages/mjml-core/src'),
|
||||
'mjml-divider': path.resolve(__dirname, './mjml-git/packages/mjml-divider/src'),
|
||||
'mjml-group': path.resolve(__dirname, './mjml-git/packages/mjml-group/src'),
|
||||
'mjml-head': path.resolve(__dirname, './mjml-git/packages/mjml-head/src'),
|
||||
'mjml-head-attributes': path.resolve(__dirname, './mjml-git/packages/mjml-head-attributes/src'),
|
||||
'mjml-head-breakpoint': path.resolve(__dirname, './mjml-git/packages/mjml-head-breakpoint/src'),
|
||||
'mjml-head-font': path.resolve(__dirname, './mjml-git/packages/mjml-head-font/src'),
|
||||
'mjml-head-preview': path.resolve(__dirname, './mjml-git/packages/mjml-head-preview/src'),
|
||||
'mjml-head-style': path.resolve(__dirname, './mjml-git/packages/mjml-head-style/src'),
|
||||
'mjml-head-title': path.resolve(__dirname, './mjml-git/packages/mjml-head-title/src'),
|
||||
'mjml-hero': path.resolve(__dirname, './mjml-git/packages/mjml-hero/src'),
|
||||
'mjml-image': path.resolve(__dirname, './mjml-git/packages/mjml-image/src'),
|
||||
'mjml-migrate': path.resolve(__dirname, './mjml-git/packages/mjml-migrate/src/migrate.js'),
|
||||
'mjml-navbar': path.resolve(__dirname, './mjml-git/packages/mjml-navbar/src'),
|
||||
'mjml-raw': path.resolve(__dirname, './mjml-git/packages/mjml-raw/src'),
|
||||
'mjml-section': path.resolve(__dirname, './mjml-git/packages/mjml-section/src'),
|
||||
'mjml-social': path.resolve(__dirname, './mjml-git/packages/mjml-social/src'),
|
||||
'mjml-spacer': path.resolve(__dirname, './mjml-git/packages/mjml-spacer/src'),
|
||||
'mjml-table': path.resolve(__dirname, './mjml-git/packages/mjml-table/src'),
|
||||
'mjml-text': path.resolve(__dirname, './mjml-git/packages/mjml-text/src'),
|
||||
'mjml-validator': path.resolve(__dirname, './mjml-git/packages/mjml-validator/src'),
|
||||
'mjml-wrapper': path.resolve(__dirname, './mjml-git/packages/mjml-wrapper/src'),
|
||||
'mjml-parser-xml': path.resolve(__dirname, './mjml-git/packages/mjml-parser-xml/src'),
|
||||
'fs': path.resolve(__dirname, 'mocks/fs'),
|
||||
'uglify-js': path.resolve(__dirname, 'mocks/uglify-js'),
|
||||
}
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.(js|jsx)$/,
|
||||
exclude: path.join(__dirname, 'node_modules'),
|
||||
use: [
|
||||
{
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: [
|
||||
['env', {
|
||||
targets: {
|
||||
"chrome": "58",
|
||||
"edge": "15",
|
||||
"firefox": "55",
|
||||
"ios": "10"
|
||||
}
|
||||
}],
|
||||
'stage-1'
|
||||
],
|
||||
plugins: ['add-module-exports', 'transform-react-jsx', 'transform-decorators-legacy', 'transform-function-bind'],
|
||||
babelrc: false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
{
|
||||
loader: 'style-loader'
|
||||
},
|
||||
{
|
||||
loader: 'css-loader'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.(png|jpg|gif)$/,
|
||||
use: [
|
||||
{
|
||||
loader: 'url-loader',
|
||||
options: {
|
||||
limit: 8192 // inline base64 URLs for <=8k images, direct URLs for the rest
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.scss$/,
|
||||
exclude: path.join(__dirname, 'node_modules'),
|
||||
use: [
|
||||
'style-loader',
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {
|
||||
modules: true,
|
||||
localIdentName: '[path][name]__[local]--[hash:base64:5]'
|
||||
}
|
||||
},
|
||||
'sass-loader'
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.(svg|otf|woff2|woff|ttf|eot)$/,
|
||||
use: [
|
||||
'url-loader'
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
externals: {
|
||||
jquery: 'jQuery',
|
||||
csfrToken: 'csfrToken',
|
||||
mailtrainConfig: 'mailtrainConfig'
|
||||
},
|
||||
plugins: [
|
||||
// new webpack.optimize.UglifyJsPlugin(),
|
||||
],
|
||||
watchOptions: {
|
||||
ignored: 'node_modules/',
|
||||
poll: 2000
|
||||
}
|
||||
};
|
2395
client/package-lock.json
generated
2395
client/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -65,6 +65,7 @@
|
|||
"@ckeditor/ckeditor5-dev-webpack-plugin": "^7.0.1",
|
||||
"babel-cli": "^6.24.1",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-plugin-add-module-exports": "^1.0.0",
|
||||
"babel-plugin-transform-decorators-legacy": "^1.3.4",
|
||||
"babel-plugin-transform-function-bind": "^6.22.0",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
|
|
|
@ -67,7 +67,6 @@ class Breadcrumb extends Component {
|
|||
|
||||
class SecondaryNavBar extends Component {
|
||||
static propTypes = {
|
||||
route: PropTypes.object.isRequired,
|
||||
params: PropTypes.object.isRequired,
|
||||
resolved: PropTypes.object.isRequired,
|
||||
className: PropTypes.string
|
||||
|
|
|
@ -20,12 +20,15 @@ import PropTypes
|
|||
import {
|
||||
getPublicUrl,
|
||||
getSandboxUrl,
|
||||
getTrustedUrl
|
||||
getTrustedUrl,
|
||||
getUrl
|
||||
} from "./urls";
|
||||
import {
|
||||
base,
|
||||
unbase
|
||||
} from "../../../shared/templates";
|
||||
import mjml2html from "../../mjml/dist/mjml";
|
||||
console.log(mjml2html);
|
||||
|
||||
import 'grapesjs/dist/css/grapes.min.css';
|
||||
import grapesjs from 'grapesjs';
|
||||
|
@ -51,56 +54,72 @@ export class GrapesJSSandbox extends Component {
|
|||
static propTypes = {
|
||||
entityTypeId: PropTypes.string,
|
||||
entityId: PropTypes.number,
|
||||
initialModel: PropTypes.object
|
||||
initialSource: PropTypes.string,
|
||||
initialStyle: PropTypes.string
|
||||
}
|
||||
|
||||
async exportState(method, params) {
|
||||
const editor = this.editor;
|
||||
|
||||
// If exportState comes during text editing (via RichTextEditor), we need to cancel the editing, so that the
|
||||
// text being edited is stored in the model
|
||||
const sel = editor.getSelected();
|
||||
if (sel) {
|
||||
sel.view.disableEditing();
|
||||
}
|
||||
|
||||
editor.select(null);
|
||||
|
||||
const trustedUrlBase = getTrustedUrl();
|
||||
const sandboxUrlBase = getSandboxUrl();
|
||||
const publicUrlBase = getPublicUrl();
|
||||
|
||||
const source = unbase(editor.getHtml(), trustedUrlBase, sandboxUrlBase, publicUrlBase, true);
|
||||
const style = unbase(editor.getCss(), trustedUrlBase, sandboxUrlBase, publicUrlBase, true);
|
||||
|
||||
let html;
|
||||
html = unbase(editor.getHtml(), trustedUrlBase, sandboxUrlBase, publicUrlBase, true);
|
||||
|
||||
const model = {
|
||||
css: editor.getCss(),
|
||||
source: editor.getHtml(),
|
||||
};
|
||||
const preMjml = '<mjml><mj-head></mj-head><mj-body>';
|
||||
const postMjml = '</mj-body></mjml>';
|
||||
const mjml = preMjml + source + postMjml;
|
||||
console.log(mjml);
|
||||
|
||||
console.log(model.css);
|
||||
console.log(model.source);
|
||||
const mjmlRes = mjml2html(mjml);
|
||||
console.log(mjmlRes);
|
||||
console.log(mjmlRes.html);
|
||||
console.log(mjmlRes.errors);
|
||||
console.log(mjmlRes.errors[0]);
|
||||
|
||||
return {
|
||||
html,
|
||||
model
|
||||
style: style,
|
||||
source: source
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const props = this.props;
|
||||
|
||||
parentRPC.setMethodHandler('exportState', ::this.exportState);
|
||||
|
||||
const trustedUrlBase = getTrustedUrl();
|
||||
const sandboxUrlBase = getSandboxUrl();
|
||||
const publicUrlBase = getPublicUrl();
|
||||
|
||||
const model = this.props.initialModel || {}
|
||||
const source = props.initialSource ?
|
||||
base(props.initialSource, trustedUrlBase, sandboxUrlBase, publicUrlBase) :
|
||||
' <mj-container>\n' +
|
||||
' <mj-section>\n' +
|
||||
' <mj-column>\n' +
|
||||
' <mj-text>My Company</mj-text>\n' +
|
||||
' </mj-column>\n' +
|
||||
' </mj-section>\n' +
|
||||
' </mj-container>';
|
||||
|
||||
const source = model.source && base(model.source, trustedUrlBase, sandboxUrlBase, publicUrlBase);
|
||||
const css = model.css && base(model.css, trustedUrlBase, sandboxUrlBase, publicUrlBase);
|
||||
|
||||
/*
|
||||
' <mj-container>\n' +
|
||||
' <mj-section>\n' +
|
||||
' <mj-column>\n' +
|
||||
' <mj-text>My Company</mj-text>\n' +
|
||||
' </mj-column>\n' +
|
||||
' </mj-section>\n' +
|
||||
' <mj-container>',
|
||||
*/
|
||||
const css = props.initialStyle && base(props.initialStyle, trustedUrlBase, sandboxUrlBase, publicUrlBase);
|
||||
|
||||
this.editor = grapesjs.init({
|
||||
noticeOnUnload: false,
|
||||
container: this.canvasNode,
|
||||
height: '100%',
|
||||
width: '100%',
|
||||
|
@ -126,10 +145,12 @@ export class GrapesJSSandbox extends Component {
|
|||
'gjs-mjml'
|
||||
],
|
||||
pluginsOpts: {
|
||||
'gjs-mjml': {}
|
||||
'gjs-mjml': {
|
||||
preMjml: '<mjml><mj-head></mj-head><mj-body>',
|
||||
postMjml: '</mj-body></mjml>'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
render() {
|
||||
|
|
|
@ -24,7 +24,8 @@ export class GrapesJSHost extends Component {
|
|||
static propTypes = {
|
||||
entityTypeId: PropTypes.string,
|
||||
entity: PropTypes.object,
|
||||
initialModel: PropTypes.object,
|
||||
initialSource: PropTypes.string,
|
||||
initialStyle: PropTypes.string,
|
||||
title: PropTypes.string,
|
||||
onFullscreenAsync: PropTypes.func
|
||||
}
|
||||
|
@ -47,7 +48,8 @@ export class GrapesJSHost extends Component {
|
|||
const editorData = {
|
||||
entityTypeId: this.props.entityTypeId,
|
||||
entityId: this.props.entity.id,
|
||||
initialModel: this.props.initialModel
|
||||
initialSource: this.props.initialSource,
|
||||
initialStyle: this.props.initialStyle
|
||||
};
|
||||
|
||||
const tokenData = {
|
||||
|
|
|
@ -183,28 +183,40 @@ export function getTemplateTypes(t, prefix = '', entityTypeId = ResourceType.TEM
|
|||
<GrapesJSHost
|
||||
ref={node => owner.editorNode = node}
|
||||
entity={owner.props.entity}
|
||||
initialModel={owner.getFormValue(prefix + 'grapesJSData')}
|
||||
entityTypeId={entityTypeId}
|
||||
initialSource={owner.getFormValue(prefix + 'grapesJSData').source}
|
||||
initialStyle={owner.getFormValue(prefix + 'grapesJSData').style}
|
||||
title={t('GrapesJS Template Designer')}
|
||||
onFullscreenAsync={::owner.setElementInFullscreen}
|
||||
/>
|
||||
</AlignedRow>,
|
||||
exportHTMLEditorData: async owner => {
|
||||
const {html, model} = await owner.editorNode.exportState();
|
||||
const {html, source, style} = await owner.editorNode.exportState();
|
||||
owner.updateFormValue(prefix + 'html', html);
|
||||
owner.updateFormValue(prefix + 'grapesJSData', model);
|
||||
owner.updateFormValue(prefix + 'grapesJSData', {
|
||||
source,
|
||||
style
|
||||
});
|
||||
},
|
||||
initData: () => ({
|
||||
[prefix + 'grapesJSData']: {}
|
||||
}),
|
||||
afterLoad: data => {
|
||||
data[prefix + 'grapesJSData'] = data[prefix + 'data'];
|
||||
data[prefix + 'grapesJSData'] = {
|
||||
source: data[prefix + 'data'].source,
|
||||
style: data[prefix + 'data'].style
|
||||
};
|
||||
},
|
||||
beforeSave: data => {
|
||||
data[prefix + 'data'] = data[prefix + 'grapesJSData'];
|
||||
data[prefix + 'data'] = {
|
||||
source: data[prefix + 'grapesJSData'].source,
|
||||
style: data[prefix + 'grapesJSData'].style
|
||||
};
|
||||
clearBeforeSave(data);
|
||||
},
|
||||
afterTypeChange: mutState => {},
|
||||
afterTypeChange: mutState => {
|
||||
initFieldsIfMissing(mutState, 'grapesjs');
|
||||
},
|
||||
validate: state => {}
|
||||
};
|
||||
|
||||
|
|
|
@ -9,7 +9,10 @@ const {getPublicUrl} = require('./urls');
|
|||
const bluebird = require('bluebird');
|
||||
|
||||
const hasher = require('node-object-hash')();
|
||||
|
||||
const mjml = require('mjml');
|
||||
const mjml2html = mjml.default;
|
||||
|
||||
const hbs = require('hbs');
|
||||
const juice = require('juice');
|
||||
let he = require('he');
|
||||
|
@ -40,7 +43,7 @@ async function getTemplate(template) {
|
|||
}
|
||||
|
||||
if (template.type === 'mjml') {
|
||||
const compiled = mjml(source);
|
||||
const compiled = mjml2html(source);
|
||||
|
||||
if (compiled.errors.length) {
|
||||
throw new Error(compiled.errors[0].message || compiled.errors[0]);
|
||||
|
@ -136,7 +139,7 @@ function formatMessage(campaign, list, subscription, mergeTags, message, filter,
|
|||
});
|
||||
}
|
||||
|
||||
async function prepareHtml(html) {
|
||||
async function prepareHtml(html) {
|
||||
if (!(html || '').toString().trim()) {
|
||||
return false;
|
||||
}
|
||||
|
|
8474
package-lock.json
generated
8474
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -84,7 +84,7 @@
|
|||
"libmime": "^3.1.0",
|
||||
"mailparser": "^2.0.5",
|
||||
"memory-cache": "^0.2.0",
|
||||
"mjml": "^4.1.2",
|
||||
"mjml": "^4.2.0",
|
||||
"moment": "^2.18.1",
|
||||
"moment-timezone": "^0.5.13",
|
||||
"morgan": "^1.8.2",
|
||||
|
@ -98,6 +98,7 @@
|
|||
"nodemailer": "^4.1.1",
|
||||
"nodemailer-openpgp": "^1.1.0",
|
||||
"npmlog": "^4.1.2",
|
||||
"nyc": "^13.1.0",
|
||||
"openpgp": "^2.6.1",
|
||||
"passport": "^0.4.0",
|
||||
"passport-local": "^1.0.0",
|
||||
|
|
374
shared/package-lock.json
generated
374
shared/package-lock.json
generated
|
@ -542,6 +542,380 @@
|
|||
"babel-runtime": "6.26.0"
|
||||
}
|
||||
},
|
||||
"babel-plugin-add-module-exports": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.0.tgz",
|
||||
"integrity": "sha512-m0sMxPL4FaN2K69GQgaRJa4Ny15qKSdoknIcpN+gz+NaJlAW9pge/povs13tPYsKDboflrEQC+/3kfIsONBTaw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chokidar": "2.0.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"anymatch": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
|
||||
"integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"micromatch": "3.1.10",
|
||||
"normalize-path": "2.1.1"
|
||||
}
|
||||
},
|
||||
"arr-diff": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
|
||||
"integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"array-unique": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
||||
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
|
||||
"dev": true
|
||||
},
|
||||
"braces": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
|
||||
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arr-flatten": "1.1.0",
|
||||
"array-unique": "0.3.2",
|
||||
"extend-shallow": "2.0.1",
|
||||
"fill-range": "4.0.0",
|
||||
"isobject": "3.0.1",
|
||||
"repeat-element": "1.1.3",
|
||||
"snapdragon": "0.8.2",
|
||||
"snapdragon-node": "2.1.1",
|
||||
"split-string": "3.1.0",
|
||||
"to-regex": "3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"extend-shallow": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
||||
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-extendable": "0.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"chokidar": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
|
||||
"integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"anymatch": "2.0.0",
|
||||
"async-each": "1.0.1",
|
||||
"braces": "2.3.2",
|
||||
"fsevents": "1.2.4",
|
||||
"glob-parent": "3.1.0",
|
||||
"inherits": "2.0.3",
|
||||
"is-binary-path": "1.0.1",
|
||||
"is-glob": "4.0.0",
|
||||
"lodash.debounce": "4.0.8",
|
||||
"normalize-path": "2.1.1",
|
||||
"path-is-absolute": "1.0.1",
|
||||
"readdirp": "2.2.1",
|
||||
"upath": "1.1.0"
|
||||
}
|
||||
},
|
||||
"expand-brackets": {
|
||||
"version": "2.1.4",
|
||||
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
|
||||
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"define-property": "0.2.5",
|
||||
"extend-shallow": "2.0.1",
|
||||
"posix-character-classes": "0.1.1",
|
||||
"regex-not": "1.0.2",
|
||||
"snapdragon": "0.8.2",
|
||||
"to-regex": "3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"define-property": {
|
||||
"version": "0.2.5",
|
||||
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
||||
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-descriptor": "0.1.6"
|
||||
}
|
||||
},
|
||||
"extend-shallow": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
||||
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-extendable": "0.1.1"
|
||||
}
|
||||
},
|
||||
"is-accessor-descriptor": {
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
||||
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"kind-of": "3.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"kind-of": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-buffer": "1.1.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"is-data-descriptor": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
|
||||
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"kind-of": "3.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"kind-of": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-buffer": "1.1.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"is-descriptor": {
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
|
||||
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-accessor-descriptor": "0.1.6",
|
||||
"is-data-descriptor": "0.1.4",
|
||||
"kind-of": "5.1.0"
|
||||
}
|
||||
},
|
||||
"kind-of": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
|
||||
"integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"extglob": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
|
||||
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"array-unique": "0.3.2",
|
||||
"define-property": "1.0.0",
|
||||
"expand-brackets": "2.1.4",
|
||||
"extend-shallow": "2.0.1",
|
||||
"fragment-cache": "0.2.1",
|
||||
"regex-not": "1.0.2",
|
||||
"snapdragon": "0.8.2",
|
||||
"to-regex": "3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"define-property": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
||||
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-descriptor": "1.0.2"
|
||||
}
|
||||
},
|
||||
"extend-shallow": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
||||
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-extendable": "0.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fill-range": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
|
||||
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"extend-shallow": "2.0.1",
|
||||
"is-number": "3.0.0",
|
||||
"repeat-string": "1.6.1",
|
||||
"to-regex-range": "2.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"extend-shallow": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
||||
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-extendable": "0.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
|
||||
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-glob": "3.1.0",
|
||||
"path-dirname": "1.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"is-glob": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
||||
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-extglob": "2.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"is-accessor-descriptor": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
||||
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"kind-of": "6.0.2"
|
||||
}
|
||||
},
|
||||
"is-data-descriptor": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
||||
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"kind-of": "6.0.2"
|
||||
}
|
||||
},
|
||||
"is-descriptor": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
||||
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-accessor-descriptor": "1.0.0",
|
||||
"is-data-descriptor": "1.0.0",
|
||||
"kind-of": "6.0.2"
|
||||
}
|
||||
},
|
||||
"is-extglob": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
||||
"dev": true
|
||||
},
|
||||
"is-glob": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
|
||||
"integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-extglob": "2.1.1"
|
||||
}
|
||||
},
|
||||
"is-number": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
||||
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"kind-of": "3.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"kind-of": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-buffer": "1.1.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"isobject": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
|
||||
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
|
||||
"dev": true
|
||||
},
|
||||
"kind-of": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
||||
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
|
||||
"dev": true
|
||||
},
|
||||
"micromatch": {
|
||||
"version": "3.1.10",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
|
||||
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"arr-diff": "4.0.0",
|
||||
"array-unique": "0.3.2",
|
||||
"braces": "2.3.2",
|
||||
"define-property": "2.0.2",
|
||||
"extend-shallow": "3.0.2",
|
||||
"extglob": "2.0.4",
|
||||
"fragment-cache": "0.2.1",
|
||||
"kind-of": "6.0.2",
|
||||
"nanomatch": "1.2.13",
|
||||
"object.pick": "1.3.0",
|
||||
"regex-not": "1.0.2",
|
||||
"snapdragon": "0.8.2",
|
||||
"to-regex": "3.0.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-check-es2015-constants": {
|
||||
"version": "6.22.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
|
||||
|
|
Loading…
Reference in a new issue