New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

crspr

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

crspr - npm Package Compare versions

Comparing version 1.0.2 to 2.0.0

139

crspr.js

@@ -1,84 +0,121 @@

/**
* Created by anthony on 24/01/2017.
*/
/*** CG-UNI ***/
/*** A-START ***/
/*** T-END ***/
var preGlobals = [
['Path', 'path'],
['Url', 'url'],
['Promise', 'bluebird'],
['Enum', 'enum'],
['FS', 'fs']
];
var util = require('util');
var path = require('path');
function crspr(startTag, endTag, replaceMent) {
replaceMent = replaceMent || preGlobals.map(function (pair) {
var asName = pair[0], moduleName = pair[1];
return util.format('global[\'%s\'] = require(\'%s\');', asName, moduleName);
});
function crspr(startTag, endTag, lineArgs, transformer) {
transformer = transformer || DEFAULT_FN;
startTag = startTag || "/*** A-START ***/";
endTag = endTag || "/*** T-END ***/";
console.log('REPLACEMENT:', replaceMent.join('\n'));
if(verbose) console.log('END:', endTag, 'START:', startTag);
var mePath = process.argv[1];
var replaceMent = (lineArgs || preGlobals).map(transformer), mePath = process.argv[1];
console.log('me file:', mePath);
var fs = require('fs');
var lineReader = require('readline').createInterface({
var fs = require('fs'), newFileLines = [], lineNo = 0, lineReader = require('readline').createInterface({
input: fs.createReadStream(mePath)
});
var startMarkerSeen = false, endMarkerSeen = false, bothTagsSeen = false, waitTime = 0, unmodified = {a: true};
var newFileLines = [];
var startMarkerSeen = false, endMarkerSeen = false, unmodified = true;
lineReader.on('line', function (line) {
//console.log('Line from file:', line);
function onLine(line) {
var trimmedLine = line.trim();
endMarkerSeen = trimmedLine === endTag;
startMarkerSeen = trimmedLine === startTag;
bothTagsSeen = startMarkerSeen && endMarkerSeen;
if(!startMarkerSeen && !endMarkerSeen){
newFileLines.push(line);
if(verbose) console.log('////LINE NUMBER:', lineNo, 'TRIM:' + trimmedLine + '<end>');
lineNo += 1;
if (bothTagsSeen) {
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:', line);
newFileLines.push('/*** CG-START ***/');
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
}
if(startMarkerSeen && endMarkerSeen && unmodified){
replaceMent.forEach(function(newLine){
console.log('adding repcement:', newLine);
if (startMarkerSeen && endMarkerSeen && unmodified) {
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
replaceMent.forEach(function (newLine) {
if(verbose) console.log('adding replacement:', newLine);
newFileLines.push(newLine);
});
unmodified = false;
newFileLines.push('/*** CG-END ***/');
unmodified.a = false;
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
}
if(startMarkerSeen && !endMarkerSeen){
//skip
if (!startMarkerSeen && !endMarkerSeen) {
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
newFileLines.push(line);
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
}
if(endMarkerSeen && !unmodified){
if (startMarkerSeen && !endMarkerSeen) {
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
waitTime += 1;
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
}
if (endMarkerSeen && !unmodified) {
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
newFileLines.push(line);
if(verbose) console.log('startMarkerSeen:', startMarkerSeen, 'endMarkerSeen:', endMarkerSeen, 'unmodified:', unmodified,
'waitTime:', waitTime, 'lines:\n', newFileLines.slice(0, 10).join('\n'), '\ncurrentline:\n', line);
}
}
startMarkerSeen = trimmedLine === startTag;
});
lineReader.on('line', onLine);
lineReader.on('close', function () {
fs.writeFileSync(mePath, newFileLines.join('\n'));
console.log('wrote file');
console.log('wrote file: waitTime=', waitTime);
});
console.log('REPLACEMENT:');
replaceMent.forEach(function join(item) {
console.log('\t', item);
});
}
if(!module.parent){
crspr();
var preGlobals = [
['Path', 'path'],
['Url', 'url'],
['Promise', 'bluebird'],
['Enum', 'enum'],
['FS', 'fs']
];
var util = require('util');
var path = require('path');
var verbose = false;
function DEFAULT_FN(args) {
var asName = args[0], moduleName = args[1];
return util.format('global[\'%s\'] = require(\'%s\');', asName, moduleName);
}
crspr.v1 = crspr; //backwards compatibility
crspr.v2 = crspr;
var case1 = [];
var case2 = ['/*** CG-UNI ***/', '/*** CG-UNI ***/'];
if (!module.parent) {
//crspr(case1[0], case1[1], case1[2]);
verbose = true;
crspr(case2[0], case2[1]);
//console.log('s', [1,2,3,4,5].slice(0, 3));
}
module.exports = crspr;
{
"name": "crspr",
"version": "1.0.2",
"version": "2.0.0",
"description": "Self modifying files toolkit",

@@ -5,0 +5,0 @@ "main": "crspr.js",

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