ooxml.js 2.4.0 → 2.5.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/README.md +40 -2
- package/dist/codec.cjs +28 -0
- package/dist/codec.d.cts +72 -0
- package/dist/codec.d.ts +72 -0
- package/dist/codec.js +24 -0
- package/dist/compact.cjs +162 -0
- package/dist/compact.d.cts +70 -0
- package/dist/compact.d.ts +70 -0
- package/dist/compact.js +152 -0
- package/dist/image/sniff.cjs +28 -0
- package/dist/image/sniff.d.cts +5 -0
- package/dist/image/sniff.d.ts +5 -0
- package/dist/image/sniff.js +27 -0
- package/dist/index.cjs +83 -3025
- package/dist/index.d.cts +22 -527
- package/dist/index.d.ts +22 -527
- package/dist/index.js +22 -2964
- package/dist/model/node.cjs +67 -0
- package/dist/model/node.d.cts +2 -0
- package/dist/model/node.d.ts +2 -0
- package/dist/model/node.js +58 -0
- package/dist/model/package.cjs +19 -0
- package/dist/model/package.d.cts +2 -0
- package/dist/model/package.d.ts +2 -0
- package/dist/model/package.js +15 -0
- package/dist/node-CkBWRjNR.d.cts +83 -0
- package/dist/node-CkBWRjNR.d.ts +83 -0
- package/dist/package-BUojjTXf.d.ts +114 -0
- package/dist/package-L24lkba-.d.cts +114 -0
- package/dist/package-io/read.cjs +33 -0
- package/dist/package-io/read.d.cts +5 -0
- package/dist/package-io/read.d.ts +5 -0
- package/dist/package-io/read.js +32 -0
- package/dist/package-io/write.cjs +18 -0
- package/dist/package-io/write.d.cts +5 -0
- package/dist/package-io/write.d.ts +5 -0
- package/dist/package-io/write.js +17 -0
- package/dist/typed/docx/read.cjs +332 -0
- package/dist/typed/docx/read.d.cts +52 -0
- package/dist/typed/docx/read.d.ts +52 -0
- package/dist/typed/docx/read.js +328 -0
- package/dist/typed/docx/styles.cjs +148 -0
- package/dist/typed/docx/styles.d.cts +29 -0
- package/dist/typed/docx/styles.d.ts +29 -0
- package/dist/typed/docx/styles.js +146 -0
- package/dist/typed/pptx/inherit.cjs +96 -0
- package/dist/typed/pptx/inherit.d.cts +30 -0
- package/dist/typed/pptx/inherit.d.ts +30 -0
- package/dist/typed/pptx/inherit.js +90 -0
- package/dist/typed/pptx/read.cjs +364 -0
- package/dist/typed/pptx/read.d.cts +44 -0
- package/dist/typed/pptx/read.d.ts +44 -0
- package/dist/typed/pptx/read.js +362 -0
- package/dist/typed/shared/color.cjs +85 -0
- package/dist/typed/shared/color.d.cts +9 -0
- package/dist/typed/shared/color.d.ts +9 -0
- package/dist/typed/shared/color.js +84 -0
- package/dist/typed/shared/drawingml.cjs +191 -0
- package/dist/typed/shared/drawingml.d.cts +40 -0
- package/dist/typed/shared/drawingml.d.ts +40 -0
- package/dist/typed/shared/drawingml.js +180 -0
- package/dist/typed/shared/metadata.cjs +44 -0
- package/dist/typed/shared/metadata.d.cts +16 -0
- package/dist/typed/shared/metadata.d.ts +16 -0
- package/dist/typed/shared/metadata.js +42 -0
- package/dist/typed/shared/source-path.cjs +18 -0
- package/dist/typed/shared/source-path.d.cts +5 -0
- package/dist/typed/shared/source-path.d.ts +5 -0
- package/dist/typed/shared/source-path.js +17 -0
- package/dist/typed/shared/units.cjs +55 -0
- package/dist/typed/shared/units.d.cts +20 -0
- package/dist/typed/shared/units.d.ts +20 -0
- package/dist/typed/shared/units.js +38 -0
- package/dist/typed/util.cjs +85 -0
- package/dist/typed/util.d.cts +18 -0
- package/dist/typed/util.d.ts +18 -0
- package/dist/typed/util.js +77 -0
- package/dist/typed/xlsx/a1.cjs +64 -0
- package/dist/typed/xlsx/a1.d.cts +19 -0
- package/dist/typed/xlsx/a1.d.ts +19 -0
- package/dist/typed/xlsx/a1.js +58 -0
- package/dist/typed/xlsx/build.cjs +456 -0
- package/dist/typed/xlsx/build.d.cts +6 -0
- package/dist/typed/xlsx/build.d.ts +6 -0
- package/dist/typed/xlsx/build.js +455 -0
- package/dist/typed/xlsx/content.cjs +257 -0
- package/dist/typed/xlsx/content.d.cts +6 -0
- package/dist/typed/xlsx/content.d.ts +6 -0
- package/dist/typed/xlsx/content.js +256 -0
- package/dist/typed/xlsx/defined-names.cjs +90 -0
- package/dist/typed/xlsx/defined-names.d.cts +20 -0
- package/dist/typed/xlsx/defined-names.d.ts +20 -0
- package/dist/typed/xlsx/defined-names.js +83 -0
- package/dist/typed/xlsx/print-settings.cjs +116 -0
- package/dist/typed/xlsx/print-settings.d.cts +8 -0
- package/dist/typed/xlsx/print-settings.d.ts +8 -0
- package/dist/typed/xlsx/print-settings.js +114 -0
- package/dist/typed/xlsx/shared-strings.cjs +35 -0
- package/dist/typed/xlsx/shared-strings.d.cts +12 -0
- package/dist/typed/xlsx/shared-strings.d.ts +12 -0
- package/dist/typed/xlsx/shared-strings.js +33 -0
- package/dist/typed/xlsx/units.cjs +21 -0
- package/dist/typed/xlsx/units.d.cts +8 -0
- package/dist/typed/xlsx/units.d.ts +8 -0
- package/dist/typed/xlsx/units.js +16 -0
- package/dist/typed/xlsx/util.cjs +53 -0
- package/dist/typed/xlsx/util.d.cts +10 -0
- package/dist/typed/xlsx/util.d.ts +10 -0
- package/dist/typed/xlsx/util.js +47 -0
- package/dist/typed/xlsx.cjs +140 -0
- package/dist/typed/xlsx.d.cts +43 -0
- package/dist/typed/xlsx.d.ts +43 -0
- package/dist/typed/xlsx.js +135 -0
- package/dist/util/base64.cjs +48 -0
- package/dist/util/base64.d.cts +5 -0
- package/dist/util/base64.d.ts +5 -0
- package/dist/util/base64.js +46 -0
- package/dist/xml/build.cjs +46 -0
- package/dist/xml/build.d.cts +5 -0
- package/dist/xml/build.d.ts +5 -0
- package/dist/xml/build.js +46 -0
- package/dist/xml/entities.cjs +7 -0
- package/dist/xml/entities.d.cts +4 -0
- package/dist/xml/entities.d.ts +4 -0
- package/dist/xml/entities.js +6 -0
- package/dist/xml/fragment.cjs +22 -0
- package/dist/xml/fragment.d.cts +6 -0
- package/dist/xml/fragment.d.ts +6 -0
- package/dist/xml/fragment.js +20 -0
- package/dist/xml/parse.cjs +88 -0
- package/dist/xml/parse.d.cts +5 -0
- package/dist/xml/parse.d.ts +5 -0
- package/dist/xml/parse.js +88 -0
- package/dist/zip.cjs +12 -0
- package/dist/zip.d.cts +5 -0
- package/dist/zip.d.ts +5 -0
- package/dist/zip.js +10 -0
- package/package.json +9 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/xml/parse.ts
|
|
3
|
+
const PARSER = new (require("fast-xml-parser")).XMLParser({
|
|
4
|
+
preserveOrder: true,
|
|
5
|
+
attributeNamePrefix: "@_",
|
|
6
|
+
ignoreAttributes: false,
|
|
7
|
+
textNodeName: "#text",
|
|
8
|
+
cdataPropName: "__cdata",
|
|
9
|
+
commentPropName: "__comment",
|
|
10
|
+
processEntities: false,
|
|
11
|
+
parseTagValue: false,
|
|
12
|
+
trimValues: false
|
|
13
|
+
});
|
|
14
|
+
function parseXml(xml) {
|
|
15
|
+
return parseNodes(PARSER.parse(xml));
|
|
16
|
+
}
|
|
17
|
+
function isRecord(value) {
|
|
18
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
19
|
+
}
|
|
20
|
+
function isUnknownArray(value) {
|
|
21
|
+
return Array.isArray(value);
|
|
22
|
+
}
|
|
23
|
+
function asString(value) {
|
|
24
|
+
if (typeof value !== "string") throw new Error(`expected string while parsing XML, got ${typeof value}`);
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
function parseNodes(raw) {
|
|
28
|
+
if (!isUnknownArray(raw)) throw new Error("fast-xml-parser output was not an ordered array");
|
|
29
|
+
return raw.map(parseNode);
|
|
30
|
+
}
|
|
31
|
+
function parseNode(raw) {
|
|
32
|
+
if (!isRecord(raw)) throw new Error("fast-xml-parser node was not an object");
|
|
33
|
+
let tagKey;
|
|
34
|
+
for (const key of Object.keys(raw)) if (key !== ":@") {
|
|
35
|
+
if (tagKey !== void 0) throw new Error("XML node had multiple tag keys");
|
|
36
|
+
tagKey = key;
|
|
37
|
+
}
|
|
38
|
+
if (tagKey === void 0) throw new Error("XML node had no tag key");
|
|
39
|
+
const attributes = parseAttributes(raw[":@"]);
|
|
40
|
+
if (tagKey === "#text") return {
|
|
41
|
+
type: "text",
|
|
42
|
+
value: asString(raw["#text"])
|
|
43
|
+
};
|
|
44
|
+
if (tagKey === "__comment") return {
|
|
45
|
+
type: "comment",
|
|
46
|
+
value: scalarText(raw.__comment)
|
|
47
|
+
};
|
|
48
|
+
if (tagKey === "__cdata") return {
|
|
49
|
+
type: "cdata",
|
|
50
|
+
value: scalarText(raw.__cdata)
|
|
51
|
+
};
|
|
52
|
+
if (tagKey === "?xml") return {
|
|
53
|
+
type: "declaration",
|
|
54
|
+
attributes
|
|
55
|
+
};
|
|
56
|
+
if (tagKey.startsWith("?")) return {
|
|
57
|
+
type: "pi",
|
|
58
|
+
target: tagKey.slice(1),
|
|
59
|
+
content: scalarText(raw[tagKey])
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
type: "element",
|
|
63
|
+
tag: tagKey,
|
|
64
|
+
attributes,
|
|
65
|
+
children: parseNodes(raw[tagKey])
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function parseAttributes(raw) {
|
|
69
|
+
if (raw === void 0) return [];
|
|
70
|
+
if (!isRecord(raw)) throw new Error("XML attributes were not an object");
|
|
71
|
+
const attrs = [];
|
|
72
|
+
for (const key of Object.keys(raw)) {
|
|
73
|
+
if (!key.startsWith("@_")) throw new Error(`unexpected attribute key without @_ prefix: ${key}`);
|
|
74
|
+
attrs.push({
|
|
75
|
+
name: key.slice(2),
|
|
76
|
+
value: asString(raw[key])
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return attrs;
|
|
80
|
+
}
|
|
81
|
+
function scalarText(raw) {
|
|
82
|
+
if (!isUnknownArray(raw) || raw.length === 0) throw new Error("expected a scalar-text wrapper array");
|
|
83
|
+
const first = raw[0];
|
|
84
|
+
if (!isRecord(first)) throw new Error("scalar-text wrapper was not an object");
|
|
85
|
+
return asString(first["#text"]);
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
exports.parseXml = parseXml;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { XMLParser } from "fast-xml-parser";
|
|
2
|
+
//#region src/xml/parse.ts
|
|
3
|
+
const PARSER = new XMLParser({
|
|
4
|
+
preserveOrder: true,
|
|
5
|
+
attributeNamePrefix: "@_",
|
|
6
|
+
ignoreAttributes: false,
|
|
7
|
+
textNodeName: "#text",
|
|
8
|
+
cdataPropName: "__cdata",
|
|
9
|
+
commentPropName: "__comment",
|
|
10
|
+
processEntities: false,
|
|
11
|
+
parseTagValue: false,
|
|
12
|
+
trimValues: false
|
|
13
|
+
});
|
|
14
|
+
function parseXml(xml) {
|
|
15
|
+
return parseNodes(PARSER.parse(xml));
|
|
16
|
+
}
|
|
17
|
+
function isRecord(value) {
|
|
18
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
19
|
+
}
|
|
20
|
+
function isUnknownArray(value) {
|
|
21
|
+
return Array.isArray(value);
|
|
22
|
+
}
|
|
23
|
+
function asString(value) {
|
|
24
|
+
if (typeof value !== "string") throw new Error(`expected string while parsing XML, got ${typeof value}`);
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
function parseNodes(raw) {
|
|
28
|
+
if (!isUnknownArray(raw)) throw new Error("fast-xml-parser output was not an ordered array");
|
|
29
|
+
return raw.map(parseNode);
|
|
30
|
+
}
|
|
31
|
+
function parseNode(raw) {
|
|
32
|
+
if (!isRecord(raw)) throw new Error("fast-xml-parser node was not an object");
|
|
33
|
+
let tagKey;
|
|
34
|
+
for (const key of Object.keys(raw)) if (key !== ":@") {
|
|
35
|
+
if (tagKey !== void 0) throw new Error("XML node had multiple tag keys");
|
|
36
|
+
tagKey = key;
|
|
37
|
+
}
|
|
38
|
+
if (tagKey === void 0) throw new Error("XML node had no tag key");
|
|
39
|
+
const attributes = parseAttributes(raw[":@"]);
|
|
40
|
+
if (tagKey === "#text") return {
|
|
41
|
+
type: "text",
|
|
42
|
+
value: asString(raw["#text"])
|
|
43
|
+
};
|
|
44
|
+
if (tagKey === "__comment") return {
|
|
45
|
+
type: "comment",
|
|
46
|
+
value: scalarText(raw.__comment)
|
|
47
|
+
};
|
|
48
|
+
if (tagKey === "__cdata") return {
|
|
49
|
+
type: "cdata",
|
|
50
|
+
value: scalarText(raw.__cdata)
|
|
51
|
+
};
|
|
52
|
+
if (tagKey === "?xml") return {
|
|
53
|
+
type: "declaration",
|
|
54
|
+
attributes
|
|
55
|
+
};
|
|
56
|
+
if (tagKey.startsWith("?")) return {
|
|
57
|
+
type: "pi",
|
|
58
|
+
target: tagKey.slice(1),
|
|
59
|
+
content: scalarText(raw[tagKey])
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
type: "element",
|
|
63
|
+
tag: tagKey,
|
|
64
|
+
attributes,
|
|
65
|
+
children: parseNodes(raw[tagKey])
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function parseAttributes(raw) {
|
|
69
|
+
if (raw === void 0) return [];
|
|
70
|
+
if (!isRecord(raw)) throw new Error("XML attributes were not an object");
|
|
71
|
+
const attrs = [];
|
|
72
|
+
for (const key of Object.keys(raw)) {
|
|
73
|
+
if (!key.startsWith("@_")) throw new Error(`unexpected attribute key without @_ prefix: ${key}`);
|
|
74
|
+
attrs.push({
|
|
75
|
+
name: key.slice(2),
|
|
76
|
+
value: asString(raw[key])
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return attrs;
|
|
80
|
+
}
|
|
81
|
+
function scalarText(raw) {
|
|
82
|
+
if (!isUnknownArray(raw) || raw.length === 0) throw new Error("expected a scalar-text wrapper array");
|
|
83
|
+
const first = raw[0];
|
|
84
|
+
if (!isRecord(first)) throw new Error("scalar-text wrapper was not an object");
|
|
85
|
+
return asString(first["#text"]);
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
export { parseXml };
|
package/dist/zip.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let fflate = require("fflate");
|
|
3
|
+
//#region src/zip.ts
|
|
4
|
+
function unzipPackage(bytes) {
|
|
5
|
+
return (0, fflate.unzipSync)(bytes);
|
|
6
|
+
}
|
|
7
|
+
function zipPackage(parts) {
|
|
8
|
+
return (0, fflate.zipSync)(parts);
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.unzipPackage = unzipPackage;
|
|
12
|
+
exports.zipPackage = zipPackage;
|
package/dist/zip.d.cts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
//#region src/zip.d.ts
|
|
2
|
+
declare function unzipPackage(bytes: Uint8Array<ArrayBuffer>): Record<string, Uint8Array<ArrayBuffer>>;
|
|
3
|
+
declare function zipPackage(parts: Record<string, Uint8Array<ArrayBuffer>>): Uint8Array<ArrayBuffer>;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { unzipPackage, zipPackage };
|
package/dist/zip.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
//#region src/zip.d.ts
|
|
2
|
+
declare function unzipPackage(bytes: Uint8Array<ArrayBuffer>): Record<string, Uint8Array<ArrayBuffer>>;
|
|
3
|
+
declare function zipPackage(parts: Record<string, Uint8Array<ArrayBuffer>>): Uint8Array<ArrayBuffer>;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { unzipPackage, zipPackage };
|
package/dist/zip.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ooxml.js",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Type-safe, lossless round-trip conversion between OOXML packages (docx, pptx, xlsx) and JSON, built on Zod 4 codecs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
},
|
|
20
20
|
"import": "./dist/index.js",
|
|
21
21
|
"require": "./dist/index.cjs"
|
|
22
|
+
},
|
|
23
|
+
"./*": {
|
|
24
|
+
"types": {
|
|
25
|
+
"import": "./dist/*.d.ts",
|
|
26
|
+
"require": "./dist/*.d.cts"
|
|
27
|
+
},
|
|
28
|
+
"import": "./dist/*.js",
|
|
29
|
+
"require": "./dist/*.cjs"
|
|
22
30
|
}
|
|
23
31
|
},
|
|
24
32
|
"main": "./dist/index.cjs",
|