Comparing version 1.0.14 to 1.0.15
@@ -103,7 +103,7 @@ /******/ (function(modules) { // webpackBootstrap | ||
var Print = __webpack_require__(17); | ||
var Notification = __webpack_require__(23); | ||
var Audio = __webpack_require__(26); | ||
var State = __webpack_require__(29); | ||
var latestVersion = __webpack_require__(30); | ||
var packageInfo = __webpack_require__(31); | ||
var Notification = __webpack_require__(24); | ||
var Audio = __webpack_require__(27); | ||
var State = __webpack_require__(30); | ||
var latestVersion = __webpack_require__(31); | ||
var packageInfo = __webpack_require__(32); | ||
@@ -203,3 +203,3 @@ var isDev = process.env.NODE_ENV === 'development'; | ||
name: '/big <message>', | ||
description: 'to print a BIG ASCII text. Must be under 30 character, though.', | ||
description: 'to print a BIG ASCII text. Must be under 30 characters, though.', | ||
test: /^\/big\s.{1,30}$/, | ||
@@ -222,3 +222,5 @@ parse: function parse(msg) { | ||
username: '', | ||
// User :: { name: String } | ||
userList: [], | ||
// Room :: { name: String, users: [User] } | ||
roomList: [], | ||
@@ -425,3 +427,5 @@ currentRoom: '', | ||
Notification.messageReceived(msg); | ||
Audio.say(msg.message, msg.voice); | ||
Audio.say(msg.message, msg.voice).catch(isDev ? function (err) { | ||
return console.log('Audio.say error :', err); | ||
} : noOp); | ||
} | ||
@@ -521,3 +525,4 @@ | ||
message: message, | ||
username: this.state.username | ||
username: this.state.username, | ||
createdAt: Date.now() | ||
}; | ||
@@ -543,10 +548,9 @@ } | ||
var msg = { | ||
message: message, | ||
username: this.state.username, | ||
voice: voice | ||
}; | ||
var msg = Object.assign({}, this.formatMessage(message), { voice: voice }); | ||
this.socket.emit('say_message', msg); | ||
Audio.say(msg.message, msg.voice); | ||
Audio.say(msg.message, msg.voice).catch(isDev ? function (err) { | ||
return console.log('Audio.say error :', err); | ||
} : noOp); | ||
return Print.mySayMessage(msg); | ||
@@ -1200,2 +1204,5 @@ } | ||
var _require4 = __webpack_require__(23), | ||
formatTime = _require4.formatTime; | ||
/* ----------------------------------------- * | ||
@@ -1218,2 +1225,17 @@ Private | ||
var formatDate = function formatDate(time) { | ||
return [chalk.green('?'), chalk.white('[' + formatTime(time) + ']')]; | ||
}; | ||
var formatUsername = function formatUsername(username) { | ||
var isMe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | ||
return [chalk.white.bold(username + ':')]; | ||
}; | ||
// remove the input line | ||
var removePreviousLog = function removePreviousLog() { | ||
cursor.move('up', 1); | ||
process.stdout.write("\r\x1b[K"); | ||
}; | ||
/* ----------------------------------------- * | ||
@@ -1271,28 +1293,35 @@ Public | ||
var username = _ref2.username, | ||
_message = _ref2.message; | ||
return log(chalk.green('?'), chalk.white.bold(username + ':'), chalk.cyan(_message)); | ||
_message = _ref2.message, | ||
createdAt = _ref2.createdAt; | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username)), [chalk.cyan(_message)])); | ||
}; | ||
// message : { username : String, message : String, voice : String } -> Promise | ||
var sayMessage = function sayMessage(_ref3) { | ||
// myMessage : { username : String, message : String } -> Promise | ||
var myMessage = function myMessage(_ref3) { | ||
var username = _ref3.username, | ||
message = _ref3.message, | ||
voice = _ref3.voice; | ||
return log(chalk.green('?'), chalk.white.bold(username + ':'), chalk.cyan((voice || '') + ' says "' + message + '"')); | ||
createdAt = _ref3.createdAt; | ||
removePreviousLog(); | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username, true)), [chalk.cyan(message)])); | ||
}; | ||
// myMessage : { username : String, message : String } -> Promise | ||
var myMessage = function myMessage(msg) { | ||
// remove the input line | ||
cursor.move('up', 1); | ||
process.stdout.write("\r\x1b[K"); | ||
return message(msg); | ||
// message : { username : String, message : String, voice : String } -> Promise | ||
var sayMessage = function sayMessage(_ref4) { | ||
var username = _ref4.username, | ||
message = _ref4.message, | ||
voice = _ref4.voice, | ||
createdAt = _ref4.createdAt; | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username)), [chalk.cyan((voice || '') + ' says "' + message + '"')])); | ||
}; | ||
// mySayMessage : { username : String, message : String, voice : String } -> Promise | ||
var mySayMessage = function mySayMessage(msg) { | ||
// remove the input line | ||
cursor.move('up', 1); | ||
process.stdout.write("\r\x1b[K"); | ||
return sayMessage(msg); | ||
var mySayMessage = function mySayMessage(_ref5) { | ||
var username = _ref5.username, | ||
message = _ref5.message, | ||
voice = _ref5.voice, | ||
createdAt = _ref5.createdAt; | ||
removePreviousLog(); | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username, true)), [chalk.cyan((voice || '') + ' says "' + message + '"')])); | ||
}; | ||
@@ -1367,4 +1396,4 @@ | ||
} | ||
}]).then(function (_ref4) { | ||
var username = _ref4.username; | ||
}]).then(function (_ref6) { | ||
var username = _ref6.username; | ||
return username.trim(); | ||
@@ -1379,3 +1408,3 @@ }); | ||
type: 'input', | ||
message: username + ':', | ||
message: '[' + formatTime(Date.now()) + '] ' + username + ':', | ||
validate: function validate(value) { | ||
@@ -1390,4 +1419,4 @@ if (value.length > 255) { | ||
} | ||
}]).then(function (_ref5) { | ||
var message = _ref5.message; | ||
}]).then(function (_ref7) { | ||
var message = _ref7.message; | ||
return message.trim(); | ||
@@ -1415,4 +1444,4 @@ }); | ||
} | ||
}]).then(function (_ref6) { | ||
var room = _ref6.room; | ||
}]).then(function (_ref8) { | ||
var room = _ref8.room; | ||
return room.trim().replace(/^#/, '').replace(/\s\([0-9]+\)$/, ''); | ||
@@ -1440,4 +1469,4 @@ }).then(function (room) { | ||
} | ||
}]).then(function (_ref7) { | ||
var room = _ref7.room; | ||
}]).then(function (_ref9) { | ||
var room = _ref9.room; | ||
return room.trim(); | ||
@@ -1505,2 +1534,23 @@ }); | ||
/* 23 */ | ||
/***/ function(module, exports) { | ||
"use strict"; | ||
var addZero = function addZero(str) { | ||
return str.length < 2 ? "0" + str : str; | ||
}; | ||
var formatTime = function formatTime(time) { | ||
var date = new Date(time); | ||
var hours = date.getHours().toString(); | ||
var minutes = date.getMinutes().toString(); | ||
return addZero(hours) + ":" + addZero(minutes); | ||
}; | ||
module.exports = { | ||
formatTime: formatTime | ||
}; | ||
/***/ }, | ||
/* 24 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1510,5 +1560,5 @@ | ||
var notifier = __webpack_require__(24); | ||
var notifier = __webpack_require__(25); | ||
var path = __webpack_require__(9); | ||
var open = __webpack_require__(25); | ||
var open = __webpack_require__(26); | ||
@@ -1588,3 +1638,3 @@ var _require = __webpack_require__(13), | ||
/***/ }, | ||
/* 24 */ | ||
/* 25 */ | ||
/***/ function(module, exports) { | ||
@@ -1595,3 +1645,3 @@ | ||
/***/ }, | ||
/* 25 */ | ||
/* 26 */ | ||
/***/ function(module, exports) { | ||
@@ -1602,3 +1652,3 @@ | ||
/***/ }, | ||
/* 26 */ | ||
/* 27 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1608,4 +1658,4 @@ | ||
var Player = __webpack_require__(27); | ||
var Say = __webpack_require__(28); | ||
var Player = __webpack_require__(28); | ||
var Say = __webpack_require__(29); | ||
@@ -1634,4 +1684,2 @@ /* ----------------------------------------- * | ||
}); | ||
}).catch(function (err) { | ||
return console.log('Audio.say error :', err); | ||
}); | ||
@@ -1650,3 +1698,3 @@ }; | ||
/***/ }, | ||
/* 27 */ | ||
/* 28 */ | ||
/***/ function(module, exports) { | ||
@@ -1657,3 +1705,3 @@ | ||
/***/ }, | ||
/* 28 */ | ||
/* 29 */ | ||
/***/ function(module, exports) { | ||
@@ -1664,3 +1712,3 @@ | ||
/***/ }, | ||
/* 29 */ | ||
/* 30 */ | ||
/***/ function(module, exports) { | ||
@@ -1699,3 +1747,3 @@ | ||
/***/ }, | ||
/* 30 */ | ||
/* 31 */ | ||
/***/ function(module, exports) { | ||
@@ -1706,3 +1754,3 @@ | ||
/***/ }, | ||
/* 31 */ | ||
/* 32 */ | ||
/***/ function(module, exports) { | ||
@@ -1709,0 +1757,0 @@ |
@@ -104,7 +104,7 @@ #!/usr/bin/env node --harmony | ||
var Print = __webpack_require__(17); | ||
var Notification = __webpack_require__(23); | ||
var Audio = __webpack_require__(26); | ||
var State = __webpack_require__(29); | ||
var latestVersion = __webpack_require__(30); | ||
var packageInfo = __webpack_require__(31); | ||
var Notification = __webpack_require__(24); | ||
var Audio = __webpack_require__(27); | ||
var State = __webpack_require__(30); | ||
var latestVersion = __webpack_require__(31); | ||
var packageInfo = __webpack_require__(32); | ||
@@ -204,3 +204,3 @@ var isDev = process.env.NODE_ENV === 'development'; | ||
name: '/big <message>', | ||
description: 'to print a BIG ASCII text. Must be under 30 character, though.', | ||
description: 'to print a BIG ASCII text. Must be under 30 characters, though.', | ||
test: /^\/big\s.{1,30}$/, | ||
@@ -223,3 +223,5 @@ parse: function parse(msg) { | ||
username: '', | ||
// User :: { name: String } | ||
userList: [], | ||
// Room :: { name: String, users: [User] } | ||
roomList: [], | ||
@@ -426,3 +428,5 @@ currentRoom: '', | ||
Notification.messageReceived(msg); | ||
Audio.say(msg.message, msg.voice); | ||
Audio.say(msg.message, msg.voice).catch(isDev ? function (err) { | ||
return console.log('Audio.say error :', err); | ||
} : noOp); | ||
} | ||
@@ -522,3 +526,4 @@ | ||
message: message, | ||
username: this.state.username | ||
username: this.state.username, | ||
createdAt: Date.now() | ||
}; | ||
@@ -544,10 +549,9 @@ } | ||
var msg = { | ||
message: message, | ||
username: this.state.username, | ||
voice: voice | ||
}; | ||
var msg = Object.assign({}, this.formatMessage(message), { voice: voice }); | ||
this.socket.emit('say_message', msg); | ||
Audio.say(msg.message, msg.voice); | ||
Audio.say(msg.message, msg.voice).catch(isDev ? function (err) { | ||
return console.log('Audio.say error :', err); | ||
} : noOp); | ||
return Print.mySayMessage(msg); | ||
@@ -1201,2 +1205,5 @@ } | ||
var _require4 = __webpack_require__(23), | ||
formatTime = _require4.formatTime; | ||
/* ----------------------------------------- * | ||
@@ -1219,2 +1226,17 @@ Private | ||
var formatDate = function formatDate(time) { | ||
return [chalk.green('?'), chalk.white('[' + formatTime(time) + ']')]; | ||
}; | ||
var formatUsername = function formatUsername(username) { | ||
var isMe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | ||
return [chalk.white.bold(username + ':')]; | ||
}; | ||
// remove the input line | ||
var removePreviousLog = function removePreviousLog() { | ||
cursor.move('up', 1); | ||
process.stdout.write("\r\x1b[K"); | ||
}; | ||
/* ----------------------------------------- * | ||
@@ -1272,28 +1294,35 @@ Public | ||
var username = _ref2.username, | ||
_message = _ref2.message; | ||
return log(chalk.green('?'), chalk.white.bold(username + ':'), chalk.cyan(_message)); | ||
_message = _ref2.message, | ||
createdAt = _ref2.createdAt; | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username)), [chalk.cyan(_message)])); | ||
}; | ||
// message : { username : String, message : String, voice : String } -> Promise | ||
var sayMessage = function sayMessage(_ref3) { | ||
// myMessage : { username : String, message : String } -> Promise | ||
var myMessage = function myMessage(_ref3) { | ||
var username = _ref3.username, | ||
message = _ref3.message, | ||
voice = _ref3.voice; | ||
return log(chalk.green('?'), chalk.white.bold(username + ':'), chalk.cyan((voice || '') + ' says "' + message + '"')); | ||
createdAt = _ref3.createdAt; | ||
removePreviousLog(); | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username, true)), [chalk.cyan(message)])); | ||
}; | ||
// myMessage : { username : String, message : String } -> Promise | ||
var myMessage = function myMessage(msg) { | ||
// remove the input line | ||
cursor.move('up', 1); | ||
process.stdout.write("\r\x1b[K"); | ||
return message(msg); | ||
// message : { username : String, message : String, voice : String } -> Promise | ||
var sayMessage = function sayMessage(_ref4) { | ||
var username = _ref4.username, | ||
message = _ref4.message, | ||
voice = _ref4.voice, | ||
createdAt = _ref4.createdAt; | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username)), [chalk.cyan((voice || '') + ' says "' + message + '"')])); | ||
}; | ||
// mySayMessage : { username : String, message : String, voice : String } -> Promise | ||
var mySayMessage = function mySayMessage(msg) { | ||
// remove the input line | ||
cursor.move('up', 1); | ||
process.stdout.write("\r\x1b[K"); | ||
return sayMessage(msg); | ||
var mySayMessage = function mySayMessage(_ref5) { | ||
var username = _ref5.username, | ||
message = _ref5.message, | ||
voice = _ref5.voice, | ||
createdAt = _ref5.createdAt; | ||
removePreviousLog(); | ||
return log.apply(undefined, _toConsumableArray(formatDate(createdAt)).concat(_toConsumableArray(formatUsername(username, true)), [chalk.cyan((voice || '') + ' says "' + message + '"')])); | ||
}; | ||
@@ -1368,4 +1397,4 @@ | ||
} | ||
}]).then(function (_ref4) { | ||
var username = _ref4.username; | ||
}]).then(function (_ref6) { | ||
var username = _ref6.username; | ||
return username.trim(); | ||
@@ -1380,3 +1409,3 @@ }); | ||
type: 'input', | ||
message: username + ':', | ||
message: '[' + formatTime(Date.now()) + '] ' + username + ':', | ||
validate: function validate(value) { | ||
@@ -1391,4 +1420,4 @@ if (value.length > 255) { | ||
} | ||
}]).then(function (_ref5) { | ||
var message = _ref5.message; | ||
}]).then(function (_ref7) { | ||
var message = _ref7.message; | ||
return message.trim(); | ||
@@ -1416,4 +1445,4 @@ }); | ||
} | ||
}]).then(function (_ref6) { | ||
var room = _ref6.room; | ||
}]).then(function (_ref8) { | ||
var room = _ref8.room; | ||
return room.trim().replace(/^#/, '').replace(/\s\([0-9]+\)$/, ''); | ||
@@ -1441,4 +1470,4 @@ }).then(function (room) { | ||
} | ||
}]).then(function (_ref7) { | ||
var room = _ref7.room; | ||
}]).then(function (_ref9) { | ||
var room = _ref9.room; | ||
return room.trim(); | ||
@@ -1506,2 +1535,23 @@ }); | ||
/* 23 */ | ||
/***/ function(module, exports) { | ||
"use strict"; | ||
var addZero = function addZero(str) { | ||
return str.length < 2 ? "0" + str : str; | ||
}; | ||
var formatTime = function formatTime(time) { | ||
var date = new Date(time); | ||
var hours = date.getHours().toString(); | ||
var minutes = date.getMinutes().toString(); | ||
return addZero(hours) + ":" + addZero(minutes); | ||
}; | ||
module.exports = { | ||
formatTime: formatTime | ||
}; | ||
/***/ }, | ||
/* 24 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1511,5 +1561,5 @@ | ||
var notifier = __webpack_require__(24); | ||
var notifier = __webpack_require__(25); | ||
var path = __webpack_require__(9); | ||
var open = __webpack_require__(25); | ||
var open = __webpack_require__(26); | ||
@@ -1589,3 +1639,3 @@ var _require = __webpack_require__(13), | ||
/***/ }, | ||
/* 24 */ | ||
/* 25 */ | ||
/***/ function(module, exports) { | ||
@@ -1596,3 +1646,3 @@ | ||
/***/ }, | ||
/* 25 */ | ||
/* 26 */ | ||
/***/ function(module, exports) { | ||
@@ -1603,3 +1653,3 @@ | ||
/***/ }, | ||
/* 26 */ | ||
/* 27 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1609,4 +1659,4 @@ | ||
var Player = __webpack_require__(27); | ||
var Say = __webpack_require__(28); | ||
var Player = __webpack_require__(28); | ||
var Say = __webpack_require__(29); | ||
@@ -1635,4 +1685,2 @@ /* ----------------------------------------- * | ||
}); | ||
}).catch(function (err) { | ||
return console.log('Audio.say error :', err); | ||
}); | ||
@@ -1651,3 +1699,3 @@ }; | ||
/***/ }, | ||
/* 27 */ | ||
/* 28 */ | ||
/***/ function(module, exports) { | ||
@@ -1658,3 +1706,3 @@ | ||
/***/ }, | ||
/* 28 */ | ||
/* 29 */ | ||
/***/ function(module, exports) { | ||
@@ -1665,3 +1713,3 @@ | ||
/***/ }, | ||
/* 29 */ | ||
/* 30 */ | ||
/***/ function(module, exports) { | ||
@@ -1700,3 +1748,3 @@ | ||
/***/ }, | ||
/* 30 */ | ||
/* 31 */ | ||
/***/ function(module, exports) { | ||
@@ -1707,3 +1755,3 @@ | ||
/***/ }, | ||
/* 31 */ | ||
/* 32 */ | ||
/***/ function(module, exports) { | ||
@@ -1710,0 +1758,0 @@ |
{ | ||
"name": "ch4t", | ||
"version": "1.0.14", | ||
"version": "1.0.15", | ||
"description": "Chat with your hacker friends inside the terminal.", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -118,3 +118,3 @@ const io = require('socket.io-client') | ||
name: '/big <message>', | ||
description: 'to print a BIG ASCII text. Must be under 30 character, though.', | ||
description: 'to print a BIG ASCII text. Must be under 30 characters, though.', | ||
test: /^\/big\s.{1,30}$/, | ||
@@ -135,3 +135,5 @@ parse: msg => msg.replace('/big ', ''), | ||
username: '', | ||
// User :: { name: String } | ||
userList: [], | ||
// Room :: { name: String, users: [User] } | ||
roomList: [], | ||
@@ -279,2 +281,7 @@ currentRoom: '', | ||
Audio.say(msg.message, msg.voice) | ||
.catch( | ||
isDev | ||
? err => console.log('Audio.say error :', err) | ||
: noOp | ||
) | ||
} | ||
@@ -352,3 +359,4 @@ | ||
message, | ||
username: this.state.username | ||
username: this.state.username, | ||
createdAt: Date.now(), | ||
} | ||
@@ -367,10 +375,12 @@ } | ||
emitSayMessage({ message, voice }) { | ||
const msg = { | ||
message, | ||
username: this.state.username, | ||
voice, | ||
} | ||
const msg = Object.assign({}, this.formatMessage(message), { voice }) | ||
this.socket.emit('say_message', msg) | ||
Audio.say(msg.message, msg.voice) | ||
.catch( | ||
isDev | ||
? err => console.log('Audio.say error :', err) | ||
: noOp | ||
) | ||
return Print.mySayMessage(msg) | ||
@@ -377,0 +387,0 @@ } |
@@ -25,3 +25,2 @@ const Player = require('play-sound') | ||
}) | ||
.catch(err => console.log('Audio.say error :', err)) | ||
@@ -28,0 +27,0 @@ |
@@ -9,2 +9,3 @@ const { flatMap } = require('lodash/fp') | ||
const { wait } = require('../utils/promise') | ||
const { formatTime } = require('../utils/time') | ||
@@ -24,2 +25,17 @@ /* ----------------------------------------- * | ||
const formatDate = time => [ | ||
chalk.green('?'), | ||
chalk.white(`[${formatTime(time)}]`) | ||
] | ||
const formatUsername = (username, isMe = false) => [ | ||
chalk.white.bold(`${username}:`) | ||
] | ||
// remove the input line | ||
const removePreviousLog = () => { | ||
cursor.move('up', 1) | ||
process.stdout.write("\r\x1b[K") | ||
} | ||
/* ----------------------------------------- * | ||
@@ -29,2 +45,3 @@ Public | ||
// homeScreen : _ -> Promise | ||
@@ -88,29 +105,33 @@ const homeScreen = () => { | ||
// message : { username : String, message : String } -> Promise | ||
const message = ({ username, message }) => log( | ||
chalk.green('?'), | ||
chalk.white.bold(`${username}:`), | ||
const message = ({ username, message, createdAt }) => log( | ||
...formatDate(createdAt), | ||
...formatUsername(username), | ||
chalk.cyan(message) | ||
) | ||
// myMessage : { username : String, message : String } -> Promise | ||
const myMessage = ({ username, message, createdAt }) => { | ||
removePreviousLog() | ||
return log( | ||
...formatDate(createdAt), | ||
...formatUsername(username, true), | ||
chalk.cyan(message) | ||
) | ||
} | ||
// message : { username : String, message : String, voice : String } -> Promise | ||
const sayMessage = ({ username, message, voice }) => log( | ||
chalk.green('?'), | ||
chalk.white.bold(`${username}:`), | ||
const sayMessage = ({ username, message, voice, createdAt }) => log( | ||
...formatDate(createdAt), | ||
...formatUsername(username), | ||
chalk.cyan(`${voice || ''} says "${message}"`) | ||
) | ||
// myMessage : { username : String, message : String } -> Promise | ||
const myMessage = (msg) => { | ||
// remove the input line | ||
cursor.move('up', 1) | ||
process.stdout.write("\r\x1b[K") | ||
return message(msg) | ||
} | ||
// mySayMessage : { username : String, message : String, voice : String } -> Promise | ||
const mySayMessage = (msg) => { | ||
// remove the input line | ||
cursor.move('up', 1) | ||
process.stdout.write("\r\x1b[K") | ||
return sayMessage(msg) | ||
const mySayMessage = ({ username, message, voice, createdAt }) => { | ||
removePreviousLog() | ||
return log( | ||
...formatDate(createdAt), | ||
...formatUsername(username, true), | ||
chalk.cyan(`${voice || ''} says "${message}"`) | ||
) | ||
} | ||
@@ -211,3 +232,3 @@ | ||
type: 'input', | ||
message: `${username}:`, | ||
message: `[${formatTime(Date.now())}] ${username}:`, | ||
validate: value => { | ||
@@ -214,0 +235,0 @@ if (value.length > 255) { |
Sorry, the diff of this file is not supported yet
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
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
379627
27
4464