Socket
Socket
Sign inDemoInstall

node-srec

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-srec - npm Package Compare versions

Comparing version 0.1.0 to 0.1.2

test.js

272

node-srec.js

@@ -1,153 +0,145 @@

// Generated by CoffeeScript 1.9.1
(function() {
var block2srec, cache, fs, parseSrec, request, sprintf;
fs = require('fs');
request = require('request');
sprintf = require('sprintf').sprintf;
fs = require('fs');
module.exports.block2srec = block2srec = (a, data) => {
var byte, j, len1, s, sum;
sum = data.length + 5;
sum += a & 0xff;
sum += (a >> 8) & 0xff;
sum += (a >> 16) & 0xff;
sum += (a >> 24) & 0xff;
s = sprintf("S3%02X%08X", data.length + 5, a);
for (j = 0, len1 = data.length; j < len1; j++) {
byte = data[j];
s += sprintf("%02X", byte);
sum += byte;
}
sum = (~sum) & 0xff;
s += sprintf("%02X", sum);
return s;
};
request = require('request');
sprintf = require('sprintf').sprintf;
module.exports.block2srec = block2srec = function(a, data) {
var byte, j, len1, s, sum;
sum = data.length + 5;
sum += a & 0xff;
sum += (a >> 8) & 0xff;
sum += (a >> 16) & 0xff;
sum += (a >> 24) & 0xff;
s = sprintf("S3%02X%08X", data.length + 5, a);
for (j = 0, len1 = data.length; j < len1; j++) {
byte = data[j];
s += sprintf("%02X", byte);
sum += byte;
}
sum = (~sum) & 0xff;
s += sprintf("%02X", sum);
return s;
};
module.exports.parseSrec = parseSrec = function(data) {
var addr, alen, b, boot, byte, dp, i, info, j, k, l, len, len1, len2, max, mem, min, ref, ref1, s, srecs, type;
mem = {};
info = "";
min = max = boot = null;
srecs = data.split("\n");
for (j = 0, len1 = srecs.length; j < len1; j++) {
s = srecs[j];
if (s[0] === "S") {
switch (type = parseInt(s[1])) {
case 0:
case 1:
case 9:
case 5:
alen = 2;
break;
case 2:
case 6:
case 8:
alen = 3;
break;
case 3:
case 7:
alen = 4;
break;
default:
continue;
}
addr = parseInt(s.slice(4, 4 + alen * 2), 16);
dp = 4 + alen * 2;
b = [];
len = parseInt(s.slice(2, 4), 16);
for (i = k = ref = alen + 2, ref1 = len; ref <= ref1 ? k <= ref1 : k >= ref1; i = ref <= ref1 ? ++k : --k) {
b.push(parseInt(s.slice(i * 2, +(i * 2 + 1) + 1 || 9e9), 16));
}
switch (type) {
case 1:
case 2:
case 3:
mem[addr] = b;
if (!min || addr < min) {
min = addr;
}
if (!max || addr + b.length > max) {
max = addr;
}
break;
case 7:
case 8:
case 9:
boot = addr;
break;
case 0:
for (l = 0, len2 = b.length; l < len2; l++) {
byte = b[l];
info += String.fromCharCode(byte);
}
}
module.exports.parseSrec = parseSrec = (data) => {
var addr, alen, b, boot, byte, dp, i, info, j, k, l, len, len1, len2, max, mem, min, ref, ref1, s, srecs, type;
mem = {};
info = "";
min = max = boot = null;
srecs = data.split("\n");
for (j = 0, len1 = srecs.length; j < len1; j++) {
s = srecs[j];
if (s[0] === "S") {
switch (type = parseInt(s[1])) {
case 0:
case 1:
case 9:
case 5:
alen = 2;
break;
case 2:
case 6:
case 8:
alen = 3;
break;
case 3:
case 7:
alen = 4;
break;
default:
continue;
}
addr = parseInt(s.slice(4, 4 + alen * 2), 16);
dp = 4 + alen * 2;
b = [];
len = parseInt(s.slice(2, 4), 16);
for (i = k = ref = alen + 2, ref1 = len; ref <= ref1 ? k <= ref1 : k >= ref1; i = ref <= ref1 ? ++k : --k) {
b.push(parseInt(s.slice(i * 2, +(i * 2 + 1) + 1 || 9e9), 16));
}
switch (type) {
case 1:
case 2:
case 3:
mem[addr] = b;
if (!min || addr < min) {
min = addr;
}
if (!max || addr + b.length > max) {
max = addr;
}
break;
case 7:
case 8:
case 9:
boot = addr;
break;
case 0:
for (l = 0, len2 = b.length; l < len2; l++) {
byte = b[l];
info += String.fromCharCode(byte);
}
}
}
return {
recs: mem,
min: min,
max: max,
boot: boot,
info: info
};
}
return {
recs: mem,
min: min,
max: max,
boot: boot,
info: info
};
};
cache = {};
cache = {};
module.exports.readSrecFile = function(fn, cb) {
console.log("node-srec: Reading File: '" + fn + "'");
return fs.readFile(fn, 'utf8', function(error, data) {
cache[fn] = parseSrec(data);
return cb(cache[fn]);
});
};
module.exports.readSrecFile = (fn, cb) => {
console.log("node-srec: Reading File: '" + fn + "'");
return fs.readFile(fn, 'utf8', function(error, data) {
cache[fn] = parseSrec(data);
return cb(cache[fn]);
});
};
module.exports.readSrecUrl = function(url, cb) {
console.log("node-srec: Getting Url: '" + url + "'");
return request.get(url, function(error, response, body) {
if (!error && response && response.statusCode === 200) {
cache[url] = parseSrec(body);
return cb(cache[url]);
} else {
console.log("Error: cannot get " + url + "?? " + response);
return cb("", "Error: cannot get " + url + " error: " + error + " http-status:" + response);
}
});
};
module.exports.readSrecUrl = (url, cb) => {
console.log("node-srec: Getting Url: '" + url + "'");
return request.get(url, function(error, response, body) {
if (!error && response && response.statusCode === 200) {
cache[url] = parseSrec(body);
return cb(cache[url]);
} else {
console.log("Error: cannot get " + url + "?? " + response);
return cb("", "Error: cannot get " + url + " error: " + error + " http-status:" + response);
}
});
};
module.exports.blockify = function(data, min, max, size) {
var a, as, b, blk, blks, donee, i, j, len, oset, ref, ref1;
blks = {};
console.log("node-srec: Blockify", min.toString(16), max.toString(16), size);
donee = false;
ref = data.recs;
for (as in ref) {
b = ref[as];
a = parseInt(as);
len = b.length;
for (i = j = 0, ref1 = len; 0 <= ref1 ? j < ref1 : j > ref1; i = 0 <= ref1 ? ++j : --j) {
if (a + i > max || a + i < min) {
if (!donee) {
console.log("Error -- out of range: " + ((a + i).toString(16)) + " [" + (min.toString(16)) + ".." + (max.toString(16)) + "]");
donee = true;
}
continue;
module.exports.blockify = (data, min, max, size) => {
var a, as, b, blk, blks, donee, i, j, len, oset, ref, ref1;
blks = {};
console.log("node-srec: Blockify", min.toString(16), max.toString(16), size);
donee = false;
for (as in data.recs) {
b = data.recs[as];
a = parseInt(as);
len = b.length;
for (var i = 0; i<len ; i++) {
if (a + i > max || a + i < min) {
if (!donee) {
console.log("Error -- out of range: " + ((a + i).toString(16)) + " [" + (min.toString(16)) + ".." + (max.toString(16)) + "]");
donee = true;
}
blk = Math.floor((a + i - min) / size);
oset = (a + i - min) % size;
if (!blks[blk]) {
blks[blk] = Array.apply(null, new Array(size)).map(Number.prototype.valueOf, 0);
}
if (b[i] === void 0) {
console.log("????? ", i, len);
}
blks[blk][oset] = b[i];
continue;
}
blk = Math.floor((a + i - min) / size);
oset = (a + i - min) % size;
if (!blks[blk]) {
blks[blk] = Array.apply(null, new Array(size)).map(Number.prototype.valueOf, 0xff);
}
if (b[i] === void 0) {
console.log("????? ", i, len);
}
blks[blk][oset] = b[i];
}
return blks;
};
}
return blks;
};
}).call(this);
{
"name": "node-srec",
"version": "0.1.0",
"version": "0.1.2",
"description": "Motorola S-record library",
"main": "node-srec.js",
"dependencies": {
"request": "^2.88.2",
"sprintf": ""
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"bin": {
"node-srec-cli": "node-srec-cli.js"
},
"repository": {

@@ -17,0 +14,0 @@ "type": "git",

# node-srec
Motorola SREC library for nodejs in coffeescrtipt
Motorola SREC library for nodejs
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