UNPKG

@restnfeel/agentc-starter-kit

Version:

한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템

247 lines (223 loc) 9.85 kB
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