330 lines
18 KiB
TypeScript
330 lines
18 KiB
TypeScript
import { strToU8, zipSync } from "fflate";
|
|
|
|
type XmlParts = Record<string, string>;
|
|
|
|
interface NodeBufferLike extends Uint8Array {
|
|
toString(encoding?: string): string;
|
|
}
|
|
|
|
const nodeBuffer = (
|
|
globalThis as unknown as {
|
|
Buffer: {
|
|
from(value: string | Uint8Array): NodeBufferLike;
|
|
};
|
|
}
|
|
).Buffer;
|
|
|
|
export interface OoxmlFixture {
|
|
buffer: NodeBufferLike;
|
|
mimeType: string;
|
|
name: string;
|
|
}
|
|
|
|
const XML_DECLARATION =
|
|
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
|
|
|
function packageFixture(
|
|
name: string,
|
|
mimeType: string,
|
|
parts: XmlParts,
|
|
): OoxmlFixture {
|
|
const archive = Object.fromEntries(
|
|
Object.entries(parts)
|
|
.sort(([left], [right]) => left.localeCompare(right))
|
|
.map(([path, xml]) => [path, strToU8(xml)]),
|
|
);
|
|
|
|
return {
|
|
buffer: nodeBuffer.from(zipSync(archive, { level: 6 })),
|
|
mimeType,
|
|
name,
|
|
};
|
|
}
|
|
|
|
function contentTypes(overrides: string): string {
|
|
return `${XML_DECLARATION}
|
|
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
|
|
<Default Extension="xml" ContentType="application/xml"/>
|
|
${overrides}
|
|
</Types>`;
|
|
}
|
|
|
|
function rootRelationships(target: string): string {
|
|
return `${XML_DECLARATION}
|
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="${target}"/>
|
|
</Relationships>`;
|
|
}
|
|
|
|
export function createMinimalDocx(): OoxmlFixture {
|
|
return packageFixture(
|
|
"three-page-document.docx",
|
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
{
|
|
"[Content_Types].xml": contentTypes(`
|
|
<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>
|
|
<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>`),
|
|
"_rels/.rels": rootRelationships("word/document.xml"),
|
|
"word/_rels/document.xml.rels": `${XML_DECLARATION}
|
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
|
|
</Relationships>`,
|
|
"word/styles.xml": `${XML_DECLARATION}
|
|
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
<w:docDefaults>
|
|
<w:rPrDefault><w:rPr><w:sz w:val="24"/><w:szCs w:val="24"/></w:rPr></w:rPrDefault>
|
|
<w:pPrDefault><w:pPr/></w:pPrDefault>
|
|
</w:docDefaults>
|
|
<w:style w:type="paragraph" w:default="1" w:styleId="Normal">
|
|
<w:name w:val="Normal"/><w:qFormat/>
|
|
</w:style>
|
|
<w:style w:type="paragraph" w:styleId="Title">
|
|
<w:name w:val="Title"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/>
|
|
<w:rPr><w:b/><w:sz w:val="36"/></w:rPr>
|
|
</w:style>
|
|
</w:styles>`,
|
|
"word/document.xml": `${XML_DECLARATION}
|
|
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
<w:body>
|
|
<w:p>
|
|
<w:pPr><w:pStyle w:val="Title"/></w:pPr>
|
|
<w:r><w:t>Office Tools Document Fixture</w:t></w:r>
|
|
</w:p>
|
|
<w:p><w:r><w:t>This text is rendered from a project-authored DOCX package.</w:t></w:r></w:p>
|
|
<w:tbl>
|
|
<w:tblPr><w:tblW w:w="0" w:type="auto"/></w:tblPr>
|
|
<w:tblGrid><w:gridCol w:w="3600"/><w:gridCol w:w="3600"/></w:tblGrid>
|
|
<w:tr>
|
|
<w:tc><w:p><w:r><w:t>Feature</w:t></w:r></w:p></w:tc>
|
|
<w:tc><w:p><w:r><w:t>Status</w:t></w:r></w:p></w:tc>
|
|
</w:tr>
|
|
<w:tr>
|
|
<w:tc><w:p><w:r><w:t>Local viewing</w:t></w:r></w:p></w:tc>
|
|
<w:tc><w:p><w:r><w:t>Ready</w:t></w:r></w:p></w:tc>
|
|
</w:tr>
|
|
</w:tbl>
|
|
<w:p><w:r><w:br w:type="page"/></w:r></w:p>
|
|
<w:p><w:r><w:t>Second Page Search Marker</w:t></w:r></w:p>
|
|
<w:p><w:r><w:t>Navigation reaches this independently laid-out page.</w:t></w:r></w:p>
|
|
<w:p><w:r><w:br w:type="page"/></w:r></w:p>
|
|
<w:p><w:r><w:t>Third page trailing marker</w:t></w:r></w:p>
|
|
<w:p><w:r><w:t>This trailing page makes the middle page a stable scroll target.</w:t></w:r></w:p>
|
|
<w:sectPr>
|
|
<w:pgSz w:w="12240" w:h="15840"/>
|
|
<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/>
|
|
</w:sectPr>
|
|
</w:body>
|
|
</w:document>`,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function createMinimalXlsx(): OoxmlFixture {
|
|
return packageFixture(
|
|
"two-sheet-workbook.xlsx",
|
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
{
|
|
"[Content_Types].xml": contentTypes(`
|
|
<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>
|
|
<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>
|
|
<Override PartName="/xl/worksheets/sheet2.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>
|
|
<Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/>
|
|
<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>`),
|
|
"_rels/.rels": rootRelationships("xl/workbook.xml"),
|
|
"xl/workbook.xml": `${XML_DECLARATION}
|
|
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
|
|
<bookViews><workbookView xWindow="0" yWindow="0" windowWidth="18000" windowHeight="10000"/></bookViews>
|
|
<sheets>
|
|
<sheet name="Summary" sheetId="1" state="visible" r:id="rId1"/>
|
|
<sheet name="Details" sheetId="2" state="visible" r:id="rId2"/>
|
|
</sheets>
|
|
<calcPr calcId="191029"/>
|
|
</workbook>`,
|
|
"xl/_rels/workbook.xml.rels": `${XML_DECLARATION}
|
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>
|
|
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet2.xml"/>
|
|
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
|
|
<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/>
|
|
</Relationships>`,
|
|
"xl/sharedStrings.xml": `${XML_DECLARATION}
|
|
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="6" uniqueCount="6">
|
|
<si><t>Office Tools Workbook Fixture</t></si>
|
|
<si><t>Amount</t></si>
|
|
<si><t>Total</t></si>
|
|
<si><t>Details Sheet Search Marker</t></si>
|
|
<si><t>Item</t></si>
|
|
<si><t>Quantity</t></si>
|
|
</sst>`,
|
|
"xl/styles.xml": `${XML_DECLARATION}
|
|
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
<fonts count="2">
|
|
<font><sz val="11"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font>
|
|
<font><b/><sz val="11"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font>
|
|
</fonts>
|
|
<fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills>
|
|
<borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders>
|
|
<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>
|
|
<cellXfs count="2">
|
|
<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>
|
|
<xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/>
|
|
</cellXfs>
|
|
<cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>
|
|
</styleSheet>`,
|
|
"xl/worksheets/sheet1.xml": `${XML_DECLARATION}
|
|
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
<dimension ref="A1:B4"/>
|
|
<sheetViews><sheetView workbookViewId="0"><selection activeCell="A1" sqref="A1"/></sheetView></sheetViews>
|
|
<sheetFormatPr defaultRowHeight="15"/>
|
|
<cols><col min="1" max="1" width="34" customWidth="1"/><col min="2" max="2" width="14" customWidth="1"/></cols>
|
|
<sheetData>
|
|
<row r="1"><c r="A1" s="1" t="s"><v>0</v></c></row>
|
|
<row r="2"><c r="A2" s="1" t="s"><v>1</v></c></row>
|
|
<row r="3"><c r="A3" t="n"><v>19</v></c><c r="B3" t="n"><v>23</v></c></row>
|
|
<row r="4"><c r="A4" s="1" t="s"><v>2</v></c><c r="B4"><f>SUM(A3:B3)</f><v>42</v></c></row>
|
|
</sheetData>
|
|
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
|
|
</worksheet>`,
|
|
"xl/worksheets/sheet2.xml": `${XML_DECLARATION}
|
|
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
<dimension ref="A1:B3"/>
|
|
<sheetViews><sheetView workbookViewId="0"><selection activeCell="A1" sqref="A1"/></sheetView></sheetViews>
|
|
<sheetFormatPr defaultRowHeight="15"/>
|
|
<cols><col min="1" max="1" width="34" customWidth="1"/><col min="2" max="2" width="14" customWidth="1"/></cols>
|
|
<sheetData>
|
|
<row r="1"><c r="A1" s="1" t="s"><v>3</v></c></row>
|
|
<row r="2"><c r="A2" s="1" t="s"><v>4</v></c><c r="B2" s="1" t="s"><v>5</v></c></row>
|
|
<row r="3"><c r="A3" t="inlineStr"><is><t>Local parser</t></is></c><c r="B3" t="n"><v>2</v></c></row>
|
|
</sheetData>
|
|
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
|
|
</worksheet>`,
|
|
},
|
|
);
|
|
}
|
|
|
|
const PRESENTATION_NS =
|
|
'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"';
|
|
|
|
function slideXml(title: string, body: string): string {
|
|
return `${XML_DECLARATION}
|
|
<p:sld ${PRESENTATION_NS}>
|
|
<p:cSld>
|
|
<p:spTree>
|
|
<p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr>
|
|
<p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr>
|
|
<p:sp>
|
|
<p:nvSpPr><p:cNvPr id="2" name="Fixture title"/><p:cNvSpPr/><p:nvPr/></p:nvSpPr>
|
|
<p:spPr>
|
|
<a:xfrm><a:off x="685800" y="685800"/><a:ext cx="7772400" cy="914400"/></a:xfrm>
|
|
<a:prstGeom prst="rect"><a:avLst/></a:prstGeom><a:noFill/><a:ln><a:noFill/></a:ln>
|
|
</p:spPr>
|
|
<p:txBody><a:bodyPr/><a:lstStyle/><a:p><a:r><a:rPr lang="en-US" sz="2800" b="1"/><a:t>${title}</a:t></a:r><a:endParaRPr lang="en-US"/></a:p></p:txBody>
|
|
</p:sp>
|
|
<p:sp>
|
|
<p:nvSpPr><p:cNvPr id="3" name="Fixture body"/><p:cNvSpPr/><p:nvPr/></p:nvSpPr>
|
|
<p:spPr>
|
|
<a:xfrm><a:off x="914400" y="2057400"/><a:ext cx="7315200" cy="2286000"/></a:xfrm>
|
|
<a:prstGeom prst="roundRect"><a:avLst/></a:prstGeom>
|
|
<a:solidFill><a:srgbClr val="E8F0FE"/></a:solidFill><a:ln><a:solidFill><a:srgbClr val="356AC3"/></a:solidFill></a:ln>
|
|
</p:spPr>
|
|
<p:txBody><a:bodyPr lIns="228600" rIns="228600" tIns="228600" bIns="228600"/><a:lstStyle/><a:p><a:r><a:rPr lang="en-US" sz="1800"/><a:t>${body}</a:t></a:r><a:endParaRPr lang="en-US"/></a:p></p:txBody>
|
|
</p:sp>
|
|
</p:spTree>
|
|
</p:cSld>
|
|
<p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>
|
|
</p:sld>`;
|
|
}
|
|
|
|
function slideRelationships(): string {
|
|
return `${XML_DECLARATION}
|
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>
|
|
</Relationships>`;
|
|
}
|
|
|
|
export function createMinimalPptx(): OoxmlFixture {
|
|
return packageFixture(
|
|
"two-slide-presentation.pptx",
|
|
"application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
{
|
|
"[Content_Types].xml": contentTypes(`
|
|
<Override PartName="/ppt/presentation.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"/>
|
|
<Override PartName="/ppt/slides/slide1.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slide+xml"/>
|
|
<Override PartName="/ppt/slides/slide2.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slide+xml"/>
|
|
<Override PartName="/ppt/slideLayouts/slideLayout1.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml"/>
|
|
<Override PartName="/ppt/slideMasters/slideMaster1.xml" ContentType="application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml"/>
|
|
<Override PartName="/ppt/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/>`),
|
|
"_rels/.rels": rootRelationships("ppt/presentation.xml"),
|
|
"ppt/presentation.xml": `${XML_DECLARATION}
|
|
<p:presentation ${PRESENTATION_NS}>
|
|
<p:sldMasterIdLst><p:sldMasterId id="2147483648" r:id="rId1"/></p:sldMasterIdLst>
|
|
<p:sldIdLst><p:sldId id="256" r:id="rId2"/><p:sldId id="257" r:id="rId3"/></p:sldIdLst>
|
|
<p:sldSz cx="9144000" cy="5143500" type="screen16x9"/>
|
|
<p:notesSz cx="6858000" cy="9144000"/>
|
|
</p:presentation>`,
|
|
"ppt/_rels/presentation.xml.rels": `${XML_DECLARATION}
|
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="slideMasters/slideMaster1.xml"/>
|
|
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide" Target="slides/slide1.xml"/>
|
|
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide" Target="slides/slide2.xml"/>
|
|
</Relationships>`,
|
|
"ppt/slides/slide1.xml": slideXml(
|
|
"Office Tools Presentation Fixture",
|
|
"This first slide is rendered entirely in the browser.",
|
|
),
|
|
"ppt/slides/slide2.xml": slideXml(
|
|
"Second Slide Search Marker",
|
|
"Navigation reaches the second project-authored slide.",
|
|
),
|
|
"ppt/slides/_rels/slide1.xml.rels": slideRelationships(),
|
|
"ppt/slides/_rels/slide2.xml.rels": slideRelationships(),
|
|
"ppt/slideLayouts/slideLayout1.xml": `${XML_DECLARATION}
|
|
<p:sldLayout ${PRESENTATION_NS} type="blank" preserve="1">
|
|
<p:cSld name="Blank"><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr></p:spTree></p:cSld>
|
|
<p:clrMapOvr><a:masterClrMapping/></p:clrMapOvr>
|
|
</p:sldLayout>`,
|
|
"ppt/slideLayouts/_rels/slideLayout1.xml.rels": `${XML_DECLARATION}
|
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster" Target="../slideMasters/slideMaster1.xml"/>
|
|
</Relationships>`,
|
|
"ppt/slideMasters/slideMaster1.xml": `${XML_DECLARATION}
|
|
<p:sldMaster ${PRESENTATION_NS}>
|
|
<p:cSld><p:spTree><p:nvGrpSpPr><p:cNvPr id="1" name=""/><p:cNvGrpSpPr/><p:nvPr/></p:nvGrpSpPr><p:grpSpPr><a:xfrm><a:off x="0" y="0"/><a:ext cx="0" cy="0"/><a:chOff x="0" y="0"/><a:chExt cx="0" cy="0"/></a:xfrm></p:grpSpPr></p:spTree></p:cSld>
|
|
<p:clrMap accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" bg1="lt1" bg2="lt2" folHlink="folHlink" hlink="hlink" tx1="dk1" tx2="dk2"/>
|
|
<p:sldLayoutIdLst><p:sldLayoutId id="1" r:id="rId1"/></p:sldLayoutIdLst>
|
|
<p:txStyles><p:titleStyle/><p:bodyStyle/><p:otherStyle/></p:txStyles>
|
|
</p:sldMaster>`,
|
|
"ppt/slideMasters/_rels/slideMaster1.xml.rels": `${XML_DECLARATION}
|
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/>
|
|
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="../theme/theme1.xml"/>
|
|
</Relationships>`,
|
|
"ppt/theme/theme1.xml": `${XML_DECLARATION}
|
|
<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Tools Fixture">
|
|
<a:themeElements>
|
|
<a:clrScheme name="Fixture">
|
|
<a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1>
|
|
<a:dk2><a:srgbClr val="1F2937"/></a:dk2><a:lt2><a:srgbClr val="F8FAFC"/></a:lt2>
|
|
<a:accent1><a:srgbClr val="356AC3"/></a:accent1><a:accent2><a:srgbClr val="D97706"/></a:accent2>
|
|
<a:accent3><a:srgbClr val="059669"/></a:accent3><a:accent4><a:srgbClr val="7C3AED"/></a:accent4>
|
|
<a:accent5><a:srgbClr val="0891B2"/></a:accent5><a:accent6><a:srgbClr val="DB2777"/></a:accent6>
|
|
<a:hlink><a:srgbClr val="0563C1"/></a:hlink><a:folHlink><a:srgbClr val="954F72"/></a:folHlink>
|
|
</a:clrScheme>
|
|
<a:fontScheme name="Fixture"><a:majorFont><a:latin typeface="Arial"/><a:ea typeface=""/><a:cs typeface=""/></a:majorFont><a:minorFont><a:latin typeface="Arial"/><a:ea typeface=""/><a:cs typeface=""/></a:minorFont></a:fontScheme>
|
|
<a:fmtScheme name="Fixture"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill></a:bgFillStyleLst></a:fmtScheme>
|
|
</a:themeElements>
|
|
</a:theme>`,
|
|
},
|
|
);
|
|
}
|
|
|
|
export function createMalformedDocx(): OoxmlFixture {
|
|
return {
|
|
buffer: nodeBuffer.from("This is deliberately not an OOXML ZIP package."),
|
|
mimeType:
|
|
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
name: "malformed-document.docx",
|
|
};
|
|
}
|