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

docx-templates

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

docx-templates - npm Package Compare versions

Comparing version 4.6.0 to 4.6.1

4

CHANGELOG.md

@@ -0,1 +1,5 @@

## 4.6.1 (2021-06-01)
* Fix for issue [#213](https://github.com/guigrpa/docx-templates/issues/213): throw an error when user tries to iterate over a non-array in a template with a FOR loop. This used to create an infinite loop.
* Throw `ObjectCommandResultError` when the result of an `INS` command is an Object. This ensures you don't accidentally put `'[object Object]'` in your report.
## 4.6.0 (2021-03-27)

@@ -2,0 +6,0 @@ * Add support for `.docm` (macro-enabled) templates (issue [#195](https://github.com/guigrpa/docx-templates/issues/195)). Thanks @brockfanning!

@@ -0,1 +1,4 @@

/**
* Thrown when `rejectNullish` is set to `true` and a command returns `null` or `undefined`.
*/
export declare class NullishCommandResultError extends Error {

@@ -5,2 +8,9 @@ command: string;

}
/**
* Thrown when the result of an `INS` command is an `Object`. This ensures you don't accidentally put `'[object Object]'` in your report.
*/
export declare class ObjectCommandResultError extends Error {
command: string;
constructor(command: string);
}
export declare class CommandSyntaxError extends Error {

@@ -7,0 +17,0 @@ command: string;

@@ -18,3 +18,6 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.TemplateParseError = exports.InternalError = exports.ImageError = exports.CommandExecutionError = exports.InvalidCommandError = exports.CommandSyntaxError = exports.NullishCommandResultError = void 0;
exports.TemplateParseError = exports.InternalError = exports.ImageError = exports.CommandExecutionError = exports.InvalidCommandError = exports.CommandSyntaxError = exports.ObjectCommandResultError = exports.NullishCommandResultError = void 0;
/**
* Thrown when `rejectNullish` is set to `true` and a command returns `null` or `undefined`.
*/
var NullishCommandResultError = /** @class */ (function (_super) {

@@ -31,2 +34,16 @@ __extends(NullishCommandResultError, _super);

exports.NullishCommandResultError = NullishCommandResultError;
/**
* Thrown when the result of an `INS` command is an `Object`. This ensures you don't accidentally put `'[object Object]'` in your report.
*/
var ObjectCommandResultError = /** @class */ (function (_super) {
__extends(ObjectCommandResultError, _super);
function ObjectCommandResultError(command) {
var _this = _super.call(this, "Result of command '" + command + "' is an object") || this;
Object.setPrototypeOf(_this, ObjectCommandResultError.prototype);
_this.command = command;
return _this;
}
return ObjectCommandResultError;
}(Error));
exports.ObjectCommandResultError = ObjectCommandResultError;
var CommandSyntaxError = /** @class */ (function (_super) {

@@ -33,0 +50,0 @@ __extends(CommandSyntaxError, _super);

2

lib/index.d.ts
import createReport from './main';
export { listCommands, getMetadata } from './main';
export { NullishCommandResultError, CommandSyntaxError, InvalidCommandError, CommandExecutionError, ImageError, InternalError, TemplateParseError, } from './errors';
export { NullishCommandResultError, CommandSyntaxError, InvalidCommandError, CommandExecutionError, ImageError, InternalError, TemplateParseError, ObjectCommandResultError, } from './errors';
export { createReport };
export default createReport;

@@ -6,3 +6,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.createReport = exports.TemplateParseError = exports.InternalError = exports.ImageError = exports.CommandExecutionError = exports.InvalidCommandError = exports.CommandSyntaxError = exports.NullishCommandResultError = exports.getMetadata = exports.listCommands = void 0;
exports.createReport = exports.ObjectCommandResultError = exports.TemplateParseError = exports.InternalError = exports.ImageError = exports.CommandExecutionError = exports.InvalidCommandError = exports.CommandSyntaxError = exports.NullishCommandResultError = exports.getMetadata = exports.listCommands = void 0;
var main_1 = __importDefault(require("./main"));

@@ -21,2 +21,3 @@ exports.createReport = main_1.default;

Object.defineProperty(exports, "TemplateParseError", { enumerable: true, get: function () { return errors_1.TemplateParseError; } });
Object.defineProperty(exports, "ObjectCommandResultError", { enumerable: true, get: function () { return errors_1.ObjectCommandResultError; } });
exports.default = main_1.default;

@@ -436,3 +436,3 @@ "use strict";

var processCmd = function (data, node, ctx) { return __awaiter(void 0, void 0, void 0, function () {
var cmd, _a, cmdName, cmdRest, aliasMatch, aliasName, fullCmd, result, str, literalXmlDelimiter, img, e_1, pars, html, err_1;
var cmd, _a, cmdName, cmdRest, aliasMatch, aliasName, fullCmd, result, nerr, str, literalXmlDelimiter, img, e_1, pars, html, err_1;
return __generator(this, function (_b) {

@@ -446,3 +446,3 @@ switch (_b.label) {

case 1:
_b.trys.push([1, 28, , 29]);
_b.trys.push([1, 31, , 32]);
_a = splitCommand(cmd), cmdName = _a.cmdName, cmdRest = _a.cmdRest;

@@ -456,3 +456,3 @@ // Seeking query?

if (!(cmdName === 'QUERY' || cmdName === 'CMD_NODE')) return [3 /*break*/, 2];
return [3 /*break*/, 27];
return [3 /*break*/, 30];
case 2:

@@ -467,3 +467,3 @@ if (!(cmdName === 'ALIAS')) return [3 /*break*/, 3];

debug_1.logger.debug("Defined alias '" + aliasName + "' for: " + fullCmd);
return [3 /*break*/, 27];
return [3 /*break*/, 30];
case 3:

@@ -474,10 +474,10 @@ if (!(cmdName === 'FOR' || cmdName === 'IF')) return [3 /*break*/, 5];

_b.sent();
return [3 /*break*/, 27];
return [3 /*break*/, 30];
case 5:
if (!(cmdName === 'END-FOR' || cmdName === 'END-IF')) return [3 /*break*/, 6];
processEndForIf(node, ctx, cmd, cmdName, cmdRest);
return [3 /*break*/, 27];
return [3 /*break*/, 30];
case 6:
if (!(cmdName === 'INS')) return [3 /*break*/, 9];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 8];
if (!(cmdName === 'INS')) return [3 /*break*/, 12];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 11];
return [4 /*yield*/, jsSandbox_1.runUserJsAndGetRaw(data, cmdRest, ctx)];

@@ -489,2 +489,11 @@ case 7:

}
if (!(typeof result === 'object')) return [3 /*break*/, 10];
nerr = new errors_1.ObjectCommandResultError(cmdRest);
if (!(ctx.options.errorHandler != null)) return [3 /*break*/, 9];
return [4 /*yield*/, ctx.options.errorHandler(nerr, cmdRest)];
case 8:
result = _b.sent();
return [3 /*break*/, 10];
case 9: throw nerr;
case 10:
str = String(result);

@@ -496,56 +505,56 @@ if (ctx.options.processLineBreaks) {

return [2 /*return*/, str];
case 8: return [3 /*break*/, 27];
case 9:
if (!(cmdName === 'EXEC')) return [3 /*break*/, 12];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 11];
case 11: return [3 /*break*/, 30];
case 12:
if (!(cmdName === 'EXEC')) return [3 /*break*/, 15];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 14];
return [4 /*yield*/, jsSandbox_1.runUserJsAndGetRaw(data, cmdRest, ctx)];
case 10:
case 13:
_b.sent();
_b.label = 11;
case 11: return [3 /*break*/, 27];
case 12:
if (!(cmdName === 'IMAGE')) return [3 /*break*/, 18];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 17];
_b.label = 14;
case 14: return [3 /*break*/, 30];
case 15:
if (!(cmdName === 'IMAGE')) return [3 /*break*/, 21];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 20];
return [4 /*yield*/, jsSandbox_1.runUserJsAndGetRaw(data, cmdRest, ctx)];
case 13:
case 16:
img = _b.sent();
if (!(img != null)) return [3 /*break*/, 17];
_b.label = 14;
case 14:
_b.trys.push([14, 16, , 17]);
if (!(img != null)) return [3 /*break*/, 20];
_b.label = 17;
case 17:
_b.trys.push([17, 19, , 20]);
return [4 /*yield*/, processImage(ctx, img)];
case 15:
case 18:
_b.sent();
return [3 /*break*/, 17];
case 16:
return [3 /*break*/, 20];
case 19:
e_1 = _b.sent();
throw new errors_1.ImageError(e_1.message, cmd);
case 17: return [3 /*break*/, 27];
case 18:
if (!(cmdName === 'LINK')) return [3 /*break*/, 22];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 21];
case 20: return [3 /*break*/, 30];
case 21:
if (!(cmdName === 'LINK')) return [3 /*break*/, 25];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 24];
return [4 /*yield*/, jsSandbox_1.runUserJsAndGetRaw(data, cmdRest, ctx)];
case 19:
case 22:
pars = _b.sent();
if (!(pars != null)) return [3 /*break*/, 21];
if (!(pars != null)) return [3 /*break*/, 24];
return [4 /*yield*/, processLink(ctx, pars)];
case 20:
case 23:
_b.sent();
_b.label = 21;
case 21: return [3 /*break*/, 27];
case 22:
if (!(cmdName === 'HTML')) return [3 /*break*/, 26];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 25];
_b.label = 24;
case 24: return [3 /*break*/, 30];
case 25:
if (!(cmdName === 'HTML')) return [3 /*break*/, 29];
if (!!reportUtils_1.isLoopExploring(ctx)) return [3 /*break*/, 28];
return [4 /*yield*/, jsSandbox_1.runUserJsAndGetRaw(data, cmdRest, ctx)];
case 23:
case 26:
html = _b.sent();
if (!(html != null)) return [3 /*break*/, 25];
if (!(html != null)) return [3 /*break*/, 28];
return [4 /*yield*/, processHtml(ctx, html)];
case 24:
case 27:
_b.sent();
_b.label = 25;
case 25: return [3 /*break*/, 27];
case 26: throw new errors_1.CommandSyntaxError(cmd);
case 27: return [2 /*return*/];
case 28:
_b.label = 28;
case 28: return [3 /*break*/, 30];
case 29: throw new errors_1.CommandSyntaxError(cmd);
case 30: return [2 /*return*/];
case 31:
err_1 = _b.sent();

@@ -556,3 +565,3 @@ if (ctx.options.errorHandler != null) {

return [2 /*return*/, err_1];
case 29: return [2 /*return*/];
case 32: return [2 /*return*/];
}

@@ -648,2 +657,4 @@ });

loopOver = _a.sent();
if (!Array.isArray(loopOver))
throw new errors_1.InvalidCommandError('Invalid FOR command (can only iterate over Array)', cmd);
_a.label = 5;

@@ -650,0 +661,0 @@ case 5:

{
"name": "docx-templates",
"version": "4.6.0",
"version": "4.6.1",
"description": "Template-based docx report creation",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -477,2 +477,3 @@ # Docx-templates [![Build Status](https://travis-ci.org/guigrpa/docx-templates.svg)](https://travis-ci.org/guigrpa/docx-templates) [![Coverage Status](https://coveralls.io/repos/github/guigrpa/docx-templates/badge.svg?branch=master)](https://coveralls.io/github/guigrpa/docx-templates?branch=master) [![npm version](https://img.shields.io/npm/v/docx-templates.svg)](https://www.npmjs.com/package/docx-templates)

NullishCommandResultError // thrown when rejectNullish is set to true and a command returns null or undefined
ObjectCommandResultError // thrown when the result of an `INS` command is an Object. This ensures you don't accidentally put `'[object Object]'` in your report.
CommandSyntaxError

@@ -479,0 +480,0 @@ InvalidCommandError

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