Socket
Socket
Sign inDemoInstall

electron-updater

Package Overview
Dependencies
Maintainers
1
Versions
290
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

electron-updater - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

36

lib/check.js

@@ -11,8 +11,14 @@ var download = require('./download.js'),

function satisfy(registry, name, desired, current, exists, callback) {
var url = registry + '/' + name + '/' + desired
var url = registry + '/' + name
download.getJson(url, function (err, data) {
if(err) return callback(err)
var available = semver.clean(data.version)
var versions = data.versions
var available;
Object.getOwnPropertyNames(data.versions).forEach(function (v) {
if(semver.satisfies(v, desired) && (!available || semver.gt(v, available))) {
available = v
}
})
if(!exists || semver.gt(available, current)) {
if(available && (!exists || semver.gt(available, current))) {
return callback(null, {

@@ -34,12 +40,28 @@ name: name,

var name = context.name
var desired = context.channel
var channel = context.channel
var current = context.version
satisfy(registry, name, desired, current, true, callback)
var url = registry + '/' + name
download.getJson(url, function(err, data) {
if(err) return callback(err)
var distTags = data['dist-tags']
var available = distTags[channel]
if (available && semver.gt(available, current)) {
return callback(null, {
name: name,
desired: channel,
current: current,
available: available
})
} else {
callback()
}
})
}
function checkDependency(name, callback) {
if(this.dev) return callback()
var appName = this.name
var registry = this.registry
var desired = this.dependencies[name]
var packagePath = path.join(this.appDir, 'node_modules', name, 'package.json')
var packagePath = path.join(this.appDir, 'node_modules', name, 'package.json')
file.readJson(packagePath, function (err, pkg) {

@@ -61,3 +83,3 @@ var exists = !err

file.readJson(currentPluginsPath, function (err, data) {
var current = (data && data[name]) || '0.0.0'
var current = (data && data[name]) || '0.0.0'
var pluginPackagePath = path.join(appData, 'plugins', name, current, 'package.json')

@@ -64,0 +86,0 @@ var pluginPackageLinkPath = path.join(appData, 'plugins', name, 'link', 'package.json')

67

lib/context.js

@@ -8,2 +8,4 @@ var directory = require('./directory.js'),

var defaultRegistry = "https://registry.npmjs.org"
function isDevDirectory(appDir, callback) {

@@ -21,28 +23,47 @@ var gitDir = path.join(appDir, '.git')

function readNpmrc(appDir, callback) {
var npmrc = path.join(appDir, '.npmrc')
fs.readFile(npmrc, {encoding:'utf8'}, function (err, contents) {
if (err) return callback(defaultRegistry)
var registry = defaultRegistry
var match = 'registry='
contents.split('\n').forEach(function (line) {
line = line.trim()
if(line.indexOf(match) === 0) {
registry = line.substring(match.length).replace(/\n/g, '')
return false
}
})
callback(registry)
})
}
function load(appDir, callback) {
if(!appDir || !callback) throw new Error('Failed to load app context: invalid argument')
isDevDirectory(appDir, function (dev) {
var packagePath = path.join(appDir, 'package.json')
file.readJson(packagePath, function (err, package) {
if (err) return callback(err)
var name = package.name
var version = package.version
var dirs = new AppDirectory(name)
var appData = path.dirname(dirs.userData())
var pendingUpdatePath = path.join(appData, '.update')
var channelPath = path.join(appData, '.channel')
fs.readFile(channelPath, function (err, channel) {
channel = channel || 'latest'
fs.stat(pendingUpdatePath, function (err, stat) {
var pendingUpdate = !err && stat.isFile()
callback(null, {
name: name,
version: version,
channel: channel,
dev: dev,
pendingUpdate: pendingUpdate,
registry: "https://registry.npmjs.org", // resolve from .npmrc's
appDir: appDir,
dependencies: package.dependencies || {},
plugins: package.plugins || {}
readNpmrc(appDir, function (registry) {
var packagePath = path.join(appDir, 'package.json')
file.readJson(packagePath, function (err, package) {
if (err) return callback(err)
var name = package.name
var version = package.version
var dirs = new AppDirectory(name)
var appData = path.dirname(dirs.userData())
var pendingUpdatePath = path.join(appData, '.update')
var channelPath = path.join(appData, '.channel')
fs.readFile(channelPath, {encoding: 'utf8'}, function (err, channel) {
channel = channel || 'latest'
fs.stat(pendingUpdatePath, function (err, stat) {
var pendingUpdate = !err && stat.isFile()
callback(null, {
name: name,
version: version,
channel: channel,
dev: dev,
pendingUpdate: pendingUpdate,
registry: registry,
appDir: appDir,
dependencies: package.dependencies || {},
plugins: package.plugins || {}
})
})

@@ -49,0 +70,0 @@ })

@@ -25,3 +25,3 @@ var util = require('util')

e.url = url
e.headers = res.headers
e.headers = res.headerssu
callback(e, res)

@@ -38,2 +38,3 @@ }

get(url, function (err, res) {
if(err) return callback(err)
var json = ''

@@ -40,0 +41,0 @@ res.setEncoding('utf8')

@@ -27,2 +27,3 @@ var async = require('async')

var appVersion = this.version
var plugins = this.plugins
var desired = this.plugins[name]

@@ -33,10 +34,20 @@ var dirs = new AppDirectory(appName)

file.readJson(currentPluginsPath, function (err, data) {
if(err) return callback(null, false)
if(err) data = plugins
if(!data || !data[name]) return callback(null, false)
var current = (data && data[name])
var packagePath = path.join(appData, 'plugins', name, current, 'package.json')
fs.stat(packagePath, function (err, stat) {
if(err) return callback(null, false)
satisfy(desired, current, callback)
})
var current = (data && data[name])
async.map(
['link', current],
function (v, callback) {
var packagePath = path.join(appData, 'plugins', name, v, 'package.json')
fs.stat(packagePath, function (err, stat) {
if(err) return callback(null, false)
callback(null, true)
})
},
function (err, results) {
if(err) return callback(err)
if(results[0]) return callback(null, true) // if linked, always true
if(!results[1]) return callback(null, false) // if missing always false
satisfy(desired, current, callback)
})
})

@@ -43,0 +54,0 @@ }

{
"name": "electron-updater",
"version": "0.0.2",
"version": "0.0.3",
"description": "Cross platform auto-updater for electron applications",

@@ -45,2 +45,2 @@ "main": "index.js",

}
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc