diff --git a/_locales/en/messages.json b/_locales/en/messages.json index ddf0b9b2..8b10b57d 100755 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -313,6 +313,9 @@ "communitySlackSupport": { "message": "Slack Support Live Chat" }, + "communityTelegramSupport": { + "message": "Telegram Channel" + }, "initialSetupBackupAndRestoreApiVersion": { "message": "Backup and restore functionality disabled. You have firmware with API version $1, backup and restore requires $2. Please backup your settings via the CLI, see INAV documentation for procedure." }, @@ -406,6 +409,42 @@ "initialSetupBattery": { "message": "Battery voltage:" }, + "initialSetupBatteryDetectedCells": { + "message": "Battery detected cell count:" + }, + "initialSetupBatteryDetectedCellsValue": { + "message": "$1" + }, + "initialSetupBatteryPercentage": { + "message": "Battery left:" + }, + "initialSetupBatteryPercentageValue": { + "message": "$1 %" + }, + "initialSetupBatteryRemainingCapacity": { + "message": "Battery remaining capacity" + }, + "initialSetupBatteryRemainingCapacityValue": { + "message": "$1 $2" + }, + "initialSetupBatteryFull": { + "message": "Battery full when plugged in" + }, + "initialSetupBatteryFullValue": { + "message": "$1" + }, + "initialSetupBatteryThresholds": { + "message": "Battery use cap thresholds" + }, + "initialSetupBatteryThresholdsValue": { + "message": "$1" + }, + "initialSetup_Wh_drawn": { + "message": "Capacity drawn:" + }, + "initialSetup_Wh_drawnValue": { + "message": "$1 Wh" + }, "initialSetupBatteryValue": { "message": "$1 V" }, @@ -483,6 +522,9 @@ "featureVBAT": { "message": "Battery voltage monitoring" }, + "featureTX_PROF_SEL": { + "message": "Profile selection with TX stick command" + }, "featureINFLIGHT_ACC_CAL": { "message": "In-flight level calibration" }, @@ -573,6 +615,9 @@ "featureAIRMODE": { "message": "Permanently enable AIRMODE" }, + "featureFW_LAUNCH": { + "message": "Permanently enable Launch Mode for Fixed Wing" + }, "configurationFeatureEnabled": { "message": "Enabled" }, @@ -637,16 +682,10 @@ "message": "Magnetometer Declination [deg]" }, "configurationAutoDisarmDelay": { - "message": "Disarm delay [Seconds]" + "message": "Seconds until disarm due to low THR" }, "configurationAutoDisarmDelayHelp": { - "message": "Requires MOTOR_STOP feature" - }, - "configurationDisarmKillSwitch": { - "message": "Disarm regardless of throttle value" - }, - "configurationDisarmKillSwitchHelp": { - "message": "When arming via radio channel" + "message": "Only used for stick arming (i.e. not using a switch)" }, "configurationThrottleMinimum": { "message": "Minimum Throttle" @@ -690,6 +729,21 @@ "configurationBatteryMultiwiiCurrent": { "message": "Enable support for legacy Multiwii MSP current output" }, + "configurationBatteryCapacity": { + "message": "Battery Capacity" + }, + "configurationBatteryCapacityValue": { + "message": "Capacity" + }, + "configurationBatteryCapacityWarning": { + "message": "Warning Capacity (%)" + }, + "configurationBatteryCapacityCritical": { + "message": "Critical Capacity (%)" + }, + "configurationBatteryCapacityUnit": { + "message": "Battery Capacity Unit" + }, "configuration3d": { "message": "3D" }, @@ -832,6 +886,15 @@ "pidTuningYawRate": { "message": "YAW rate" }, + "pidTuningManualRollRate": { + "message": "Manual ROLL rate" + }, + "pidTuningManualPitchRate": { + "message": "Manual PITCH rate" + }, + "pidTuningManualYawRate": { + "message": "Manual YAW rate" + }, "magHoldYawRate": { "message": "MagHold rate" }, @@ -890,9 +953,15 @@ "receiverRcExpo": { "message": "RC Expo" }, - "receiverRcYawExpo": { + "receiverRcYawExpo": { "message": "RC Yaw Expo" }, + "receiverManualRcExpo": { + "message": "Manual RC Expo" + }, + "receiverManualRcYawExpo": { + "message": "Manual RC Yaw Expo" + }, "receiverChannelMap": { "message": "Channel Map" }, @@ -1052,37 +1121,37 @@ "message": "Roll D Adjustment" }, "adjustmentsFunction21": { - "message": "Alt P Adjustment" + "message": "RC Yaw Expo Adjustment" }, "adjustmentsFunction22": { - "message": "Alt I Adjustment" + "message": "Manual RC Expo Adjustment" }, "adjustmentsFunction23": { - "message": "Alt D Adjustment" + "message": "Manual RC Yaw Expo Adjustment" }, "adjustmentsFunction24": { - "message": "Vel P Adjustment" + "message": "Manual Pitch & Roll Rate Adjustment" }, "adjustmentsFunction25": { - "message": "Vel I Adjustment" + "message": "Manual Roll Rate Adjustment" }, "adjustmentsFunction26": { - "message": "Vel D Adjustment" + "message": "Manual Pitch Rate Adjustment" }, "adjustmentsFunction27": { - "message": "MAG P Adjustment" + "message": "Manual Yaw Rate Adjustment" }, "adjustmentsFunction28": { - "message": "Pos P Adjustment" + "message": "Navigation FW Cruise Throttle Adjustment" }, "adjustmentsFunction29": { - "message": "Pos I Adjustment" + "message": "Navigation FW Pitch To Throttle Adjustment" }, "adjustmentsFunction30": { - "message": "PosR P Adjustment" + "message": "Board Roll Alignment Adjustment" }, "adjustmentsFunction31": { - "message": "PosR I Adjustment" + "message": "Board Pitch Alignment Adjustment" }, "adjustmentsFunction32": { "message": "PosR D Adjustment" @@ -2249,9 +2318,24 @@ "osdElement_MAIN_BATT_CELL_VOLTAGE": { "message": "Battery Cell Voltage" }, + "osdElement_MAIN_BATT_REMAINING_PERCENTAGE": { + "message": "Battery Remaining Percentage" + }, + "osdElement_MAIN_BATT_REMAINING_CAPACITY": { + "message": "Battery Remaining Capacity" + }, "osdElement_MAIN_BATT_CELL_VOLTAGE_HELP": { "message": "Shows the average cell voltage from the main battery" }, + "osdElement_MAH_DRAWN": { + "message": "mAh drawn" + }, + "osdElement_EFFICIENCY_MAH": { + "message": "Efficiency mAh/Km" + }, + "osdElement_EFFICIENCY_WH": { + "message": "Efficiency Wh/Km" + }, "osdElement_THROTTLE_POSITION_AUTO_THR": { "message": "Throttle Position / Auto Throttle" }, @@ -2276,6 +2360,9 @@ "osdElement_GPS_HDOP_HELP": { "message": "Shows the Horizontal Dilution Of Precission from the GPS. The lower, the most accurate the GPS fix is." }, + "osdElement_TRIP_DIST": { + "message": "Trip distance" + }, "osdElement_VARIO_HELP": { "message": "Shows vertical speed using up or down arrows. Each arrow represents 10cm (~4 inches) per second." }, @@ -2324,6 +2411,51 @@ "downloadUpdatesBtn": { "message": "Download new app" }, + "tabMissionControl": { + "message": "Mission Control" + }, + "loadMissionButton": { + "message": "Load mission from FC" + }, + "saveMissionButton": { + "message": "Save mission to FC" + }, + "loadEepromMissionButton": { + "message": "Load Eeprom mission" + }, + "saveEepromMissionButton": { + "message": "Save Eeprom mission" + }, + "editPointHead": { + "message": "Edit point" + }, + "editPointButtonSave": { + "message": "Save" + }, + "editPointButtonRemove": { + "message": "Remove" + }, + "removeAllPointButtonSave": { + "message": "Remove all points" + }, + "missionTotalInformationHead": { + "message": "Total information" + }, + "missionRTHsettingsTitle": { + "message": "RTH settings" + }, + "missionDefaultSettingsHead": { + "message": "Default settings" + }, + "useOnlyStandalone": { + "message": "Use stand-alone application.
Please visit the website to read the release notes and download." + }, + "eeprom_load_ok": { + "message": "EEPROM loaded" + }, + "confirm_delete_all_points": { + "message": "Do you really want to delete all points?" + }, "servoMixer": { "message": "Servo mixer" }, diff --git a/gulpfile.js b/gulpfile.js index fcf5735d..f90574f3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -56,6 +56,7 @@ sources.js = [ './js/libraries/google-analytics-bundle.js', './node_modules/jquery/dist/jquery.min.js', './node_modules/jquery-ui-npm/jquery-ui.min.js', + './node_modules/marked/lib/marked.js', './js/libraries/d3.min.js', './js/libraries/jquery.nouislider.all.min.js', './node_modules/three/three.min.js', @@ -128,6 +129,10 @@ sources.receiverJs = [ './tabs/receiver_msp.js' ]; +sources.debugTraceJs = [ + './js/debug_trace.js' +]; + sources.hexParserJs = [ './js/workers/hex_parser.js', ]; @@ -139,6 +144,7 @@ var output = { mapJs: 'map.js', receiverCss: 'receiver-msp.css', receiverJs: 'receiver-msp.js', + debugTraceJs: 'debug-trace.js', hexParserJs: 'hex_parser.js', }; diff --git a/images/icons/cf_icon_position_edit.png b/images/icons/cf_icon_position_edit.png new file mode 100644 index 00000000..d931b09a Binary files /dev/null and b/images/icons/cf_icon_position_edit.png differ diff --git a/js/debug_trace.js b/js/debug_trace.js new file mode 100644 index 00000000..78252a94 --- /dev/null +++ b/js/debug_trace.js @@ -0,0 +1,9 @@ +function debugTraceOnLoad() +{ + var output = document.getElementById('debug-trace'); + setInterval(function() { + output.innerText = getDebugTrace(); + }, 100); +} + +window.onload = debugTraceOnLoad; diff --git a/js/fc.js b/js/fc.js index 033c60f8..c1e2fc14 100644 --- a/js/fc.js +++ b/js/fc.js @@ -24,10 +24,12 @@ var CONFIG, MOTOR_DATA, SERVO_DATA, GPS_DATA, + MISSION_PLANER, ANALOG, ARMING_CONFIG, FC_CONFIG, MISC, + VOLTMETER_CONFIG, _3D, DATAFLASH, SDCARD, @@ -48,7 +50,8 @@ var CONFIG, CALIBRATION_DATA, POSITION_ESTIMATOR, RTH_AND_LAND_CONFIG, - FW_CONFIG; + FW_CONFIG, + DEBUG_TRACE; var FC = { MAX_SERVO_RATE: 125, @@ -141,7 +144,12 @@ var FC = { throttle_MID: 0, throttle_EXPO: 0, dynamic_THR_breakpoint: 0, - RC_YAW_EXPO: 0 + RC_YAW_EXPO: 0, + manual_RC_EXPO: 0, + manual_RC_YAW_EXPO: 0, + manual_roll_rate: 0, + manual_pitch_rate: 0, + manual_yaw_rate: 0, }; AUX_CONFIG = []; @@ -171,6 +179,7 @@ var FC = { altitude: 0, barometer: 0, sonar: 0, + air_speed: 0, kinematics: [0.0, 0.0, 0.0], debug: [0, 0, 0, 0] }; @@ -198,11 +207,34 @@ var FC = { packetCount: 0 }; + MISSION_PLANER = { + maxWaypoints: 0, + isValidMission: 0, + countBusyPoints: 0, + bufferPoint: { + number: 0, + action: 0, + lat: 0, + lon: 0, + alt: 0, + endMission: 0, + p1: 0 + } + }; + ANALOG = { voltage: 0, mAhdrawn: 0, + mWhdrawn: 0, rssi: 0, - amperage: 0 + amperage: 0, + power: 0, + cell_count: 0, + battery_percentage: 0, + battery_full_when_plugged_in: false, + use_capacity_thresholds: false, + battery_remaining_capacity: 0, + battery_flags: 0 }; ARMING_CONFIG = { @@ -230,7 +262,24 @@ var FC = { vbatscale: 0, vbatmincellvoltage: 0, vbatmaxcellvoltage: 0, - vbatwarningcellvoltage: 0 + vbatwarningcellvoltage: 0, + battery_capacity: 0, + battery_capacity_warning: 0, + battery_capacity_critical: 0, + battery_capacity_unit: 'mAh' + }; + + BATTERY_CONFIG = { + vbatscale: 0, + vbatmincellvoltage: 0, + vbatmaxcellvoltage: 0, + vbatwarningcellvoltage: 0, + current_offset: 0, + current_scale: 0, + capacity: 0, + capacity_warning: 0, + capacity_critical: 0, + capacity_unit: 0 }; ADVANCED_CONFIG = { @@ -500,6 +549,13 @@ var FC = { ); } + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + features.push( + {bit: 30, group: 'other', name: 'FW_LAUNCH', haveTip: false, showNameInTip: false}, + {bit: 2, group: 'other', name: 'TX_PROF_SEL', haveTip: false, showNameInTip: false} + ); + } + return features.reverse(); }, isFeatureEnabled: function (featureName, features) { @@ -720,6 +776,10 @@ var FC = { data.push('TBS Crossfire'); } + if (semver.gte(CONFIG.flightControllerVersion, "1.9.1")) { + data.push('FPort'); + } + return data; }, getSPIProtocolTypes: function () { @@ -837,13 +897,13 @@ var FC = { } }, getOsdDisabledFields: function () { - return ['CRAFT_NAME']; + return []; }, getAccelerometerNames: function () { return [ "NONE", "AUTO", "ADXL345", "MPU6050", "MMA845x", "BMA280", "LSM303DLHC", "MPU6000", "MPU6500", "MPU9250", "FAKE"]; }, getMagnetometerNames: function () { - return ["NONE", "AUTO", "HMC5883", "AK8975", "GPSMAG", "MAG3110", "AK8963", "IST8310", "FAKE"]; + return ["NONE", "AUTO", "HMC5883", "AK8975", "GPSMAG", "MAG3110", "AK8963", "IST8310", "QMC5883", "MPU9250", "FAKE"]; }, getBarometerNames: function () { if (semver.gte(CONFIG.flightControllerVersion, "1.6.2")) { @@ -862,7 +922,7 @@ var FC = { } }, getRangefinderNames: function () { - return [ "NONE", "HCSR04", "SRF10"]; + return [ "NONE", "HCSR04", "SRF10", "HCSR04I2C", "VL53L0X", "UIB"]; }, getArmingFlags: function () { return { @@ -936,7 +996,30 @@ var FC = { } }, getRcMapLetters: function () { - return ['A', 'E', 'R', 'T', '5', '6', '7', '8']; + if (semver.gte(CONFIG.flightControllerVersion, '1.9.1')) + return ['A', 'E', 'R', 'T']; + else + return ['A', 'E', 'R', 'T', '5', '6', '7', '8']; + }, + isRcMapValid: function (val) { + var strBuffer = val.split(''), + duplicityBuffer = []; + + if (val.length != FC.getRcMapLetters().length) + return false; + + // check if characters inside are all valid, also check for duplicity + for (var i = 0; i < val.length; i++) { + if (FC.getRcMapLetters().indexOf(strBuffer[i]) < 0) + return false; + + if (duplicityBuffer.indexOf(strBuffer[i]) < 0) + duplicityBuffer.push(strBuffer[i]); + else + return false; + } + + return true; }, getServoMixInputNames: function () { return [ diff --git a/js/gui.js b/js/gui.js index 3028577d..a1ce5d8b 100644 --- a/js/gui.js +++ b/js/gui.js @@ -38,7 +38,8 @@ var GUI_control = function () { 'setup', 'osd', 'profiles', - 'advanced_tuning' + 'advanced_tuning', + 'mission_control' ]; this.allowedTabs = this.defaultAllowedTabsWhenDisconnected; diff --git a/js/msp/MSPCodes.js b/js/msp/MSPCodes.js index 7cad702e..e6d37c69 100644 --- a/js/msp/MSPCodes.js +++ b/js/msp/MSPCodes.js @@ -20,7 +20,9 @@ var MSPCodes = { MSP_POSITION_ESTIMATION_CONFIG: 16, MSP_SET_POSITION_ESTIMATION_CONFIG: 17, - + MSP_WP_MISSION_LOAD: 18, + MSP_WP_MISSION_SAVE: 19, + MSP_WP_GETINFO: 20, MSP_RTH_AND_LAND_CONFIG: 21, MSP_SET_RTH_AND_LAND_CONFIG: 22, MSP_FW_CONFIG: 23, @@ -151,9 +153,20 @@ var MSPCodes = { MSP_BF_BUILD_INFO: 69, // build date as well as some space for future expansion // INAV specific codes - MSPV2_SETTING: 0x1003, - MSPV2_SET_SETTING: 0x1004, + MSPV2_SETTING: 0x1003, + MSPV2_SET_SETTING: 0x1004, - MSP2_COMMON_MOTOR_MIXER: 0x1005, - MSP2_COMMON_SET_MOTOR_MIXER: 0x1006 + MSP2_COMMON_MOTOR_MIXER: 0x1005, + MSP2_COMMON_SET_MOTOR_MIXER: 0x1006, + + MSPV2_INAV_STATUS: 0x2000, + MSPV2_INAV_OPTICAL_FLOW: 0x2001, + MSPV2_INAV_ANALOG: 0x2002, + MSPV2_INAV_MISC: 0x2003, + MSPV2_INAV_SET_MISC: 0x2004, + MSPV2_INAV_BATTERY_CONFIG: 0x2005, + MSPV2_INAV_SET_BATTERY_CONFIG: 0x2006, + MSPV2_INAV_RATE_PROFILE: 0x2007, + MSPV2_INAV_SET_RATE_PROFILE: 0x2008, + MSPV2_INAV_AIR_SPEED: 0x2009, }; diff --git a/js/msp/MSPHelper.js b/js/msp/MSPHelper.js index 89e2ce47..4e684c77 100644 --- a/js/msp/MSPHelper.js +++ b/js/msp/MSPHelper.js @@ -42,11 +42,17 @@ var mspHelper = (function (gui) { 'BLACKBOX': 7, 'TELEMETRY_MAVLINK': 8, 'TELEMETRY_IBUS': 9, - 'RUNCAM_DEVICE_CONTROL' : 10, + 'RUNCAM_DEVICE_CONTROL': 10, 'TBS_SMARTAUDIO': 11, 'IRC_TRAMP': 12 }; + // Required for MSP_DEBUGMSG because console.log() doesn't allow omitting + // the newline at the end, so we keep the pending message here until we find a + // '\0', then print it. Messages sent by MSP_DEBUGMSG are guaranteed to + // always finish with a '\0'. + var debugMsgBuffer = ''; + /** * * @param {MSP} dataHandler @@ -132,14 +138,14 @@ var mspHelper = (function (gui) { case MSPCodes.MSP_SENSOR_STATUS: SENSOR_STATUS.isHardwareHealthy = data.getUint8(0); - SENSOR_STATUS.gyroHwStatus = data.getUint8(1); - SENSOR_STATUS.accHwStatus = data.getUint8(2); - SENSOR_STATUS.magHwStatus = data.getUint8(3); - SENSOR_STATUS.baroHwStatus = data.getUint8(4); - SENSOR_STATUS.gpsHwStatus = data.getUint8(5); - SENSOR_STATUS.rangeHwStatus = data.getUint8(6); - SENSOR_STATUS.speedHwStatus = data.getUint8(7); - SENSOR_STATUS.flowHwStatus = data.getUint8(8); + SENSOR_STATUS.gyroHwStatus = data.getUint8(1); + SENSOR_STATUS.accHwStatus = data.getUint8(2); + SENSOR_STATUS.magHwStatus = data.getUint8(3); + SENSOR_STATUS.baroHwStatus = data.getUint8(4); + SENSOR_STATUS.gpsHwStatus = data.getUint8(5); + SENSOR_STATUS.rangeHwStatus = data.getUint8(6); + SENSOR_STATUS.speedHwStatus = data.getUint8(7); + SENSOR_STATUS.flowHwStatus = data.getUint8(8); if (semver.gte(CONFIG.flightControllerVersion, "1.5.0")) { sensor_status_ex(SENSOR_STATUS); } @@ -225,11 +231,36 @@ var mspHelper = (function (gui) { case MSPCodes.MSP_SONAR: SENSOR_DATA.sonar = data.getInt32(0, true); break; + case MSPCodes.MSPV2_INAV_AIR_SPEED: + SENSOR_DATA.air_speed = data.getInt32(0, true); + break; case MSPCodes.MSP_ANALOG: ANALOG.voltage = data.getUint8(0) / 10.0; ANALOG.mAhdrawn = data.getUint16(1, true); ANALOG.rssi = data.getUint16(3, true); // 0-1023 ANALOG.amperage = data.getInt16(5, true) / 100; // A + break; + case MSPCodes.MSPV2_INAV_ANALOG: + ANALOG.voltage = data.getUint16(offset, true) / 100.0; + offset += 2; + ANALOG.cell_count = data.getUint8(offset++); + ANALOG.battery_percentage = data.getUint8(offset++); + ANALOG.power = data.getUint16(offset, true); + offset += 2; + ANALOG.mAhdrawn = data.getUint16(offset, true); + offset += 2; + ANALOG.mWhdrawn = data.getUint16(offset, true); + offset += 2; + ANALOG.rssi = data.getUint16(offset, true); // 0-1023 + offset += 2; + ANALOG.amperage = data.getInt16(offset, true) / 100; // A + offset += 2; + var battery_flags = data.getUint8(offset++); + ANALOG.battery_full_when_plugged_in = (battery_flags & 1 ? true : false); + ANALOG.use_capacity_thresholds = ((battery_flags & 2) >> 1 ? true : false); + ANALOG.battery_state = (battery_flags & 12) >> 2; + ANALOG.battery_remaining_capacity = data.getUint32(offset, true); + offset += 4; //noinspection JSValidateTypes dataHandler.analog_last_received_timestamp = Date.now(); break; @@ -255,6 +286,32 @@ var mspHelper = (function (gui) { offset += 2; RC_tuning.RC_YAW_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); break; + case MSPCodes.MSPV2_INAV_RATE_PROFILE: + // compat + RC_tuning.RC_RATE = 100; + RC_tuning.roll_pitch_rate = 0; + + // throttle + RC_tuning.throttle_MID = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); + RC_tuning.throttle_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); + RC_tuning.dynamic_THR_PID = parseInt(data.getUint8(offset++)); + RC_tuning.dynamic_THR_breakpoint = data.getUint16(offset, true); + offset += 2; + + // stabilized + RC_tuning.RC_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); + RC_tuning.RC_YAW_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); + RC_tuning.roll_rate = data.getUint8(offset++) * 10; + RC_tuning.pitch_rate = data.getUint8(offset++) * 10; + RC_tuning.yaw_rate = data.getUint8(offset++) * 10; + + // manual + RC_tuning.manual_RC_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); + RC_tuning.manual_RC_YAW_EXPO = parseFloat((data.getUint8(offset++) / 100).toFixed(2)); + RC_tuning.manual_roll_rate = data.getUint8(offset++); + RC_tuning.manual_pitch_rate = data.getUint8(offset++); + RC_tuning.manual_yaw_rate = data.getUint8(offset++); + break; case MSPCodes.MSP_PID: // PID data arrived, we need to scale it and save to appropriate bank / array for (i = 0, needle = 0; i < (dataHandler.message_length_expected / 3); i++, needle += 3) { @@ -294,6 +351,60 @@ var mspHelper = (function (gui) { MISC.vbatmaxcellvoltage = data.getUint8(offset++) / 10; // 10-50 MISC.vbatwarningcellvoltage = data.getUint8(offset++) / 10; // 10-50 break; + case MSPCodes.MSPV2_INAV_MISC: + MISC.midrc = data.getInt16(offset, true); + offset += 2; + MISC.minthrottle = data.getUint16(offset, true); // 0-2000 + offset += 2; + MISC.maxthrottle = data.getUint16(offset, true); // 0-2000 + offset += 2; + MISC.mincommand = data.getUint16(offset, true); // 0-2000 + offset += 2; + MISC.failsafe_throttle = data.getUint16(offset, true); // 1000-2000 + offset += 2; + MISC.gps_type = data.getUint8(offset++); + MISC.sensors_baudrate = data.getUint8(offset++); + MISC.gps_ubx_sbas = data.getInt8(offset++); + MISC.rssi_channel = data.getUint8(offset++); + MISC.mag_declination = data.getInt16(offset, 1) / 10; // -18000-18000 + offset += 2; + MISC.vbatscale = data.getUint16(offset, true); + offset += 2; + MISC.vbatmincellvoltage = data.getUint16(offset, true) / 100; + offset += 2; + MISC.vbatmaxcellvoltage = data.getUint16(offset, true) / 100; + offset += 2; + MISC.vbatwarningcellvoltage = data.getUint16(offset, true) / 100; + offset += 2; + MISC.battery_capacity = data.getUint32(offset, true); + offset += 4; + MISC.battery_capacity_warning = data.getUint32(offset, true); + offset += 4; + MISC.battery_capacity_critical = data.getUint32(offset, true); + offset += 4; + MISC.battery_capacity_unit = (data.getUint8(offset++) ? 'mWh' : 'mAh'); + break; + case MSPCodes.MSPV2_INAV_BATTERY_CONFIG: + BATTERY_CONFIG.vbatscale = data.getUint16(offset, true); + offset += 2; + BATTERY_CONFIG.vbatmincellvoltage = data.getUint16(offset, true) / 100; + offset += 2; + BATTERY_CONFIG.vbatmaxcellvoltage = data.getUint16(offset, true) / 100; + offset += 2; + BATTERY_CONFIG.vbatwarningcellvoltage = data.getUint16(offset, true) / 100; + offset += 2; + BATTERY_CONFIG.current_offset = data.getUint16(offset, true); + offset += 2; + BATTERY_CONFIG.current_scale = data.getUint16(offset, true); + offset += 2; + BATTERY_CONFIG.capacity = data.getUint32(offset, true); + offset += 4; + BATTERY_CONFIG.capacity_warning = data.getUint32(offset, true); + offset += 4; + BATTERY_CONFIG.capacity_critical = data.getUint32(offset, true); + offset += 4; + BATTERY_CONFIG.battery_capacity_unit = (data.getUint8(offset++) ? 'mWh' : 'mAh'); + break; case MSPCodes.MSP_3D: _3D.deadband3d_low = data.getUint16(offset, true); offset += 2; @@ -340,7 +451,13 @@ var mspHelper = (function (gui) { } break; case MSPCodes.MSP_WP: - console.log(data); + MISSION_PLANER.bufferPoint.number = data.getUint8(0); + MISSION_PLANER.bufferPoint.action = data.getUint8(1); + MISSION_PLANER.bufferPoint.lat = data.getInt32(2, true) / 10000000; + MISSION_PLANER.bufferPoint.lon = data.getInt32(6, true) / 10000000; + MISSION_PLANER.bufferPoint.alt = data.getInt32(10, true); + MISSION_PLANER.bufferPoint.p1 = data.getInt16(14, true); + break; case MSPCodes.MSP_BOXIDS: //noinspection JSUndeclaredVariable @@ -462,6 +579,19 @@ var mspHelper = (function (gui) { console.log('Settings Saved in EEPROM'); break; case MSPCodes.MSP_DEBUGMSG: + for (var ii = 0; ii < data.byteLength; ii++) { + var c = data.readU8(); + if (c == 0) { + // End of message + if (debugMsgBuffer.length > 1) { + console.log('[DEBUG] ' + debugMsgBuffer); + DEBUG_TRACE = (DEBUG_TRACE || '') + debugMsgBuffer; + } + debugMsgBuffer = ''; + continue; + } + debugMsgBuffer += String.fromCharCode(c); + } break; case MSPCodes.MSP_DEBUG: for (i = 0; i < 4; i++) @@ -503,7 +633,7 @@ var mspHelper = (function (gui) { BF_CONFIG.board_align_pitch = data.getInt16(8, true); // -180 - 360 BF_CONFIG.board_align_yaw = data.getInt16(10, true); // -180 - 360 BF_CONFIG.currentscale = data.getInt16(12, true); - BF_CONFIG.currentoffset = data.getUint16(14, true); + BF_CONFIG.currentoffset = data.getInt16(14, true); break; case MSPCodes.MSP_SET_BF_CONFIG: console.log('BF_CONFIG saved'); @@ -1147,6 +1277,23 @@ var mspHelper = (function (gui) { case MSPCodes.MSPV2_SET_SETTING: console.log("Setting set"); break; + case MSPCodes.MSP_WP_GETINFO: + // Reserved for waypoint capabilities data.getUint8(0); + MISSION_PLANER.maxWaypoints = data.getUint8(1); + MISSION_PLANER.isValidMission = data.getUint8(2); + MISSION_PLANER.countBusyPoints = data.getUint8(3); + break; + case MSPCodes.MSP_SET_WP: + console.log('Point saved'); + break; + case MSPCodes.MSP_WP_MISSION_SAVE: + // buffer.push(0); + console.log(data); + + break; + case MSPCodes.MSP_WP_MISSION_LOAD: + console.log('Mission load'); + break; default: console.log('Unknown code detected: ' + dataHandler.code); } else { @@ -1231,6 +1378,28 @@ var mspHelper = (function (gui) { buffer.push(highByte(RC_tuning.dynamic_THR_breakpoint)); buffer.push(Math.round(RC_tuning.RC_YAW_EXPO * 100)); break; + case MSPCodes.MSPV2_INAV_SET_RATE_PROFILE: + // throttle + buffer.push(Math.round(RC_tuning.throttle_MID * 100)); + buffer.push(Math.round(RC_tuning.throttle_EXPO * 100)); + buffer.push(RC_tuning.dynamic_THR_PID); + buffer.push(lowByte(RC_tuning.dynamic_THR_breakpoint)); + buffer.push(highByte(RC_tuning.dynamic_THR_breakpoint)); + + // stabilized + buffer.push(Math.round(RC_tuning.RC_EXPO * 100)); + buffer.push(Math.round(RC_tuning.RC_YAW_EXPO * 100)); + buffer.push(Math.round(RC_tuning.roll_rate / 10)); + buffer.push(Math.round(RC_tuning.pitch_rate / 10)); + buffer.push(Math.round(RC_tuning.yaw_rate / 10)); + + // manual + buffer.push(Math.round(RC_tuning.manual_RC_EXPO * 100)); + buffer.push(Math.round(RC_tuning.manual_RC_YAW_EXPO * 100)); + buffer.push(RC_tuning.manual_roll_rate); + buffer.push(RC_tuning.manual_pitch_rate); + buffer.push(RC_tuning.manual_yaw_rate); + break; case MSPCodes.MSP_SET_RX_MAP: for (i = 0; i < RC_MAP.length; i++) { @@ -1275,6 +1444,60 @@ var mspHelper = (function (gui) { buffer.push(Math.round(MISC.vbatmaxcellvoltage * 10)); buffer.push(Math.round(MISC.vbatwarningcellvoltage * 10)); break; + case MSPCodes.MSPV2_INAV_SET_MISC: + buffer.push(lowByte(MISC.midrc)); + buffer.push(highByte(MISC.midrc)); + buffer.push(lowByte(MISC.minthrottle)); + buffer.push(highByte(MISC.minthrottle)); + buffer.push(lowByte(MISC.maxthrottle)); + buffer.push(highByte(MISC.maxthrottle)); + buffer.push(lowByte(MISC.mincommand)); + buffer.push(highByte(MISC.mincommand)); + buffer.push(lowByte(MISC.failsafe_throttle)); + buffer.push(highByte(MISC.failsafe_throttle)); + buffer.push(MISC.gps_type); + buffer.push(MISC.sensors_baudrate); + buffer.push(MISC.gps_ubx_sbas); + buffer.push(MISC.rssi_channel); + buffer.push(lowByte(Math.round(MISC.mag_declination * 10))); + buffer.push(highByte(Math.round(MISC.mag_declination * 10))); + buffer.push(lowByte(MISC.vbatscale)); + buffer.push(highByte(MISC.vbatscale)); + buffer.push(lowByte(Math.round(MISC.vbatmincellvoltage * 100))); + buffer.push(highByte(Math.round(MISC.vbatmincellvoltage * 100))); + buffer.push(lowByte(Math.round(MISC.vbatmaxcellvoltage * 100))); + buffer.push(highByte(Math.round(MISC.vbatmaxcellvoltage * 100))); + buffer.push(lowByte(Math.round(MISC.vbatwarningcellvoltage * 100))); + buffer.push(highByte(Math.round(MISC.vbatwarningcellvoltage * 100))); + for (byte_index = 0; byte_index < 4; ++byte_index) + buffer.push(specificByte(MISC.battery_capacity, byte_index)); + for (byte_index = 0; byte_index < 4; ++byte_index) + buffer.push(specificByte(MISC.battery_capacity_warning, byte_index)); + for (byte_index = 0; byte_index < 4; ++byte_index) + buffer.push(specificByte(MISC.battery_capacity_critical, byte_index)); + buffer.push((MISC.battery_capacity_unit == 'mAh') ? 0 : 1); + break; + case MSPCodes.MSPV2_INAV_SET_BATTERY_CONFIG: + buffer.push(lowByte(BATTERY_CONFIG.vbatscale)); + buffer.push(highByte(BATTERY_CONFIG.vbatscale)); + buffer.push(lowByte(Math.round(BATTERY_CONFIG.vbatmincellvoltage * 100))); + buffer.push(highByte(Math.round(BATTERY_CONFIG.vbatmincellvoltage * 100))); + buffer.push(lowByte(Math.round(BATTERY_CONFIG.vbatmaxcellvoltage * 100))); + buffer.push(highByte(Math.round(BATTERY_CONFIG.vbatmaxcellvoltage * 100))); + buffer.push(lowByte(Math.round(BATTERY_CONFIG.vbatwarningcellvoltage * 100))); + buffer.push(highByte(Math.round(BATTERY_CONFIG.vbatwarningcellvoltage * 100))); + buffer.push(lowByte(BATTERY_CONFIG.current_offset)); + buffer.push(highByte(BATTERY_CONFIG.current_offset)); + buffer.push(lowByte(BATTERY_CONFIG.current_scale)); + buffer.push(highByte(BATTERY_CONFIG.current_scale)); + for (byte_index = 0; byte_index < 4; ++byte_index) + buffer.push(specificByte(BATTERY_CONFIG.capacity, byte_index)); + for (byte_index = 0; byte_index < 4; ++byte_index) + buffer.push(specificByte(BATTERY_CONFIG.capacity_warning, byte_index)); + for (byte_index = 0; byte_index < 4; ++byte_index) + buffer.push(specificByte(BATTERY_CONFIG.capacity_critical, byte_index)); + buffer.push(BATTERY_CONFIG.capacity_unit); + break; case MSPCodes.MSP_SET_RX_CONFIG: buffer.push(RX_CONFIG.serialrx_provider); @@ -1326,7 +1549,7 @@ var mspHelper = (function (gui) { buffer.push(highByte(FAILSAFE_CONFIG.failsafe_fw_yaw_rate)); buffer.push(lowByte(FAILSAFE_CONFIG.failsafe_stick_motion_threshold)); buffer.push(highByte(FAILSAFE_CONFIG.failsafe_stick_motion_threshold)); - } + } if (semver.gte(CONFIG.flightControllerVersion, "1.7.4")) { buffer.push(lowByte(FAILSAFE_CONFIG.failsafe_min_distance)); buffer.push(highByte(FAILSAFE_CONFIG.failsafe_min_distance)); @@ -1627,6 +1850,44 @@ var mspHelper = (function (gui) { buffer.push(SENSOR_CONFIG.opflow); break; + case MSPCodes.MSP_SET_WP: + buffer.push(MISSION_PLANER.bufferPoint.number); // sbufReadU8(src); // number + buffer.push(MISSION_PLANER.bufferPoint.action); // sbufReadU8(src); // action + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 0)); // sbufReadU32(src); // lat + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 1)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 2)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lat, 3)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 0)); // sbufReadU32(src); // lon + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 1)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 2)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.lon, 3)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 0)); // sbufReadU32(src); // to set altitude (cm) + buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 1)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 2)); + buffer.push(specificByte(MISSION_PLANER.bufferPoint.alt, 3)); + buffer.push(lowByte(MISSION_PLANER.bufferPoint.p1)); //sbufReadU16(src); // P1 speed or landing + buffer.push(highByte(MISSION_PLANER.bufferPoint.p1)); + buffer.push(lowByte(0)); //sbufReadU16(src); // P2 + buffer.push(highByte(0)); + buffer.push(lowByte(0)); //sbufReadU16(src); // P3 + buffer.push(highByte(0)); + buffer.push(MISSION_PLANER.bufferPoint.endMission); //sbufReadU8(src); // future: to set nav flag + break; + case MSPCodes.MSP_WP: + console.log(MISSION_PLANER.bufferPoint.number); + buffer.push(MISSION_PLANER.bufferPoint.number+1); + + break; + case MSPCodes.MSP_WP_MISSION_SAVE: + // buffer.push(0); + console.log(buffer); + + break; + case MSPCodes.MSP_WP_MISSION_LOAD: + // buffer.push(0); + console.log(buffer); + + break; default: return false; } @@ -1652,9 +1913,9 @@ var mspHelper = (function (gui) { self.sendBlackboxConfiguration = function (onDataCallback) { var message = [ - BLACKBOX.blackboxDevice & 0xFF, - BLACKBOX.blackboxRateNum & 0xFF, - BLACKBOX.blackboxRateDenom & 0xFF + BLACKBOX.blackboxDevice & 0xFF, + BLACKBOX.blackboxRateNum & 0xFF, + BLACKBOX.blackboxRateDenom & 0xFF ]; //noinspection JSUnusedLocalSymbols @@ -2149,7 +2410,7 @@ var mspHelper = (function (gui) { MSP.send_message(MSPCodes.MSP_IDENT, false, false, callback); }; - self.loadINAVPidConfig = function(callback) { + self.loadINAVPidConfig = function (callback) { if (semver.gt(CONFIG.flightControllerVersion, "1.3.0")) { MSP.send_message(MSPCodes.MSP_INAV_PID, false, false, callback); } else { @@ -2161,7 +2422,7 @@ var mspHelper = (function (gui) { MSP.send_message(MSPCodes.MSP_LOOP_TIME, false, false, callback); }; - self.loadAdvancedConfig = function(callback) { + self.loadAdvancedConfig = function (callback) { if (semver.gte(CONFIG.flightControllerVersion, "1.3.0")) { MSP.send_message(MSPCodes.MSP_ADVANCED_CONFIG, false, false, callback); } else { @@ -2189,6 +2450,10 @@ var mspHelper = (function (gui) { MSP.send_message(MSPCodes.MSP_RC_TUNING, false, false, callback); }; + self.loadRateProfileData = function (callback) { + MSP.send_message(MSPCodes.MSPV2_INAV_RATE_PROFILE, false, false, callback); + }; + self.loadPidData = function (callback) { MSP.send_message(MSPCodes.MSP_PID, false, false, callback); }; @@ -2213,6 +2478,14 @@ var mspHelper = (function (gui) { MSP.send_message(MSPCodes.MSP_MISC, false, false, callback); }; + self.loadMiscV2 = function (callback) { + MSP.send_message(MSPCodes.MSPV2_INAV_MISC, false, false, callback); + }; + + self.loadBatteryConfig = function (callback) { + MSP.send_message(MSPCodes.MSPV2_BATTERY_CONFIG, false, false, callback); + }; + self.loadArmingConfig = function (callback) { MSP.send_message(MSPCodes.MSP_ARMING_CONFIG, false, false, callback); }; @@ -2309,6 +2582,10 @@ var mspHelper = (function (gui) { MSP.send_message(MSPCodes.MSP_SET_RC_TUNING, mspHelper.crunch(MSPCodes.MSP_SET_RC_TUNING), false, callback); }; + self.saveRateProfileData = function (callback) { + MSP.send_message(MSPCodes.MSPV2_INAV_SET_RATE_PROFILE, mspHelper.crunch(MSPCodes.MSPV2_INAV_SET_RATE_PROFILE), false, callback); + }; + self.savePidAdvanced = function (callback) { if (semver.gte(CONFIG.flightControllerVersion, "1.4.0")) { MSP.send_message(MSPCodes.MSP_SET_PID_ADVANCED, mspHelper.crunch(MSPCodes.MSP_SET_PID_ADVANCED), false, callback); @@ -2325,6 +2602,14 @@ var mspHelper = (function (gui) { MSP.send_message(MSPCodes.MSP_SET_MISC, mspHelper.crunch(MSPCodes.MSP_SET_MISC), false, callback); }; + self.saveMiscV2 = function (callback) { + MSP.send_message(MSPCodes.MSPV2_INAV_SET_MISC, mspHelper.crunch(MSPCodes.MSPV2_INAV_SET_MISC), false, callback); + }; + + self.saveBatteryConfig = function (callback) { + MSP.send_message(MSPCodes.MSPV2_SET_BATTERY_CONFIG, mspHelper.crunch(MSPCodes.MSPV2_SET_BATTERY_CONFIG), false, callback); + }; + self.save3dConfig = function (callback) { MSP.send_message(MSPCodes.MSP_SET_3D, mspHelper.crunch(MSPCodes.MSP_SET_3D), false, callback); }; @@ -2342,7 +2627,7 @@ var mspHelper = (function (gui) { }; self.saveRxConfig = function (callback) { - if(semver.gte(CONFIG.apiVersion, "1.21.0")) { + if (semver.gte(CONFIG.apiVersion, "1.21.0")) { MSP.send_message(MSPCodes.MSP_SET_RX_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_RX_CONFIG), false, callback); } else { callback(); @@ -2350,7 +2635,7 @@ var mspHelper = (function (gui) { }; self.saveSensorConfig = function (callback) { - if(semver.gte(CONFIG.flightControllerVersion, "1.5.0")) { + if (semver.gte(CONFIG.flightControllerVersion, "1.5.0")) { MSP.send_message(MSPCodes.MSP_SET_SENSOR_CONFIG, mspHelper.crunch(MSPCodes.MSP_SET_SENSOR_CONFIG), false, callback); } else { callback(); @@ -2437,20 +2722,28 @@ var mspHelper = (function (gui) { } }; - self._getSetting = function(name) { + self.getMissionInfo = function (callback) { + if (semver.gte(CONFIG.flightControllerVersion, "1.8.1")) { + MSP.send_message(MSPCodes.MSP_WP_GETINFO, false, false, callback); + } else { + callback(); + } + }; + + self._getSetting = function (name) { var promise; if (this._settings) { promise = Promise.resolve(this._settings); } else { - promise = new Promise(function(resolve, reject) { + promise = new Promise(function (resolve, reject) { var $this = this; $.ajax({ url: chrome.runtime.getURL('/resources/settings.json'), dataType: 'json', - error: function(jqXHR, text, error) { + error: function (jqXHR, text, error) { reject(error); }, - success: function(data) { + success: function (data) { $this._settings = data; resolve(data); } @@ -2462,19 +2755,19 @@ var mspHelper = (function (gui) { }); }; - self._encodeSettingName = function(name, data) { + self._encodeSettingName = function (name, data) { for (var ii = 0; ii < name.length; ii++) { data.push(name.charCodeAt(ii)); } data.push(0); }; - self.getSetting = function(name, callback) { + self.getSetting = function (name, callback) { var $this = this; return this._getSetting(name).then(function (setting) { - var data = []; + var data = []; $this._encodeSettingName(name, data); - MSP.send_message(MSPCodes.MSPV2_SETTING, data, false, function(resp) { + MSP.send_message(MSPCodes.MSPV2_SETTING, data, false, function (resp) { var value; switch (setting.type) { case "uint8_t": @@ -2511,7 +2804,7 @@ var mspHelper = (function (gui) { }); }; - self.encodeSetting = function(name, value) { + self.encodeSetting = function (name, value) { var $this = this; return this._getSetting(name).then(function (setting) { if (setting.table) { @@ -2554,15 +2847,15 @@ var mspHelper = (function (gui) { }); }; - self.setSetting = function(name, value, callback) { + self.setSetting = function (name, value, callback) { this.encodeSetting(name, value).then(function (data) { MSP.send_message(MSPCodes.MSPV2_SET_SETTING, data, false, callback); }); }; - self.getRTC = function(callback) { + self.getRTC = function (callback) { if (semver.gt(CONFIG.flightControllerVersion, "1.7.3")) { - MSP.send_message(MSPCodes.MSP_RTC, false, false, function(resp) { + MSP.send_message(MSPCodes.MSP_RTC, false, false, function (resp) { var seconds = resp.data.read32(); var millis = resp.data.readU16(); if (callback) { @@ -2574,7 +2867,7 @@ var mspHelper = (function (gui) { } }; - self.setRTC = function(callback) { + self.setRTC = function (callback) { if (semver.gt(CONFIG.flightControllerVersion, "1.7.3")) { var now = Date.now(); var secs = now / 1000; diff --git a/js/periodicStatusUpdater.js b/js/periodicStatusUpdater.js index 8bb03b3b..061af6da 100644 --- a/js/periodicStatusUpdater.js +++ b/js/periodicStatusUpdater.js @@ -61,18 +61,31 @@ helper.periodicStatusUpdater = (function () { } if (ANALOG != undefined) { - var nbCells = Math.floor(ANALOG.voltage / MISC.vbatmaxcellvoltage) + 1; - if (ANALOG.voltage == 0) - nbCells = 1; + var nbCells; + + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + nbCells = ANALOG.cell_count; + } else { + nbCells = Math.floor(ANALOG.voltage / MISC.vbatmaxcellvoltage) + 1; + if (ANALOG.voltage == 0) + nbCells = 1; + } var min = MISC.vbatmincellvoltage * nbCells; var max = MISC.vbatmaxcellvoltage * nbCells; var warn = MISC.vbatwarningcellvoltage * nbCells; - $(".battery-status").css({ - width: ((ANALOG.voltage - min) / (max - min) * 100) + "%", - display: 'inline-block' - }); + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + $(".battery-status").css({ + width: ANALOG.battery_percentage + "%", + display: 'inline-block' + }); + } else { + $(".battery-status").css({ + width: ((ANALOG.voltage - min) / (max - min) * 100) + "%", + display: 'inline-block' + }); + } if (active) { $(".linkicon").css({ @@ -84,7 +97,7 @@ helper.periodicStatusUpdater = (function () { }); } - if (ANALOG.voltage < warn) { + if (((semver.gte(CONFIG.flightControllerVersion, '1.8.1')) && (((ANALOG.use_capacity_thresholds) && (ANALOG.battery_remaining_capacity <= (MISC.battery_capacity_warning - MISC.battery_capacity_critical))) || ((!ANALOG.use_capacity_thresholds) && (ANALOG.voltage < warn))) || (ANALOG.voltage < min)) || ((semver.lt(CONFIG.flightControllerVersion, '1.8.1')) && (ANALOG.voltage < warn))) { $(".battery-status").css('background-color', '#D42133'); } else { $(".battery-status").css('background-color', '#59AA29'); @@ -123,11 +136,15 @@ helper.periodicStatusUpdater = (function () { MSP.send_message(MSPCodes.MSP_STATUS, false, false); } - MSP.send_message(MSPCodes.MSP_ANALOG, false, false); + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + MSP.send_message(MSPCodes.MSPV2_INAV_ANALOG, false, false); + } else { + MSP.send_message(MSPCodes.MSP_ANALOG, false, false); + } privateScope.updateView(); } }; return publicScope; -})(); \ No newline at end of file +})(); diff --git a/main.css b/main.css index 34b66acb..273d03e6 100644 --- a/main.css +++ b/main.css @@ -1107,6 +1107,17 @@ dialog { opacity: 0.5; } +.content_toolbar .btn-danger a { + background-color: #db250e; + border: 1px solid #b5480e; +} + +.content_toolbar .btn-danger a:hover { + background-color: #b5480e; + transition: all ease 0.2s; +} + + .toolbar_scroll_bottom .content_wrapper { /* content wrapper in view with toolbar in scroll bottom leave 50px space for the toolbar @@ -1658,7 +1669,7 @@ dialog { color: white; font-size: 10px; margin-top: 20px; - width: 90px; + width: 100px; float: right; margin-right: 20px; line-height: 12px; @@ -1750,6 +1761,7 @@ dialog { .bottomStatusIcons { background-color: #272727; height: 31px; + margin-left: 5px; margin-top: 2px; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; diff --git a/main.html b/main.html index f989e0c4..651e8cd5 100755 --- a/main.html +++ b/main.html @@ -1,9 +1,11 @@ - + + + @@ -14,7 +16,8 @@ @@ -185,6 +188,7 @@
  • +
  • @@ -199,7 +203,6 @@ title="Onboard Logging">
  • - diff --git a/main.js b/main.js index 8dcbb28c..a177d1ce 100644 --- a/main.js +++ b/main.js @@ -59,9 +59,20 @@ $(document).ready(function () { } }); + win.setMinimumSize(1024, 800); + win.on('close', function () { //Save window size and position - var currentWin = this; + // var height = win.height; + // var width = win.width; + // + // if (height < 400) { + // height = 400 + // } + // if (width < 512) { + // width = 512 + // } + chrome.storage.local.set({'windowSize': {height: win.height, width: win.width, x: win.x, y: win.y}}, function () { // Notify that we saved. console.log('Settings saved'); @@ -189,6 +200,9 @@ $(document).ready(function () { case 'gps': TABS.gps.initialize(content_ready); break; + case 'mission_control': + TABS.mission_control.initialize(content_ready); + break; case 'motors': TABS.motors.initialize(content_ready); break; diff --git a/manifest.json b/manifest.json index c414107d..0ab160bc 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "minimum_chrome_version": "38", - "version": "1.8.1", + "version": "1.9.3", "author": "Several", "name": "INAV - Configurator", "short_name": "INAV", diff --git a/package-lock.json b/package-lock.json index 83459891..e4916ac8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "inav-configurator", - "version": "1.8.1", + "version": "1.9.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,11 +10,11 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.17", + "mime-types": "2.1.18", "negotiator": "0.6.1" } }, @@ -45,6 +45,16 @@ "kind-of": "3.2.2", "longest": "1.0.1", "repeat-string": "1.6.1" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } } }, "amdefine": { @@ -144,12 +154,12 @@ "integrity": "sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=", "requires": { "archiver-utils": "1.3.0", - "async": "2.5.0", + "async": "2.6.0", "buffer-crc32": "0.2.13", "glob": "7.1.2", - "lodash": "4.17.4", - "readable-stream": "2.3.3", - "tar-stream": "1.5.4", + "lodash": "4.17.5", + "readable-stream": "2.3.5", + "tar-stream": "1.5.5", "zip-stream": "1.2.0" } }, @@ -161,9 +171,9 @@ "glob": "7.1.2", "graceful-fs": "4.1.11", "lazystream": "1.0.0", - "lodash": "4.17.4", + "lodash": "4.17.5", "normalize-path": "2.1.1", - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "archy": { @@ -177,16 +187,13 @@ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { "delegates": "1.0.0", - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "requires": { - "arr-flatten": "1.1.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", @@ -194,9 +201,9 @@ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-differ": { "version": "1.0.0", @@ -209,9 +216,9 @@ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-slice": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz", - "integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" }, "array-union": { "version": "1.0.2", @@ -227,9 +234,9 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arraybuffer.slice": { "version": "0.0.7", @@ -246,12 +253,17 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.4" + "lodash": "4.17.5" } }, "async-limiter": { @@ -264,6 +276,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" + }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -289,6 +306,30 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + } + } + }, "base64-arraybuffer": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", @@ -336,11 +377,12 @@ } }, "bl": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "2.3.5", + "safe-buffer": "5.1.1" } }, "blob": { @@ -368,7 +410,7 @@ "requires": { "ansi-align": "2.0.0", "camelcase": "4.1.0", - "chalk": "2.3.0", + "chalk": "2.3.2", "cli-boxes": "1.0.0", "string-width": "2.1.1", "term-size": "1.2.0", @@ -381,9 +423,9 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "1.9.1" } @@ -394,13 +436,13 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "chalk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "supports-color": "5.3.0" } }, "is-fullwidth-code-point": { @@ -426,32 +468,59 @@ } }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } }, "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", + "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "kind-of": "6.0.2", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } } }, "buffer": { @@ -460,7 +529,7 @@ "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", "requires": { "base64-js": "0.0.8", - "ieee754": "1.1.8", + "ieee754": "1.1.11", "isarray": "1.0.0" } }, @@ -469,13 +538,18 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, + "buffer-from": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==" + }, "buffer-to-vinyl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz", "integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=", "requires": { "file-type": "3.9.0", - "readable-stream": "2.3.3", + "readable-stream": "2.3.5", "uuid": "2.0.3", "vinyl": "1.2.0" }, @@ -485,7 +559,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.2", + "clone": "1.0.4", "clone-stats": "0.0.1", "replace-ext": "0.0.1" } @@ -498,9 +572,25 @@ "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" }, "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", + "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + } }, "callsite": { "version": "1.0.0", @@ -581,6 +671,78 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", @@ -597,9 +759,9 @@ } }, "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-buffer": { "version": "1.0.0", @@ -612,13 +774,13 @@ "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=" }, "cloneable-readable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.0.0.tgz", - "integrity": "sha1-pikNQT8hemEjL5XkWP84QYz7ARc=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", "requires": { "inherits": "2.0.3", - "process-nextick-args": "1.0.7", - "through2": "2.0.3" + "process-nextick-args": "2.0.0", + "readable-stream": "2.3.5" } }, "closure-util": { @@ -642,17 +804,9 @@ "rimraf": "2.6.2", "send": "0.16.1", "socket.io": "2.0.4", - "temp": "github:adam-lynch/node-temp#279c1350cb7e4f02515d91da9e35d39a40774016" + "temp": "0.8.3" }, "dependencies": { - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.4" - } - }, "fs-extra": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", @@ -689,13 +843,10 @@ "graceful-fs": "4.1.11" } }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "7.1.2" - } + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" } } }, @@ -709,6 +860,15 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "color-convert": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", @@ -728,9 +888,9 @@ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { "delayed-stream": "1.0.0" } @@ -759,14 +919,14 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" }, "compress-commons": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz", - "integrity": "sha1-WFhwku8g03y1i68AARLJJ4/3O58=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", "requires": { "buffer-crc32": "0.2.13", "crc32-stream": "2.0.0", "normalize-path": "2.1.1", - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "concat-map": { @@ -775,21 +935,29 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { + "buffer-from": "1.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.3", + "readable-stream": "2.3.5", "typedarray": "0.0.6" } }, "concat-with-sourcemaps": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", - "integrity": "sha1-9Vs74q60dgGxCi1SWcz7cP0vHdY=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.5.tgz", + "integrity": "sha512-YtnS0VEY+e2Khzsey/6mra9EoM6h/5gxaC0e3mcHpA5yfDxafhygytNmcJWodvUgyXzSiL5MSkPO6bQGgfliHw==", "requires": { - "source-map": "0.5.7" + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } }, "config-chain": { @@ -797,7 +965,7 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "requires": { - "ini": "1.3.4", + "ini": "1.3.5", "proto-list": "1.2.4" } }, @@ -811,7 +979,7 @@ "mkdirp": "0.5.1", "object-assign": "4.1.1", "os-tmpdir": "1.0.2", - "osenv": "0.1.4", + "osenv": "0.1.5", "uuid": "2.0.3", "write-file-atomic": "1.3.4", "xdg-basedir": "2.0.0" @@ -832,23 +1000,28 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "crc": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz", - "integrity": "sha1-naHpgOO9RPxck79as9ozeNheRms=" + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=" }, "crc32-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", "requires": { - "crc": "3.4.4", - "readable-stream": "2.3.3" + "crc": "3.5.0", + "readable-stream": "2.3.5" } }, "create-error-class": { @@ -864,15 +1037,15 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "shebang-command": "1.2.0", "which": "1.3.0" }, "dependencies": { "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -904,9 +1077,9 @@ } }, "dateformat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", - "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=" }, "debug": { "version": "2.6.9", @@ -921,13 +1094,18 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz", "integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=", "requires": { "buffer-to-vinyl": "1.1.0", - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "decompress-tar": "3.1.0", "decompress-tarbz2": "3.1.0", "decompress-targz": "3.1.0", @@ -937,6 +1115,45 @@ "vinyl-fs": "2.4.4" }, "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "1.0.0" + } + }, "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", @@ -949,15 +1166,6 @@ "path-is-absolute": "1.0.1" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - } - }, "glob-stream": { "version": "5.3.5", "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", @@ -996,16 +1204,16 @@ } }, "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" }, "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "1.0.0" } }, "isarray": { @@ -1013,13 +1221,41 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, "ordered-read-streams": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", "requires": { "is-stream": "1.1.0", - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "string_decoder": { @@ -1049,7 +1285,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.2", + "clone": "1.0.4", "clone-stats": "0.0.1", "replace-ext": "0.0.1" } @@ -1059,7 +1295,7 @@ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", "requires": { - "duplexify": "3.5.3", + "duplexify": "3.5.4", "glob-stream": "5.3.5", "graceful-fs": "4.1.11", "gulp-sourcemaps": "1.6.0", @@ -1069,7 +1305,7 @@ "merge-stream": "1.0.1", "mkdirp": "0.5.1", "object-assign": "4.1.1", - "readable-stream": "2.3.3", + "readable-stream": "2.3.5", "strip-bom": "2.0.0", "strip-bom-stream": "1.0.0", "through2": "2.0.3", @@ -1088,7 +1324,7 @@ "is-tar": "1.0.0", "object-assign": "2.1.1", "strip-dirs": "1.1.1", - "tar-stream": "1.5.4", + "tar-stream": "1.5.5", "through2": "0.6.5", "vinyl": "0.4.6" }, @@ -1153,7 +1389,7 @@ "object-assign": "2.1.1", "seek-bzip": "1.0.5", "strip-dirs": "1.1.1", - "tar-stream": "1.5.4", + "tar-stream": "1.5.5", "through2": "0.6.5", "vinyl": "0.4.6" }, @@ -1217,7 +1453,7 @@ "is-gzip": "1.0.0", "object-assign": "2.1.1", "strip-dirs": "1.1.1", - "tar-stream": "1.5.4", + "tar-stream": "1.5.5", "through2": "0.6.5", "vinyl": "0.4.6" }, @@ -1292,7 +1528,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.2", + "clone": "1.0.4", "clone-stats": "0.0.1", "replace-ext": "0.0.1" } @@ -1346,7 +1582,16 @@ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "requires": { - "clone": "1.0.2" + "clone": "1.0.4" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" } }, "del": { @@ -1356,10 +1601,10 @@ "requires": { "globby": "6.1.0", "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.1.1", + "is-path-in-cwd": "1.0.1", + "p-map": "1.2.0", "pify": "3.0.0", - "rimraf": "2.6.1" + "rimraf": "2.6.2" } }, "delayed-stream": { @@ -1393,12 +1638,9 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detect-file": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", - "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", - "requires": { - "fs-exists-sync": "0.1.0" - } + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "dot-prop": { "version": "3.0.0", @@ -1432,7 +1674,7 @@ "decompress-targz": "4.1.1", "decompress-unzip": "4.0.1", "graceful-fs": "4.1.11", - "make-dir": "1.1.0", + "make-dir": "1.2.0", "pify": "2.3.0", "strip-dirs": "2.1.0" } @@ -1444,7 +1686,7 @@ "requires": { "file-type": "5.2.0", "is-stream": "1.1.0", - "tar-stream": "1.5.4" + "tar-stream": "1.5.5" } }, "decompress-tarbz2": { @@ -1565,13 +1807,13 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz", - "integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", + "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", "requires": { - "end-of-stream": "1.4.0", + "end-of-stream": "1.4.1", "inherits": "2.0.3", - "readable-stream": "2.3.3", + "readable-stream": "2.3.5", "stream-shift": "1.0.0" } }, @@ -1595,35 +1837,45 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "end-of-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "requires": { "once": "1.4.0" } }, "engine.io": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.4.tgz", - "integrity": "sha1-PQIRtwpVLOhB/8fahiezAamkFi4=", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz", + "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==", "requires": { - "accepts": "1.3.3", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "2.6.9", + "debug": "3.1.0", "engine.io-parser": "2.1.2", - "uws": "0.14.5", + "uws": "9.14.0", "ws": "3.3.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } } }, "engine.io-client": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.4.tgz", - "integrity": "sha1-T88TcLRxY70s6b4nM5ckMDUNTqE=", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", + "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "2.6.9", + "debug": "3.1.0", "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", @@ -1632,6 +1884,16 @@ "ws": "3.3.3", "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } } }, "engine.io-parser": { @@ -1689,11 +1951,86 @@ } }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "is-posix-bracket": "0.1.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } } }, "expand-range": { @@ -1702,14 +2039,52 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { "fill-range": "2.2.3" + }, + "dependencies": { + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "3.2.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } } }, "expand-tilde": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", - "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "requires": { - "os-homedir": "1.0.2" + "homedir-polyfill": "1.0.1" } }, "extend": { @@ -1718,19 +2093,55 @@ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "is-extendable": "0.1.1" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } } }, "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "is-extglob": "1.0.0" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } } }, "extract-zip": { @@ -1744,6 +2155,16 @@ "yauzl": "2.4.1" }, "dependencies": { + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.5", + "typedarray": "0.0.6" + } + }, "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", @@ -1773,11 +2194,12 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fancy-log": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", "requires": { - "chalk": "1.1.3", + "ansi-gray": "0.1.1", + "color-support": "1.1.3", "time-stamp": "1.1.0" } }, @@ -1815,7 +2237,7 @@ "integrity": "sha1-vRYiYsC26Uv7zc8Zo7uzdk94VpU=", "requires": { "filename-reserved-regex": "2.0.0", - "strip-outer": "1.0.0", + "strip-outer": "1.0.1", "trim-repeated": "1.0.0" } }, @@ -1829,15 +2251,24 @@ } }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } } }, "filled-array": { @@ -1851,14 +2282,14 @@ "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" }, "findup-sync": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", - "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", "requires": { - "detect-file": "0.1.0", - "is-glob": "2.0.1", - "micromatch": "2.3.11", - "resolve-dir": "0.1.1" + "detect-file": "1.0.0", + "is-glob": "3.1.0", + "micromatch": "3.1.10", + "resolve-dir": "1.0.1" } }, "fined": { @@ -1870,17 +2301,7 @@ "is-plain-object": "2.0.4", "object.defaults": "1.1.0", "object.pick": "1.3.0", - "parse-filepath": "1.0.1" - }, - "dependencies": { - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "1.0.1" - } - } + "parse-filepath": "1.0.2" } }, "first-chunk-stream": { @@ -1889,9 +2310,9 @@ "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" }, "flagged-respawn": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", - "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", + "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=" }, "for-in": { "version": "1.0.2", @@ -1899,9 +2320,9 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "requires": { "for-in": "1.0.2" } @@ -1922,8 +2343,16 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "combined-stream": "1.0.6", + "mime-types": "2.1.18" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" } }, "fresh": { @@ -1931,11 +2360,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "fs-exists-sync": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", - "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=" - }, "fs-extra": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", @@ -1945,7 +2369,7 @@ "jsonfile": "2.4.0", "klaw": "1.3.1", "path-is-absolute": "1.0.1", - "rimraf": "2.6.1" + "rimraf": "2.6.2" } }, "fs.realpath": { @@ -2011,6 +2435,11 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -2046,14 +2475,38 @@ "requires": { "glob-parent": "2.0.0", "is-glob": "2.0.1" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + } } }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "2.0.1" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" } }, "glob-stream": { @@ -2090,7 +2543,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "1.1.11" } }, "readable-stream": { @@ -2137,22 +2590,24 @@ } }, "global-modules": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", - "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "requires": { - "global-prefix": "0.1.5", - "is-windows": "0.2.0" + "global-prefix": "1.0.2", + "is-windows": "1.0.2", + "resolve-dir": "1.0.1" } }, "global-prefix": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", - "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "requires": { + "expand-tilde": "2.0.2", "homedir-polyfill": "1.0.1", - "ini": "1.3.4", - "is-windows": "0.2.0", + "ini": "1.3.5", + "is-windows": "1.0.2", "which": "1.3.0" } }, @@ -2222,9 +2677,9 @@ } }, "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz", + "integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==", "requires": { "sparkles": "1.0.0" } @@ -2240,7 +2695,7 @@ "is-redirect": "1.0.0", "is-retry-allowed": "1.1.0", "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", + "lowercase-keys": "1.0.1", "safe-buffer": "5.1.1", "timed-out": "4.0.1", "unzip-response": "2.0.1", @@ -2286,8 +2741,8 @@ "chalk": "1.1.3", "deprecated": "0.0.1", "gulp-util": "3.0.8", - "interpret": "1.0.3", - "liftoff": "2.3.0", + "interpret": "1.1.0", + "liftoff": "2.5.0", "minimist": "1.2.0", "orchestrator": "0.3.8", "pretty-hrtime": "1.0.3", @@ -2302,15 +2757,15 @@ "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", "requires": { - "concat-with-sourcemaps": "1.0.4", + "concat-with-sourcemaps": "1.0.5", "through2": "2.0.3", "vinyl": "2.1.0" }, "dependencies": { "clone": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "clone-stats": { "version": "1.0.0", @@ -2327,10 +2782,10 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", "requires": { - "clone": "2.1.1", + "clone": "2.1.2", "clone-buffer": "1.0.0", "clone-stats": "1.0.0", - "cloneable-readable": "1.0.0", + "cloneable-readable": "1.1.2", "remove-trailing-separator": "1.1.0", "replace-ext": "1.0.0" } @@ -2362,7 +2817,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "1.0.2", + "clone": "1.0.4", "clone-stats": "0.0.1", "replace-ext": "0.0.1" } @@ -2378,8 +2833,8 @@ "array-uniq": "1.0.3", "beeper": "1.1.1", "chalk": "1.1.3", - "dateformat": "2.0.0", - "fancy-log": "1.3.0", + "dateformat": "2.2.0", + "fancy-log": "1.3.2", "gulplog": "1.0.0", "has-gulplog": "0.1.0", "lodash._reescape": "3.0.0", @@ -2406,7 +2861,7 @@ "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", "requires": { - "glogg": "1.0.0" + "glogg": "1.0.1" } }, "handlebars": { @@ -2483,9 +2938,9 @@ "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-gulplog": { "version": "0.1.0", @@ -2496,16 +2951,16 @@ } }, "has-symbol-support-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz", - "integrity": "sha512-JkaetveU7hFbqnAC1EV1sF4rlojU2D4Usc5CmS69l6NfmPDnpnFUegzFg33eDkkpNCxZ0mQp65HwUDrNFS/8MA==" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "requires": { - "has-symbol-support-x": "1.4.1" + "has-symbol-support-x": "1.4.2" } }, "has-unicode": { @@ -2513,6 +2968,35 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -2562,13 +3046,13 @@ "requires": { "assert-plus": "0.2.0", "jsprim": "1.4.1", - "sshpk": "1.13.1" + "sshpk": "1.14.1" } }, "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", + "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==" }, "imurmurhash": { "version": "0.1.4", @@ -2600,14 +3084,14 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "interpret": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" }, "invert-kv": { "version": "1.0.0", @@ -2615,12 +3099,20 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "is-absolute": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", - "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "requires": { - "is-relative": "0.2.1", - "is-windows": "0.2.0" + "is-relative": "1.0.0", + "is-windows": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" } }, "is-arrayish": { @@ -2629,15 +3121,33 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=" + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-bzip2": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz", "integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=" }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -2657,9 +3167,9 @@ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { "version": "1.0.2", @@ -2678,11 +3188,11 @@ } }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "2.1.1" } }, "is-gzip": { @@ -2706,11 +3216,21 @@ "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } } }, "is-obj": { @@ -2723,23 +3243,38 @@ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" }, "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", - "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { "path-is-inside": "1.0.2" } @@ -2750,13 +3285,6 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "is-posix-bracket": { @@ -2775,11 +3303,11 @@ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" }, "is-relative": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", - "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "requires": { - "is-unc-path": "0.1.2" + "is-unc-path": "1.0.0" } }, "is-retry-allowed": { @@ -2803,9 +3331,9 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-unc-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", - "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "requires": { "unc-path-regex": "0.1.2" } @@ -2821,9 +3349,9 @@ "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=" }, "is-windows": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "is-zip": { "version": "1.0.0", @@ -2841,12 +3369,9 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", @@ -2897,7 +3422,7 @@ "escape-string-regexp": "1.0.5", "js2xmlparser": "3.0.0", "klaw": "2.0.0", - "marked": "0.3.12", + "marked": "0.3.19", "mkdirp": "0.5.1", "requizzle": "0.2.1", "strip-json-comments": "2.0.1", @@ -2980,12 +3505,9 @@ "integrity": "sha1-9DG0t/By3FAKXxDOf07HGTDnATQ=" }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.5" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "klaw": { "version": "1.3.1", @@ -3019,7 +3541,7 @@ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "lcid": { @@ -3031,25 +3553,24 @@ } }, "liftoff": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", - "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", "requires": { "extend": "3.0.1", - "findup-sync": "0.4.3", + "findup-sync": "2.0.0", "fined": "1.1.0", - "flagged-respawn": "0.3.2", - "lodash.isplainobject": "4.0.6", - "lodash.isstring": "4.0.1", - "lodash.mapvalues": "4.6.0", + "flagged-respawn": "1.0.0", + "is-plain-object": "2.0.4", + "object.map": "1.0.1", "rechoir": "0.6.2", - "resolve": "1.4.0" + "resolve": "1.6.0" } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" }, "lodash._basecopy": { "version": "3.0.1", @@ -3119,16 +3640,6 @@ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -3139,11 +3650,6 @@ "lodash.isarray": "3.0.4" } }, - "lodash.mapvalues": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", - "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=" - }, "lodash.restparam": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", @@ -3180,9 +3686,9 @@ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "2.7.3", @@ -3190,30 +3696,56 @@ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" }, "magic-string": { - "version": "0.22.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", - "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", "requires": { "vlq": "0.2.3" } }, "make-dir": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", - "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", "requires": { "pify": "3.0.0" } }, + "make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "1.0.1" + } + }, "marked": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.12.tgz", - "integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==" + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==" }, "merge": { "version": "1.2.0", @@ -3230,27 +3762,27 @@ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.1", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "mime": { @@ -3259,16 +3791,16 @@ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.30.0" + "mime-db": "1.33.0" } }, "minimatch": { @@ -3276,7 +3808,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3285,10 +3817,11 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "minipass": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz", - "integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "requires": { + "safe-buffer": "5.1.1", "yallist": "3.0.2" }, "dependencies": { @@ -3304,7 +3837,26 @@ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "requires": { - "minipass": "2.2.1" + "minipass": "2.2.4" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } } }, "mkdirp": { @@ -3358,10 +3910,29 @@ "duplexer2": "0.0.2" } }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + }, "natives": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", - "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.2.tgz", + "integrity": "sha512-5bRASydE1gu6zPOenLN043++J8xj1Ob7ArkfdYO3JN4DF5rDmG7bMoiybkTyD+GnXQEMixVeDHMzuqm6kpBmiA==" }, "ncp": { "version": "2.0.0", @@ -3469,7 +4040,7 @@ "file-exists": "2.0.0", "merge": "1.2.0", "multimeter": "0.1.1", - "rimraf": "2.6.1", + "rimraf": "2.6.2", "semver": "5.5.0", "yargs": "3.32.0" }, @@ -3495,7 +4066,7 @@ "graceful-ncp": "3.0.0", "inherits": "2.0.3", "lazy-req": "2.0.0", - "lodash": "4.17.4", + "lodash": "4.17.5", "optimist": "0.6.1", "platform-overrides": "1.0.1", "plist": "2.1.0", @@ -3503,7 +4074,7 @@ "rcedit": "0.9.0", "recursive-readdir-sync": "1.0.6", "request": "2.81.0", - "rimraf": "2.6.1", + "rimraf": "2.6.2", "semver": "2.3.2", "simple-glob": "0.1.0", "tar-fs": "1.16.0", @@ -3519,12 +4090,12 @@ "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", "requires": { "archiver-utils": "1.3.0", - "async": "2.5.0", + "async": "2.6.0", "buffer-crc32": "0.2.13", "glob": "7.1.2", - "lodash": "4.17.4", - "readable-stream": "2.3.3", - "tar-stream": "1.5.4", + "lodash": "4.17.5", + "readable-stream": "2.3.5", + "tar-stream": "1.5.5", "walkdir": "0.0.11", "zip-stream": "1.2.0" } @@ -3564,30 +4135,93 @@ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + } + }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "requires": { "array-each": "1.0.1", - "array-slice": "1.0.0", + "array-slice": "1.1.0", "for-own": "1.0.0", "isobject": "3.0.1" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "1.0.2" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "1.0.0", + "make-iterator": "1.0.0" } }, "object.omit": { @@ -3597,6 +4231,16 @@ "requires": { "for-own": "0.1.5", "is-extendable": "0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "1.0.2" + } + } } }, "object.pick": { @@ -3605,13 +4249,6 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - } } }, "on-finished": { @@ -3631,9 +4268,9 @@ } }, "openlayers": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/openlayers/-/openlayers-4.6.4.tgz", - "integrity": "sha512-Oru7/xniirjech7H5zkMQSUj/JUymNveiE4vAwmyjAmcoNyO4zTRD/Pp7BPfxBPuAz45vDl78H1wEQD7RGWkGg==", + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/openlayers/-/openlayers-4.6.5.tgz", + "integrity": "sha512-RH1jqHJA8/d4ZuMYewBMfbFvmriplQ3GvDSLpqxad3S55PFyMWkbg3lKSt2zHRhijiFq4PpsCsJQLDqmSDGSOQ==", "requires": { "async": "2.6.0", "closure-util": "1.26.0", @@ -3645,20 +4282,12 @@ "rbush": "2.0.1", "rollup": "0.52.3", "rollup-plugin-cleanup": "2.0.0", - "rollup-plugin-commonjs": "8.3.0", - "rollup-plugin-node-resolve": "3.0.2", - "temp": "github:adam-lynch/node-temp#279c1350cb7e4f02515d91da9e35d39a40774016", + "rollup-plugin-commonjs": "8.4.1", + "rollup-plugin-node-resolve": "3.3.0", + "temp": "0.8.3", "walk": "2.3.9" }, "dependencies": { - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.4" - } - }, "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", @@ -3702,7 +4331,7 @@ "requires": { "end-of-stream": "0.1.5", "sequencify": "0.0.7", - "stream-consume": "0.1.0" + "stream-consume": "0.1.1" }, "dependencies": { "end-of-stream": { @@ -3747,9 +4376,9 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "1.0.2", "os-tmpdir": "1.0.2" @@ -3761,9 +4390,9 @@ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-map": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz", - "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" }, "package-json": { "version": "2.4.0", @@ -3781,7 +4410,7 @@ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "got": { @@ -3794,13 +4423,13 @@ "is-redirect": "1.0.0", "is-retry-allowed": "1.1.0", "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", + "lowercase-keys": "1.0.1", "node-status-codes": "1.0.0", "object-assign": "4.1.1", "parse-json": "2.2.0", "pinkie-promise": "2.0.1", "read-all-stream": "3.1.0", - "readable-stream": "2.3.3", + "readable-stream": "2.3.5", "timed-out": "3.1.3", "unzip-response": "1.0.2", "url-parse-lax": "1.0.0" @@ -3824,11 +4453,11 @@ } }, "parse-filepath": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", - "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "requires": { - "is-absolute": "0.2.6", + "is-absolute": "1.0.0", "map-cache": "0.2.2", "path-root": "0.1.1" } @@ -3842,6 +4471,21 @@ "is-dotfile": "1.0.3", "is-extglob": "1.0.0", "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + } } }, "parse-json": { @@ -3873,6 +4517,11 @@ "better-assert": "1.0.2" } }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -3916,7 +4565,7 @@ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.1.0.tgz", "integrity": "sha512-/hYJmIsTmh7fMkHAWWXJ5b8IKLWdjdlAFb3IHkRBn1XUhIYBChVGfVwmHEAV3UfXTxsP/AKfYTXTS/dCPxJd5w==", "requires": { - "ieee754": "1.1.8", + "ieee754": "1.1.11", "resolve-protobuf-schema": "2.0.0" } }, @@ -4006,6 +4655,11 @@ "array-slice": "0.2.3" } }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=" + }, "array-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", @@ -4026,6 +4680,11 @@ } } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", @@ -4042,9 +4701,9 @@ "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" }, "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "progress": { "version": "1.1.8", @@ -4088,7 +4747,7 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "requires": { - "end-of-stream": "1.4.0", + "end-of-stream": "1.4.1", "once": "1.4.0" } }, @@ -4121,30 +4780,12 @@ "kind-of": "4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.5" - } - } - } - }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.5" + "is-buffer": "1.1.6" } } } @@ -4163,12 +4804,12 @@ } }, "rc": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.4.tgz", - "integrity": "sha1-oPYGyq4qO4YrvQ74VILAElsxX6M=", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz", + "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", "requires": { "deep-extend": "0.4.2", - "ini": "1.3.4", + "ini": "1.3.5", "minimist": "1.2.0", "strip-json-comments": "2.0.1" } @@ -4184,18 +4825,18 @@ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=", "requires": { "pinkie-promise": "2.0.1", - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", + "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", "isarray": "1.0.0", - "process-nextick-args": "1.0.7", + "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", "string_decoder": "1.0.3", "util-deprecate": "1.0.2" @@ -4206,7 +4847,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "1.4.0" + "resolve": "1.6.0" } }, "recursive-readdir-sync": { @@ -4222,12 +4863,21 @@ "is-equal-shallow": "0.1.3" } }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + } + }, "registry-auth-token": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "requires": { - "rc": "1.2.4", + "rc": "1.2.6", "safe-buffer": "5.1.1" } }, @@ -4236,7 +4886,7 @@ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "requires": { - "rc": "1.2.4" + "rc": "1.2.6" } }, "remove-trailing-separator": { @@ -4275,7 +4925,7 @@ "aws-sign2": "0.6.0", "aws4": "1.6.0", "caseless": "0.12.0", - "combined-stream": "1.0.5", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", "form-data": "2.1.4", @@ -4285,13 +4935,13 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "oauth-sign": "0.8.2", "performance-now": "0.2.0", "qs": "6.4.0", "safe-buffer": "5.1.1", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", + "tough-cookie": "2.3.4", "tunnel-agent": "0.6.0", "uuid": "3.2.1" }, @@ -4320,20 +4970,20 @@ } }, "resolve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", - "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", + "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", "requires": { "path-parse": "1.0.5" } }, "resolve-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", - "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "requires": { - "expand-tilde": "1.2.2", - "global-modules": "0.2.3" + "expand-tilde": "2.0.2", + "global-modules": "1.0.0" } }, "resolve-protobuf-schema": { @@ -4344,6 +4994,16 @@ "protocol-buffers-schema": "2.2.0" } }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "retry": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", @@ -4359,9 +5019,9 @@ } }, "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } @@ -4377,7 +5037,7 @@ "integrity": "sha1-hZdzGaO/VHUKnXX7kJx+UfWaLaQ=", "requires": { "acorn": "4.0.13", - "magic-string": "0.22.4", + "magic-string": "0.22.5", "rollup-pluginutils": "2.0.1" }, "dependencies": { @@ -4389,14 +5049,14 @@ } }, "rollup-plugin-commonjs": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.3.0.tgz", - "integrity": "sha512-PYs3OiYgENFYEmI3vOEm5nrp3eY90YZqd5vGmQqeXmhJsAWFIrFdROCvOasqJ1HgeTvqyYo9IGXnFDyoboNcgQ==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.4.1.tgz", + "integrity": "sha512-mg+WuD+jlwoo8bJtW3Mvx7Tz6TsIdMsdhuvCnDMoyjh0oxsVgsjB/N0X984RJCWwc5IIiqNVJhXeeITcc73++A==", "requires": { "acorn": "5.2.1", "estree-walker": "0.5.1", - "magic-string": "0.22.4", - "resolve": "1.4.0", + "magic-string": "0.22.5", + "resolve": "1.6.0", "rollup-pluginutils": "2.0.1" }, "dependencies": { @@ -4408,13 +5068,13 @@ } }, "rollup-plugin-node-resolve": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.2.tgz", - "integrity": "sha512-ZwmMip/yqw6cmDQJuCQJ1G7gw2z11iGUtQNFYrFZHmqadRHU+OZGC3nOXwXu+UTvcm5lzDspB1EYWrkTgPWybw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz", + "integrity": "sha512-9zHGr3oUJq6G+X0oRMYlzid9fXicBdiydhwGChdyeNRGPcN/majtegApRKHLR5drboUvEWU+QeUmGTyEZQs3WA==", "requires": { - "builtin-modules": "1.1.1", + "builtin-modules": "2.0.0", "is-module": "1.0.0", - "resolve": "1.4.0" + "resolve": "1.6.0" } }, "rollup-pluginutils": { @@ -4424,6 +5084,88 @@ "requires": { "estree-walker": "0.3.1", "micromatch": "2.3.11" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + } } }, "run-sequence": { @@ -4434,18 +5176,6 @@ "chalk": "1.1.3", "fancy-log": "1.3.2", "plugin-error": "0.1.2" - }, - "dependencies": { - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", - "requires": { - "ansi-gray": "0.1.1", - "color-support": "1.1.3", - "time-stamp": "1.1.0" - } - } } }, "safe-buffer": { @@ -4453,6 +5183,14 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "0.1.15" + } + }, "seek-bzip": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", @@ -4511,6 +5249,27 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "setprototypeof": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", @@ -4590,6 +5349,128 @@ "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -4604,10 +5485,10 @@ "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", "requires": { "debug": "2.6.9", - "engine.io": "3.1.4", + "engine.io": "3.1.5", "socket.io-adapter": "1.1.1", "socket.io-client": "2.0.4", - "socket.io-parser": "3.1.2" + "socket.io-parser": "3.1.3" } }, "socket.io-adapter": { @@ -4625,27 +5506,35 @@ "component-bind": "1.0.0", "component-emitter": "1.2.1", "debug": "2.6.9", - "engine.io-client": "3.1.4", + "engine.io-client": "3.1.6", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.1.2", + "socket.io-parser": "3.1.3", "to-array": "0.1.4" } }, "socket.io-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.2.tgz", - "integrity": "sha1-28IoIVH8T6675Aru3Ady66YZ9/I=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", + "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", "requires": { "component-emitter": "1.2.1", - "debug": "2.6.9", + "debug": "3.1.0", "has-binary2": "1.0.2", "isarray": "2.0.1" }, "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, "isarray": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", @@ -4658,15 +5547,40 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, "sparkles": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=" }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "3.0.2" + } + }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "requires": { "asn1": "0.2.3", "assert-plus": "1.0.0", @@ -4690,6 +5604,76 @@ "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=" }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", @@ -4701,7 +5685,7 @@ "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", "requires": { "duplexer2": "0.1.4", - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" }, "dependencies": { "duplexer2": { @@ -4709,15 +5693,15 @@ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } } } }, "stream-consume": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", - "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=" + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==" }, "stream-shift": { "version": "1.0.0", @@ -4822,9 +5806,9 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "strip-outer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz", - "integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", "requires": { "escape-string-regexp": "1.0.5" } @@ -4852,7 +5836,7 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-3.1.5.tgz", "integrity": "sha512-TKJKz1fqBOZBaIQ/MGRKU0EnTGmKMLy4ReTRgP10AgtfOWBbj9PBg4MgY80GFpqGbs2EzcIctW5gbwbP4woDYg==", "requires": { - "minipass": "2.2.1", + "minipass": "2.2.4", "minizlib": "1.1.0", "mkdirp": "0.5.1", "yallist": "3.0.2" @@ -4873,23 +5857,26 @@ "chownr": "1.0.1", "mkdirp": "0.5.1", "pump": "1.0.3", - "tar-stream": "1.5.4" + "tar-stream": "1.5.5" } }, "tar-stream": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", - "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", "requires": { - "bl": "1.2.1", - "end-of-stream": "1.4.0", - "readable-stream": "2.3.3", + "bl": "1.2.2", + "end-of-stream": "1.4.1", + "readable-stream": "2.3.5", "xtend": "4.0.1" } }, "temp": { - "version": "github:adam-lynch/node-temp#279c1350cb7e4f02515d91da9e35d39a40774016", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", "requires": { + "os-tmpdir": "1.0.2", "rimraf": "2.2.8" }, "dependencies": { @@ -4936,7 +5923,7 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.3", + "readable-stream": "2.3.5", "xtend": "4.0.1" } }, @@ -4981,6 +5968,16 @@ "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", "requires": { "extend-shallow": "2.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + } } }, "to-array": { @@ -4988,6 +5985,44 @@ "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, "touch": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", @@ -5007,9 +6042,9 @@ } }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { "punycode": "1.4.1" } @@ -5138,6 +6173,38 @@ "underscore": "1.6.0" } }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, "unique-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", @@ -5148,6 +6215,42 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", @@ -5207,6 +6310,11 @@ } } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -5220,6 +6328,14 @@ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "requires": { + "kind-of": "6.0.2" + } + }, "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", @@ -5236,9 +6352,9 @@ "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" }, "uws": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/uws/-/uws-0.14.5.tgz", - "integrity": "sha1-Z6rzPEaypYel9mZtAPdpEyjxSdw=", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz", + "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==", "optional": true }, "v8flags": { @@ -5276,7 +6392,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", "requires": { - "clone": "1.0.2", + "clone": "1.0.4", "clone-stats": "0.0.1", "replace-ext": "0.0.1" } @@ -5287,7 +6403,7 @@ "integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=", "requires": { "object-assign": "4.1.1", - "readable-stream": "2.3.3" + "readable-stream": "2.3.5" } }, "vinyl-fs": { @@ -5315,7 +6431,7 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "requires": { - "natives": "1.1.0" + "natives": "1.1.2" } }, "isarray": { @@ -5556,9 +6672,9 @@ "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", "requires": { "archiver-utils": "1.3.0", - "compress-commons": "1.2.0", - "lodash": "4.17.4", - "readable-stream": "2.3.3" + "compress-commons": "1.2.2", + "lodash": "4.17.5", + "readable-stream": "2.3.5" } } } diff --git a/package.json b/package.json index dc8394dc..23e767c9 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "inav-configurator", "description": "INAV Configurator", - "version": "1.8.1", + "version": "1.9.3", "main": "main.html", "default_locale": "en", "scripts": { @@ -29,8 +29,9 @@ "inflection": "1.12.0", "jquery": "2.1.4", "jquery-ui-npm": "1.12.0", - "nw": "^0.25.4", - "nw-builder": "^3.5.1", + "marked": "^0.3.17", + "nw": "^0.25.4-sdk", + "nw-builder": "^3.4.1", "openlayers": "^4.6.4", "run-sequence": "^2.2.0", "temp": "^0.8.3", diff --git a/resources/osd/bold.mcm b/resources/osd/bold.mcm index b2497cc9..af1a92a1 100644 --- a/resources/osd/bold.mcm +++ b/resources/osd/bold.mcm @@ -2179,49 +2179,49 @@ MAX7456 01010101 01010101 01010101 +00010101 01010101 +01010100 +10000001 01010101 +01010010 +10001000 +00010101 +01001010 +10101010 +10000101 +01010010 +10001000 +10100001 +01010100 +10000001 +00100001 01010101 +00010100 +00100001 01010101 +01010010 +10100001 +01010100 +00001010 +00000101 +01010010 +10101000 01010101 +01010010 +00000001 01010101 +01010010 +00000001 01010101 +01010010 +10101000 01010101 +01010100 +00001010 +00010101 01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 +01010000 01010101 01010101 01010101 @@ -10946,10 +10946,54 @@ MAX7456 01010101 01010101 01010101 +01010000 +00010100 +00000101 +01010010 +00010100 +10000101 +01010010 +00000000 +10000101 +01010010 +00000000 +10000101 +01010010 +00101000 +10000101 +01010000 +10101010 +00000101 +01010100 +10000010 +00010101 +01010100 +00000000 +00010101 +01010100 +00000101 01010101 +01010100 +10000101 01010101 +01010100 +10000000 01010101 +01010100 +10001000 01010101 +01010100 +10100010 +00010101 +01010100 +10000010 +00010101 +01010100 +10000010 +00010101 +01010100 +00000000 +00010101 01010101 01010101 01010101 @@ -10964,21 +11008,56 @@ MAX7456 01010101 01010101 01010101 +01010001 +01010100 01010101 +01001000 +01010010 01010101 +01001000 +01010010 01010101 +01001000 +00000010 01010101 +01001000 +10100010 01010101 +01010010 +10101000 01010101 +01010010 +00001000 01010101 +01010100 +01010001 01010101 +00000000 +00000000 +01010100 +10101010 +10101010 01010101 +00000000 +00000000 01010101 +01010100 +00010000 01010101 +01010010 +00001000 01010101 +01010010 +00100000 01010101 +01010010 +10100000 01010101 +01010010 +00001000 01010101 +01010100 +00000000 01010101 01010101 01010101 @@ -10992,135 +11071,56 @@ MAX7456 01010101 01010101 01010101 +01000001 01010101 01010101 +00100001 01010101 01010101 +00100000 01010101 01010101 +00100010 +00010101 01010101 +00101000 +10000101 01010101 +00100000 +10000101 01010101 +00100000 +10000101 01010101 +01000101 +00010101 01010101 +00000000 +00000000 01010101 +10101010 +10101010 +00010101 +00000000 +00000000 01010101 +00000100 +00010101 01010101 +00100010 +00010101 01010101 +10001000 +10000101 01010101 +10001000 +10000101 01010101 +10000000 +10000101 01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 +00010101 +00010101 01010101 01010101 01010101 diff --git a/resources/osd/bold/171.png b/resources/osd/bold/171.png new file mode 100644 index 00000000..f8dcbcf6 Binary files /dev/null and b/resources/osd/bold/171.png differ diff --git a/resources/osd/bold/172-173.png b/resources/osd/bold/172-173.png new file mode 100644 index 00000000..e6ca6746 Binary files /dev/null and b/resources/osd/bold/172-173.png differ diff --git a/resources/osd/bold/34.png b/resources/osd/bold/34.png new file mode 100644 index 00000000..a146a468 Binary files /dev/null and b/resources/osd/bold/34.png differ diff --git a/resources/osd/default.mcm b/resources/osd/default.mcm index 78a67750..cc960007 100644 --- a/resources/osd/default.mcm +++ b/resources/osd/default.mcm @@ -2179,49 +2179,49 @@ MAX7456 01010101 01010101 01010101 +00010101 01010101 +01010100 +10000001 01010101 +01010010 +10001000 +00010101 +01001010 +10101010 +10000101 +01010010 +10001000 +10100001 +01010100 +10000001 +00100001 01010101 +00010100 +00100001 01010101 +01010010 +10100001 +01010100 +00001010 +00000101 +01010010 +10101000 01010101 +01010010 +00000001 01010101 +01010010 +00000001 01010101 +01010010 +10101000 01010101 +01010100 +00001010 +00010101 01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 +01010000 01010101 01010101 01010101 @@ -10946,15 +10946,53 @@ MAX7456 01010101 01010101 01010101 +01010100 01010101 +00010101 +01010010 +00010100 +10000101 +01010010 +00010100 +10000101 +01010010 +00000000 +10000101 +01010010 +00101000 +10000101 +01010100 +10101010 +00010101 +01010100 +10000010 +00010101 01010101 +00010100 01010101 01010101 +00010101 01010101 +01010100 +10000101 01010101 +01010100 +10000001 01010101 +01010100 +10001000 01010101 +01010100 +10100010 +00010101 +01010100 +10000010 +00010101 +01010100 +10000010 +00010101 01010101 +00010100 01010101 01010101 01010101 @@ -10970,21 +11008,56 @@ MAX7456 01010101 01010101 01010101 +01010001 +01010100 01010101 +01001000 +01010010 01010101 +01001000 +01010010 01010101 +01001000 +00000010 01010101 +01001000 +10100010 01010101 +01010010 +10101000 01010101 +01010010 +00001000 01010101 +01010100 +01010001 01010101 +00000000 +00000000 +01010100 +10101010 +10101010 01010101 +00000000 +00000000 01010101 +01010100 +00010000 01010101 +01010010 +00001000 01010101 +01010010 +00100000 01010101 +01010010 +10100000 01010101 +01010010 +00001000 01010101 +01010100 +00000000 01010101 01010101 01010101 @@ -10998,129 +11071,56 @@ MAX7456 01010101 01010101 01010101 +01000001 01010101 01010101 +00100001 01010101 01010101 +00100000 01010101 01010101 +00100010 +00010101 01010101 +00101000 +10000101 01010101 +00100000 +10000101 01010101 +00100000 +10000101 01010101 +01000101 +00010101 01010101 +00000000 +00000000 01010101 +10101010 +10101010 +00010101 +00000000 +00000000 01010101 +00000100 +00010101 01010101 +00100010 +00010101 01010101 +10001000 +10000101 01010101 +10001000 +10000101 01010101 +10000000 +10000101 01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 +00010101 +00010101 01010101 01010101 01010101 diff --git a/resources/osd/default/171.png b/resources/osd/default/171.png new file mode 100644 index 00000000..3daae9f4 Binary files /dev/null and b/resources/osd/default/171.png differ diff --git a/resources/osd/default/172-173.png b/resources/osd/default/172-173.png new file mode 100644 index 00000000..e6ca6746 Binary files /dev/null and b/resources/osd/default/172-173.png differ diff --git a/resources/osd/default/34.png b/resources/osd/default/34.png new file mode 100644 index 00000000..a146a468 Binary files /dev/null and b/resources/osd/default/34.png differ diff --git a/resources/osd/large.mcm b/resources/osd/large.mcm index 837a1ad2..eda6f56f 100644 --- a/resources/osd/large.mcm +++ b/resources/osd/large.mcm @@ -2179,49 +2179,49 @@ MAX7456 01010101 01010101 01010101 +00010101 01010101 +01010100 +10000001 01010101 +01010010 +10001000 +00010101 +01001010 +10101010 +10000101 +01010010 +10001000 +10100001 +01010100 +10000001 +00100001 01010101 +00010100 +00100001 01010101 +01010010 +10100001 +01010100 +00001010 +00000101 +01010010 +10101000 01010101 +01010010 +00000001 01010101 +01010010 +00000001 01010101 +01010010 +10101000 01010101 +01010100 +00001010 +00010101 01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 +01010000 01010101 01010101 01010101 @@ -10946,15 +10946,53 @@ MAX7456 01010101 01010101 01010101 +01010100 01010101 +00010101 +01010010 +00010100 +10000101 +01010010 +00010100 +10000101 +01010010 +00000000 +10000101 +01010010 +00101000 +10000101 +01010100 +10101010 +00010101 +01010100 +10000010 +00010101 01010101 +00010100 01010101 01010101 +00010101 01010101 +01010100 +10000101 01010101 +01010100 +10000001 01010101 +01010100 +10001000 01010101 +01010100 +10100010 +00010101 +01010100 +10000010 +00010101 +01010100 +10000010 +00010101 01010101 +00010100 01010101 01010101 01010101 @@ -10970,21 +11008,56 @@ MAX7456 01010101 01010101 01010101 +01010001 +01010100 01010101 +01001000 +01010010 01010101 +01001000 +01010010 01010101 +01001000 +00000010 01010101 +01001000 +10100010 01010101 +01010010 +10101000 01010101 +01010010 +00001000 01010101 +01010100 +01010001 01010101 +00000000 +00000000 +01010100 +10101010 +10101010 01010101 +00000000 +00000000 01010101 +01010100 +00010000 01010101 +01010010 +00001000 01010101 +01010010 +00100000 01010101 +01010010 +10100000 01010101 +01010010 +00001000 01010101 +01010100 +00000000 01010101 01010101 01010101 @@ -10998,129 +11071,56 @@ MAX7456 01010101 01010101 01010101 +01000001 01010101 01010101 +00100001 01010101 01010101 +00100000 01010101 01010101 +00100010 +00010101 01010101 +00101000 +10000101 01010101 +00100000 +10000101 01010101 +00100000 +10000101 01010101 +01000101 +00010101 01010101 +00000000 +00000000 01010101 +10101010 +10101010 +00010101 +00000000 +00000000 01010101 +00000100 +00010101 01010101 +00100010 +00010101 01010101 +10001000 +10000101 01010101 +10001000 +10000101 01010101 +10000000 +10000101 01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 -01010101 +00010101 +00010101 01010101 01010101 01010101 diff --git a/resources/osd/large/171.png b/resources/osd/large/171.png new file mode 100644 index 00000000..3daae9f4 Binary files /dev/null and b/resources/osd/large/171.png differ diff --git a/resources/osd/large/172-173.png b/resources/osd/large/172-173.png new file mode 100644 index 00000000..e6ca6746 Binary files /dev/null and b/resources/osd/large/172-173.png differ diff --git a/resources/osd/large/34.png b/resources/osd/large/34.png new file mode 100644 index 00000000..a146a468 Binary files /dev/null and b/resources/osd/large/34.png differ diff --git a/src/css/tabs/mission_planer.css b/src/css/tabs/mission_planer.css new file mode 100644 index 00000000..351448d3 --- /dev/null +++ b/src/css/tabs/mission_planer.css @@ -0,0 +1,127 @@ +.tab-mission-control .btn a { + /* common styles for content toolbar buttons */ + /*margin-top: 0;*/ + /*margin-bottom: 0;*/ + /*margin-right: 20px;*/ + background-color: #37a8db; + border-radius: 3px; + border: 1px solid #3394b5; + color: #fff; + /*float: right;*/ + font-family: 'open_sansbold', Arial, serif; + font-size: 12px; + text-shadow: 0 1px rgba(0, 0, 0, 0.25); + display: block; + cursor: pointer; + transition: all ease 0.2s; + padding: 0 9px; + line-height: 28px; + margin: 5px; + float: left; + width: 130px; + text-align: center; +} + +.tab-mission-control .btn a:hover { + background-color: #3394b5; + transition: all ease 0.2s; +} + +.tab-mission-control .btn a:active { + background-color: #37a8db; + transition: all ease 0.0s; + box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35); +} + +.tab-mission-control .btn a.disabled { + cursor: default; + color: #fff; + background-color: #AFAFAF; + border: 1px solid #AFAFAF; + pointer-events: none; + text-shadow: none; + opacity: 0.5; +} + +.tab-mission-control .btn-danger a { + background-color: #db250e; + border: 1px solid #b5480e; +} + +.tab-mission-control .btn-danger a:hover { + background-color: #b5480e; + transition: all ease 0.2s; +} + +.tab-mission-control .checksfail { + /*float: right;*/ + margin-top: 3px; + height: 15px; + width: 15px; + background-image:url(../../../images/icons/nopass.svg); + background-size:contain; + background-position:center; + background-repeat:no-repeat; +} + +.tab-mission-control .content_wrapper { + display: flex; + /*height: 150px;*/ + height: 90%; + /*width: 75%;*/ + flex-direction: row; + justify-content: space-between; + flex-wrap: wrap; + padding-bottom: 5px; + padding-top: 5px; +} + +.tab-mission-control { + height: 100%; +} + +#missionMap { + height: 100%; +} + +.tab-mission-control input { + width: 115px; + padding-left: 3px; + height: 20px; + line-height: 20px; + text-align: left; + border: 1px solid silver; + border-radius: 3px; + font-size: 12px; + font-weight: normal; +} + +.tab-mission-control select { + width: 118px; + padding-left: 3px; + height: 20px; + line-height: 20px; + text-align: left; + border: 1px solid silver; + border-radius: 3px; + font-size: 12px; + font-weight: normal; +} + +.tab-mission-control .point { + display: block; + margin-bottom: 5px; + margin-left: 5px; +} +.tab-mission-control .point-label { + width: 60px; + display: inline-block; +} + +.mission-control-settings { + top: 65px; + left: .5em; +} +.ol-touch .mission-control-settings { + top: 80px; +} diff --git a/src/css/tabs/receiver.css b/src/css/tabs/receiver.css index a2c0e7ba..a8e9f417 100644 --- a/src/css/tabs/receiver.css +++ b/src/css/tabs/receiver.css @@ -176,6 +176,7 @@ color: white; border-right: 1px solid silver; font-weight: normal; + width: 50%; } .tab-receiver .tunings table th:first-child { @@ -432,4 +433,4 @@ stroke: none; fill: #828885; font-size: 10px; -} \ No newline at end of file +} diff --git a/src/css/tabs/sensors.css b/src/css/tabs/sensors.css index aa75fc92..a578383c 100644 --- a/src/css/tabs/sensors.css +++ b/src/css/tabs/sensors.css @@ -166,4 +166,14 @@ .tab-sensors .legend .item:nth-child(4) { fill: #4DA74D; +} + +.tab-sensors a.debug-trace { + float: right; + margin-right: 1em; + font-size: 90%; +} + +.tab-sensors a.debug-trace:hover { + text-decoration: underline; } \ No newline at end of file diff --git a/tabs/adjustments.js b/tabs/adjustments.js index 110441e5..0ad3e587 100644 --- a/tabs/adjustments.js +++ b/tabs/adjustments.js @@ -70,6 +70,10 @@ TABS.adjustments.initialize = function (callback) { availableFunctionCount = 21; } + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + availableFunctionCount = 32; + } + var functionListOptions = $(functionListOptions).slice(0,availableFunctionCount); functionList.empty().append(functionListOptions); diff --git a/tabs/calibration.html b/tabs/calibration.html index 584a7fe2..9cffa245 100755 --- a/tabs/calibration.html +++ b/tabs/calibration.html @@ -64,8 +64,8 @@ - - + + @@ -154,4 +154,4 @@

    - \ No newline at end of file + diff --git a/tabs/calibration.js b/tabs/calibration.js index 221acc9a..d3b73631 100755 --- a/tabs/calibration.js +++ b/tabs/calibration.js @@ -55,6 +55,7 @@ TABS.calibration.initialize = function (callback) { if (semver.gte(CONFIG.flightControllerVersion, "1.8.1")) { loadChainer.setChain([ mspHelper.loadStatus, + mspHelper.loadSensorConfig, mspHelper.loadCalibrationData ]); loadChainer.setExitPoint(loadHtml); @@ -111,7 +112,7 @@ TABS.calibration.initialize = function (callback) { var pos = ['X', 'Y', 'Z']; pos.forEach(function (item) { $('[name=accGain' + item + ']').val(CALIBRATION_DATA.accGain[item]); - $('[name=accZero' + item + ']').val(CALIBRATION_DATA.accGain[item]); + $('[name=accZero' + item + ']').val(CALIBRATION_DATA.accZero[item]); $('[name=Mag' + item + ']').val(CALIBRATION_DATA.magZero[item]); }); updateCalibrationSteps(); diff --git a/tabs/configuration.html b/tabs/configuration.html index e5f34c3e..748ea738 100644 --- a/tabs/configuration.html +++ b/tabs/configuration.html @@ -271,14 +271,6 @@
    -
    - - -
    -
    -
    - + @@ -382,23 +374,23 @@
    - +
    - +
    - +
    - + @@ -426,7 +418,7 @@
    - + @@ -437,10 +429,35 @@
    -
    - -
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + + +
    +
    + +
    diff --git a/tabs/configuration.js b/tabs/configuration.js index 56c2fb97..45251fbb 100644 --- a/tabs/configuration.js +++ b/tabs/configuration.js @@ -24,9 +24,8 @@ TABS.configuration.initialize = function (callback, scrollPosition) { var loadChainer = new MSPChainerClass(); - loadChainer.setChain([ + var loadChain = [ mspHelper.loadBfConfig, - mspHelper.loadMisc, mspHelper.loadArmingConfig, mspHelper.loadLoopTime, mspHelper.loadRxConfig, @@ -36,15 +35,22 @@ TABS.configuration.initialize = function (callback, scrollPosition) { mspHelper.loadINAVPidConfig, mspHelper.loadSensorConfig, loadCraftName - ]); + ]; + + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + loadChain.push(mspHelper.loadMiscV2); + } else { + loadChain.push(mspHelper.loadMisc); + } + + loadChainer.setChain(loadChain); loadChainer.setExitPoint(load_html); loadChainer.execute(); var saveChainer = new MSPChainerClass(); - saveChainer.setChain([ + var saveChain = [ mspHelper.saveBfConfig, - mspHelper.saveMisc, mspHelper.save3dConfig, mspHelper.saveSensorAlignment, mspHelper.saveAccTrim, @@ -55,8 +61,17 @@ TABS.configuration.initialize = function (callback, scrollPosition) { mspHelper.saveINAVPidConfig, mspHelper.saveSensorConfig, saveCraftName, - mspHelper.saveToEeprom - ]); + ]; + + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + saveChain.push(mspHelper.saveMiscV2); + } else { + saveChain.push(mspHelper.saveMisc); + } + + saveChain.push(mspHelper.saveToEeprom); + + saveChainer.setChain(saveChain); saveChainer.setExitPoint(reboot); function reboot() { @@ -295,7 +310,6 @@ TABS.configuration.initialize = function (callback, scrollPosition) { //fill motor disarm params and FC loop time $('input[name="autodisarmdelay"]').val(ARMING_CONFIG.auto_disarm_delay); - $('input[name="disarmkillswitch"]').prop('checked', ARMING_CONFIG.disarm_kill_switch); $('div.disarm').show(); if(bit_check(BF_CONFIG.features, 4)) {//MOTOR_STOP $('div.disarmdelay').show(); @@ -309,7 +323,15 @@ TABS.configuration.initialize = function (callback, scrollPosition) { $('#maxthrottle').val(MISC.maxthrottle); $('#mincommand').val(MISC.mincommand); - // fill battery + // Battery thresholds resolution is 100mV and voltage scale max is 255 before 1.8.1 + if (semver.lt(CONFIG.flightControllerVersion, '1.8.1')) { + $('#mincellvoltage').attr('step', '0.1'); + $('#maxcellvoltage').attr('step', '0.1'); + $('#warningcellvoltage').attr('step', '0.1'); + $('#voltagescale').attr('max', '255'); + } + + // fill battery voltage $('#mincellvoltage').val(MISC.vbatmincellvoltage); $('#maxcellvoltage').val(MISC.vbatmaxcellvoltage); $('#warningcellvoltage').val(MISC.vbatwarningcellvoltage); @@ -318,7 +340,12 @@ TABS.configuration.initialize = function (callback, scrollPosition) { // fill current $('#currentscale').val(BF_CONFIG.currentscale); $('#currentoffset').val(BF_CONFIG.currentoffset); - $('#multiwiicurrentoutput').prop('checked', MISC.multiwiicurrentoutput); + + // fill battery capacity + $('#battery_capacity').val(MISC.battery_capacity); + $('#battery_capacity_warning').val(MISC.battery_capacity_warning * 100 / MISC.battery_capacity); + $('#battery_capacity_critical').val(MISC.battery_capacity_critical * 100 / MISC.battery_capacity); + $('#battery_capacity_unit').val(MISC.battery_capacity_unit); var escProtocols = FC.getEscProtocols(); var servoRates = FC.getServoRates(); @@ -564,6 +591,12 @@ TABS.configuration.initialize = function (callback, scrollPosition) { $(".requires-v1_7").hide(); } + if (semver.gte(CONFIG.flightControllerVersion, "1.8.1")) { + $(".requires-v1_8_1").show(); + } else { + $(".requires-v1_8_1").hide(); + } + $('#3ddeadbandlow').val(_3D.deadband3d_low); $('#3ddeadbandhigh').val(_3D.deadband3d_high); $('#3dneutral').val(_3D.neutral3d); @@ -629,7 +662,6 @@ TABS.configuration.initialize = function (callback, scrollPosition) { MISC.mag_declination = parseFloat($('#mag_declination').val()); ARMING_CONFIG.auto_disarm_delay = parseInt($('input[name="autodisarmdelay"]').val()); - ARMING_CONFIG.disarm_kill_switch = ~~$('input[name="disarmkillswitch"]').is(':checked'); // ~~ boolean to decimal conversion MISC.minthrottle = parseInt($('#minthrottle').val()); MISC.midrc = parseInt($('#midthrottle').val()); @@ -641,9 +673,13 @@ TABS.configuration.initialize = function (callback, scrollPosition) { MISC.vbatwarningcellvoltage = parseFloat($('#warningcellvoltage').val()); MISC.vbatscale = parseInt($('#voltagescale').val()); + MISC.battery_capacity = parseInt($('#battery_capacity').val()); + MISC.battery_capacity_warning = parseInt($('#battery_capacity_warning').val() * MISC.battery_capacity / 100); + MISC.battery_capacity_critical = parseInt($('#battery_capacity_critical').val() * MISC.battery_capacity / 100); + MISC.battery_capacity_unit = $('#battery_capacity_unit').val(); + BF_CONFIG.currentscale = parseInt($('#currentscale').val()); BF_CONFIG.currentoffset = parseInt($('#currentoffset').val()); - MISC.multiwiicurrentoutput = ~~$('#multiwiicurrentoutput').is(':checked'); // ~~ boolean to decimal conversion _3D.deadband3d_low = parseInt($('#3ddeadbandlow').val()); _3D.deadband3d_high = parseInt($('#3ddeadbandhigh').val()); @@ -713,7 +749,11 @@ TABS.configuration.initialize = function (callback, scrollPosition) { }); helper.interval.add('config_load_analog', function () { - $('#batteryvoltage').val([ANALOG.voltage.toFixed(1)]); + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + $('#batteryvoltage').val([ANALOG.voltage.toFixed(2)]); + } else { + $('#batteryvoltage').val([ANALOG.voltage.toFixed(1)]); + } $('#batterycurrent').val([ANALOG.amperage.toFixed(2)]); }, 100, true); // 10 fps GUI.content_ready(callback); diff --git a/tabs/debug_trace.html b/tabs/debug_trace.html new file mode 100644 index 00000000..a1d031f1 --- /dev/null +++ b/tabs/debug_trace.html @@ -0,0 +1,9 @@ + + +Debug Trace + + + +
    + + diff --git a/tabs/firmware_flasher.js b/tabs/firmware_flasher.js index f7c912b6..4a613e6f 100755 --- a/tabs/firmware_flasher.js +++ b/tabs/firmware_flasher.js @@ -319,8 +319,12 @@ TABS.firmware_flasher.initialize = function (callback) { $('div.release_info .status').text(summary.status); $('div.release_info .file').text(summary.file).prop('href', summary.url); - var formattedNotes = summary.notes.trim('\r').replace(/\r/g, '
    '); + var formattedNotes = marked(summary.notes); $('div.release_info .notes').html(formattedNotes); + // Make links in the release notes open in a new window + $('div.release_info .notes a').each(function () { + $(this).attr('target', '_blank'); + }); $('div.release_info').slideDown(); diff --git a/tabs/landing.html b/tabs/landing.html index faf34635..7f13f33b 100644 --- a/tabs/landing.html +++ b/tabs/landing.html @@ -7,6 +7,7 @@
    +
    diff --git a/tabs/mission_control.html b/tabs/mission_control.html new file mode 100644 index 00000000..5a0767ad --- /dev/null +++ b/tabs/mission_control.html @@ -0,0 +1,119 @@ +
    +
    +
    Mission planer
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    Total information
    +
    +
    +
    + Distance (m): + +
    +
    + Available Points + 0/0 +
    +
    + Mission valid +
    +
    +
    +
    + + +
    + +
    + +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    +
    diff --git a/tabs/mission_control.js b/tabs/mission_control.js new file mode 100644 index 00000000..9d8f48fa --- /dev/null +++ b/tabs/mission_control.js @@ -0,0 +1,602 @@ +'use strict'; + +TABS.mission_control = {}; +TABS.mission_control.isYmapLoad = false; +TABS.mission_control.initialize = function (callback) { + + if (GUI.active_tab != 'mission_control') { + GUI.active_tab = 'mission_control'; + googleAnalytics.sendAppView('Mission Control'); + } + + var loadChainer = new MSPChainerClass(); + loadChainer.setChain([ + mspHelper.getMissionInfo + ]); + loadChainer.setExitPoint(loadHtml); + loadChainer.execute(); + + function updateTotalInfo() { + $('#availablePoints').text(MISSION_PLANER.countBusyPoints + '/' + MISSION_PLANER.maxWaypoints); + $('#missionValid').html(MISSION_PLANER.isValidMission ? chrome.i18n.getMessage('armingCheckPass') : chrome.i18n.getMessage('armingCheckFail')); + } + + function loadHtml() { + $('#content').load("./tabs/mission_control.html", process_html); + } + + function process_html() { + if (typeof require !== "undefined") { + chrome.storage.local.get('missionPlanerSettings', function (result) { + if (result.missionPlanerSettings) { + $('#MPdefaultPointAlt').val(result.missionPlanerSettings.alt); + $('#MPdefaultPointSpeed').val(result.missionPlanerSettings.speed); + } else { + chrome.storage.local.set({'missionPlanerSettings': {speed: 0, alt: 5000}}); + $('#MPdefaultPointAlt').val(5000); + $('#MPdefaultPointSpeed').val(0); + } + }); + + + initMap(); + } else { + $('#missionMap, #missionControls').hide(); + $('#notLoadMap').show(); + } + localize(); + + GUI.content_ready(callback); + } + + var markers = []; + var lines = []; + var map; + var selectedMarker = null; + var pointForSend = 0; + + function clearEditForm() { + $('#pointLat').val(''); + $('#pointLon').val(''); + $('#pointAlt').val(''); + $('#pointSpeed').val(''); + $('[name=pointNumber]').val(''); + $('#MPeditPoint').fadeOut(300); + } + + function repaint() { + var oldPos; + for (var i in lines) { + map.removeLayer(lines[i]); + } + lines = []; + $('#missionDistance').text(0); + + map.getLayers().forEach(function (t) { + //feature.getGeometry().getType() + if (t instanceof ol.layer.Vector && typeof t.alt !== 'undefined') { + var geometry = t.getSource().getFeatures()[0].getGeometry(); + if (typeof oldPos !== 'undefined') { + paintLine(oldPos, geometry.getCoordinates()); + } + + oldPos = geometry.getCoordinates(); + } + }); + } + + function paintLine(pos1, pos2) { + var line = new ol.geom.LineString([pos1, pos2]); + + var feature = new ol.Feature({ + geometry: line + }); + feature.setStyle(new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: '#1497f1', + width: 3 + }) + })); + + var vectorSource = new ol.source.Vector({ + features: [feature] + }); + + var vectorLayer = new ol.layer.Vector({ + source: vectorSource + }); + + lines.push(vectorLayer); + + var length = ol.Sphere.getLength(line) + parseFloat($('#missionDistance').text()); + $('#missionDistance').text(length.toFixed(3)); + + map.addLayer(vectorLayer); + } + + function getPointIcon(isEdit) { + return new ol.style.Style({ + image: new ol.style.Icon(({ + anchor: [0.5, 1], + opacity: 1, + scale: 0.5, + src: '../images/icons/cf_icon_position' + (isEdit ? '_edit' : '') + '.png' + })) +// text: new ol.style.Text({ +// text: '10', +// offsetX: -1, +// offsetY: -30, +// overflow: true, +// scale: 2, +// fill: new ol.style.Fill({ +// color: 'black' +// }) +// }) + }); + } + + function addMarker(_pos, _alt, _action, _speed) { + var iconFeature = new ol.Feature({ + geometry: new ol.geom.Point(_pos), + name: 'Null Island', + population: 4000, + rainfall: 500 + }); + + iconFeature.setStyle(getPointIcon()); + + var vectorSource = new ol.source.Vector({ + features: [iconFeature] + }); + + var vectorLayer = new ol.layer.Vector({ + source: vectorSource + }); + + vectorLayer.alt = _alt; + vectorLayer.number = markers.length; + vectorLayer.action = _action; + vectorLayer.speedValue = _speed; + + markers.push(vectorLayer); + + return vectorLayer; + } + + function initMap() { + var app = {}; + + /** + * @constructor + * @extends {ol.interaction.Pointer} + */ + app.Drag = function () { + + ol.interaction.Pointer.call(this, { + handleDownEvent: app.Drag.prototype.handleDownEvent, + handleDragEvent: app.Drag.prototype.handleDragEvent, + handleMoveEvent: app.Drag.prototype.handleMoveEvent, + handleUpEvent: app.Drag.prototype.handleUpEvent + }); + + /** + * @type {ol.Pixel} + * @private + */ + this.coordinate_ = null; + + /** + * @type {string|undefined} + * @private + */ + this.cursor_ = 'pointer'; + + /** + * @type {ol.Feature} + * @private + */ + this.feature_ = null; + + /** + * @type {string|undefined} + * @private + */ + this.previousCursor_ = undefined; + + }; + ol.inherits(app.Drag, ol.interaction.Pointer); + + /** + * @constructor + * @extends {ol.control.Control} + * @param {Object=} opt_options Control options. + */ + app.PlannerSettingsControl = function (opt_options) { + var options = opt_options || {}; + var button = document.createElement('button'); + + button.innerHTML = ' '; + button.style = 'background: url(\'../images/CF_settings_white.svg\') no-repeat 1px -1px;background-color: rgba(0,60,136,.5);'; + + var handleShowSettings = function () { + $('#MPeditPoint, #missionPalnerTotalInfo').hide(); + $('#missionPlanerSettings').fadeIn(300); + }; + + button.addEventListener('click', handleShowSettings, false); + button.addEventListener('touchstart', handleShowSettings, false); + + var element = document.createElement('div'); + element.className = 'mission-control-settings ol-unselectable ol-control'; + element.appendChild(button); + element.title = 'MP Settings'; + + ol.control.Control.call(this, { + element: element, + target: options.target + }); + + }; + ol.inherits(app.PlannerSettingsControl, ol.control.Control); + + /** + * @param {ol.MapBrowserEvent} evt Map browser event. + * @return {boolean} `true` to start the drag sequence. + */ + app.Drag.prototype.handleDownEvent = function (evt) { + var map = evt.map; + + var feature = map.forEachFeatureAtPixel(evt.pixel, + function (feature, layer) { + return feature; + }); + + if (feature) { + this.coordinate_ = evt.coordinate; + this.feature_ = feature; + } + + return !!feature; + }; + + /** + * @param {ol.MapBrowserEvent} evt Map browser event. + */ + app.Drag.prototype.handleDragEvent = function (evt) { + var map = evt.map; + + var feature = map.forEachFeatureAtPixel(evt.pixel, + function (feature, layer) { + return feature; + }); + + var deltaX = evt.coordinate[0] - this.coordinate_[0]; + var deltaY = evt.coordinate[1] - this.coordinate_[1]; + + var geometry = /** @type {ol.geom.SimpleGeometry} */ + (this.feature_.getGeometry()); + geometry.translate(deltaX, deltaY); + + this.coordinate_[0] = evt.coordinate[0]; + this.coordinate_[1] = evt.coordinate[1]; + repaint(); + }; + + /** + * @param {ol.MapBrowserEvent} evt Event. + */ + app.Drag.prototype.handleMoveEvent = function (evt) { + if (this.cursor_) { + var map = evt.map; + var feature = map.forEachFeatureAtPixel(evt.pixel, + function (feature, layer) { + return feature; + }); + var element = evt.map.getTargetElement(); + if (feature) { + if (element.style.cursor != this.cursor_) { + this.previousCursor_ = element.style.cursor; + element.style.cursor = this.cursor_; + } + } else if (this.previousCursor_ !== undefined) { + element.style.cursor = this.previousCursor_; + this.previousCursor_ = undefined; + } + } + }; + + /** + * @param {ol.MapBrowserEvent} evt Map browser event. + * @return {boolean} `false` to stop the drag sequence. + */ + app.Drag.prototype.handleUpEvent = function (evt) { + this.coordinate_ = null; + this.feature_ = null; + return false; + }; + + var lat = GPS_DATA.lat / 10000000; + var lon = GPS_DATA.lon / 10000000; + + map = new ol.Map({ + controls: ol.control.defaults({ + attributionOptions: { + collapsible: false + } + }).extend([ + new app.PlannerSettingsControl() + ]), + interactions: ol.interaction.defaults().extend([new app.Drag()]), + layers: [ + new ol.layer.Tile({ + source: new ol.source.OSM() + }) + ], + target: document.getElementById('missionMap'), + view: new ol.View({ + center: ol.proj.fromLonLat([lon, lat]), + zoom: 14 + }) + }); + + map.on('click', function (evt) { + if (selectedMarker != null) { + try { + selectedMarker.getSource().getFeatures()[0].setStyle(getPointIcon()); + selectedMarker = null; + clearEditForm(); + } catch (e) { + GUI.log(e); + } + } + + var selectedFeature = map.forEachFeatureAtPixel(evt.pixel, + function (feature, layer) { + return feature; + }); + selectedMarker = map.forEachFeatureAtPixel(evt.pixel, + function (feature, layer) { + return layer; + }); + if (selectedFeature) { + var geometry = selectedFeature.getGeometry(); + var coord = ol.proj.toLonLat(geometry.getCoordinates()); + + selectedFeature.setStyle(getPointIcon(true)); + + $('#pointLon').val(coord[0]); + $('#pointLat').val(coord[1]); + $('#pointAlt').val(selectedMarker.alt); + $('#pointType').val(selectedMarker.action); + $('#pointSpeed').val(selectedMarker.speedValue); + $('#MPeditPoint').fadeIn(300); + } else { + map.addLayer(addMarker(evt.coordinate, $('#MPdefaultPointAlt').val(), 1, $('#MPdefaultPointSpeed').val())); + repaint(); + } + }); + + // change mouse cursor when over marker + $(map.getViewport()).on('mousemove', function (e) { + var pixel = map.getEventPixel(e.originalEvent); + var hit = map.forEachFeatureAtPixel(pixel, function (feature, layer) { + return true; + }); + if (hit) { + map.getTarget().style.cursor = 'pointer'; + } else { + map.getTarget().style.cursor = ''; + } + }); + + $('#removeAllPoints').on('click', function () { + if (confirm(chrome.i18n.getMessage('confirm_delete_all_points'))) { + removeAllPoints(); + } + }); + + $('#removePoint').on('click', function () { + if (selectedMarker) { + + var tmp = []; + for (var i in markers) { + if (markers[i] !== selectedMarker && typeof markers[i].action !== "undefined") { + tmp.push(markers[i]); + } + } + map.removeLayer(selectedMarker); + markers = tmp; + selectedMarker = null; + + clearEditForm(); + repaint(); + } + }); + + $('#savePoint').on('click', function () { + if (selectedMarker) { + map.getLayers().forEach(function (t) { + if (t === selectedMarker) { + var geometry = t.getSource().getFeatures()[0].getGeometry(); + geometry.setCoordinates(ol.proj.fromLonLat([parseFloat($('#pointLon').val()), parseFloat($('#pointLat').val())])); + t.alt = $('#pointAlt').val(); + t.action = $('#pointType').val(); + t.speedValue = $('#pointSpeed').val(); + } + }); + + selectedMarker.getSource().getFeatures()[0].setStyle(getPointIcon()); + selectedMarker = null; + clearEditForm(); + repaint(); + } + }); + + $('#loadMissionButton').on('click', function () { + if (markers.length) { + if (!confirm(chrome.i18n.getMessage('confirm_delete_all_points'))) { + return; + } + removeAllPoints(); + } + $(this).addClass('disabled'); + GUI.log('Start get point'); + + pointForSend = 0; + getNextPoint(); + }); + + $('#saveMissionButton').on('click', function () { + $(this).addClass('disabled'); + GUI.log('Start send point'); + + pointForSend = 0; + sendNextPoint(); + }); + + $('#loadEepromMissionButton').on('click', function () { + if (markers.length) { + if (!confirm(chrome.i18n.getMessage('confirm_delete_all_points'))) { + return; + } + removeAllPoints(); + } + GUI.log(chrome.i18n.getMessage('eeprom_load_ok')); + + MSP.send_message(MSPCodes.MSP_WP_MISSION_LOAD, false, getPointsFromEprom); + }); + $('#saveEepromMissionButton').on('click', function () { + GUI.log(chrome.i18n.getMessage('eeprom_saved_ok')); + MSP.send_message(MSPCodes.MSP_WP_MISSION_SAVE, false, false); + }); + + $('#rthEndMission').on('change', function () { + if ($(this).is(':checked')) { + $('#rthSettings').fadeIn(300); + } else { + $('#rthSettings').fadeOut(300); + } + }); + + $('#saveSettings').on('click', function () { + chrome.storage.local.set({'missionPlanerSettings': {speed: $('#MPdefaultPointSpeed').val(), alt: $('#MPdefaultPointAlt').val()}}); + $('#missionPlanerSettings').hide(); + $('#missionPalnerTotalInfo').fadeIn(300); + if (selectedMarker !== null) { + $('#MPeditPoint').fadeIn(300); + } + }); + + updateTotalInfo(); + } + + function removeAllPoints() { + for (var i in markers) { + map.removeLayer(markers[i]); + } + markers = []; + clearEditForm(); + repaint(); + } + + function getPointsFromEprom() { + pointForSend = 0; + MSP.send_message(MSPCodes.MSP_WP_GETINFO, false, false, getNextPoint); + } + + function endGetPoint() { + GUI.log('End get point'); + $('#loadMissionButton').removeClass('disabled'); + repaint(); + updateTotalInfo(); + } + + function getNextPoint() { + if (MISSION_PLANER.countBusyPoints == 0) { + endGetPoint(); + return; + } + + if (pointForSend > 0) { + // console.log(MISSION_PLANER.bufferPoint.lon); + // console.log(MISSION_PLANER.bufferPoint.lat); + // console.log(MISSION_PLANER.bufferPoint.alt); + // console.log(MISSION_PLANER.bufferPoint.action); + if (MISSION_PLANER.bufferPoint.action == 4) { + $('#rthEndMission').attr('checked', true); + $('#rthSettings').fadeIn(300); + if (MISSION_PLANER.bufferPoint.p1 > 0) { + $('#rthLanding').attr('checked', true); + } + } else { + var coord = ol.proj.fromLonLat([MISSION_PLANER.bufferPoint.lon, MISSION_PLANER.bufferPoint.lat]); + map.addLayer(addMarker(coord, MISSION_PLANER.bufferPoint.alt, MISSION_PLANER.bufferPoint.action, MISSION_PLANER.bufferPoint.p1)); + if (pointForSend === 1) { + map.getView().setCenter(coord); + } + } + } + + if (pointForSend >= MISSION_PLANER.countBusyPoints) { + endGetPoint(); + return; + } + + MISSION_PLANER.bufferPoint.number = pointForSend; + + pointForSend++; + + MSP.send_message(MSPCodes.MSP_WP, mspHelper.crunch(MSPCodes.MSP_WP), false, getNextPoint); + } + + function sendNextPoint() { + var isRTH = $('#rthEndMission').is(':checked'); + + if (pointForSend >= markers.length) { + if (isRTH) { + MISSION_PLANER.bufferPoint.number = pointForSend + 1; + MISSION_PLANER.bufferPoint.action = 4; + MISSION_PLANER.bufferPoint.lon = 0; + MISSION_PLANER.bufferPoint.lat = 0; + MISSION_PLANER.bufferPoint.alt = 0; + MISSION_PLANER.bufferPoint.endMission = 0xA5; + MISSION_PLANER.bufferPoint.p1 = $('#rthLanding').is(':checked') ? 1 : 0; + MSP.send_message(MSPCodes.MSP_SET_WP, mspHelper.crunch(MSPCodes.MSP_SET_WP), false, endSendPoint); + } else { + endSendPoint(); + } + + return; + } + + var geometry = markers[pointForSend].getSource().getFeatures()[0].getGeometry(); + var coordinate = ol.proj.toLonLat(geometry.getCoordinates()); + + MISSION_PLANER.bufferPoint.number = pointForSend + 1; + MISSION_PLANER.bufferPoint.action = markers[pointForSend].action; + MISSION_PLANER.bufferPoint.lon = parseInt(coordinate[0] * 10000000); + MISSION_PLANER.bufferPoint.lat = parseInt(coordinate[1] * 10000000); + MISSION_PLANER.bufferPoint.alt = markers[pointForSend].alt; + MISSION_PLANER.bufferPoint.p1 = markers[pointForSend].speedValue; + pointForSend++; + if (pointForSend >= markers.length && !isRTH) { + MISSION_PLANER.bufferPoint.endMission = 0xA5; + } else { + MISSION_PLANER.bufferPoint.endMission = 0; + } + + MSP.send_message(MSPCodes.MSP_SET_WP, mspHelper.crunch(MSPCodes.MSP_SET_WP), false, sendNextPoint); + } + + function endSendPoint() { + GUI.log('End send point'); + + MSP.send_message(MSPCodes.MSP_WP_GETINFO, false, false, updateTotalInfo); + + $('#saveMissionButton').removeClass('disabled'); + } +}; + +TABS.mission_control.cleanup = function (callback) { + if (callback) callback(); +}; diff --git a/tabs/osd.js b/tabs/osd.js index 74208c26..ddd5b094 100644 --- a/tabs/osd.js +++ b/tabs/osd.js @@ -17,8 +17,11 @@ SYM.AH_BAR9_0 = 0x80; SYM.AH_DECORATION = 0x13; SYM.AMP = 0x9A; SYM.MAH = 0x07; +SYM.WH = 0xAB; SYM.MAH_KM_0 = 157; SYM.MAH_KM_1 = 158; +SYM.WH_KM_0 = 172; +SYM.WH_KM_1 = 173; SYM.GPS_SAT1 = 0x1E; SYM.GPS_SAT2 = 0x1F; SYM.GPS_HDP1 = 0xBD; @@ -33,6 +36,7 @@ SYM.AIR = 151; SYM.DIR_TO_HOME = 0x60; SYM.DIST_KM = 182; SYM.DIST_MI = 184; +SYM.TRIP_DIST = 0x22; SYM.HEADING1 = 0xA9; SYM.HEADING2 = 0xA8; SYM.HEADING_N = 24; @@ -402,6 +406,12 @@ OSD.constants = { min_version: '1.7.4', preview: FONT.symbol(SYM.VOLT) + FONT.embed_dot('3.90V') }, + { + name: 'MAIN_BATT_REMAINING_PERCENTAGE', + id: 38, + min_version: '1.8.1', + preview: '100%' + }, { name: 'THROTTLE_POSITION', id: 9, @@ -574,6 +584,12 @@ OSD.constants = { id: 12, preview: FONT.symbol(SYM.MAH) + '690 ' // 4 chars }, + { + name: 'WH_DRAWN', + id: 36, + min_version: '1.8.1', + preview: FONT.symbol(SYM.WH) + FONT.embed_dot('1.25') + }, { name: 'POWER', id: 19, @@ -581,10 +597,22 @@ OSD.constants = { preview: 'W50 ' // 3 chars }, { - name: 'EFFICIENCY', + name: 'MAIN_BATT_REMAINING_CAPACITY', + id: 37, + min_version: '1.8.1', + preview: FONT.symbol(SYM.MAH) + '690 ' // 4 chars + }, + { + name: 'EFFICIENCY_MAH', id: 35, min_version: '1.7.4', preview: "123" + FONT.symbol(SYM.MAH_KM_0) + FONT.symbol(SYM.MAH_KM_1) + }, + { + name: 'EFFICIENCY_WH', + id: 39, + min_version: '1.8.1', + preview: FONT.embed_dot('1.23') + FONT.symbol(SYM.WH_KM_0) + FONT.symbol(SYM.WH_KM_1) } ] }, @@ -641,6 +669,18 @@ OSD.constants = { return FONT.symbol(SYM.DIST_KM) + FONT.embed_dot('1.73'); } }, + { + name: 'TRIP_DIST', + id: 40, + min_version: '1.9.1', + preview: function(osd_data) { + if (OSD.data.unit_mode === 0) { + // Imperial + return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_MI) + FONT.embed_dot('0.98'); + } + return FONT.symbol(SYM.TRIP_DIST) + FONT.symbol(SYM.DIST_KM) + FONT.embed_dot('1.73'); + } + }, { name: 'GPS_HDOP', id: 31, @@ -1010,6 +1050,24 @@ TABS.osd.initialize = function (callback) { if (typeof alarm.step === 'function') { step = alarm.step(OSD.data) } + var $input = $(''); alarmInput.data('alarm', alarm); if (typeof alarm.to_display === 'function') { @@ -1026,26 +1084,10 @@ TABS.osd.initialize = function (callback) { OSD.data.alarms[alarm.name] = val; MSP.promise(MSPCodes.MSP_SET_OSD_CONFIG, OSD.msp.encodeOther()) .then(function () { + tooltip.close(); updateOsdView(); }); }); - var $input = $(' + + Open Debug Trace @@ -227,6 +230,39 @@
    +
    +
    +
    +
    Air speed - cm/s
    +
    +
    +
    + +
    +
    IAS:
    +
    0
    +
    +
    + + + + + + + +
    +
    +
    @@ -304,4 +340,4 @@
    -
    \ No newline at end of file + diff --git a/tabs/sensors.js b/tabs/sensors.js index a7a2754c..e8f0522f 100644 --- a/tabs/sensors.js +++ b/tabs/sensors.js @@ -15,6 +15,7 @@ TABS.sensors.initialize = function (callback) { SENSOR_DATA.gyroscope[i] = 0; SENSOR_DATA.magnetometer[i] = 0; SENSOR_DATA.sonar = 0; + SENSOR_DATA.air_speed = 0; SENSOR_DATA.altitude = 0; SENSOR_DATA.debug[i] = 0; } @@ -172,6 +173,14 @@ TABS.sensors.initialize = function (callback) { } } + function plot_airspeed(enable) { + if (enable) { + $('.wrapper.airspeed').show(); + } else { + $('.wrapper.airspeed').hide(); + } + } + function plot_debug(enable) { if (enable) { $('.wrapper.debug').show(); @@ -193,6 +202,10 @@ TABS.sensors.initialize = function (callback) { checkboxes.eq(4).prop('disabled', true); } + if (semver.lt(CONFIG.flightControllerVersion, "1.9.1") || (!bit_check(CONFIG.activeSensors, 6))) { // airspeed + checkboxes.eq(5).prop('disabled', true); + } + $('.tab-sensors .info .checkboxes input').change(function () { var enable = $(this).prop('checked'); var index = $(this).parent().index(); @@ -214,6 +227,9 @@ TABS.sensors.initialize = function (callback) { plot_sonar(enable); break; case 5: + plot_airspeed(enable); + break; + case 6: plot_debug(enable); break; } @@ -248,12 +264,14 @@ TABS.sensors.initialize = function (callback) { samples_mag_i = 0, samples_altitude_i = 0, samples_sonar_i = 0, + samples_airspeed_i = 0, samples_debug_i = 0, gyro_data = initDataArray(3), accel_data = initDataArray(3), mag_data = initDataArray(3), altitude_data = (semver.gte(CONFIG.flightControllerVersion, "1.6.0")) ? initDataArray(2) : initDataArray(1), sonar_data = initDataArray(1), + airspeed_data = initDataArray(1), debug_data = [ initDataArray(1), initDataArray(1), @@ -266,6 +284,7 @@ TABS.sensors.initialize = function (callback) { var magHelpers = initGraphHelpers('#mag', samples_mag_i, [-1, 1]); var altitudeHelpers = initGraphHelpers('#altitude', samples_altitude_i); var sonarHelpers = initGraphHelpers('#sonar', samples_sonar_i); + var airspeedHelpers = initGraphHelpers('#airspeed', samples_airspeed_i); var debugHelpers = [ initGraphHelpers('#debug1', samples_debug_i), initGraphHelpers('#debug2', samples_debug_i), @@ -304,6 +323,8 @@ TABS.sensors.initialize = function (callback) { $('.tab-sensors select[name="baro_refresh_rate"]').val(result.sensor_settings.rates.baro); $('.tab-sensors select[name="sonar_refresh_rate"]').val(result.sensor_settings.rates.sonar); + $('.tab-sensors select[name="airspeed_refresh_rate"]').val(result.sensor_settings.rates.airspeed); + $('.tab-sensors select[name="debug_refresh_rate"]').val(result.sensor_settings.rates.debug); // start polling data by triggering refresh rate change event @@ -318,12 +339,13 @@ TABS.sensors.initialize = function (callback) { // if any of the select fields change value, all of the select values are grabbed // and timers are re-initialized with the new settings var rates = { - 'gyro': parseInt($('.tab-sensors select[name="gyro_refresh_rate"]').val(), 10), - 'accel': parseInt($('.tab-sensors select[name="accel_refresh_rate"]').val(), 10), - 'mag': parseInt($('.tab-sensors select[name="mag_refresh_rate"]').val(), 10), - 'baro': parseInt($('.tab-sensors select[name="baro_refresh_rate"]').val(), 10), - 'sonar': parseInt($('.tab-sensors select[name="sonar_refresh_rate"]').val(), 10), - 'debug': parseInt($('.tab-sensors select[name="debug_refresh_rate"]').val(), 10) + 'gyro': parseInt($('.tab-sensors select[name="gyro_refresh_rate"]').val(), 10), + 'accel': parseInt($('.tab-sensors select[name="accel_refresh_rate"]').val(), 10), + 'mag': parseInt($('.tab-sensors select[name="mag_refresh_rate"]').val(), 10), + 'baro': parseInt($('.tab-sensors select[name="baro_refresh_rate"]').val(), 10), + 'sonar': parseInt($('.tab-sensors select[name="sonar_refresh_rate"]').val(), 10), + 'airspeed': parseInt($('.tab-sensors select[name="airspeed_refresh_rate"]').val(), 10), + 'debug': parseInt($('.tab-sensors select[name="debug_refresh_rate"]').val(), 10) }; var scales = { @@ -402,6 +424,21 @@ TABS.sensors.initialize = function (callback) { } if (checkboxes[5]) { + helper.interval.add('airspeed_pull', function airspeed_data_pull() { + + /* + * Enable balancer + */ + if (helper.mspQueue.shouldDrop()) { + update_airspeed_graphs(); + return; + } + + MSP.send_message(MSPCodes.MSPV2_INAV_AIR_SPEED, false, false, update_airspeed_graphs); + }, rates.airspeed, true); + } + + if (checkboxes[6]) { helper.interval.add('debug_pull', function debug_data_pull() { /* @@ -470,18 +507,46 @@ TABS.sensors.initialize = function (callback) { raw_data_text_ements.x[4].text(SENSOR_DATA.sonar.toFixed(2)); } + function update_airspeed_graphs() { + updateGraphHelperSize(airspeedHelpers); + + samples_airspeed_i = addSampleToData(airspeed_data, samples_airspeed_i, [SENSOR_DATA.air_speed]); + drawGraph(airspeedHelpers, airspeed_data, samples_airspeed_i); + raw_data_text_ements.x[5].text(SENSOR_DATA.air_speed); + } + function update_debug_graphs() { for (var i = 0; i < 4; i++) { updateGraphHelperSize(debugHelpers[i]); addSampleToData(debug_data[i], samples_debug_i, [SENSOR_DATA.debug[i]]); drawGraph(debugHelpers[i], debug_data[i], samples_debug_i); - raw_data_text_ements.x[5 + i].text(SENSOR_DATA.debug[i]); + raw_data_text_ements.x[6 + i].text(SENSOR_DATA.debug[i]); } samples_debug_i++; } }); + $("a.debug-trace").click(function () { + var windowWidth = 500; + var windowHeight = 510; + + chrome.app.window.create("/tabs/debug_trace.html", { + id: "debug_trace", + innerBounds: { + minWidth: windowWidth, minHeight: windowHeight, + width: windowWidth, height: windowHeight, + }, + alwaysOnTop: true + }, function (createdWindow) { + createdWindow.contentWindow.getDebugTrace = function () { return DEBUG_TRACE || ''; }; + return true; + }); + return false; + }); + + + GUI.content_ready(callback); }); }; diff --git a/tabs/servos.js b/tabs/servos.js index 25610b10..27eadf18 100755 --- a/tabs/servos.js +++ b/tabs/servos.js @@ -11,22 +11,41 @@ TABS.servos.initialize = function (callback) { var loadChainer = new MSPChainerClass(); - loadChainer.setChain([ - mspHelper.loadServoConfiguration, - mspHelper.loadRcData, - mspHelper.loadBfConfig, - mspHelper.loadServoMixRules - ]); + if (BF_CONFIG.mixerConfiguration == 23 || BF_CONFIG.mixerConfiguration == 24 || BF_CONFIG.mixerConfiguration == 25) { + loadChainer.setChain([ + mspHelper.loadServoConfiguration, + mspHelper.loadRcData, + mspHelper.loadBfConfig, + mspHelper.loadServoMixRules + ]); + } + else { + loadChainer.setChain([ + mspHelper.loadServoConfiguration, + mspHelper.loadRcData, + mspHelper.loadBfConfig + ]); + } + loadChainer.setExitPoint(load_html); loadChainer.execute(); var saveChainer = new MSPChainerClass(); - saveChainer.setChain([ - mspHelper.sendServoConfigurations, - mspHelper.sendServoMixer, - mspHelper.saveToEeprom - ]); + if (BF_CONFIG.mixerConfiguration == 23 || BF_CONFIG.mixerConfiguration == 24 || BF_CONFIG.mixerConfiguration == 25) { + saveChainer.setChain([ + mspHelper.sendServoConfigurations, + mspHelper.sendServoMixer, + mspHelper.saveToEeprom + ]); + } + else { + saveChainer.setChain([ + mspHelper.sendServoConfigurations, + mspHelper.saveToEeprom + ]); + } + saveChainer.setExitPoint(function () { GUI.log(chrome.i18n.getMessage('servosEepromSave')); SERVO_RULES.cleanup(); diff --git a/tabs/setup.html b/tabs/setup.html index be54d626..34c6f752 100644 --- a/tabs/setup.html +++ b/tabs/setup.html @@ -89,17 +89,41 @@
    + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + diff --git a/tabs/setup.js b/tabs/setup.js index b2705664..b2b44d51 100755 --- a/tabs/setup.js +++ b/tabs/setup.js @@ -15,11 +15,18 @@ TABS.setup.initialize = function (callback) { var loadChainer = new MSPChainerClass(); - loadChainer.setChain([ + var loadChain = [ mspHelper.loadBfConfig, - mspHelper.loadMisc, mspHelper.queryFcStatus - ]); + ]; + + if (semver.gte(CONFIG.flightControllerVersion, '1.8.1')) { + loadChain.push(mspHelper.loadMiscV2); + } else { + loadChain.push(mspHelper.loadMisc); + } + + loadChainer.setChain(loadChain); loadChainer.setExitPoint(load_html); loadChainer.execute(); @@ -77,7 +84,13 @@ TABS.setup.initialize = function (callback) { // cached elements var bat_voltage_e = $('.bat-voltage'), + bat_percent_e = $('.bat-percent'), + bat_remaining_e = $('.bat-remain-cap'), + bat_cells_e = $('.bat-cells'), + bat_thresh_e = $('.bat-thresh'), + bat_full_e = $('.bat-full'), bat_mah_drawn_e = $('.bat-mah-drawn'), + bat_mwh_drawn_e = $('.bat-mwh-drawn'), bat_mah_drawing_e = $('.bat-mah-drawing'), rssi_e = $('.rssi'), gpsFix_e = $('.gpsFixType'), @@ -133,9 +146,23 @@ TABS.setup.initialize = function (callback) { helper.mspBalancedInterval.add('setup_data_pull_fast', 40, 1, get_fast_data); helper.mspBalancedInterval.add('setup_data_pull_slow', 250, 1, get_slow_data); + if (semver.lt(CONFIG.flightControllerVersion, '1.8.1')) { + $('.requires-v1_8_1').hide(); + } + helper.interval.add('gui_analog_update', function () { + bat_cells_e.text(chrome.i18n.getMessage('initialSetupBatteryDetectedCellsValue', [ANALOG.cell_count])); bat_voltage_e.text(chrome.i18n.getMessage('initialSetupBatteryValue', [ANALOG.voltage])); + remaining_capacity_wh_decimals = ANALOG.battery_remaining_capacity.toString().length < 5 ? 3 : (7 - ANALOG.battery_remaining_capacity.toString().length); + remaining_capacity_value = MISC.battery_capacity_unit == 'mAh' ? ANALOG.battery_remaining_capacity : (ANALOG.battery_remaining_capacity / 1000).toFixed(remaining_capacity_wh_decimals < 0 ? 0 : remaining_capacity_wh_decimals); + remaining_capacity_unit = MISC.battery_capacity_unit == 'mAh' ? 'mAh' : 'Wh'; + bat_remaining_e.text(chrome.i18n.getMessage('initialSetupBatteryRemainingCapacityValue', ((MISC.battery_capacity > 0) && ANALOG.battery_full_when_plugged_in) ? [remaining_capacity_value, remaining_capacity_unit] : ['NA', ''])); + bat_percent_e.text(chrome.i18n.getMessage('initialSetupBatteryPercentageValue', [ANALOG.battery_percentage])); + bat_full_e.text(chrome.i18n.getMessage('initialSetupBatteryFullValue', [ANALOG.battery_full_when_plugged_in])); + bat_thresh_e.text(chrome.i18n.getMessage('initialSetupBatteryThresholdsValue', [ANALOG.use_capacity_thresholds])); bat_mah_drawn_e.text(chrome.i18n.getMessage('initialSetupBatteryMahValue', [ANALOG.mAhdrawn])); + capacity_drawn_decimals = ANALOG.mWhdrawn.toString().length < 5 ? 3 : (7 - ANALOG.mWhdrawn.toString().length); + bat_mwh_drawn_e.text(chrome.i18n.getMessage('initialSetup_Wh_drawnValue', [(ANALOG.mWhdrawn / 1000).toFixed(capacity_drawn_decimals < 0 ? 0 : capacity_drawn_decimals)])); bat_mah_drawing_e.text(chrome.i18n.getMessage('initialSetupBatteryAValue', [ANALOG.amperage.toFixed(2)])); rssi_e.text(chrome.i18n.getMessage('initialSetupRSSIValue', [((ANALOG.rssi / 1023) * 100).toFixed(0)])); }, 100, true);
    0
    0 V
    0 %
    NA
    0
    0
    0.00 A
    0 mAh
    0.00 A
    0 Wh