Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const {emptyDir, remove, mkdirp, readFile, writeFile} = require('fs-extra');
const jscrambler = require('jscrambler').default;
const commander = require('commander');
const fs = require('fs');
const path = require('path');
const BUNDLE_OUTPUT_CLI_ARG = '--bundle-output';
const JSCRAMBLER_TEMP_FOLDER = '.jscrambler';
const JSCRAMBLER_DIST_TEMP_FOLDER = `${JSCRAMBLER_TEMP_FOLDER}/dist/`;
const JSCRAMBLER_SRC_TEMP_FOLDER = `${JSCRAMBLER_TEMP_FOLDER}/src`;
const JSCRAMBLER_PROTECTION_ID_FILE = `${JSCRAMBLER_TEMP_FOLDER}/protectionId`;
const JSCRAMBLER_BEG_ANNOTATION = '"JSCRAMBLER-BEG";';
const JSCRAMBLER_END_ANNOTATION = '"JSCRAMBLER-END";';
const JSCRAMBLER_EXTS = /.(j|t)s(x)?$/i;
function getBundlePath() {
commander.option(`${BUNDLE_OUTPUT_CLI_ARG} `).parse(process.argv);
const jscrambler = require('jscrambler').default;
const Plugin = require('broccoli-plugin');
const defaults = require('lodash.defaultsdeep');
const memoize = require('lodash.memoize');
const walkSync = require('walk-sync');
const path = require('path');
const fs = require('fs');
const mkdirp = require('mkdirp');
const symlinkOrCopy = require('symlink-or-copy');
const MatcherCollection = require('matcher-collection');
const silent = process.argv.indexOf('--silent') !== -1;
const ensureDir = memoize(filename => {
const p = path.dirname(filename);
mkdirp.sync(p);
/**
* grunt-jscrambler
* @author José Magalhães (magalhas@gmail.com)
* @license MIT
*/
'use strict';
var jscrambler = require('jscrambler').default;
var path = require('path');
var util = require('util');
module.exports = function (grunt) {
grunt.registerMultiTask('jscrambler', 'Obfuscate your source files', function () {
var done = this.async();
var files = this.files;
var options = this.options({
keys: {},
clientId: 4
});
options.filesSrc = this.filesSrc;
function writeFile(buffer, file) {
files.forEach(function (elem) {
'use strict';
var defaults = require('lodash.defaults');
var File = require('vinyl');
var jScrambler = require('jscrambler').default;
var path = require('path');
var PluginError = require('plugin-error');
var through = require('through2');
module.exports = function (options) {
options = defaults(options || {}, {
cwd: process.cwd(),
filesSrc: [],
keys: {},
clientId: 3
});
var aggregate = function (file, enc, next) {
if (file.isBuffer()) {
options.filesSrc.push(file);
}
const client = require('jscrambler').default;
const {SourceMapSource} = require('webpack-sources');
const sourceMaps = !!client.config.sourceMaps;
class JscramblerPlugin {
constructor(_options) {
let options = _options;
if (typeof options !== 'object' || Array.isArray(options)) options = {};
this.options = Object.assign(options, {
clientId: 2
});
this.processResult = this.processResult.bind(this);
this.processSourceMaps = this.processSourceMaps.bind(this);
}