Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
DocxParser.prototype.mainFilePath = function (zip) {
if (zip.files["word/document.xml"]) {
return "word/document.xml";
}
if (zip.files["word/document2.xml"]) {
return "word/document2.xml";
}
return undefined;
};
DocxParser.prototype.splitTextNode = function (textNode, splitIndex, addBefore) {
public async extract(data: Buffer): Promise {
const zipContent = await JSZip.loadAsync(data);
const stylesContent = await zipContent.files["word/styles.xml"].async("text");
const stylesFactory = new ExternalStylesFactory();
const styles = stylesFactory.newInstance(stylesContent);
const documentContent = zipContent.files["word/document.xml"];
const documentRefs: IDocumentRefs = this.extractDocumentRefs(await documentContent.async("text"));
const titlePageIsDefined = this.titlePageIsDefined(await documentContent.async("text"));
const relationshipContent = zipContent.files["word/_rels/document.xml.rels"];
const documentRelationships: IRelationshipFileInfo[] = this.findReferenceFiles(await relationshipContent.async("text"));
const media = new Media();
const headers: IDocumentHeader[] = [];
for (const headerRef of documentRefs.headers) {
const relationFileInfo = documentRelationships.find((rel) => rel.id === headerRef.id);
if (relationFileInfo === null || !relationFileInfo) {
throw new Error(`Can not find target file for id ${headerRef.id}`);
}
const xmlData = await zipContent.files[`word/${relationFileInfo.target}`].async("text");
public mainFilePath(zip: JSZip): string {
if (zip.files["word/document.xml"]) {
return "word/document.xml";
}
if (zip.files["word/document2.xml"]) {
return "word/document2.xml";
}
return undefined;
}
}
public static isDocx(zipFile: JSZip): boolean {
return !!(zipFile.files["word/document.xml"] || zipFile.files["word/document2.xml"]);
}
function isDocx(zipFile) {
return !!(zipFile.files["word/document.xml"] || zipFile.files["word/document2.xml"]);
}
FileType.isDocx = isDocx;
parseDocumentAsync(zip) {
return zip.files["word/document.xml"]
.async("string")
.then((xml) => this.parseDocumentFile(xml));
}
.then(asyncResult => {
this.asyncResult = asyncResult;
return asyncResult.files['word/document.xml'].async('string')
})
.then((content) => {
public async extract(data: Buffer): Promise {
const zipContent = await JSZip.loadAsync(data);
const stylesContent = await zipContent.files["word/styles.xml"].async("text");
const stylesFactory = new ExternalStylesFactory();
const styles = stylesFactory.newInstance(stylesContent);
const documentContent = zipContent.files["word/document.xml"];
const documentRefs: IDocumentRefs = this.extractDocumentRefs(await documentContent.async("text"));
const titlePageIsDefined = this.titlePageIsDefined(await documentContent.async("text"));
const relationshipContent = zipContent.files["word/_rels/document.xml.rels"];
const documentRelationships: IRelationshipFileInfo[] = this.findReferenceFiles(await relationshipContent.async("text"));
const media = new Media();
const headers: IDocumentHeader[] = [];
for (const headerRef of documentRefs.headers) {
const relationFileInfo = documentRelationships.find((rel) => rel.id === headerRef.id);
if (relationFileInfo === null || !relationFileInfo) {
throw new Error(`Can not find target file for id ${headerRef.id}`);
}
const xmlData = await zipContent.files[`word/${relationFileInfo.target}`].async("text");
const xmlObj = xml2js(xmlData, { compact: false, captureSpacesBetweenElements: true }) as XMLElement;
let headerXmlElement: XMLElement | undefined;
for (const xmlElm of xmlObj.elements || []) {
if (xmlElm.name === "w:hdr") {
DocxGen.prototype.loadImageRels = function() {
var RidArray, content, tag;
content = DocUtils.decode_utf8(this.zip.files["word/_rels/document.xml.rels"].data);
this.xmlDoc = DocUtils.Str2xml(content);
RidArray = (function() {
var _i, _len, _ref, _results;
_ref = this.xmlDoc.getElementsByTagName('Relationship');
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
tag = _ref[_i];
_results.push(parseInt(tag.getAttribute("Id").substr(3)));
}
return _results;
}).call(this);
this.maxRid = RidArray.max();
this.imageRels = [];
return this;
};
.then((content) => {
this.docx.setStyles(content);
return this.asyncResult.files['word/_rels/document.xml.rels'].async('string');
})
.then((content) => {