@depup/mammoth 1.12.0-depup.54 → 1.12.1-depup.0
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/NEWS +8 -0
- package/README.md +2 -2
- package/changes.json +1 -1
- package/lib/docx/numbering-xml.js +20 -11
- package/lib/images.js +6 -0
- package/lib/main.js +8 -8
- package/mammoth.browser.js +27 -12
- package/mammoth.browser.min.js +19 -19
- package/package.json +3 -3
- package/test/docx/numbering-xml.tests.js +16 -0
- package/test/images.tests.js +42 -0
package/NEWS
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# 1.12.1
|
|
2
|
+
|
|
3
|
+
* Fix: on Windows, when an image's content type includes a backslash in the
|
|
4
|
+
subpart, files may be written outside of the directory set by --output-dir.
|
|
5
|
+
|
|
6
|
+
* Detect and ignore numbering levels that use numStyleLink to refer to
|
|
7
|
+
themselves.
|
|
8
|
+
|
|
1
9
|
# 1.12.0
|
|
2
10
|
|
|
3
11
|
* Handle hyperlinked wp:anchor and wp:inline elements.
|
package/README.md
CHANGED
|
@@ -13,8 +13,8 @@ npm install @depup/mammoth
|
|
|
13
13
|
|
|
14
14
|
| Field | Value |
|
|
15
15
|
|-------|-------|
|
|
16
|
-
| Original | [mammoth](https://www.npmjs.com/package/mammoth) @ 1.12.
|
|
17
|
-
| Processed | 2026-
|
|
16
|
+
| Original | [mammoth](https://www.npmjs.com/package/mammoth) @ 1.12.1 |
|
|
17
|
+
| Processed | 2026-08-09 |
|
|
18
18
|
| Smoke test | passed |
|
|
19
19
|
| Deps updated | 7 |
|
|
20
20
|
|
package/changes.json
CHANGED
|
@@ -17,20 +17,29 @@ function Numbering(nums, abstractNums, styles) {
|
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
function findLevel(numId, level) {
|
|
20
|
+
return findLevelWithSeenNumIds(numId, level, {});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function findLevelWithSeenNumIds(numId, level, seenNumIds) {
|
|
24
|
+
if (seenNumIds[numId]) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
seenNumIds[numId] = true;
|
|
28
|
+
|
|
20
29
|
var num = nums[numId];
|
|
21
|
-
if (num) {
|
|
22
|
-
var abstractNum = abstractNums[num.abstractNumId];
|
|
23
|
-
if (!abstractNum) {
|
|
24
|
-
return null;
|
|
25
|
-
} else if (abstractNum.numStyleLink == null) {
|
|
26
|
-
return abstractNums[num.abstractNumId].levels[level];
|
|
27
|
-
} else {
|
|
28
|
-
var style = styles.findNumberingStyleById(abstractNum.numStyleLink);
|
|
29
|
-
return findLevel(style.numId, level);
|
|
30
|
-
}
|
|
31
|
-
} else {
|
|
30
|
+
if (!num) {
|
|
32
31
|
return null;
|
|
33
32
|
}
|
|
33
|
+
|
|
34
|
+
var abstractNum = abstractNums[num.abstractNumId];
|
|
35
|
+
if (!abstractNum) {
|
|
36
|
+
return null;
|
|
37
|
+
} else if (abstractNum.numStyleLink == null) {
|
|
38
|
+
return abstractNums[num.abstractNumId].levels[level];
|
|
39
|
+
} else {
|
|
40
|
+
var style = styles.findNumberingStyleById(abstractNum.numStyleLink);
|
|
41
|
+
return findLevelWithSeenNumIds(style.numId, level, seenNumIds);
|
|
42
|
+
}
|
|
34
43
|
}
|
|
35
44
|
|
|
36
45
|
function findLevelByParagraphStyleId(styleId) {
|
package/lib/images.js
CHANGED
package/lib/main.js
CHANGED
|
@@ -13,22 +13,22 @@ function main(argv) {
|
|
|
13
13
|
var outputDir = argv.output_dir;
|
|
14
14
|
var outputFormat = argv.output_format;
|
|
15
15
|
var styleMapPath = argv.style_map;
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
readStyleMap(styleMapPath).then(function(styleMap) {
|
|
18
18
|
var options = {
|
|
19
19
|
styleMap: styleMap,
|
|
20
20
|
outputFormat: outputFormat
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
if (outputDir) {
|
|
24
24
|
var basename = path.basename(docxPath, ".docx");
|
|
25
25
|
outputPath = path.join(outputDir, basename + ".html");
|
|
26
26
|
var imageIndex = 0;
|
|
27
27
|
options.convertImage = images.imgElement(function(element) {
|
|
28
28
|
imageIndex++;
|
|
29
|
-
var extension =
|
|
30
|
-
var filename = imageIndex + "." + extension;
|
|
31
|
-
|
|
29
|
+
var extension = images.imageFilenameExtension(element);
|
|
30
|
+
var filename = imageIndex + (extension === undefined ? "" : "." + extension);
|
|
31
|
+
|
|
32
32
|
return element.read().then(function(imageBuffer) {
|
|
33
33
|
var imagePath = path.join(outputDir, filename);
|
|
34
34
|
return promises.nfcall(fs.writeFile, imagePath, imageBuffer);
|
|
@@ -37,16 +37,16 @@ function main(argv) {
|
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
return mammoth.convert({path: docxPath}, options)
|
|
42
42
|
.then(function(result) {
|
|
43
43
|
result.messages.forEach(function(message) {
|
|
44
44
|
process.stderr.write(message.message);
|
|
45
45
|
process.stderr.write("\n");
|
|
46
46
|
});
|
|
47
|
-
|
|
47
|
+
|
|
48
48
|
var outputStream = outputPath ? fs.createWriteStream(outputPath) : process.stdout;
|
|
49
|
-
|
|
49
|
+
|
|
50
50
|
outputStream.write(result.value);
|
|
51
51
|
});
|
|
52
52
|
}).done();
|
package/mammoth.browser.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
// Module: lop@0.4.2
|
|
26
26
|
// License: BSD-2-Clause
|
|
27
27
|
//
|
|
28
|
-
// Module: mammoth@1.12.
|
|
28
|
+
// Module: mammoth@1.12.1
|
|
29
29
|
// License: BSD-2-Clause
|
|
30
30
|
//
|
|
31
31
|
// Module: option@0.2.4
|
|
@@ -2002,20 +2002,29 @@ function Numbering(nums, abstractNums, styles) {
|
|
|
2002
2002
|
);
|
|
2003
2003
|
|
|
2004
2004
|
function findLevel(numId, level) {
|
|
2005
|
+
return findLevelWithSeenNumIds(numId, level, {});
|
|
2006
|
+
}
|
|
2007
|
+
|
|
2008
|
+
function findLevelWithSeenNumIds(numId, level, seenNumIds) {
|
|
2009
|
+
if (seenNumIds[numId]) {
|
|
2010
|
+
return null;
|
|
2011
|
+
}
|
|
2012
|
+
seenNumIds[numId] = true;
|
|
2013
|
+
|
|
2005
2014
|
var num = nums[numId];
|
|
2006
|
-
if (num) {
|
|
2007
|
-
var abstractNum = abstractNums[num.abstractNumId];
|
|
2008
|
-
if (!abstractNum) {
|
|
2009
|
-
return null;
|
|
2010
|
-
} else if (abstractNum.numStyleLink == null) {
|
|
2011
|
-
return abstractNums[num.abstractNumId].levels[level];
|
|
2012
|
-
} else {
|
|
2013
|
-
var style = styles.findNumberingStyleById(abstractNum.numStyleLink);
|
|
2014
|
-
return findLevel(style.numId, level);
|
|
2015
|
-
}
|
|
2016
|
-
} else {
|
|
2015
|
+
if (!num) {
|
|
2017
2016
|
return null;
|
|
2018
2017
|
}
|
|
2018
|
+
|
|
2019
|
+
var abstractNum = abstractNums[num.abstractNumId];
|
|
2020
|
+
if (!abstractNum) {
|
|
2021
|
+
return null;
|
|
2022
|
+
} else if (abstractNum.numStyleLink == null) {
|
|
2023
|
+
return abstractNums[num.abstractNumId].levels[level];
|
|
2024
|
+
} else {
|
|
2025
|
+
var style = styles.findNumberingStyleById(abstractNum.numStyleLink);
|
|
2026
|
+
return findLevelWithSeenNumIds(style.numId, level, seenNumIds);
|
|
2027
|
+
}
|
|
2019
2028
|
}
|
|
2020
2029
|
|
|
2021
2030
|
function findLevelByParagraphStyleId(styleId) {
|
|
@@ -2626,6 +2635,12 @@ exports.dataUri = imgElement(function(element) {
|
|
|
2626
2635
|
});
|
|
2627
2636
|
});
|
|
2628
2637
|
|
|
2638
|
+
function imageFilenameExtension(image) {
|
|
2639
|
+
return image.contentType.split(/\/|\\/)[1];
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2642
|
+
exports.imageFilenameExtension = imageFilenameExtension;
|
|
2643
|
+
|
|
2629
2644
|
},{"./html":18,"./promises":23,"underscore":102}],21:[function(require,module,exports){
|
|
2630
2645
|
(function (Buffer){
|
|
2631
2646
|
var _ = require("underscore");
|