Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@sitecore-jss/sitecore-jss-update-package

Package Overview
Dependencies
Maintainers
4
Versions
271
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sitecore-jss/sitecore-jss-update-package - npm Package Compare versions

Comparing version 7.0.0 to 8.0.0

types/index.d.ts

301

dist/index.js

@@ -1,159 +0,158 @@

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createUpdatePackage = undefined;
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _jszip = require('jszip');
var _jszip2 = _interopRequireDefault(_jszip);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _xml = require('xml');
var _xml2 = _interopRequireDefault(_xml);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var walkSync = function walkSync(dir) {
var filelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
_fs2.default.readdirSync(dir).forEach(function (file) {
if (_fs2.default.statSync(_path2.default.join(dir, file)).isDirectory()) {
filelist = filelist.concat(_path2.default.join(dir, file, _path2.default.sep));
filelist = walkSync(_path2.default.join(dir, file), filelist);
} else {
filelist = filelist.concat(_path2.default.join(dir, file));
}
});
return filelist;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var getEntries = function getEntries(folder) {
var files = walkSync(folder);
var entries = [];
files.forEach(function (entry) {
var entryPath = _path2.default.join('.', entry);
//remove initial folder and convert to fwd slash
var name = _path2.default.relative(folder, entryPath);
if (entryPath.endsWith(_path2.default.sep)) {
name = name + _path2.default.sep; //ensure we retain trailing slash for dirs
Object.defineProperty(exports, "__esModule", { value: true });
var fs_1 = __importDefault(require("fs"));
var jszip_1 = __importDefault(require("jszip"));
var path_1 = __importDefault(require("path"));
var xml_1 = __importDefault(require("xml"));
var walkSync = function (dir, filelist) {
if (filelist === void 0) { filelist = []; }
var result = filelist;
fs_1.default.readdirSync(dir).forEach(function (file) {
if (fs_1.default.statSync(path_1.default.join(dir, file)).isDirectory()) {
result = result.concat(path_1.default.join(dir, file, path_1.default.sep));
result = walkSync(path_1.default.join(dir, file), result);
}
else {
result = result.concat(path_1.default.join(dir, file));
}
});
return result;
};
var getEntries = function (folder) {
var files = walkSync(folder);
var entries = [];
files.forEach(function (entry) {
var entryPath = path_1.default.join('.', entry);
// remove initial folder and convert to fwd slash
var name = path_1.default.relative(folder, entryPath);
if (entryPath.endsWith(path_1.default.sep)) {
name += path_1.default.sep; // ensure we retain trailing slash for dirs
}
name = name.split(path_1.default.sep).join('/');
entries.push({ path: entryPath, name: name });
});
return entries;
};
var getAddedFolder = function (folderPath) {
var pathForXml = folderPath.replace(new RegExp('/', 'g'), '\\');
if (pathForXml.endsWith('\\')) {
pathForXml = pathForXml.substring(0, pathForXml.length - 1);
}
name = name.split(_path2.default.sep).join('/');
entries.push({ path: entryPath, name: name });
});
return entries;
var addFolder = [
{
addFolder: [
{ collisionbehavior: '' },
{ path: pathForXml },
{ id: pathForXml },
{ parent: '' },
],
},
];
return {
path: pathForXml.replace(new RegExp('\\\\', 'g'), '/'),
xml: xml_1.default(addFolder, { declaration: { encoding: 'UTF-8' } }),
};
};
var getAddedFolder = function getAddedFolder(folderPath) {
var pathForXml = folderPath.replace(new RegExp('\/', 'g'), '\\');
if (pathForXml.endsWith('\\')) {
pathForXml = pathForXml.substring(0, pathForXml.length - 1);
}
var addFolder = [{
addFolder: [{ collisionbehavior: '' }, { path: pathForXml }, { id: pathForXml }, { parent: '' }]
}];
return {
path: pathForXml.replace(new RegExp('\\\\', 'g'), '/'),
xml: (0, _xml2.default)(addFolder, { declaration: { encoding: 'UTF-8' } })
};
var getFileProperties = function (filePath) {
var pathForXml = filePath.replace(new RegExp('/', 'g'), '\\');
var addFile = [
{
addFile: [
{ collisionbehavior: '' },
{ path: pathForXml },
{ id: pathForXml },
{ parent: '' },
{ file: '' },
{ hashCode: '' },
],
},
];
var properties = "version=2.0\r\nxml=" + xml_1.default(addFile, {
declaration: { encoding: 'UTF-8' },
});
return {
path: pathForXml.replace(new RegExp('\\\\', 'g'), '/'),
properties: properties,
};
};
var getFileProperties = function getFileProperties(filePath) {
var pathForXml = filePath.replace(new RegExp('\/', 'g'), '\\');
var addFile = [{
addFile: [{ collisionbehavior: '' }, { path: pathForXml }, { id: pathForXml }, { parent: '' }, { file: '' }, { hashCode: '' }]
}];
var properties = "version=2.0" + "\r\n" + "xml=" + (0, _xml2.default)(addFile, { declaration: { encoding: 'UTF-8' } });
return {
path: pathForXml.replace(new RegExp('\\\\', 'g'), '/'),
properties: properties
};
var ensureMetadata = function (name, defaultValue, metadata) {
if (typeof metadata[name] === 'undefined') {
// eslint-disable-next-line no-param-reassign
metadata[name] = defaultValue;
}
};
var getMetadataEntries = function getMetadataEntries(metadata) {
ensureMetadata('sc_author', '', metadata);
ensureMetadata('sc_name', 'Update Package', metadata);
ensureMetadata('sc_poststep', '', metadata);
ensureMetadata('sc_publisher', '', metadata);
ensureMetadata('sc_readme', '', metadata);
ensureMetadata('sc_version', '', metadata);
var metadataEntries = [{ name: 'installer/version', content: '07.00.000000.000000' }];
Object.keys(metadata).forEach(function (key) {
var name = key;
if (name.startsWith("sc_")) {
name = name + ".txt";
}
name = "metadata/" + name;
metadataEntries.push({
name: name,
content: metadata[key]
var getMetadataEntries = function (metadata) {
ensureMetadata('sc_author', '', metadata);
ensureMetadata('sc_name', 'Update Package', metadata);
ensureMetadata('sc_poststep', '', metadata);
ensureMetadata('sc_publisher', '', metadata);
ensureMetadata('sc_readme', '', metadata);
ensureMetadata('sc_version', '', metadata);
var metadataEntries = [{ name: 'installer/version', content: '07.00.000000.000000' }];
Object.keys(metadata).forEach(function (key) {
var name = key;
if (name.startsWith('sc_')) {
name += '.txt';
}
name = "metadata/" + name;
metadataEntries.push({
name: name,
content: metadata[key],
});
});
});
return metadataEntries;
return metadataEntries;
};
var ensureMetadata = function ensureMetadata(name, defaultValue, metadata) {
if (typeof metadata[name] === 'undefined') {
metadata[name] = defaultValue;
}
exports.createUpdatePackage = function (contentsPath, outputPath, incomingMetadata, callback) {
var zip = new jszip_1.default();
var metadata = getMetadataEntries(incomingMetadata);
metadata.forEach(function (entry) {
console.log("Adding metadata " + entry.name + " (" + entry.content + ")");
zip.file(entry.name, entry.content, { createFolders: false });
});
var contents = getEntries(contentsPath);
contents.forEach(function (entry) {
if (entry.name.endsWith('/')) {
var addedFolder = getAddedFolder(entry.name);
var zipFolderPath = "addedfolders/" + addedFolder.path;
console.log("Adding " + zipFolderPath);
zip.file(zipFolderPath, addedFolder.xml, { createFolders: false });
return;
}
var properties = getFileProperties(entry.name);
var zipPath = "properties/addedfiles/" + properties.path;
console.log("Adding " + zipPath);
zip.file(zipPath, properties.properties, { createFolders: false });
zipPath = "addedfiles/" + entry.name;
console.log("Adding " + zipPath);
zip.file(zipPath, fs_1.default.readFileSync(path_1.default.normalize(entry.path)), { createFolders: false });
});
var zipChunks = [];
zip
.generateNodeStream({ type: 'nodebuffer' })
.on('data', function (chunk) {
zipChunks.push(chunk);
})
.on('error', function (error) {
console.error(error);
})
.on('end', function () {
console.log('Creating wrapper zip');
var wrapper = new jszip_1.default();
wrapper.file('package.zip', Buffer.concat(zipChunks));
wrapper
.generateNodeStream({ type: 'nodebuffer' })
.pipe(fs_1.default.createWriteStream(outputPath))
.on('finish', function () {
console.log("Wrote " + outputPath);
if (callback) {
callback();
}
})
.on('error', function (error) {
console.error(error);
});
});
};
var createUpdatePackage = exports.createUpdatePackage = function createUpdatePackage(contentsPath, outputPath, metadata, callback) {
var zip = new _jszip2.default();
var metadata = getMetadataEntries(metadata);
metadata.forEach(function (entry) {
console.log('Adding metadata ' + entry.name + ' (' + entry.content + ')');
zip.file(entry.name, entry.content, { createFolders: false });
});
var contents = getEntries(contentsPath);
contents.forEach(function (entry) {
if (entry.name.endsWith('/')) {
var addedFolder = getAddedFolder(entry.name);
var zipPath = "addedfolders/" + addedFolder.path;
console.log("Adding " + zipPath);
zip.file(zipPath, addedFolder.xml, { createFolders: false });
return;
}
var properties = getFileProperties(entry.name);
var zipPath = "properties/addedfiles/" + properties.path;
console.log("Adding " + zipPath);
zip.file(zipPath, properties.properties, { createFolders: false });
zipPath = "addedfiles/" + entry.name;
console.log("Adding " + zipPath);
zip.file(zipPath, _fs2.default.readFileSync(_path2.default.normalize(entry.path)), { createFolders: false });
});
var zipChunks = [];
zip.generateNodeStream({ type: "nodebuffer" }).on('data', function (chunk) {
zipChunks.push(chunk);
}).on('error', function (error) {
console.error(error);
}).on('end', function () {
console.log("Creating wrapper zip");
var wrapper = new _jszip2.default();
wrapper.file("package.zip", Buffer.concat(zipChunks));
wrapper.generateNodeStream({ type: 'nodebuffer' }).pipe(_fs2.default.createWriteStream(outputPath)).on('finish', function () {
console.log('Wrote ' + outputPath);
if (callback) {
callback();
}
}).on('error', function (error) {
console.error(error);
});
});
};
{
"name": "@sitecore-jss/sitecore-jss-update-package",
"version": "7.0.0",
"version": "8.0.0",
"description": "Allows creation of Sitecore Update Packages in JavaScript (currently files only).",
"main": "dist/index.js",
"scripts": {
"build": "babel ./src --out-dir ./dist --ignore *.test.js,testData",
"test": "mocha --compilers js:babel-core/register \"./src/**/*.test.js\"",
"prepublishOnly": "npm run build"
"build": "yarn clean && tsc",
"clean": "del-cli dist types",
"lint": "tslint -p . -c ../../tslint.json 'src/**/*.ts'",
"test": "mocha --require ts-node/register \"./src/**/*.test.ts\"",
"prepublishOnly": "yarn build"
},

@@ -26,16 +28,14 @@ "author": {

"devDependencies": {
"babel-cli": "^6.24.1",
"babel-core": "^6.24.1",
"babel-eslint": "^7.2.3",
"babel-preset-es2015": "^6.24.1",
"babel-preset-minify": "^0.2.0",
"babel-preset-stage-1": "^6.24.1",
"@types/jszip": "^3.1.3",
"@types/node": "^9.6.1",
"@types/xml": "^1.0.2",
"chai": "^3.5.0",
"eslint": "^3.7.1",
"eslint-config-airbnb-base": "^8.0.0",
"eslint-plugin-import": "^2.0.1",
"del-cli": "^1.1.0",
"fetch-mock": "^5.9.4",
"mocha": "^3.2.0",
"sinon": "^2.0.0"
}
"sinon": "^2.0.0",
"ts-node": "^4.1.0",
"typescript": "^2.7.1"
},
"types": "types/index.d.ts"
}
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