docxmlater 0.22.0 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/zip/ZipWriter.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ZipFile, FileMap, SaveOptions, AddFileOptions } from
|
|
1
|
+
import { ZipFile, FileMap, SaveOptions, AddFileOptions } from "./types";
|
|
2
2
|
export declare class ZipWriter {
|
|
3
3
|
private zip;
|
|
4
4
|
private files;
|
|
@@ -11,6 +11,7 @@ export declare class ZipWriter {
|
|
|
11
11
|
getAllFiles(): FileMap;
|
|
12
12
|
getFilePaths(): string[];
|
|
13
13
|
validate(): void;
|
|
14
|
+
private getSortedFilePaths;
|
|
14
15
|
toBuffer(options?: SaveOptions): Promise<Buffer>;
|
|
15
16
|
saveToFile(filePath: string, options?: SaveOptions): Promise<void>;
|
|
16
17
|
clear(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZipWriter.d.ts","sourceRoot":"","sources":["../../src/zip/ZipWriter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ZipWriter.d.ts","sourceRoot":"","sources":["../../src/zip/ZipWriter.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAOxE,qBAAa,SAAS;IACpB,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,KAAK,CAAsB;;IAoBnC,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,OAAO,GAAE,cAAmB,GAC3B,IAAI;IA+CP,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,IAAI;IAe5D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAmBrC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUlC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAS9C,WAAW,IAAI,OAAO;IAQtB,YAAY,IAAI,MAAM,EAAE;IAQxB,QAAQ,IAAI,IAAI;IAoBhB,OAAO,CAAC,kBAAkB;IA2DpB,QAAQ,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DpD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5E,KAAK,IAAI,IAAI;IASb,YAAY,IAAI,MAAM;IAQtB,KAAK,IAAI,SAAS;CAKnB"}
|
package/dist/zip/ZipWriter.js
CHANGED
|
@@ -18,14 +18,17 @@ class ZipWriter {
|
|
|
18
18
|
const { binary = Buffer.isBuffer(content), compression = 6, date = new Date(), } = options;
|
|
19
19
|
const normalizedPath = (0, validation_1.normalizePath)(filePath);
|
|
20
20
|
let processedContent = content;
|
|
21
|
-
if (typeof content ===
|
|
22
|
-
processedContent = Buffer.from(content,
|
|
21
|
+
if (typeof content === "string") {
|
|
22
|
+
processedContent = Buffer.from(content, "utf8");
|
|
23
23
|
}
|
|
24
|
+
const isContentTypes = normalizedPath === "[Content_Types].xml";
|
|
25
|
+
const useCompression = isContentTypes ? "STORE" : (compression > 0 ? "DEFLATE" : "STORE");
|
|
26
|
+
const compressionLevel = isContentTypes ? 0 : compression;
|
|
24
27
|
this.zip.file(normalizedPath, processedContent, {
|
|
25
28
|
binary: true,
|
|
26
|
-
compression:
|
|
29
|
+
compression: useCompression,
|
|
27
30
|
compressionOptions: {
|
|
28
|
-
level:
|
|
31
|
+
level: compressionLevel,
|
|
29
32
|
},
|
|
30
33
|
date,
|
|
31
34
|
});
|
|
@@ -74,15 +77,77 @@ class ZipWriter {
|
|
|
74
77
|
const filePaths = this.getFilePaths();
|
|
75
78
|
(0, validation_1.validateDocxStructure)(filePaths);
|
|
76
79
|
}
|
|
80
|
+
getSortedFilePaths() {
|
|
81
|
+
const paths = Array.from(this.files.keys());
|
|
82
|
+
return paths.sort((a, b) => {
|
|
83
|
+
if (a === "[Content_Types].xml")
|
|
84
|
+
return -1;
|
|
85
|
+
if (b === "[Content_Types].xml")
|
|
86
|
+
return 1;
|
|
87
|
+
if (a === "_rels/.rels")
|
|
88
|
+
return -1;
|
|
89
|
+
if (b === "_rels/.rels")
|
|
90
|
+
return 1;
|
|
91
|
+
const aIsDocProps = a.startsWith("docProps/");
|
|
92
|
+
const bIsDocProps = b.startsWith("docProps/");
|
|
93
|
+
if (aIsDocProps && !bIsDocProps)
|
|
94
|
+
return -1;
|
|
95
|
+
if (!aIsDocProps && bIsDocProps)
|
|
96
|
+
return 1;
|
|
97
|
+
if (a === "word/_rels/document.xml.rels")
|
|
98
|
+
return -1;
|
|
99
|
+
if (b === "word/_rels/document.xml.rels")
|
|
100
|
+
return 1;
|
|
101
|
+
if (a === "word/document.xml")
|
|
102
|
+
return -1;
|
|
103
|
+
if (b === "word/document.xml")
|
|
104
|
+
return 1;
|
|
105
|
+
const aIsWordRels = a.startsWith("word/_rels/");
|
|
106
|
+
const bIsWordRels = b.startsWith("word/_rels/");
|
|
107
|
+
const aIsWord = a.startsWith("word/") && !aIsWordRels;
|
|
108
|
+
const bIsWord = b.startsWith("word/") && !bIsWordRels;
|
|
109
|
+
if (aIsWord && !bIsWord && !bIsWordRels)
|
|
110
|
+
return -1;
|
|
111
|
+
if (!aIsWord && bIsWord && !aIsWordRels)
|
|
112
|
+
return 1;
|
|
113
|
+
if (aIsWordRels && !bIsWordRels)
|
|
114
|
+
return -1;
|
|
115
|
+
if (!aIsWordRels && bIsWordRels)
|
|
116
|
+
return 1;
|
|
117
|
+
return a.localeCompare(b);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
77
120
|
async toBuffer(options = {}) {
|
|
78
121
|
const { compression = 6, validate = true } = options;
|
|
79
122
|
if (validate) {
|
|
80
123
|
this.validate();
|
|
81
124
|
}
|
|
82
125
|
try {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
126
|
+
const orderedZip = new jszip_1.default();
|
|
127
|
+
const sortedPaths = this.getSortedFilePaths();
|
|
128
|
+
for (const path of sortedPaths) {
|
|
129
|
+
const file = this.files.get(path);
|
|
130
|
+
if (!file)
|
|
131
|
+
continue;
|
|
132
|
+
let processedContent = file.content;
|
|
133
|
+
if (typeof file.content === "string") {
|
|
134
|
+
processedContent = Buffer.from(file.content, "utf8");
|
|
135
|
+
}
|
|
136
|
+
const isContentTypes = path === "[Content_Types].xml";
|
|
137
|
+
const useCompression = isContentTypes ? "STORE" : (compression > 0 ? "DEFLATE" : "STORE");
|
|
138
|
+
const compressionLevel = isContentTypes ? 0 : compression;
|
|
139
|
+
orderedZip.file(path, processedContent, {
|
|
140
|
+
binary: true,
|
|
141
|
+
compression: useCompression,
|
|
142
|
+
compressionOptions: {
|
|
143
|
+
level: compressionLevel,
|
|
144
|
+
},
|
|
145
|
+
date: file.date,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
const buffer = await orderedZip.generateAsync({
|
|
149
|
+
type: "nodebuffer",
|
|
150
|
+
compression: compression > 0 ? "DEFLATE" : "STORE",
|
|
86
151
|
compressionOptions: {
|
|
87
152
|
level: compression,
|
|
88
153
|
},
|
|
@@ -91,7 +156,7 @@ class ZipWriter {
|
|
|
91
156
|
return buffer;
|
|
92
157
|
}
|
|
93
158
|
catch (error) {
|
|
94
|
-
throw new errors_1.FileOperationError(
|
|
159
|
+
throw new errors_1.FileOperationError("generate", error.message);
|
|
95
160
|
}
|
|
96
161
|
}
|
|
97
162
|
async saveToFile(filePath, options = {}) {
|
|
@@ -103,7 +168,7 @@ class ZipWriter {
|
|
|
103
168
|
if (error instanceof errors_1.FileOperationError) {
|
|
104
169
|
throw error;
|
|
105
170
|
}
|
|
106
|
-
throw new errors_1.FileOperationError(
|
|
171
|
+
throw new errors_1.FileOperationError("save", error.message);
|
|
107
172
|
}
|
|
108
173
|
}
|
|
109
174
|
clear() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZipWriter.js","sourceRoot":"","sources":["../../src/zip/ZipWriter.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"ZipWriter.js","sourceRoot":"","sources":["../../src/zip/ZipWriter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED