mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-28 04:02:12 +00:00
commit
3545f80920
3
.gitignore
vendored
3
.gitignore
vendored
@ -19,6 +19,9 @@ jspm_modules
|
|||||||
# Visual Studio Code ignoramuses.
|
# Visual Studio Code ignoramuses.
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
|
# IDE Code ignoramuses.
|
||||||
|
.idea/
|
||||||
|
|
||||||
# Various Windows ignoramuses.
|
# Various Windows ignoramuses.
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
ehthumbs.db
|
ehthumbs.db
|
||||||
|
46
CHANGELOG.md
46
CHANGELOG.md
@ -1,11 +1,55 @@
|
|||||||
# MagicMirror² Change Log
|
# MagicMirror² Change Log
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [2.4.0] - 2018-07-01
|
||||||
|
|
||||||
|
⚠️ **Warning:** This release includes an updated version of Electron. This requires a Raspberry Pi configuration change to allow the best performance and prevent the CPU from overheating. Please read the information on the [MagicMirror Wiki](https://github.com/michmich/magicmirror/wiki/configuring-the-raspberry-pi#enable-the-open-gl-driver-to-decrease-electrons-cpu-usage).
|
||||||
|
|
||||||
|
ℹ️ **Note:** This update uses new dependencies. Please update using the following command: `git pull && npm install`
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Enabled translation of feelsLike for module currentweather
|
||||||
|
- Added support for on-going calendar events
|
||||||
|
- Added scroll up in fullscreen newsfeed article view
|
||||||
|
- Changed fullscreen newsfeed width from 100% to 100vw (better results)
|
||||||
|
- Added option to calendar module that colors only the symbol instead of the whole line
|
||||||
|
- Added option for new display format in the calendar module with date headers with times/events below.
|
||||||
|
- Ability to fetch compliments from a remote server
|
||||||
|
- Add regex filtering to calendar module
|
||||||
|
- Customize classes for table
|
||||||
|
- Added option to newsfeed module to only log error parsing a news article if enabled
|
||||||
|
- Add update translations for Português Brasileiro
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Upgrade to Electron 2.0.0.
|
||||||
|
- Remove yarn-or-npm which breaks production builds.
|
||||||
|
- Invoke module suspend even if no dom content. [#1308](https://github.com/MichMich/MagicMirror/issues/1308)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed issue where wind chill could not be displayed in Fahrenheit. [#1247](https://github.com/MichMich/MagicMirror/issues/1247)
|
||||||
|
- Fixed issues where a module crashes when it tries to dismiss a non existing alert. [#1240](https://github.com/MichMich/MagicMirror/issues/1240)
|
||||||
|
- In default module currentWeather/currentWeather.js line 296, 300, self.config.animationSpeed can not be found because the notificationReceived function does not have "self" variable.
|
||||||
|
- Fixed browser-side code to work on the Midori browser.
|
||||||
|
- Fixed issue where heat index was reporting incorrect values in Celsius and Fahrenheit. [#1263](https://github.com/MichMich/MagicMirror/issues/1263)
|
||||||
|
- Fixed weatherforecast to use dt_txt field instead of dt to handle timezones better
|
||||||
|
- Newsfeed now remembers to show the description when `"ARTICLE_LESS_DETAILS"` is called if the user wants to always show the description. [#1282](https://github.com/MichMich/MagicMirror/issues/1282)
|
||||||
|
- `clientonly/*.js` is now linted, and one linting error is fixed
|
||||||
|
- Fix issue #1196 by changing underscore to hyphen in locale id, in align with momentjs.
|
||||||
|
- Fixed issue where heat index and wind chill were reporting incorrect values in Kelvin. [#1263](https://github.com/MichMich/MagicMirror/issues/1263)
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
- Updated Italian translation
|
||||||
|
- Updated German translation
|
||||||
|
- Updated Dutch translation
|
||||||
|
|
||||||
## [2.3.1] - 2018-04-01
|
## [2.3.1] - 2018-04-01
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Downgrade electron to 1.4.15 to solve the black screen issue.[#1243](https://github.com/MichMich/MagicMirror/issues/1243)
|
- Downgrade electron to 1.4.15 to solve the black screen issue.[#1243](https://github.com/MichMich/MagicMirror/issues/1243)
|
||||||
|
|
||||||
## [2.3.0] - 2018-04-01
|
## [2.3.0] - 2018-04-01
|
||||||
|
@ -11,6 +11,7 @@ module.exports = function(grunt) {
|
|||||||
"modules/default/*.js",
|
"modules/default/*.js",
|
||||||
"modules/default/*/*.js",
|
"modules/default/*/*.js",
|
||||||
"serveronly/*.js",
|
"serveronly/*.js",
|
||||||
|
"clientonly/*.js",
|
||||||
"*.js",
|
"*.js",
|
||||||
"tests/**/*.js",
|
"tests/**/*.js",
|
||||||
"!modules/default/alert/notificationFx.js",
|
"!modules/default/alert/notificationFx.js",
|
||||||
|
@ -17,7 +17,7 @@ MagicMirror² focuses on a modular plugin system and uses [Electron](http://elec
|
|||||||
## Table Of Contents
|
## Table Of Contents
|
||||||
|
|
||||||
- [Installation](#installation)
|
- [Installation](#installation)
|
||||||
- [Raspberry Pi](#raspberrypi)
|
- [Raspberry Pi](#raspberry-pi)
|
||||||
- [General](#general)
|
- [General](#general)
|
||||||
- [Server Only](#server-only)
|
- [Server Only](#server-only)
|
||||||
- [Client Only](#client-only)
|
- [Client Only](#client-only)
|
||||||
@ -119,11 +119,11 @@ The following wiki links are helpful for the initial configuration of your Magic
|
|||||||
|
|
||||||
### General
|
### General
|
||||||
|
|
||||||
1. Copy `config/config.js.sample` to `config/config.js`. \
|
1. Copy `/home/pi/MagicMirror/config/config.js.sample` to `/home/pi/MagicMirror/config/config.js`. \
|
||||||
**Note:** If you used the installer script. This step is already done for you.
|
**Note:** If you used the installer script. This step is already done for you.
|
||||||
|
|
||||||
2. Modify your required settings. \
|
2. Modify your required settings. \
|
||||||
Note: You'll can check your configuration running `npm run config:check`.
|
Note: You'll can check your configuration running `npm run config:check` in `/home/pi/MagicMirror`.
|
||||||
|
|
||||||
|
|
||||||
The following properties can be configured:
|
The following properties can be configured:
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
process.stdout.write(`Client: ${err}`);
|
process.stdout.write(`Client: ${err}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
child.on('close', (code) => {
|
child.on("close", (code) => {
|
||||||
if (code != 0) {
|
if (code != 0) {
|
||||||
console.log(`There something wrong. The clientonly is not running code ${code}`);
|
console.log(`There something wrong. The clientonly is not running code ${code}`);
|
||||||
}
|
}
|
||||||
|
15
js/main.js
15
js/main.js
@ -21,7 +21,7 @@ var MM = (function() {
|
|||||||
var createDomObjects = function() {
|
var createDomObjects = function() {
|
||||||
var domCreationPromises = [];
|
var domCreationPromises = [];
|
||||||
|
|
||||||
modules.forEach(module => {
|
modules.forEach(function(module) {
|
||||||
if (typeof module.data.position !== "string") {
|
if (typeof module.data.position !== "string") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -52,14 +52,14 @@ var MM = (function() {
|
|||||||
|
|
||||||
var domCreationPromise = updateDom(module, 0);
|
var domCreationPromise = updateDom(module, 0);
|
||||||
domCreationPromises.push(domCreationPromise);
|
domCreationPromises.push(domCreationPromise);
|
||||||
domCreationPromise.then(() => {
|
domCreationPromise.then(function() {
|
||||||
sendNotification("MODULE_DOM_CREATED", null, null, module);
|
sendNotification("MODULE_DOM_CREATED", null, null, module);
|
||||||
}).catch(Log.error);
|
}).catch(Log.error);
|
||||||
});
|
});
|
||||||
|
|
||||||
updateWrapperStates();
|
updateWrapperStates();
|
||||||
|
|
||||||
Promise.all(domCreationPromises).then(() => {
|
Promise.all(domCreationPromises).then(function() {
|
||||||
sendNotification("DOM_OBJECTS_CREATED");
|
sendNotification("DOM_OBJECTS_CREATED");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -106,7 +106,7 @@ var MM = (function() {
|
|||||||
* return Promise - Resolved when the dom is fully updated.
|
* return Promise - Resolved when the dom is fully updated.
|
||||||
*/
|
*/
|
||||||
var updateDom = function(module, speed) {
|
var updateDom = function(module, speed) {
|
||||||
return new Promise((resolve) => {
|
return new Promise(function(resolve) {
|
||||||
var newContentPromise = module.getDom();
|
var newContentPromise = module.getDom();
|
||||||
var newHeader = module.getHeader();
|
var newHeader = module.getHeader();
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ var MM = (function() {
|
|||||||
newContentPromise = Promise.resolve(newContentPromise);
|
newContentPromise = Promise.resolve(newContentPromise);
|
||||||
}
|
}
|
||||||
|
|
||||||
newContentPromise.then((newContent) => {
|
newContentPromise.then(function(newContent) {
|
||||||
var updatePromise = updateDomWithContent(module, speed, newHeader, newContent);
|
var updatePromise = updateDomWithContent(module, speed, newHeader, newContent);
|
||||||
|
|
||||||
updatePromise.then(resolve).catch(Log.error);
|
updatePromise.then(resolve).catch(Log.error);
|
||||||
@ -134,7 +134,7 @@ var MM = (function() {
|
|||||||
* return Promise - Resolved when the module dom has been updated.
|
* return Promise - Resolved when the module dom has been updated.
|
||||||
*/
|
*/
|
||||||
var updateDomWithContent = function(module, speed, newHeader, newContent) {
|
var updateDomWithContent = function(module, speed, newHeader, newContent) {
|
||||||
return new Promise((resolve) => {
|
return new Promise(function(resolve) {
|
||||||
if (module.hidden || !speed) {
|
if (module.hidden || !speed) {
|
||||||
updateModuleContent(module, newHeader, newContent);
|
updateModuleContent(module, newHeader, newContent);
|
||||||
resolve();
|
resolve();
|
||||||
@ -245,6 +245,9 @@ var MM = (function() {
|
|||||||
|
|
||||||
if (typeof callback === "function") { callback(); }
|
if (typeof callback === "function") { callback(); }
|
||||||
}, speed);
|
}, speed);
|
||||||
|
} else {
|
||||||
|
// invoke callback even if no content, issue 1308
|
||||||
|
if (typeof callback === "function") { callback(); }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
11
js/module.js
11
js/module.js
@ -81,15 +81,16 @@ var Module = Class.extend({
|
|||||||
* return DomObject | Promise - The dom or a promise with the dom to display.
|
* return DomObject | Promise - The dom or a promise with the dom to display.
|
||||||
*/
|
*/
|
||||||
getDom: function () {
|
getDom: function () {
|
||||||
return new Promise((resolve) => {
|
var self = this;
|
||||||
|
return new Promise(function(resolve) {
|
||||||
var div = document.createElement("div");
|
var div = document.createElement("div");
|
||||||
var template = this.getTemplate();
|
var template = self.getTemplate();
|
||||||
var templateData = this.getTemplateData();
|
var templateData = self.getTemplateData();
|
||||||
|
|
||||||
// Check to see if we need to render a template string or a file.
|
// Check to see if we need to render a template string or a file.
|
||||||
if (/^.*((\.html)|(\.njk))$/.test(template)) {
|
if (/^.*((\.html)|(\.njk))$/.test(template)) {
|
||||||
// the template is a filename
|
// the template is a filename
|
||||||
this.nunjucksEnvironment().render(template, templateData, function (err, res) {
|
self.nunjucksEnvironment().render(template, templateData, function (err, res) {
|
||||||
if (err) {
|
if (err) {
|
||||||
Log.error(err)
|
Log.error(err)
|
||||||
}
|
}
|
||||||
@ -100,7 +101,7 @@ var Module = Class.extend({
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// the template is a template string.
|
// the template is a template string.
|
||||||
div.innerHTML = this.nunjucksEnvironment().renderString(template, templateData);
|
div.innerHTML = self.nunjucksEnvironment().renderString(template, templateData);
|
||||||
|
|
||||||
resolve(div);
|
resolve(div);
|
||||||
}
|
}
|
||||||
|
@ -110,11 +110,13 @@ Module.register("alert",{
|
|||||||
},
|
},
|
||||||
hide_alert: function(sender) {
|
hide_alert: function(sender) {
|
||||||
//Dismiss alert and remove from this.alerts
|
//Dismiss alert and remove from this.alerts
|
||||||
|
if (this.alerts[sender.name]) {
|
||||||
this.alerts[sender.name].dismiss();
|
this.alerts[sender.name].dismiss();
|
||||||
this.alerts[sender.name] = null;
|
this.alerts[sender.name] = null;
|
||||||
//Remove overlay
|
//Remove overlay
|
||||||
var overlay = document.getElementById("overlay");
|
var overlay = document.getElementById("overlay");
|
||||||
overlay.parentNode.removeChild(overlay);
|
overlay.parentNode.removeChild(overlay);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
setPosition: function(pos) {
|
setPosition: function(pos) {
|
||||||
//Add css to body depending on the set position for notifications
|
//Add css to body depending on the set position for notifications
|
||||||
|
9
modules/default/calendar/README.md
Normal file → Executable file
9
modules/default/calendar/README.md
Normal file → Executable file
@ -1,6 +1,7 @@
|
|||||||
# Module: Calendar
|
# Module: Calendar
|
||||||
The `calendar` module is one of the default modules of the MagicMirror.
|
The `calendar` module is one of the default modules of the MagicMirror.
|
||||||
This module displays events from a public .ical calendar. It can combine multiple calendars.
|
This module displays events from a public .ical calendar. It can combine multiple calendars.
|
||||||
|
Note that calendars may not contain any entry before 1st January 1970, otherwise the calendar won't be displayed and the module will crash.
|
||||||
|
|
||||||
## Using the module
|
## Using the module
|
||||||
|
|
||||||
@ -36,27 +37,31 @@ The following properties can be configured:
|
|||||||
| `animationSpeed` | Speed of the update animation. (Milliseconds) <br><br> **Possible values:** `0` - `5000` <br> **Default value:** `2000` (2 seconds)
|
| `animationSpeed` | Speed of the update animation. (Milliseconds) <br><br> **Possible values:** `0` - `5000` <br> **Default value:** `2000` (2 seconds)
|
||||||
| `fade` | Fade the future events to black. (Gradient) <br><br> **Possible values:** `true` or `false` <br> **Default value:** `true`
|
| `fade` | Fade the future events to black. (Gradient) <br><br> **Possible values:** `true` or `false` <br> **Default value:** `true`
|
||||||
| `fadePoint` | Where to start fade? <br><br> **Possible values:** `0` (top of the list) - `1` (bottom of list) <br> **Default value:** `0.25`
|
| `fadePoint` | Where to start fade? <br><br> **Possible values:** `0` (top of the list) - `1` (bottom of list) <br> **Default value:** `0.25`
|
||||||
|
| `tableClass` | Name of the classes issued from `main.css`. <br><br> **Possible values:** xsmall, small, medium, large, xlarge. <br> **Default value:** _small._
|
||||||
| `calendars` | The list of calendars. <br><br> **Possible values:** An array, see _calendar configuration_ below. <br> **Default value:** _An example calendar._
|
| `calendars` | The list of calendars. <br><br> **Possible values:** An array, see _calendar configuration_ below. <br> **Default value:** _An example calendar._
|
||||||
| `titleReplace` | An object of textual replacements applied to the tile of the event. This allow to remove or replace certains words in the title. <br><br> **Example:** `{'Birthday of ' : '', 'foo':'bar'}` <br> **Default value:** `{ "De verjaardag van ": "", "'s birthday": "" }`
|
| `titleReplace` | An object of textual replacements applied to the tile of the event. This allow to remove or replace certains words in the title. <br><br> **Example:** `{'Birthday of ' : '', 'foo':'bar'}` <br> **Default value:** `{ "De verjaardag van ": "", "'s birthday": "" }`
|
||||||
| `displayRepeatingCountTitle` | Show count title for yearly repeating events (e.g. "X. Birthday", "X. Anniversary") <br><br> **Possible values:** `true` or `false` <br> **Default value:** `false`
|
| `displayRepeatingCountTitle` | Show count title for yearly repeating events (e.g. "X. Birthday", "X. Anniversary") <br><br> **Possible values:** `true` or `false` <br> **Default value:** `false`
|
||||||
| `dateFormat` | Format to use for the date of events (when using absolute dates) <br><br> **Possible values:** See [Moment.js formats](http://momentjs.com/docs/#/parsing/string-format/) <br> **Default value:** `MMM Do` (e.g. Jan 18th)
|
| `dateFormat` | Format to use for the date of events (when using absolute dates) <br><br> **Possible values:** See [Moment.js formats](http://momentjs.com/docs/#/parsing/string-format/) <br> **Default value:** `MMM Do` (e.g. Jan 18th)
|
||||||
| `fullDayEventDateFormat` | Format to use for the date of full day events (when using absolute dates) <br><br> **Possible values:** See [Moment.js formats](http://momentjs.com/docs/#/parsing/string-format/) <br> **Default value:** `MMM Do` (e.g. Jan 18th)
|
| `fullDayEventDateFormat` | Format to use for the date of full day events (when using absolute dates) <br><br> **Possible values:** See [Moment.js formats](http://momentjs.com/docs/#/parsing/string-format/) <br> **Default value:** `MMM Do` (e.g. Jan 18th)
|
||||||
| `timeFormat` | Display event times as absolute dates, or relative time <br><br> **Possible values:** `absolute` or `relative` <br> **Default value:** `relative`
|
| `timeFormat` | Display event times as absolute dates, or relative time, or using absolute date headers with times for each event next to it <br><br> **Possible values:** `absolute` or `relative` or `dateheaders` <br> **Default value:** `relative`
|
||||||
| `getRelative` | How much time (in hours) should be left until calendar events start getting relative? <br><br> **Possible values:** `0` (events stay absolute) - `48` (48 hours before the event starts) <br> **Default value:** `6`
|
| `getRelative` | How much time (in hours) should be left until calendar events start getting relative? <br><br> **Possible values:** `0` (events stay absolute) - `48` (48 hours before the event starts) <br> **Default value:** `6`
|
||||||
| `urgency` | When using a timeFormat of `absolute`, the `urgency` setting allows you to display events within a specific time frame as `relative`. This allows events within a certain time frame to be displayed as relative (in xx days) while others are displayed as absolute dates <br><br> **Possible values:** a positive integer representing the number of days for which you want a relative date, for example `7` (for 7 days) <br><br> **Default value:** `7`
|
| `urgency` | When using a timeFormat of `absolute`, the `urgency` setting allows you to display events within a specific time frame as `relative`. This allows events within a certain time frame to be displayed as relative (in xx days) while others are displayed as absolute dates <br><br> **Possible values:** a positive integer representing the number of days for which you want a relative date, for example `7` (for 7 days) <br><br> **Default value:** `7`
|
||||||
| `broadcastEvents` | If this property is set to true, the calendar will broadcast all the events to all other modules with the notification message: `CALENDAR_EVENTS`. The event objects are stored in an array and contain the following fields: `title`, `startDate`, `endDate`, `fullDayEvent`, `location` and `geo`. <br><br> **Possible values:** `true`, `false` <br><br> **Default value:** `true`
|
| `broadcastEvents` | If this property is set to true, the calendar will broadcast all the events to all other modules with the notification message: `CALENDAR_EVENTS`. The event objects are stored in an array and contain the following fields: `title`, `startDate`, `endDate`, `fullDayEvent`, `location` and `geo`. <br><br> **Possible values:** `true`, `false` <br><br> **Default value:** `true`
|
||||||
| `hidePrivate` | Hides private calendar events. <br><br> **Possible values:** `true` or `false` <br> **Default value:** `false`
|
| `hidePrivate` | Hides private calendar events. <br><br> **Possible values:** `true` or `false` <br> **Default value:** `false`
|
||||||
| `excludedEvents` | An array of words / phrases from event titles that will be excluded from being shown. <br><br>Additionally advanced filter objects can be passed in. Below is the configuration for the advance filtering object.<br>**Required**<br>`filterBy` - string used to determine if filter is applied.<br>**Optional**<br>`until` - Time before an event to display it Ex: [`'3 days'`, `'2 months'`, `'1 week'`]<br>`caseSensitive` - By default, excludedEvents are case insensitive, set this to true to enforce case sensitivity<br><br> **Example:** `['Birthday', 'Hide This Event', {filterBy: 'Payment', until: '6 days', caseSensitive: true}]` <br> **Default value:** `[]`
|
| `hideOngoing` | Hides calendar events that have already started. <br><br> **Possible values:** `true` or `false` <br> **Default value:** `false`
|
||||||
|
| `excludedEvents` | An array of words / phrases from event titles that will be excluded from being shown. <br><br>Additionally advanced filter objects can be passed in. Below is the configuration for the advance filtering object.<br>**Required**<br>`filterBy` - string used to determine if filter is applied.<br>**Optional**<br>`until` - Time before an event to display it Ex: [`'3 days'`, `'2 months'`, `'1 week'`]<br>`caseSensitive` - By default, excludedEvents are case insensitive, set this to true to enforce case sensitivity<br>`regex` - set to `true` if filterBy is a regex. For those not familiar with regex it is used for pattern matching, please see [here](https://regexr.com/) for more info.<br><br> **Example:** `['Birthday', 'Hide This Event', {filterBy: 'Payment', until: '6 days', caseSensitive: true}, {filterBy: '^[0-9]{1,}.*', regex: true}]` <br> **Default value:** `[]`
|
||||||
|
|
||||||
### Calendar configuration
|
### Calendar configuration
|
||||||
|
|
||||||
The `calendars` property contains an array of the configured calendars.
|
The `calendars` property contains an array of the configured calendars.
|
||||||
The `colored` property gives the option for an individual color for each calendar.
|
The `colored` property gives the option for an individual color for each calendar.
|
||||||
|
The `coloredSymbolOnly` property will apply color to the symbol only, not the whole line. This is only applicable when `colored` is also enabled.
|
||||||
|
|
||||||
#### Default value:
|
#### Default value:
|
||||||
````javascript
|
````javascript
|
||||||
config: {
|
config: {
|
||||||
colored: false,
|
colored: false,
|
||||||
|
coloredSymbolOnly: false,
|
||||||
calendars: [
|
calendars: [
|
||||||
{
|
{
|
||||||
url: 'http://www.calendarlabs.com/templates/ical/US-Holidays.ics',
|
url: 'http://www.calendarlabs.com/templates/ical/US-Holidays.ics',
|
||||||
|
94
modules/default/calendar/calendar.js
Normal file → Executable file
94
modules/default/calendar/calendar.js
Normal file → Executable file
@ -29,7 +29,10 @@ Module.register("calendar", {
|
|||||||
getRelative: 6,
|
getRelative: 6,
|
||||||
fadePoint: 0.25, // Start on 1/4th of the list.
|
fadePoint: 0.25, // Start on 1/4th of the list.
|
||||||
hidePrivate: false,
|
hidePrivate: false,
|
||||||
|
hideOngoing: false,
|
||||||
colored: false,
|
colored: false,
|
||||||
|
coloredSymbolOnly: false,
|
||||||
|
tableClass: "small",
|
||||||
calendars: [
|
calendars: [
|
||||||
{
|
{
|
||||||
symbol: "calendar",
|
symbol: "calendar",
|
||||||
@ -122,19 +125,39 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
var events = this.createEventList();
|
var events = this.createEventList();
|
||||||
var wrapper = document.createElement("table");
|
var wrapper = document.createElement("table");
|
||||||
wrapper.className = "small";
|
wrapper.className = this.config.tableClass;
|
||||||
|
|
||||||
if (events.length === 0) {
|
if (events.length === 0) {
|
||||||
wrapper.innerHTML = (this.loaded) ? this.translate("EMPTY") : this.translate("LOADING");
|
wrapper.innerHTML = (this.loaded) ? this.translate("EMPTY") : this.translate("LOADING");
|
||||||
wrapper.className = "small dimmed";
|
wrapper.className = this.config.tableClass + " dimmed";
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var lastSeenDate = "";
|
||||||
|
|
||||||
for (var e in events) {
|
for (var e in events) {
|
||||||
var event = events[e];
|
var event = events[e];
|
||||||
|
var dateAsString = moment(event.startDate, "x").format(this.config.dateFormat);
|
||||||
|
if(this.config.timeFormat === "dateheaders"){
|
||||||
|
if(lastSeenDate !== dateAsString){
|
||||||
|
var dateRow = document.createElement("tr");
|
||||||
|
dateRow.className = "normal"
|
||||||
|
var dateCell = document.createElement("td");
|
||||||
|
|
||||||
|
dateCell.colSpan = "3";
|
||||||
|
dateCell.innerHTML = dateAsString;
|
||||||
|
dateRow.appendChild(dateCell);
|
||||||
|
wrapper.appendChild(dateRow);
|
||||||
|
|
||||||
|
|
||||||
|
lastSeenDate = dateAsString;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var eventWrapper = document.createElement("tr");
|
var eventWrapper = document.createElement("tr");
|
||||||
|
|
||||||
if (this.config.colored) {
|
if (this.config.colored && !this.config.coloredSymbolOnly) {
|
||||||
eventWrapper.style.cssText = "color:" + this.colorForUrl(event.url);
|
eventWrapper.style.cssText = "color:" + this.colorForUrl(event.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,6 +165,11 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
if (this.config.displaySymbol) {
|
if (this.config.displaySymbol) {
|
||||||
var symbolWrapper = document.createElement("td");
|
var symbolWrapper = document.createElement("td");
|
||||||
|
|
||||||
|
if (this.config.colored && this.config.coloredSymbolOnly) {
|
||||||
|
symbolWrapper.style.cssText = "color:" + this.colorForUrl(event.url);
|
||||||
|
}
|
||||||
|
|
||||||
symbolWrapper.className = "symbol align-right";
|
symbolWrapper.className = "symbol align-right";
|
||||||
var symbols = this.symbolsForUrl(event.url);
|
var symbols = this.symbolsForUrl(event.url);
|
||||||
if(typeof symbols === "string") {
|
if(typeof symbols === "string") {
|
||||||
@ -157,6 +185,10 @@ Module.register("calendar", {
|
|||||||
symbolWrapper.appendChild(symbol);
|
symbolWrapper.appendChild(symbol);
|
||||||
}
|
}
|
||||||
eventWrapper.appendChild(symbolWrapper);
|
eventWrapper.appendChild(symbolWrapper);
|
||||||
|
}else if(this.config.timeFormat === "dateheaders"){
|
||||||
|
var blankCell = document.createElement("td");
|
||||||
|
blankCell.innerHTML = " "
|
||||||
|
eventWrapper.appendChild(blankCell);
|
||||||
}
|
}
|
||||||
|
|
||||||
var titleWrapper = document.createElement("td"),
|
var titleWrapper = document.createElement("td"),
|
||||||
@ -182,9 +214,42 @@ Module.register("calendar", {
|
|||||||
titleWrapper.className = "title";
|
titleWrapper.className = "title";
|
||||||
}
|
}
|
||||||
|
|
||||||
eventWrapper.appendChild(titleWrapper);
|
if(this.config.timeFormat === "dateheaders"){
|
||||||
|
|
||||||
|
if (event.fullDayEvent) {
|
||||||
|
titleWrapper.colSpan = "2";
|
||||||
|
titleWrapper.align = "left";
|
||||||
|
|
||||||
|
}else{
|
||||||
var timeWrapper = document.createElement("td");
|
var timeWrapper = document.createElement("td");
|
||||||
|
timeWrapper.className = "time light";
|
||||||
|
timeWrapper.align = "left";
|
||||||
|
timeWrapper.style.paddingLeft = "2px";
|
||||||
|
var timeFormatString = "";
|
||||||
|
switch (config.timeFormat) {
|
||||||
|
case 12: {
|
||||||
|
timeFormatString = "h:mm A";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 24: {
|
||||||
|
timeFormatString = "HH:mm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
timeFormatString = "HH:mm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
timeWrapper.innerHTML = moment(event.startDate, "x").format(timeFormatString);
|
||||||
|
eventWrapper.appendChild(timeWrapper);
|
||||||
|
titleWrapper.align = "right";
|
||||||
|
}
|
||||||
|
|
||||||
|
eventWrapper.appendChild(titleWrapper);
|
||||||
|
}else{
|
||||||
|
var timeWrapper = document.createElement("td");
|
||||||
|
|
||||||
|
eventWrapper.appendChild(titleWrapper);
|
||||||
//console.log(event.today);
|
//console.log(event.today);
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
// Define second, minute, hour, and day variables
|
// Define second, minute, hour, and day variables
|
||||||
@ -265,6 +330,7 @@ Module.register("calendar", {
|
|||||||
//console.log(event);
|
//console.log(event);
|
||||||
timeWrapper.className = "time light";
|
timeWrapper.className = "time light";
|
||||||
eventWrapper.appendChild(timeWrapper);
|
eventWrapper.appendChild(timeWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
wrapper.appendChild(eventWrapper);
|
wrapper.appendChild(eventWrapper);
|
||||||
|
|
||||||
@ -336,6 +402,7 @@ Module.register("calendar", {
|
|||||||
createEventList: function () {
|
createEventList: function () {
|
||||||
var events = [];
|
var events = [];
|
||||||
var today = moment().startOf("day");
|
var today = moment().startOf("day");
|
||||||
|
var now = new Date();
|
||||||
for (var c in this.calendarData) {
|
for (var c in this.calendarData) {
|
||||||
var calendar = this.calendarData[c];
|
var calendar = this.calendarData[c];
|
||||||
for (var e in calendar) {
|
for (var e in calendar) {
|
||||||
@ -346,6 +413,14 @@ Module.register("calendar", {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(this.config.hideOngoing) {
|
||||||
|
if(event.startDate < now) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(this.listContainsEvent(events,event)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
event.url = c;
|
event.url = c;
|
||||||
event.today = event.startDate >= today && event.startDate < (today + 24 * 60 * 60 * 1000);
|
event.today = event.startDate >= today && event.startDate < (today + 24 * 60 * 60 * 1000);
|
||||||
events.push(event);
|
events.push(event);
|
||||||
@ -359,6 +434,17 @@ Module.register("calendar", {
|
|||||||
return events.slice(0, this.config.maximumEntries);
|
return events.slice(0, this.config.maximumEntries);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
listContainsEvent: function(eventList, event){
|
||||||
|
for(let evt of eventList){
|
||||||
|
if(evt.title === event.title && parseInt(evt.startDate) === parseInt(event.startDate)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
/* createEventList(url)
|
/* createEventList(url)
|
||||||
* Requests node helper to add calendar url.
|
* Requests node helper to add calendar url.
|
||||||
*
|
*
|
||||||
|
@ -119,19 +119,29 @@ var CalendarFetcher = function(url, reloadInterval, excludedEvents, maximumEntri
|
|||||||
for (var f in excludedEvents) {
|
for (var f in excludedEvents) {
|
||||||
var filter = excludedEvents[f],
|
var filter = excludedEvents[f],
|
||||||
testTitle = title.toLowerCase(),
|
testTitle = title.toLowerCase(),
|
||||||
until = null;
|
until = null,
|
||||||
|
useRegex = false,
|
||||||
|
regexFlags = "g";
|
||||||
|
|
||||||
if (filter instanceof Object) {
|
if (filter instanceof Object) {
|
||||||
if (typeof filter.until !== "undefined") {
|
if (typeof filter.until !== "undefined") {
|
||||||
until = filter.until;
|
until = filter.until;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (typeof filter.regex !== "undefined") {
|
||||||
|
useRegex = filter.regex;
|
||||||
|
}
|
||||||
|
|
||||||
// If additional advanced filtering is added in, this section
|
// If additional advanced filtering is added in, this section
|
||||||
// must remain last as we overwrite the filter object with the
|
// must remain last as we overwrite the filter object with the
|
||||||
// filterBy string
|
// filterBy string
|
||||||
if (filter.caseSensitive) {
|
if (filter.caseSensitive) {
|
||||||
filter = filter.filterBy;
|
filter = filter.filterBy;
|
||||||
testTitle = title;
|
testTitle = title;
|
||||||
|
} else if (useRegex) {
|
||||||
|
filter = filter.filterBy;
|
||||||
|
testTitle = title;
|
||||||
|
regexFlags += "i";
|
||||||
} else {
|
} else {
|
||||||
filter = filter.filterBy.toLowerCase();
|
filter = filter.filterBy.toLowerCase();
|
||||||
}
|
}
|
||||||
@ -139,7 +149,7 @@ var CalendarFetcher = function(url, reloadInterval, excludedEvents, maximumEntri
|
|||||||
filter = filter.toLowerCase();
|
filter = filter.toLowerCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (testTitle.includes(filter)) {
|
if (testTitleByFilter(testTitle, filter, useRegex, regexFlags)) {
|
||||||
if (until) {
|
if (until) {
|
||||||
dateFilter = until;
|
dateFilter = until;
|
||||||
} else {
|
} else {
|
||||||
@ -294,6 +304,22 @@ var CalendarFetcher = function(url, reloadInterval, excludedEvents, maximumEntri
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var testTitleByFilter = function (title, filter, useRegex, regexFlags) {
|
||||||
|
if (useRegex) {
|
||||||
|
// Assume if leading slash, there is also trailing slash
|
||||||
|
if (filter[0] === "/") {
|
||||||
|
// Strip leading and trailing slashes
|
||||||
|
filter = filter.substr(1).slice(0, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
filter = new RegExp(filter, regexFlags);
|
||||||
|
|
||||||
|
return filter.test(title);
|
||||||
|
} else {
|
||||||
|
return title.includes(filter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* public methods */
|
/* public methods */
|
||||||
|
|
||||||
/* startFetch()
|
/* startFetch()
|
||||||
|
@ -30,7 +30,7 @@ The following properties can be configured:
|
|||||||
| `updateInterval` | How often does the compliment have to change? (Milliseconds) <br><br> **Possible values:** `1000` - `86400000` <br> **Default value:** `30000` (30 seconds)
|
| `updateInterval` | How often does the compliment have to change? (Milliseconds) <br><br> **Possible values:** `1000` - `86400000` <br> **Default value:** `30000` (30 seconds)
|
||||||
| `fadeSpeed` | Speed of the update animation. (Milliseconds) <br><br> **Possible values:**`0` - `5000` <br> **Default value:** `4000` (4 seconds)
|
| `fadeSpeed` | Speed of the update animation. (Milliseconds) <br><br> **Possible values:**`0` - `5000` <br> **Default value:** `4000` (4 seconds)
|
||||||
| `compliments` | The list of compliments. <br><br> **Possible values:** An object with four arrays: `morning`, `afternoon`, `evening` and `anytime`. See _compliment configuration_ below. <br> **Default value:** See _compliment configuration_ below.
|
| `compliments` | The list of compliments. <br><br> **Possible values:** An object with four arrays: `morning`, `afternoon`, `evening` and `anytime`. See _compliment configuration_ below. <br> **Default value:** See _compliment configuration_ below.
|
||||||
| `remoteFile` | External file from which to load the compliments <br><br> **Possible values:** Path to a JSON file containing compliments, configured as per the value of the _compliments configuration_ (see below). An object with four arrays: `morning`, `afternoon`, `evening` and `anytime`. - `compliments.json` <br> **Default value:** `null` (Do not load from file)
|
| `remoteFile` | External file from which to load the compliments <br><br> **Possible values:** Path or URL (starting with `http://` or `https://`) to a JSON file containing compliments, configured as per the value of the _compliments configuration_ (see below). An object with four arrays: `morning`, `afternoon`, `evening` and `anytime`. - `compliments.json` <br> **Default value:** `null` (Do not load from file)
|
||||||
| `classes` | Override the CSS classes of the div showing the compliments <br><br> **Default value:** `thin xlarge bright`
|
| `classes` | Override the CSS classes of the div showing the compliments <br><br> **Default value:** `thin xlarge bright`
|
||||||
| `morningStartTime` | Time in hours (in 24 format), after which the mode of "morning" will begin <br> **Possible values:** `0` - `24` <br><br> **Default value:** `3`
|
| `morningStartTime` | Time in hours (in 24 format), after which the mode of "morning" will begin <br> **Possible values:** `0` - `24` <br><br> **Default value:** `3`
|
||||||
| `morningEndTime` | Time in hours (in 24 format), after which the mode of "morning" will end <br> **Possible values:** `0` - `24` <br><br> **Default value:** `12`
|
| `morningEndTime` | Time in hours (in 24 format), after which the mode of "morning" will end <br> **Possible values:** `0` - `24` <br><br> **Default value:** `12`
|
||||||
|
@ -55,8 +55,8 @@ Module.register("compliments", {
|
|||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
if (this.config.remoteFile != null) {
|
if (this.config.remoteFile != null) {
|
||||||
this.complimentFile((response) => {
|
this.complimentFile(function(response) {
|
||||||
this.config.compliments = JSON.parse(response);
|
self.config.compliments = JSON.parse(response);
|
||||||
self.updateDom();
|
self.updateDom();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -128,9 +128,11 @@ Module.register("compliments", {
|
|||||||
* Retrieve a file from the local filesystem
|
* Retrieve a file from the local filesystem
|
||||||
*/
|
*/
|
||||||
complimentFile: function(callback) {
|
complimentFile: function(callback) {
|
||||||
var xobj = new XMLHttpRequest();
|
var xobj = new XMLHttpRequest(),
|
||||||
|
isRemote = this.config.remoteFile.indexOf("http://") === 0 || this.config.remoteFile.indexOf("https://") === 0,
|
||||||
|
path = isRemote ? this.config.remoteFile : this.file(this.config.remoteFile);
|
||||||
xobj.overrideMimeType("application/json");
|
xobj.overrideMimeType("application/json");
|
||||||
xobj.open("GET", this.file(this.config.remoteFile), true);
|
xobj.open("GET", path, true);
|
||||||
xobj.onreadystatechange = function() {
|
xobj.onreadystatechange = function() {
|
||||||
if (xobj.readyState == 4 && xobj.status == "200") {
|
if (xobj.readyState == 4 && xobj.status == "200") {
|
||||||
callback(xobj.responseText);
|
callback(xobj.responseText);
|
||||||
|
@ -67,7 +67,7 @@ Module.register("currentweather",{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
// create a variable for the first upcoming calendaar event. Used if no location is specified.
|
// create a variable for the first upcoming calendar event. Used if no location is specified.
|
||||||
firstEvent: false,
|
firstEvent: false,
|
||||||
|
|
||||||
// create a variable to hold the location name based on the API result.
|
// create a variable to hold the location name based on the API result.
|
||||||
@ -87,7 +87,7 @@ Module.register("currentweather",{
|
|||||||
getTranslations: function() {
|
getTranslations: function() {
|
||||||
// The translations for the default modules are defined in the core translation files.
|
// The translations for the default modules are defined in the core translation files.
|
||||||
// Therefor we can just return false. Otherwise we should have returned a dictionary.
|
// Therefor we can just return false. Otherwise we should have returned a dictionary.
|
||||||
// If you're trying to build yiur own module including translations, check out the documentation.
|
// If you're trying to build your own module including translations, check out the documentation.
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -251,7 +251,7 @@ Module.register("currentweather",{
|
|||||||
|
|
||||||
var feelsLike = document.createElement("span");
|
var feelsLike = document.createElement("span");
|
||||||
feelsLike.className = "dimmed";
|
feelsLike.className = "dimmed";
|
||||||
feelsLike.innerHTML = "Feels " + this.feelsLike + "°" + degreeLabel;
|
feelsLike.innerHTML = this.translate("FEELS") + " " + this.feelsLike + "°" + degreeLabel;
|
||||||
small.appendChild(feelsLike);
|
small.appendChild(feelsLike);
|
||||||
|
|
||||||
wrapper.appendChild(small);
|
wrapper.appendChild(small);
|
||||||
@ -293,11 +293,11 @@ Module.register("currentweather",{
|
|||||||
}
|
}
|
||||||
if (notification === "INDOOR_TEMPERATURE") {
|
if (notification === "INDOOR_TEMPERATURE") {
|
||||||
this.indoorTemperature = this.roundValue(payload);
|
this.indoorTemperature = this.roundValue(payload);
|
||||||
this.updateDom(self.config.animationSpeed);
|
this.updateDom(this.config.animationSpeed);
|
||||||
}
|
}
|
||||||
if (notification === "INDOOR_HUMIDITY") {
|
if (notification === "INDOOR_HUMIDITY") {
|
||||||
this.indoorHumidity = this.roundValue(payload);
|
this.indoorHumidity = this.roundValue(payload);
|
||||||
this.updateDom(self.config.animationSpeed);
|
this.updateDom(this.config.animationSpeed);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -407,8 +407,8 @@ Module.register("currentweather",{
|
|||||||
|
|
||||||
if (windInMph > 3 && tempInF < 50){
|
if (windInMph > 3 && tempInF < 50){
|
||||||
// windchill
|
// windchill
|
||||||
var windchillinF = Math.round(35.74+0.6215*tempInF-35.75*Math.pow(windInMph,0.16)+0.4275*tempInF*Math.pow(windInMph,0.16));
|
var windChillInF = Math.round(35.74+0.6215*tempInF-35.75*Math.pow(windInMph,0.16)+0.4275*tempInF*Math.pow(windInMph,0.16));
|
||||||
var windChillInC = (windchillinF - 32) * (5/9);
|
var windChillInC = (windChillInF - 32) * (5/9);
|
||||||
// this.feelsLike = windChillInC.toFixed(0);
|
// this.feelsLike = windChillInC.toFixed(0);
|
||||||
|
|
||||||
switch (this.config.units){
|
switch (this.config.units){
|
||||||
@ -417,7 +417,7 @@ Module.register("currentweather",{
|
|||||||
case "imperial": this.feelsLike = windChillInF.toFixed(0);
|
case "imperial": this.feelsLike = windChillInF.toFixed(0);
|
||||||
break;
|
break;
|
||||||
case "default":
|
case "default":
|
||||||
var tc = windChillInC - 273.15;
|
var tc = windChillInC + 273.15;
|
||||||
this.feelsLike = tc.toFixed(0);
|
this.feelsLike = tc.toFixed(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -432,12 +432,12 @@ Module.register("currentweather",{
|
|||||||
- 1.99*Math.pow(10,-6)*tempInF*tempInF*this.humidity*this.humidity;
|
- 1.99*Math.pow(10,-6)*tempInF*tempInF*this.humidity*this.humidity;
|
||||||
|
|
||||||
switch (this.config.units){
|
switch (this.config.units){
|
||||||
case "metric": this.feelsLike = Hindex.toFixed(0);
|
case "metric": this.feelsLike = parseFloat((Hindex - 32) / 1.8).toFixed(0);
|
||||||
break;
|
break;
|
||||||
case "imperial": this.feelsLike = parseFloat(Hindex * 1.8 + 32).toFixed(0);
|
case "imperial": this.feelsLike = Hindex.toFixed(0);
|
||||||
break;
|
break;
|
||||||
case "default":
|
case "default":
|
||||||
var tc = Hindex - 273.15;
|
var tc = parseFloat((Hindex - 32) / 1.8) + 273.15;
|
||||||
this.feelsLike = tc.toFixed(0);
|
this.feelsLike = tc.toFixed(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,7 @@ The following properties can be configured:
|
|||||||
| `endTags` | List the tags you would like to have removed at the end of the feed item <br><br> **Possible values:** `['TAG']` or `['TAG1','TAG2',...]`
|
| `endTags` | List the tags you would like to have removed at the end of the feed item <br><br> **Possible values:** `['TAG']` or `['TAG1','TAG2',...]`
|
||||||
| `prohibitedWords` | Remove news feed item if one of these words is found anywhere in the title (case insensitive and greedy matching) <br><br> **Possible values:** `['word']` or `['word1','word2',...]`
|
| `prohibitedWords` | Remove news feed item if one of these words is found anywhere in the title (case insensitive and greedy matching) <br><br> **Possible values:** `['word']` or `['word1','word2',...]`
|
||||||
| `scrollLength` | Scrolls the full news article page by a given number of pixels when a `ARTICLE_MORE_DETAILS` notification is received and the full news article is already displayed.<br><br> **Possible values:** `1` or `10000` <br> **Default value:** `500`
|
| `scrollLength` | Scrolls the full news article page by a given number of pixels when a `ARTICLE_MORE_DETAILS` notification is received and the full news article is already displayed.<br><br> **Possible values:** `1` or `10000` <br> **Default value:** `500`
|
||||||
|
| `logFeedWarnings` | Log warnings when there is an error parsing a news article. <br><br> **Possible values:** `true` or `false` <br> **Default value:** `false`
|
||||||
|
|
||||||
The `feeds` property contains an array with multiple objects. These objects have the following properties:
|
The `feeds` property contains an array with multiple objects. These objects have the following properties:
|
||||||
|
|
||||||
|
@ -14,9 +14,10 @@ var iconv = require("iconv-lite");
|
|||||||
*
|
*
|
||||||
* attribute url string - URL of the news feed.
|
* attribute url string - URL of the news feed.
|
||||||
* attribute reloadInterval number - Reload interval in milliseconds.
|
* attribute reloadInterval number - Reload interval in milliseconds.
|
||||||
|
* attribute logFeedWarnings boolean - Log warnings when there is an error parsing a news article.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var Fetcher = function(url, reloadInterval, encoding) {
|
var Fetcher = function(url, reloadInterval, encoding, logFeedWarnings) {
|
||||||
var self = this;
|
var self = this;
|
||||||
if (reloadInterval < 1000) {
|
if (reloadInterval < 1000) {
|
||||||
reloadInterval = 1000;
|
reloadInterval = 1000;
|
||||||
@ -60,7 +61,7 @@ var Fetcher = function(url, reloadInterval, encoding) {
|
|||||||
url: url,
|
url: url,
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else if (logFeedWarnings) {
|
||||||
console.log("Can't parse feed item:");
|
console.log("Can't parse feed item:");
|
||||||
console.log(item);
|
console.log(item);
|
||||||
console.log("Title: " + title);
|
console.log("Title: " + title);
|
||||||
|
@ -37,7 +37,8 @@ Module.register("newsfeed",{
|
|||||||
startTags: [],
|
startTags: [],
|
||||||
endTags: [],
|
endTags: [],
|
||||||
prohibitedWords: [],
|
prohibitedWords: [],
|
||||||
scrollLength: 500
|
scrollLength: 500,
|
||||||
|
logFeedWarnings: false
|
||||||
},
|
},
|
||||||
|
|
||||||
// Define required scripts.
|
// Define required scripts.
|
||||||
@ -67,6 +68,7 @@ Module.register("newsfeed",{
|
|||||||
|
|
||||||
this.registerFeeds();
|
this.registerFeeds();
|
||||||
|
|
||||||
|
this.isShowingDescription = this.config.showDescription;
|
||||||
},
|
},
|
||||||
|
|
||||||
// Override socket notification handler.
|
// Override socket notification handler.
|
||||||
@ -133,7 +135,7 @@ Module.register("newsfeed",{
|
|||||||
|
|
||||||
if (this.config.removeStartTags == "description" || this.config.removeStartTags == "both") {
|
if (this.config.removeStartTags == "description" || this.config.removeStartTags == "both") {
|
||||||
|
|
||||||
if (this.config.showDescription) {
|
if (this.isShowingDescription) {
|
||||||
for (f=0; f<this.config.startTags.length;f++) {
|
for (f=0; f<this.config.startTags.length;f++) {
|
||||||
if (this.newsItems[this.activeItem].description.slice(0,this.config.startTags[f].length) == this.config.startTags[f]) {
|
if (this.newsItems[this.activeItem].description.slice(0,this.config.startTags[f].length) == this.config.startTags[f]) {
|
||||||
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].description.slice(this.config.startTags[f].length,this.newsItems[this.activeItem].description.length);
|
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].description.slice(this.config.startTags[f].length,this.newsItems[this.activeItem].description.length);
|
||||||
@ -152,7 +154,7 @@ Module.register("newsfeed",{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.config.showDescription) {
|
if (this.isShowingDescription) {
|
||||||
for (f=0; f<this.config.endTags.length;f++) {
|
for (f=0; f<this.config.endTags.length;f++) {
|
||||||
if (this.newsItems[this.activeItem].description.slice(-this.config.endTags[f].length)==this.config.endTags[f]) {
|
if (this.newsItems[this.activeItem].description.slice(-this.config.endTags[f].length)==this.config.endTags[f]) {
|
||||||
this.newsItems[this.activeItem].description = this.newsItems[this.activeItem].description.slice(0,-this.config.endTags[f].length);
|
this.newsItems[this.activeItem].description = this.newsItems[this.activeItem].description.slice(0,-this.config.endTags[f].length);
|
||||||
@ -169,7 +171,7 @@ Module.register("newsfeed",{
|
|||||||
wrapper.appendChild(title);
|
wrapper.appendChild(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.config.showDescription) {
|
if (this.isShowingDescription) {
|
||||||
var description = document.createElement("div");
|
var description = document.createElement("div");
|
||||||
description.className = "small light" + (!this.config.wrapDescription ? " no-wrap" : "");
|
description.className = "small light" + (!this.config.wrapDescription ? " no-wrap" : "");
|
||||||
var txtDesc = this.newsItems[this.activeItem].description;
|
var txtDesc = this.newsItems[this.activeItem].description;
|
||||||
@ -180,10 +182,10 @@ Module.register("newsfeed",{
|
|||||||
if (this.config.showFullArticle) {
|
if (this.config.showFullArticle) {
|
||||||
var fullArticle = document.createElement("iframe");
|
var fullArticle = document.createElement("iframe");
|
||||||
fullArticle.className = "";
|
fullArticle.className = "";
|
||||||
fullArticle.style.width = "100%";
|
fullArticle.style.width = "100vw";
|
||||||
// very large height value to allow scrolling
|
// very large height value to allow scrolling
|
||||||
fullArticle.height = "10000";
|
fullArticle.height = "3000";
|
||||||
fullArticle.style.height = "10000";
|
fullArticle.style.height = "3000";
|
||||||
fullArticle.style.top = "0";
|
fullArticle.style.top = "0";
|
||||||
fullArticle.style.left = "0";
|
fullArticle.style.left = "0";
|
||||||
fullArticle.style.border = "none";
|
fullArticle.style.border = "none";
|
||||||
@ -323,7 +325,7 @@ Module.register("newsfeed",{
|
|||||||
},
|
},
|
||||||
|
|
||||||
resetDescrOrFullArticleAndTimer: function() {
|
resetDescrOrFullArticleAndTimer: function() {
|
||||||
this.config.showDescription = false;
|
this.isShowingDescription = this.config.showDescription;
|
||||||
this.config.showFullArticle = false;
|
this.config.showFullArticle = false;
|
||||||
this.scrollPosition = 0;
|
this.scrollPosition = 0;
|
||||||
// reset bottom bar alignment
|
// reset bottom bar alignment
|
||||||
@ -366,8 +368,8 @@ Module.register("newsfeed",{
|
|||||||
}
|
}
|
||||||
// display full article
|
// display full article
|
||||||
else {
|
else {
|
||||||
this.config.showDescription = !this.config.showDescription;
|
this.isShowingDescription = !this.isShowingDescription;
|
||||||
this.config.showFullArticle = !this.config.showDescription;
|
this.config.showFullArticle = !this.isShowingDescription;
|
||||||
// make bottom bar align to top to allow scrolling
|
// make bottom bar align to top to allow scrolling
|
||||||
if(this.config.showFullArticle == true){
|
if(this.config.showFullArticle == true){
|
||||||
document.getElementsByClassName("region bottom bar")[0].style.bottom = "inherit";
|
document.getElementsByClassName("region bottom bar")[0].style.bottom = "inherit";
|
||||||
@ -375,9 +377,16 @@ Module.register("newsfeed",{
|
|||||||
}
|
}
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
timer = null;
|
timer = null;
|
||||||
Log.info(this.name + " - showing " + this.config.showDescription ? "article description" : "full article");
|
Log.info(this.name + " - showing " + this.isShowingDescription ? "article description" : "full article");
|
||||||
this.updateDom(100);
|
this.updateDom(100);
|
||||||
}
|
}
|
||||||
|
} else if(notification == "ARTICLE_SCROLL_UP"){
|
||||||
|
if(this.config.showFullArticle == true){
|
||||||
|
this.scrollPosition -= this.config.scrollLength;
|
||||||
|
window.scrollTo(0, this.scrollPosition);
|
||||||
|
Log.info(this.name + " - scrolling up");
|
||||||
|
Log.info(this.name + " - ARTICLE_SCROLL_UP, scroll position: " + this.config.scrollLength);
|
||||||
|
}
|
||||||
} else if(notification == "ARTICLE_LESS_DETAILS"){
|
} else if(notification == "ARTICLE_LESS_DETAILS"){
|
||||||
this.resetDescrOrFullArticleAndTimer();
|
this.resetDescrOrFullArticleAndTimer();
|
||||||
Log.info(this.name + " - showing only article titles again");
|
Log.info(this.name + " - showing only article titles again");
|
||||||
|
@ -46,7 +46,7 @@ module.exports = NodeHelper.create({
|
|||||||
var fetcher;
|
var fetcher;
|
||||||
if (typeof self.fetchers[url] === "undefined") {
|
if (typeof self.fetchers[url] === "undefined") {
|
||||||
console.log("Create new news fetcher for url: " + url + " - Interval: " + reloadInterval);
|
console.log("Create new news fetcher for url: " + url + " - Interval: " + reloadInterval);
|
||||||
fetcher = new Fetcher(url, reloadInterval, encoding);
|
fetcher = new Fetcher(url, reloadInterval, encoding, config.logFeedWarnings);
|
||||||
|
|
||||||
fetcher.onReceive(function(fetcher) {
|
fetcher.onReceive(function(fetcher) {
|
||||||
self.broadcastFeeds();
|
self.broadcastFeeds();
|
||||||
|
@ -47,6 +47,7 @@ The following properties can be configured:
|
|||||||
| `forecastEndpoint` | The OpenWeatherMap API endPoint. <br><br> **Default value:** `'forecast/daily'`
|
| `forecastEndpoint` | The OpenWeatherMap API endPoint. <br><br> **Default value:** `'forecast/daily'`
|
||||||
| `appendLocationNameToHeader` | If set to `true`, the returned location name will be appended to the header of the module, if the header is enabled. This is mainly intresting when using calender based weather. <br><br> **Default value:** `true`
|
| `appendLocationNameToHeader` | If set to `true`, the returned location name will be appended to the header of the module, if the header is enabled. This is mainly intresting when using calender based weather. <br><br> **Default value:** `true`
|
||||||
| `calendarClass` | The class for the calender module to base the event based weather information on. <br><br> **Default value:** `'calendar'`
|
| `calendarClass` | The class for the calender module to base the event based weather information on. <br><br> **Default value:** `'calendar'`
|
||||||
|
| `tableClass` | Name of the classes issued from `main.css`. <br><br> **Possible values:** xsmall, small, medium, large, xlarge. <br> **Default value:** _small._
|
||||||
| `iconTable` | The conversion table to convert the weather conditions to weather-icons. <br><br> **Default value:** view table below
|
| `iconTable` | The conversion table to convert the weather conditions to weather-icons. <br><br> **Default value:** view table below
|
||||||
`colored` | If set 'colored' to true the min-temp get a blue tone and the max-temp get a red tone. <br><br> **Default value:** `'false'`
|
`colored` | If set 'colored' to true the min-temp get a blue tone and the max-temp get a red tone. <br><br> **Default value:** `'false'`
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ Module.register("weatherforecast",{
|
|||||||
|
|
||||||
appendLocationNameToHeader: true,
|
appendLocationNameToHeader: true,
|
||||||
calendarClass: "calendar",
|
calendarClass: "calendar",
|
||||||
|
tableClass: "small",
|
||||||
|
|
||||||
roundTemp: false,
|
roundTemp: false,
|
||||||
|
|
||||||
@ -117,7 +118,7 @@ Module.register("weatherforecast",{
|
|||||||
}
|
}
|
||||||
|
|
||||||
var table = document.createElement("table");
|
var table = document.createElement("table");
|
||||||
table.className = "small";
|
table.className = this.config.tableClass;
|
||||||
|
|
||||||
for (var f in this.forecast) {
|
for (var f in this.forecast) {
|
||||||
var forecast = this.forecast[f];
|
var forecast = this.forecast[f];
|
||||||
@ -333,8 +334,8 @@ Module.register("weatherforecast",{
|
|||||||
var forecast = data.list[i];
|
var forecast = data.list[i];
|
||||||
this.parserDataWeather(forecast); // hack issue #1017
|
this.parserDataWeather(forecast); // hack issue #1017
|
||||||
|
|
||||||
var day = moment(forecast.dt, "X").format("ddd");
|
var day = moment(forecast.dt_txt, "YYYY-MM-DD hh:mm:ss").format("ddd");
|
||||||
var hour = moment(forecast.dt, "X").format("H");
|
var hour = moment(forecast.dt_txt, "YYYY-MM-DD hh:mm:ss").format("H");
|
||||||
|
|
||||||
if (day !== lastDay) {
|
if (day !== lastDay) {
|
||||||
var forecastData = {
|
var forecastData = {
|
||||||
|
2441
package-lock.json
generated
2441
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "magicmirror",
|
"name": "magicmirror",
|
||||||
"version": "2.3.1",
|
"version": "2.4.0",
|
||||||
"description": "The open source modular smart mirror platform.",
|
"description": "The open source modular smart mirror platform.",
|
||||||
"main": "js/electron.js",
|
"main": "js/electron.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "sh run-start.sh",
|
"start": "sh run-start.sh",
|
||||||
"install": "cd vendor && yon install",
|
"install": "cd vendor && npm install",
|
||||||
"install-fonts": "cd fonts && yon install",
|
"install-fonts": "cd fonts && npm install",
|
||||||
"postinstall": "sh installers/postinstall/postinstall.sh && yon run install-fonts",
|
"postinstall": "sh installers/postinstall/postinstall.sh && npm run install-fonts",
|
||||||
"test": "NODE_ENV=test ./node_modules/mocha/bin/mocha tests --recursive",
|
"test": "NODE_ENV=test ./node_modules/mocha/bin/mocha tests --recursive",
|
||||||
"test:unit": "NODE_ENV=test ./node_modules/mocha/bin/mocha tests/unit --recursive",
|
"test:unit": "NODE_ENV=test ./node_modules/mocha/bin/mocha tests/unit --recursive",
|
||||||
"test:e2e": "NODE_ENV=test ./node_modules/mocha/bin/mocha tests/e2e --recursive",
|
"test:e2e": "NODE_ENV=test ./node_modules/mocha/bin/mocha tests/e2e --recursive",
|
||||||
@ -52,13 +52,12 @@
|
|||||||
"spectron": "3.7.x",
|
"spectron": "3.7.x",
|
||||||
"stylelint": "^8.4.0",
|
"stylelint": "^8.4.0",
|
||||||
"stylelint-config-standard": "latest",
|
"stylelint-config-standard": "latest",
|
||||||
"time-grunt": "latest",
|
"time-grunt": "latest"
|
||||||
"yarn-or-npm": "^2.0.4"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"body-parser": "^1.18.2",
|
"body-parser": "^1.18.2",
|
||||||
"colors": "^1.1.2",
|
"colors": "^1.1.2",
|
||||||
"electron": "^1.4.15",
|
"electron": "^2.0.0",
|
||||||
"express": "^4.16.2",
|
"express": "^4.16.2",
|
||||||
"express-ipfilter": "0.3.1",
|
"express-ipfilter": "0.3.1",
|
||||||
"feedme": "latest",
|
"feedme": "latest",
|
||||||
|
@ -28,5 +28,7 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Aktualisierung für MagicMirror² verfügbar.",
|
"UPDATE_NOTIFICATION": "Aktualisierung für MagicMirror² verfügbar.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Aktualisierung für das {MODULE_NAME} Modul verfügbar.",
|
"UPDATE_NOTIFICATION_MODULE": "Aktualisierung für das {MODULE_NAME} Modul verfügbar.",
|
||||||
"UPDATE_INFO": "Die aktuelle Installation ist {COMMIT_COUNT} hinter dem {BRANCH_NAME} branch."
|
"UPDATE_INFO": "Die aktuelle Installation ist {COMMIT_COUNT} hinter dem {BRANCH_NAME} Branch.",
|
||||||
|
|
||||||
|
"FEELS": "Gefühlt"
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,7 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Update available for {MODULE_NAME} module.",
|
"UPDATE_NOTIFICATION_MODULE": "Update available for {MODULE_NAME} module.",
|
||||||
"UPDATE_INFO": "The current installation is {COMMIT_COUNT} behind on the {BRANCH_NAME} branch."
|
"UPDATE_INFO": "The current installation is {COMMIT_COUNT} behind on the {BRANCH_NAME} branch.",
|
||||||
|
|
||||||
|
"FEELS": "Feels"
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,11 @@
|
|||||||
|
|
||||||
"TODAY": "Oggi",
|
"TODAY": "Oggi",
|
||||||
"TOMORROW": "Domani",
|
"TOMORROW": "Domani",
|
||||||
|
"DAYAFTERTOMORROW": "Dopodomani",
|
||||||
"RUNNING": "Termina entro",
|
"RUNNING": "Termina entro",
|
||||||
"EMPTY": "Nessun evento in arrivo.",
|
"EMPTY": "Nessun evento imminente.",
|
||||||
|
|
||||||
|
"WEEK": "Settimana {weekNumber}",
|
||||||
|
|
||||||
"N": "N",
|
"N": "N",
|
||||||
"NNE": "NNE",
|
"NNE": "NNE",
|
||||||
@ -15,11 +18,15 @@
|
|||||||
"SE": "SE",
|
"SE": "SE",
|
||||||
"SSE": "SSE",
|
"SSE": "SSE",
|
||||||
"S": "S",
|
"S": "S",
|
||||||
"SSW": "SSW",
|
"SSW": "SSO",
|
||||||
"SW": "SW",
|
"SW": "SO",
|
||||||
"WSW": "WSW",
|
"WSW": "OSO",
|
||||||
"W": "W",
|
"W": "O",
|
||||||
"WNW": "WNW",
|
"WNW": "ONO",
|
||||||
"NW": "NW",
|
"NW": "NO",
|
||||||
"NNW": "NNW"
|
"NNW": "NNO",
|
||||||
|
|
||||||
|
"UPDATE_NOTIFICATION": "E' disponibile un aggiornamento di MagicMirror².",
|
||||||
|
"UPDATE_NOTIFICATION_MODULE": "E' disponibile un aggiornamento del modulo {MODULE_NAME}.",
|
||||||
|
"UPDATE_INFO": "L'installazione è {COMMIT_COUNT} indietro rispetto all'attuale branch {BRANCH_NAME}."
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,7 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² update beschikbaar.",
|
"UPDATE_NOTIFICATION": "MagicMirror² update beschikbaar.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Update beschikbaar voor {MODULE_NAME} module.",
|
"UPDATE_NOTIFICATION_MODULE": "Update beschikbaar voor {MODULE_NAME} module.",
|
||||||
"UPDATE_INFO": "De huidige installatie loopt {COMMIT_COUNT} achter op de {BRANCH_NAME} branch."
|
"UPDATE_INFO": "De huidige installatie loopt {COMMIT_COUNT} achter op de {BRANCH_NAME} branch.",
|
||||||
|
|
||||||
|
"FEELS": "Gevoelstemperatuur"
|
||||||
}
|
}
|
||||||
|
@ -21,5 +21,9 @@
|
|||||||
"W": "O",
|
"W": "O",
|
||||||
"WNW": "ONO",
|
"WNW": "ONO",
|
||||||
"NW": "NO",
|
"NW": "NO",
|
||||||
"NNW": "NNO"
|
"NNW": "NNO",
|
||||||
|
|
||||||
|
"UPDATE_NOTIFICATION": "Nova atualização para MagicMirror disponível.",
|
||||||
|
"UPDATE_NOTIFICATION_MODULE": "Atualização para o módulo {MODULE_NAME} disponível.",
|
||||||
|
"UPDATE_INFO": "Sua versão atual é a {COMMIT_COUNT} dentro do seguinte branch {BRANCH_NAME}."
|
||||||
}
|
}
|
@ -17,12 +17,12 @@ var translations = {
|
|||||||
"nb" : "translations/nb.json", // Norsk bokmål
|
"nb" : "translations/nb.json", // Norsk bokmål
|
||||||
"nn" : "translations/nn.json", // Norsk nynorsk
|
"nn" : "translations/nn.json", // Norsk nynorsk
|
||||||
"pt" : "translations/pt.json", // Português
|
"pt" : "translations/pt.json", // Português
|
||||||
"pt_br" : "translations/pt_br.json", // Português Brasileiro
|
"pt-br" : "translations/pt-br.json", // Português Brasileiro
|
||||||
"sv" : "translations/sv.json", // Svenska
|
"sv" : "translations/sv.json", // Svenska
|
||||||
"id" : "translations/id.json", // Indonesian
|
"id" : "translations/id.json", // Indonesian
|
||||||
"it" : "translations/it.json", // Italian
|
"it" : "translations/it.json", // Italian
|
||||||
"zh_cn" : "translations/zh_cn.json", // Simplified Chinese
|
"zh-cn" : "translations/zh-cn.json", // Simplified Chinese
|
||||||
"zh_tw" : "translations/zh_tw.json", // Traditional Chinese
|
"zh-tw" : "translations/zh-tw.json", // Traditional Chinese
|
||||||
"ja" : "translations/ja.json", // Japanese
|
"ja" : "translations/ja.json", // Japanese
|
||||||
"pl" : "translations/pl.json", // Polish
|
"pl" : "translations/pl.json", // Polish
|
||||||
"gr" : "translations/gr.json", // Greek
|
"gr" : "translations/gr.json", // Greek
|
||||||
|
464
vendor/package-lock.json
generated
vendored
464
vendor/package-lock.json
generated
vendored
@ -19,8 +19,8 @@
|
|||||||
"integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
|
"integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"micromatch": "2.3.11",
|
"micromatch": "^2.1.5",
|
||||||
"normalize-path": "2.1.1"
|
"normalize-path": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"arr-diff": {
|
"arr-diff": {
|
||||||
@ -29,7 +29,7 @@
|
|||||||
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
|
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"arr-flatten": "1.1.0"
|
"arr-flatten": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"arr-flatten": {
|
"arr-flatten": {
|
||||||
@ -73,7 +73,7 @@
|
|||||||
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
|
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -83,9 +83,9 @@
|
|||||||
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
|
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"expand-range": "1.8.2",
|
"expand-range": "^1.8.1",
|
||||||
"preserve": "0.2.0",
|
"preserve": "^0.2.0",
|
||||||
"repeat-element": "1.1.2"
|
"repeat-element": "^1.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"camelcase": {
|
"camelcase": {
|
||||||
@ -99,15 +99,15 @@
|
|||||||
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
|
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"anymatch": "1.3.2",
|
"anymatch": "^1.3.0",
|
||||||
"async-each": "1.0.1",
|
"async-each": "^1.0.0",
|
||||||
"fsevents": "1.1.2",
|
"fsevents": "^1.0.0",
|
||||||
"glob-parent": "2.0.0",
|
"glob-parent": "^2.0.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "^2.0.1",
|
||||||
"is-binary-path": "1.0.1",
|
"is-binary-path": "^1.0.0",
|
||||||
"is-glob": "2.0.1",
|
"is-glob": "^2.0.0",
|
||||||
"path-is-absolute": "1.0.1",
|
"path-is-absolute": "^1.0.0",
|
||||||
"readdirp": "2.1.0"
|
"readdirp": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cliui": {
|
"cliui": {
|
||||||
@ -115,9 +115,9 @@
|
|||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
||||||
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
|
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "1.0.2",
|
"string-width": "^1.0.1",
|
||||||
"strip-ansi": "3.0.1",
|
"strip-ansi": "^3.0.1",
|
||||||
"wrap-ansi": "2.1.0"
|
"wrap-ansi": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"code-point-at": {
|
"code-point-at": {
|
||||||
@ -148,7 +148,7 @@
|
|||||||
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
|
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-posix-bracket": "0.1.1"
|
"is-posix-bracket": "^0.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"expand-range": {
|
"expand-range": {
|
||||||
@ -157,7 +157,7 @@
|
|||||||
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
|
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fill-range": "2.2.3"
|
"fill-range": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extglob": {
|
"extglob": {
|
||||||
@ -166,7 +166,7 @@
|
|||||||
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
|
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-extglob": "1.0.0"
|
"is-extglob": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"filename-regex": {
|
"filename-regex": {
|
||||||
@ -181,11 +181,11 @@
|
|||||||
"integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
|
"integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-number": "2.1.0",
|
"is-number": "^2.1.0",
|
||||||
"isobject": "2.1.0",
|
"isobject": "^2.0.0",
|
||||||
"randomatic": "1.1.7",
|
"randomatic": "^1.1.3",
|
||||||
"repeat-element": "1.1.2",
|
"repeat-element": "^1.1.2",
|
||||||
"repeat-string": "1.6.1"
|
"repeat-string": "^1.5.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"font-awesome": {
|
"font-awesome": {
|
||||||
@ -205,7 +205,7 @@
|
|||||||
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
|
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"for-in": "1.0.2"
|
"for-in": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fsevents": {
|
"fsevents": {
|
||||||
@ -214,8 +214,8 @@
|
|||||||
"integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
|
"integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"nan": "2.7.0",
|
"nan": "^2.3.0",
|
||||||
"node-pre-gyp": "0.6.36"
|
"node-pre-gyp": "^0.6.36"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"abbrev": {
|
"abbrev": {
|
||||||
@ -228,8 +228,8 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"co": "4.6.0",
|
"co": "^4.6.0",
|
||||||
"json-stable-stringify": "1.0.1"
|
"json-stable-stringify": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ansi-regex": {
|
"ansi-regex": {
|
||||||
@ -246,8 +246,8 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"delegates": "1.0.0",
|
"delegates": "^1.0.0",
|
||||||
"readable-stream": "2.2.9"
|
"readable-stream": "^2.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"asn1": {
|
"asn1": {
|
||||||
@ -284,28 +284,28 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"tweetnacl": "0.14.5"
|
"tweetnacl": "^0.14.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"block-stream": {
|
"block-stream": {
|
||||||
"version": "0.0.9",
|
"version": "0.0.9",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inherits": "2.0.3"
|
"inherits": "~2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"boom": {
|
"boom": {
|
||||||
"version": "2.10.1",
|
"version": "2.10.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"hoek": "2.16.3"
|
"hoek": "2.x.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.7",
|
"version": "1.1.7",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "0.4.2",
|
"balanced-match": "^0.4.1",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -331,7 +331,7 @@
|
|||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"delayed-stream": "1.0.0"
|
"delayed-stream": "~1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
@ -351,7 +351,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"boom": "2.10.1"
|
"boom": "2.x.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dashdash": {
|
"dashdash": {
|
||||||
@ -359,7 +359,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0"
|
"assert-plus": "^1.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"assert-plus": {
|
"assert-plus": {
|
||||||
@ -396,7 +396,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsbn": "0.1.1"
|
"jsbn": "~0.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extend": {
|
"extend": {
|
||||||
@ -418,9 +418,9 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"asynckit": "0.4.0",
|
"asynckit": "^0.4.0",
|
||||||
"combined-stream": "1.0.5",
|
"combined-stream": "^1.0.5",
|
||||||
"mime-types": "2.1.15"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fs.realpath": {
|
"fs.realpath": {
|
||||||
@ -431,10 +431,10 @@
|
|||||||
"version": "1.0.11",
|
"version": "1.0.11",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "4.1.11",
|
"graceful-fs": "^4.1.2",
|
||||||
"inherits": "2.0.3",
|
"inherits": "~2.0.0",
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": ">=0.5 0",
|
||||||
"rimraf": "2.6.1"
|
"rimraf": "2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fstream-ignore": {
|
"fstream-ignore": {
|
||||||
@ -442,9 +442,9 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fstream": "1.0.11",
|
"fstream": "^1.0.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2",
|
||||||
"minimatch": "3.0.4"
|
"minimatch": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gauge": {
|
"gauge": {
|
||||||
@ -452,14 +452,14 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"aproba": "1.1.1",
|
"aproba": "^1.0.3",
|
||||||
"console-control-strings": "1.1.0",
|
"console-control-strings": "^1.0.0",
|
||||||
"has-unicode": "2.0.1",
|
"has-unicode": "^2.0.0",
|
||||||
"object-assign": "4.1.1",
|
"object-assign": "^4.1.0",
|
||||||
"signal-exit": "3.0.2",
|
"signal-exit": "^3.0.0",
|
||||||
"string-width": "1.0.2",
|
"string-width": "^1.0.1",
|
||||||
"strip-ansi": "3.0.1",
|
"strip-ansi": "^3.0.1",
|
||||||
"wide-align": "1.1.2"
|
"wide-align": "^1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"getpass": {
|
"getpass": {
|
||||||
@ -467,7 +467,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "1.0.0"
|
"assert-plus": "^1.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"assert-plus": {
|
"assert-plus": {
|
||||||
@ -481,12 +481,12 @@
|
|||||||
"version": "7.1.2",
|
"version": "7.1.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"fs.realpath": "1.0.0",
|
"fs.realpath": "^1.0.0",
|
||||||
"inflight": "1.0.6",
|
"inflight": "^1.0.4",
|
||||||
"inherits": "2.0.3",
|
"inherits": "2",
|
||||||
"minimatch": "3.0.4",
|
"minimatch": "^3.0.4",
|
||||||
"once": "1.4.0",
|
"once": "^1.3.0",
|
||||||
"path-is-absolute": "1.0.1"
|
"path-is-absolute": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"graceful-fs": {
|
"graceful-fs": {
|
||||||
@ -503,8 +503,8 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ajv": "4.11.8",
|
"ajv": "^4.9.1",
|
||||||
"har-schema": "1.0.5"
|
"har-schema": "^1.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"has-unicode": {
|
"has-unicode": {
|
||||||
@ -517,10 +517,10 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"boom": "2.10.1",
|
"boom": "2.x.x",
|
||||||
"cryptiles": "2.0.5",
|
"cryptiles": "2.x.x",
|
||||||
"hoek": "2.16.3",
|
"hoek": "2.x.x",
|
||||||
"sntp": "1.0.9"
|
"sntp": "1.x.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hoek": {
|
"hoek": {
|
||||||
@ -532,17 +532,17 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"assert-plus": "0.2.0",
|
"assert-plus": "^0.2.0",
|
||||||
"jsprim": "1.4.0",
|
"jsprim": "^1.2.2",
|
||||||
"sshpk": "1.13.0"
|
"sshpk": "^1.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inflight": {
|
"inflight": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "1.4.0",
|
"once": "^1.3.0",
|
||||||
"wrappy": "1.0.2"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inherits": {
|
"inherits": {
|
||||||
@ -558,7 +558,7 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "1.0.1"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-typedarray": {
|
"is-typedarray": {
|
||||||
@ -580,7 +580,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsbn": "0.1.1"
|
"jsbn": "~0.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jsbn": {
|
"jsbn": {
|
||||||
@ -598,7 +598,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsonify": "0.0.0"
|
"jsonify": "~0.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"json-stringify-safe": {
|
"json-stringify-safe": {
|
||||||
@ -637,14 +637,14 @@
|
|||||||
"version": "2.1.15",
|
"version": "2.1.15",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"mime-db": "1.27.0"
|
"mime-db": "~1.27.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimist": {
|
"minimist": {
|
||||||
@ -668,15 +668,15 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"nopt": "4.0.1",
|
"nopt": "^4.0.1",
|
||||||
"npmlog": "4.1.0",
|
"npmlog": "^4.0.2",
|
||||||
"rc": "1.2.1",
|
"rc": "^1.1.7",
|
||||||
"request": "2.81.0",
|
"request": "^2.81.0",
|
||||||
"rimraf": "2.6.1",
|
"rimraf": "^2.6.1",
|
||||||
"semver": "5.3.0",
|
"semver": "^5.3.0",
|
||||||
"tar": "2.2.1",
|
"tar": "^2.2.1",
|
||||||
"tar-pack": "3.4.0"
|
"tar-pack": "^3.4.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nopt": {
|
"nopt": {
|
||||||
@ -684,8 +684,8 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"abbrev": "1.1.0",
|
"abbrev": "1",
|
||||||
"osenv": "0.1.4"
|
"osenv": "^0.1.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"npmlog": {
|
"npmlog": {
|
||||||
@ -693,10 +693,10 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"are-we-there-yet": "1.1.4",
|
"are-we-there-yet": "~1.1.2",
|
||||||
"console-control-strings": "1.1.0",
|
"console-control-strings": "~1.1.0",
|
||||||
"gauge": "2.7.4",
|
"gauge": "~2.7.3",
|
||||||
"set-blocking": "2.0.0"
|
"set-blocking": "~2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
@ -717,7 +717,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1.0.2"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"os-homedir": {
|
"os-homedir": {
|
||||||
@ -735,8 +735,8 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"os-homedir": "1.0.2",
|
"os-homedir": "^1.0.0",
|
||||||
"os-tmpdir": "1.0.2"
|
"os-tmpdir": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
@ -767,10 +767,10 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"deep-extend": "0.4.2",
|
"deep-extend": "~0.4.0",
|
||||||
"ini": "1.3.4",
|
"ini": "~1.3.0",
|
||||||
"minimist": "1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"strip-json-comments": "2.0.1"
|
"strip-json-comments": "~2.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"minimist": {
|
"minimist": {
|
||||||
@ -784,13 +784,13 @@
|
|||||||
"version": "2.2.9",
|
"version": "2.2.9",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"buffer-shims": "1.0.0",
|
"buffer-shims": "~1.0.0",
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "~1.0.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "~2.0.1",
|
||||||
"isarray": "1.0.0",
|
"isarray": "~1.0.0",
|
||||||
"process-nextick-args": "1.0.7",
|
"process-nextick-args": "~1.0.6",
|
||||||
"string_decoder": "1.0.1",
|
"string_decoder": "~1.0.0",
|
||||||
"util-deprecate": "1.0.2"
|
"util-deprecate": "~1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request": {
|
"request": {
|
||||||
@ -798,35 +798,35 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"aws-sign2": "0.6.0",
|
"aws-sign2": "~0.6.0",
|
||||||
"aws4": "1.6.0",
|
"aws4": "^1.2.1",
|
||||||
"caseless": "0.12.0",
|
"caseless": "~0.12.0",
|
||||||
"combined-stream": "1.0.5",
|
"combined-stream": "~1.0.5",
|
||||||
"extend": "3.0.1",
|
"extend": "~3.0.0",
|
||||||
"forever-agent": "0.6.1",
|
"forever-agent": "~0.6.1",
|
||||||
"form-data": "2.1.4",
|
"form-data": "~2.1.1",
|
||||||
"har-validator": "4.2.1",
|
"har-validator": "~4.2.1",
|
||||||
"hawk": "3.1.3",
|
"hawk": "~3.1.3",
|
||||||
"http-signature": "1.1.1",
|
"http-signature": "~1.1.0",
|
||||||
"is-typedarray": "1.0.0",
|
"is-typedarray": "~1.0.0",
|
||||||
"isstream": "0.1.2",
|
"isstream": "~0.1.2",
|
||||||
"json-stringify-safe": "5.0.1",
|
"json-stringify-safe": "~5.0.1",
|
||||||
"mime-types": "2.1.15",
|
"mime-types": "~2.1.7",
|
||||||
"oauth-sign": "0.8.2",
|
"oauth-sign": "~0.8.1",
|
||||||
"performance-now": "0.2.0",
|
"performance-now": "^0.2.0",
|
||||||
"qs": "6.4.0",
|
"qs": "~6.4.0",
|
||||||
"safe-buffer": "5.0.1",
|
"safe-buffer": "^5.0.1",
|
||||||
"stringstream": "0.0.5",
|
"stringstream": "~0.0.4",
|
||||||
"tough-cookie": "2.3.2",
|
"tough-cookie": "~2.3.0",
|
||||||
"tunnel-agent": "0.6.0",
|
"tunnel-agent": "^0.6.0",
|
||||||
"uuid": "3.0.1"
|
"uuid": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rimraf": {
|
"rimraf": {
|
||||||
"version": "2.6.1",
|
"version": "2.6.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "7.1.2"
|
"glob": "^7.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"safe-buffer": {
|
"safe-buffer": {
|
||||||
@ -853,7 +853,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"hoek": "2.16.3"
|
"hoek": "2.x.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sshpk": {
|
"sshpk": {
|
||||||
@ -861,15 +861,15 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"asn1": "0.2.3",
|
"asn1": "~0.2.3",
|
||||||
"assert-plus": "1.0.0",
|
"assert-plus": "^1.0.0",
|
||||||
"bcrypt-pbkdf": "1.0.1",
|
"bcrypt-pbkdf": "^1.0.0",
|
||||||
"dashdash": "1.14.1",
|
"dashdash": "^1.12.0",
|
||||||
"ecc-jsbn": "0.1.1",
|
"ecc-jsbn": "~0.1.1",
|
||||||
"getpass": "0.1.7",
|
"getpass": "^0.1.1",
|
||||||
"jodid25519": "1.0.2",
|
"jodid25519": "^1.0.0",
|
||||||
"jsbn": "0.1.1",
|
"jsbn": "~0.1.0",
|
||||||
"tweetnacl": "0.14.5"
|
"tweetnacl": "~0.14.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"assert-plus": {
|
"assert-plus": {
|
||||||
@ -883,16 +883,16 @@
|
|||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "1.1.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
"strip-ansi": "3.0.1"
|
"strip-ansi": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"string_decoder": {
|
"string_decoder": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stringstream": {
|
"stringstream": {
|
||||||
@ -904,7 +904,7 @@
|
|||||||
"version": "3.0.1",
|
"version": "3.0.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "2.1.1"
|
"ansi-regex": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-json-comments": {
|
"strip-json-comments": {
|
||||||
@ -916,9 +916,9 @@
|
|||||||
"version": "2.2.1",
|
"version": "2.2.1",
|
||||||
"bundled": true,
|
"bundled": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"block-stream": "0.0.9",
|
"block-stream": "*",
|
||||||
"fstream": "1.0.11",
|
"fstream": "^1.0.2",
|
||||||
"inherits": "2.0.3"
|
"inherits": "2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tar-pack": {
|
"tar-pack": {
|
||||||
@ -926,14 +926,14 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"debug": "2.6.8",
|
"debug": "^2.2.0",
|
||||||
"fstream": "1.0.11",
|
"fstream": "^1.0.10",
|
||||||
"fstream-ignore": "1.0.5",
|
"fstream-ignore": "^1.0.5",
|
||||||
"once": "1.4.0",
|
"once": "^1.3.3",
|
||||||
"readable-stream": "2.2.9",
|
"readable-stream": "^2.1.4",
|
||||||
"rimraf": "2.6.1",
|
"rimraf": "^2.5.1",
|
||||||
"tar": "2.2.1",
|
"tar": "^2.2.1",
|
||||||
"uid-number": "0.0.6"
|
"uid-number": "^0.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tough-cookie": {
|
"tough-cookie": {
|
||||||
@ -941,7 +941,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"punycode": "1.4.1"
|
"punycode": "^1.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tunnel-agent": {
|
"tunnel-agent": {
|
||||||
@ -949,7 +949,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "5.0.1"
|
"safe-buffer": "^5.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tweetnacl": {
|
"tweetnacl": {
|
||||||
@ -984,7 +984,7 @@
|
|||||||
"bundled": true,
|
"bundled": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "1.0.2"
|
"string-width": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"wrappy": {
|
"wrappy": {
|
||||||
@ -999,8 +999,8 @@
|
|||||||
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
|
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob-parent": "2.0.0",
|
"glob-parent": "^2.0.0",
|
||||||
"is-glob": "2.0.1"
|
"is-glob": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"glob-parent": {
|
"glob-parent": {
|
||||||
@ -1008,7 +1008,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
|
||||||
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
|
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-glob": "2.0.1"
|
"is-glob": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"graceful-fs": {
|
"graceful-fs": {
|
||||||
@ -1033,7 +1033,7 @@
|
|||||||
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
|
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"binary-extensions": "1.10.0"
|
"binary-extensions": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-buffer": {
|
"is-buffer": {
|
||||||
@ -1053,7 +1053,7 @@
|
|||||||
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
|
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-primitive": "2.0.0"
|
"is-primitive": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-extendable": {
|
"is-extendable": {
|
||||||
@ -1072,7 +1072,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "1.0.1"
|
"number-is-nan": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-glob": {
|
"is-glob": {
|
||||||
@ -1080,7 +1080,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
||||||
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-extglob": "1.0.0"
|
"is-extglob": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-number": {
|
"is-number": {
|
||||||
@ -1089,7 +1089,7 @@
|
|||||||
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
|
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"kind-of": "3.2.2"
|
"kind-of": "^3.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-posix-bracket": {
|
"is-posix-bracket": {
|
||||||
@ -1123,7 +1123,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-buffer": "1.1.5"
|
"is-buffer": "^1.1.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lcid": {
|
"lcid": {
|
||||||
@ -1131,7 +1131,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
|
||||||
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
|
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"invert-kv": "1.0.0"
|
"invert-kv": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"micromatch": {
|
"micromatch": {
|
||||||
@ -1140,19 +1140,19 @@
|
|||||||
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
|
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"arr-diff": "2.0.0",
|
"arr-diff": "^2.0.0",
|
||||||
"array-unique": "0.2.1",
|
"array-unique": "^0.2.1",
|
||||||
"braces": "1.8.5",
|
"braces": "^1.8.2",
|
||||||
"expand-brackets": "0.1.5",
|
"expand-brackets": "^0.1.4",
|
||||||
"extglob": "0.3.2",
|
"extglob": "^0.3.1",
|
||||||
"filename-regex": "2.0.1",
|
"filename-regex": "^2.0.0",
|
||||||
"is-extglob": "1.0.0",
|
"is-extglob": "^1.0.0",
|
||||||
"is-glob": "2.0.1",
|
"is-glob": "^2.0.1",
|
||||||
"kind-of": "3.2.2",
|
"kind-of": "^3.0.2",
|
||||||
"normalize-path": "2.1.1",
|
"normalize-path": "^2.0.1",
|
||||||
"object.omit": "2.0.1",
|
"object.omit": "^2.0.0",
|
||||||
"parse-glob": "3.0.4",
|
"parse-glob": "^3.0.4",
|
||||||
"regex-cache": "0.4.4"
|
"regex-cache": "^0.4.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minimatch": {
|
"minimatch": {
|
||||||
@ -1161,7 +1161,7 @@
|
|||||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "1.1.8"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"moment": {
|
"moment": {
|
||||||
@ -1174,7 +1174,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz",
|
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz",
|
||||||
"integrity": "sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=",
|
"integrity": "sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"moment": "2.18.1"
|
"moment": ">= 2.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nan": {
|
"nan": {
|
||||||
@ -1188,7 +1188,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
|
||||||
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
|
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"remove-trailing-separator": "1.1.0"
|
"remove-trailing-separator": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"number-is-nan": {
|
"number-is-nan": {
|
||||||
@ -1201,10 +1201,10 @@
|
|||||||
"resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.0.1.tgz",
|
||||||
"integrity": "sha1-TedKPlULr2+jNwMj89HHwqhr3E0=",
|
"integrity": "sha1-TedKPlULr2+jNwMj89HHwqhr3E0=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"a-sync-waterfall": "1.0.0",
|
"a-sync-waterfall": "^1.0.0",
|
||||||
"asap": "2.0.6",
|
"asap": "^2.0.3",
|
||||||
"chokidar": "1.7.0",
|
"chokidar": "^1.6.0",
|
||||||
"yargs": "3.32.0"
|
"yargs": "^3.32.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"object.omit": {
|
"object.omit": {
|
||||||
@ -1213,8 +1213,8 @@
|
|||||||
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
|
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"for-own": "0.1.5",
|
"for-own": "^0.1.4",
|
||||||
"is-extendable": "0.1.1"
|
"is-extendable": "^0.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"os-locale": {
|
"os-locale": {
|
||||||
@ -1222,7 +1222,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
||||||
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
|
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"lcid": "1.0.0"
|
"lcid": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"parse-glob": {
|
"parse-glob": {
|
||||||
@ -1231,10 +1231,10 @@
|
|||||||
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
|
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob-base": "0.3.0",
|
"glob-base": "^0.3.0",
|
||||||
"is-dotfile": "1.0.3",
|
"is-dotfile": "^1.0.0",
|
||||||
"is-extglob": "1.0.0",
|
"is-extglob": "^1.0.0",
|
||||||
"is-glob": "2.0.1"
|
"is-glob": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
@ -1261,8 +1261,8 @@
|
|||||||
"integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
|
"integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-number": "3.0.0",
|
"is-number": "^3.0.0",
|
||||||
"kind-of": "4.0.0"
|
"kind-of": "^4.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"is-number": {
|
"is-number": {
|
||||||
@ -1271,7 +1271,7 @@
|
|||||||
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"kind-of": "3.2.2"
|
"kind-of": "^3.0.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"kind-of": {
|
"kind-of": {
|
||||||
@ -1280,7 +1280,7 @@
|
|||||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-buffer": "1.1.5"
|
"is-buffer": "^1.1.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1291,7 +1291,7 @@
|
|||||||
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
|
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-buffer": "1.1.5"
|
"is-buffer": "^1.1.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1302,13 +1302,13 @@
|
|||||||
"integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
|
"integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"core-util-is": "1.0.2",
|
"core-util-is": "~1.0.0",
|
||||||
"inherits": "2.0.3",
|
"inherits": "~2.0.3",
|
||||||
"isarray": "1.0.0",
|
"isarray": "~1.0.0",
|
||||||
"process-nextick-args": "1.0.7",
|
"process-nextick-args": "~1.0.6",
|
||||||
"safe-buffer": "5.1.1",
|
"safe-buffer": "~5.1.1",
|
||||||
"string_decoder": "1.0.3",
|
"string_decoder": "~1.0.3",
|
||||||
"util-deprecate": "1.0.2"
|
"util-deprecate": "~1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"readdirp": {
|
"readdirp": {
|
||||||
@ -1317,10 +1317,10 @@
|
|||||||
"integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
|
"integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "4.1.11",
|
"graceful-fs": "^4.1.2",
|
||||||
"minimatch": "3.0.4",
|
"minimatch": "^3.0.2",
|
||||||
"readable-stream": "2.3.3",
|
"readable-stream": "^2.0.2",
|
||||||
"set-immediate-shim": "1.0.1"
|
"set-immediate-shim": "^1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"regex-cache": {
|
"regex-cache": {
|
||||||
@ -1329,7 +1329,7 @@
|
|||||||
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
|
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-equal-shallow": "0.1.3"
|
"is-equal-shallow": "^0.1.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"remove-trailing-separator": {
|
"remove-trailing-separator": {
|
||||||
@ -1364,9 +1364,9 @@
|
|||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"code-point-at": "1.1.0",
|
"code-point-at": "^1.0.0",
|
||||||
"is-fullwidth-code-point": "1.0.0",
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
"strip-ansi": "3.0.1"
|
"strip-ansi": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"string_decoder": {
|
"string_decoder": {
|
||||||
@ -1375,7 +1375,7 @@
|
|||||||
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"safe-buffer": "5.1.1"
|
"safe-buffer": "~5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"strip-ansi": {
|
"strip-ansi": {
|
||||||
@ -1383,7 +1383,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-regex": "2.1.1"
|
"ansi-regex": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"util-deprecate": {
|
"util-deprecate": {
|
||||||
@ -1407,8 +1407,8 @@
|
|||||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||||
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
|
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "1.0.2",
|
"string-width": "^1.0.1",
|
||||||
"strip-ansi": "3.0.1"
|
"strip-ansi": "^3.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"y18n": {
|
"y18n": {
|
||||||
@ -1421,13 +1421,13 @@
|
|||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
|
||||||
"integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
|
"integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase": "2.1.1",
|
"camelcase": "^2.0.1",
|
||||||
"cliui": "3.2.0",
|
"cliui": "^3.0.3",
|
||||||
"decamelize": "1.2.0",
|
"decamelize": "^1.1.1",
|
||||||
"os-locale": "1.4.0",
|
"os-locale": "^1.4.0",
|
||||||
"string-width": "1.0.2",
|
"string-width": "^1.0.1",
|
||||||
"window-size": "0.1.4",
|
"window-size": "^0.1.4",
|
||||||
"y18n": "3.2.1"
|
"y18n": "^3.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user