�PNG  IHDR��;���IDATx��ܻn�0���K�� �)(�pA��� ���7�LeG{�� �§㻢|��ذaÆ 6lذaÆ 6lذaÆ 6lom��$^�y���ذag�5bÆ 6lذaÆ 6lذa{���� 6lذaÆ �`����}H�Fkm�,�m����Ӫ���ô�ô!� �x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6� �h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t ��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ ��Rn��~G���R���C����� �wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L�� lذaÆ 6l�^k��̱aÆ 6lذaÆ 6lذa;���� �_��ذaÆ 6lذaÆ 6lذaÆ ���R���IEND�B` var stripANSI = require('strip-ansi'); var path = require('path'); var os = require('os'); var notifier = require('node-notifier'); var DEFAULT_LOGO = path.join(__dirname, 'logo.png'); function WebpackNotifierPlugin(options) { this.options = options || {}; this.lastBuildSucceeded = false; this.isFirstBuild = true; } module.exports = WebpackNotifierPlugin; function findFirstDFS(compilation, key) { var match = compilation[key][0]; if (match) { return match; } var children = compilation.children; for (var i = 0; i < children.length; i += 1) { match = findFirstDFS(children[i], key); if (match) { return match; } } } WebpackNotifierPlugin.prototype.compileEndOptions = function compileEndOptions(stats) { if (this.isFirstBuild) { this.isFirstBuild = false; if (this.options.skipFirstNotification) { return {}; } } var imageFromOptions = ('contentImage' in this.options) ? this.options.contentImage : DEFAULT_LOGO; var successImage = ''; var warningsImage = ''; var errorsImage = ''; if (typeof imageFromOptions === 'object') { successImage = imageFromOptions.success; warningsImage = imageFromOptions.warning; errorsImage = imageFromOptions.error; } else { successImage = imageFromOptions; warningsImage = imageFromOptions; errorsImage = imageFromOptions; } var hasEmoji = this.options.emoji; var error; var contentImage; var status; if (this.hasErrors(stats)) { error = findFirstDFS(stats.compilation, 'errors'); contentImage = errorsImage; status = 'error'; } else if (this.options.onlyOnError) { return {}; } else if (this.hasWarnings(stats) && !this.options.excludeWarnings) { error = findFirstDFS(stats.compilation, 'warnings'); contentImage = warningsImage; status = 'warning'; } else if (!this.lastBuildSucceeded || this.options.alwaysNotify) { this.lastBuildSucceeded = true; return { message: (hasEmoji ? '✅ ' : '') + 'Build successful', contentImage: successImage, status: 'success' }; } else { return {}; } this.lastBuildSucceeded = false; var message = ''; if (error.module && error.module.rawRequest) { message = error.module.rawRequest + '\n'; } if (error.error) { message = (hasEmoji ? '❌ ' : '') + 'Error: ' + message + error.error.toString(); } else if (error.warning) { message = (hasEmoji ? '⚠️ ' : '') + 'Warning: ' + message + error.warning.toString(); } else if (error.message) { message = (hasEmoji ? '⚠️ ' : '') + 'Warning: ' + message + error.message.toString(); } return { message: stripANSI(message), contentImage: contentImage, status: status }; }; WebpackNotifierPlugin.prototype.hasErrors = function hasErrors(stats) { return stats.hasErrors() || stats.compilation.children.some(child => child.getStats().hasErrors()); }; WebpackNotifierPlugin.prototype.hasWarnings = function hasWarnings(stats) { return stats.hasWarnings() || stats.compilation.children.some(child => child.getStats().hasWarnings()); }; WebpackNotifierPlugin.prototype.compilationDone = function compilationDone(stats) { var { message, contentImage, status } = this.compileEndOptions(stats); if (message) { var title = this.options.title ? this.options.title : 'Webpack'; if (typeof title === 'function') { title = title({ msg: message, // compatibility with v1.11.0 message: message, status: status }); } var icon = (os.platform() === 'win32' || os.platform() === 'linux') ? contentImage : undefined; notifier.notify(Object.assign( {}, this.options, { title, message, contentImage, icon } )); } }; WebpackNotifierPlugin.prototype.apply = function apply(compiler) { if (compiler.hooks) { var plugin = { name: 'Notifier' }; compiler.hooks.done.tap(plugin, this.compilationDone.bind(this)); } else { compiler.plugin('done', this.compilationDone.bind(this)); } };