@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
247 lines (223 loc) • 9.85 kB
JavaScript
import { __exports as docxReader } from '../../../../_virtual/docx-reader.js';
import { __require as requirePromises } from '../promises.js';
import { __require as requireDocuments } from '../documents.js';
import { __require as requireResults } from '../results.js';
import { __require as requireZipfile } from '../zipfile.js';
import { __require as requireOfficeXmlReader } from './office-xml-reader.js';
import { __require as requireBodyReader } from './body-reader.js';
import { __require as requireDocumentXmlReader } from './document-xml-reader.js';
import { __require as requireRelationshipsReader } from './relationships-reader.js';
import { __require as requireContentTypesReader } from './content-types-reader.js';
import { __require as requireNumberingXml } from './numbering-xml.js';
import { __require as requireStylesReader } from './styles-reader.js';
import { __require as requireNotesReader } from './notes-reader.js';
import { __require as requireCommentsReader } from './comments-reader.js';
import { __require as requireFiles } from '../../browser/docx/files.js';
var hasRequiredDocxReader;
function requireDocxReader () {
if (hasRequiredDocxReader) return docxReader;
hasRequiredDocxReader = 1;
docxReader.read = read;
docxReader._findPartPaths = findPartPaths;
var promises = /*@__PURE__*/ requirePromises();
var documents = /*@__PURE__*/ requireDocuments();
var Result = /*@__PURE__*/ requireResults().Result;
var zipfile = /*@__PURE__*/ requireZipfile();
var readXmlFromZipFile = /*@__PURE__*/ requireOfficeXmlReader().readXmlFromZipFile;
var createBodyReader = /*@__PURE__*/ requireBodyReader().createBodyReader;
var DocumentXmlReader = /*@__PURE__*/ requireDocumentXmlReader().DocumentXmlReader;
var relationshipsReader = /*@__PURE__*/ requireRelationshipsReader();
var contentTypesReader = /*@__PURE__*/ requireContentTypesReader();
var numberingXml = /*@__PURE__*/ requireNumberingXml();
var stylesReader = /*@__PURE__*/ requireStylesReader();
var notesReader = /*@__PURE__*/ requireNotesReader();
var commentsReader = /*@__PURE__*/ requireCommentsReader();
var Files = /*@__PURE__*/ requireFiles().Files;
function read(docxFile, input) {
input = input || {};
return promises.props({
contentTypes: readContentTypesFromZipFile(docxFile),
partPaths: findPartPaths(docxFile),
docxFile: docxFile,
files: input.path ? Files.relativeToFile(input.path) : new Files(null)
}).also(function(result) {
return {
styles: readStylesFromZipFile(docxFile, result.partPaths.styles)
};
}).also(function(result) {
return {
numbering: readNumberingFromZipFile(docxFile, result.partPaths.numbering, result.styles)
};
}).also(function(result) {
return {
footnotes: readXmlFileWithBody(result.partPaths.footnotes, result, function(bodyReader, xml) {
if (xml) {
return notesReader.createFootnotesReader(bodyReader)(xml);
} else {
return new Result([]);
}
}),
endnotes: readXmlFileWithBody(result.partPaths.endnotes, result, function(bodyReader, xml) {
if (xml) {
return notesReader.createEndnotesReader(bodyReader)(xml);
} else {
return new Result([]);
}
}),
comments: readXmlFileWithBody(result.partPaths.comments, result, function(bodyReader, xml) {
if (xml) {
return commentsReader.createCommentsReader(bodyReader)(xml);
} else {
return new Result([]);
}
})
};
}).also(function(result) {
return {
notes: result.footnotes.flatMap(function(footnotes) {
return result.endnotes.map(function(endnotes) {
return new documents.Notes(footnotes.concat(endnotes));
});
})
};
}).then(function(result) {
return readXmlFileWithBody(result.partPaths.mainDocument, result, function(bodyReader, xml) {
return result.notes.flatMap(function(notes) {
return result.comments.flatMap(function(comments) {
var reader = new DocumentXmlReader({
bodyReader: bodyReader,
notes: notes,
comments: comments
});
return reader.convertXmlToDocument(xml);
});
});
});
});
}
function findPartPaths(docxFile) {
return readPackageRelationships(docxFile).then(function(packageRelationships) {
var mainDocumentPath = findPartPath({
docxFile: docxFile,
relationships: packageRelationships,
relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",
basePath: "",
fallbackPath: "word/document.xml"
});
if (!docxFile.exists(mainDocumentPath)) {
throw new Error("Could not find main document part. Are you sure this is a valid .docx file?");
}
return xmlFileReader({
filename: relationshipsFilename(mainDocumentPath),
readElement: relationshipsReader.readRelationships,
defaultValue: relationshipsReader.defaultValue
})(docxFile).then(function(documentRelationships) {
function findPartRelatedToMainDocument(name) {
return findPartPath({
docxFile: docxFile,
relationships: documentRelationships,
relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/" + name,
basePath: zipfile.splitPath(mainDocumentPath).dirname,
fallbackPath: "word/" + name + ".xml"
});
}
return {
mainDocument: mainDocumentPath,
comments: findPartRelatedToMainDocument("comments"),
endnotes: findPartRelatedToMainDocument("endnotes"),
footnotes: findPartRelatedToMainDocument("footnotes"),
numbering: findPartRelatedToMainDocument("numbering"),
styles: findPartRelatedToMainDocument("styles")
};
});
});
}
function findPartPath(options) {
var docxFile = options.docxFile;
var relationships = options.relationships;
var relationshipType = options.relationshipType;
var basePath = options.basePath;
var fallbackPath = options.fallbackPath;
var targets = relationships.findTargetsByType(relationshipType);
var normalisedTargets = targets.map(function(target) {
return stripPrefix(zipfile.joinPath(basePath, target), "/");
});
var validTargets = normalisedTargets.filter(function(target) {
return docxFile.exists(target);
});
if (validTargets.length === 0) {
return fallbackPath;
} else {
return validTargets[0];
}
}
function stripPrefix(value, prefix) {
if (value.substring(0, prefix.length) === prefix) {
return value.substring(prefix.length);
} else {
return value;
}
}
function xmlFileReader(options) {
return function(zipFile) {
return readXmlFromZipFile(zipFile, options.filename)
.then(function(element) {
return element ? options.readElement(element) : options.defaultValue;
});
};
}
function readXmlFileWithBody(filename, options, func) {
var readRelationshipsFromZipFile = xmlFileReader({
filename: relationshipsFilename(filename),
readElement: relationshipsReader.readRelationships,
defaultValue: relationshipsReader.defaultValue
});
return readRelationshipsFromZipFile(options.docxFile).then(function(relationships) {
var bodyReader = new createBodyReader({
relationships: relationships,
contentTypes: options.contentTypes,
docxFile: options.docxFile,
numbering: options.numbering,
styles: options.styles,
files: options.files
});
return readXmlFromZipFile(options.docxFile, filename)
.then(function(xml) {
return func(bodyReader, xml);
});
});
}
function relationshipsFilename(filename) {
var split = zipfile.splitPath(filename);
return zipfile.joinPath(split.dirname, "_rels", split.basename + ".rels");
}
var readContentTypesFromZipFile = xmlFileReader({
filename: "[Content_Types].xml",
readElement: contentTypesReader.readContentTypesFromXml,
defaultValue: contentTypesReader.defaultContentTypes
});
function readNumberingFromZipFile(zipFile, path, styles) {
return xmlFileReader({
filename: path,
readElement: function(element) {
return numberingXml.readNumberingXml(element, {styles: styles});
},
defaultValue: numberingXml.defaultNumbering
})(zipFile);
}
function readStylesFromZipFile(zipFile, path) {
return xmlFileReader({
filename: path,
readElement: stylesReader.readStylesXml,
defaultValue: stylesReader.defaultStyles
})(zipFile);
}
var readPackageRelationships = xmlFileReader({
filename: "_rels/.rels",
readElement: relationshipsReader.readRelationships,
defaultValue: relationshipsReader.defaultValue
});
return docxReader;
}
export { requireDocxReader as __require };
//# sourceMappingURL=docx-reader.js.map