shell bypass 403
"use strict";
var Lexer = require("./lexer.js");
var Parser = require("./parser.js");
var createScope = require("./scope-manager.js");
var utf8decode = require("./uintarray-to-string.js");
var _require = require("./doc-utils.js"),
getDefaults = _require.getDefaults,
pushArray = _require.pushArray;
var _require2 = require("./errors.js"),
throwMultiError = _require2.throwMultiError;
var renderModule = require("./modules/render.js");
var loopModule = require("./modules/loop.js");
var expandPairTrait = require("./modules/expand-pair-trait.js");
var XmlTemplater = require("./xml-templater.js");
function TxtTemplater(text) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var filePath = "text";
var xmlt = new XmlTemplater(text, {
modules: []
});
xmlt.fileType = "text";
this.fileTypeConfig = xmlt.fileTypeConfig = options.fileTypeConfig = {
droppedTagsInsidePlaceholder: [],
expandTags: []
};
var defaults = getDefaults();
for (var key in defaults) {
var defaultValue = defaults[key];
xmlt[key] = options[key] = options[key] != null ? options[key] : defaultValue;
}
xmlt.modules = [loopModule(), expandPairTrait(), renderModule()];
for (var _i2 = 0, _xmlt$modules2 = xmlt.modules; _i2 < _xmlt$modules2.length; _i2++) {
var _module = _xmlt$modules2[_i2];
_module.optionsTransformer(options, {
fileTypeConfig: xmlt.fileTypeConfig,
parser: xmlt.parser,
options: xmlt
});
}
xmlt.allErrors = [];
// Fake XML parsing : surround the text with an empty tag of type text: true
xmlt.xmllexed = [{
type: "tag",
position: "start",
value: "",
text: true
}, {
type: "content",
value: text
}, {
type: "tag",
position: "end",
value: ""
}];
xmlt.setModules({
inspect: {
filePath: filePath,
xmllexed: xmlt.xmllexed
}
});
var _Lexer$parse = Lexer.parse(xmlt.xmllexed, xmlt.delimiters, xmlt.syntax, xmlt.fileType),
lexed = _Lexer$parse.lexed,
lexerErrors = _Lexer$parse.errors;
pushArray(xmlt.allErrors, lexerErrors);
xmlt.lexed = lexed;
xmlt.setModules({
inspect: {
filePath: filePath,
lexed: xmlt.lexed
}
});
Parser.preparse(xmlt.lexed, xmlt.modules, xmlt.getOptions());
xmlt.parse();
if (xmlt.allErrors.length > 0) {
throwMultiError(xmlt.allErrors);
}
this.render = function (tags) {
xmlt.scopeManager = createScope({
tags: tags,
parser: xmlt.parser
});
return utf8decode(xmlt.render().content);
};
return this;
}
module.exports = TxtTemplater;
module.exports["default"] = TxtTemplater;