docgen-utils 1.0.18 → 1.0.20

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.
Files changed (74) hide show
  1. package/README.md +63 -18
  2. package/dist/bundle.js +3466 -2528
  3. package/dist/bundle.min.js +242 -252
  4. package/dist/cli.js +3644 -2544
  5. package/dist/packages/cli/commands/export-docs.js +1 -1
  6. package/dist/packages/cli/commands/export-docs.js.map +1 -1
  7. package/dist/packages/cli/commands/export-slides.d.ts.map +1 -1
  8. package/dist/packages/cli/commands/export-slides.js +11 -7
  9. package/dist/packages/cli/commands/export-slides.js.map +1 -1
  10. package/dist/packages/cli/index.js.map +1 -1
  11. package/dist/packages/docs/common.d.ts +1 -0
  12. package/dist/packages/docs/common.d.ts.map +1 -1
  13. package/dist/packages/docs/convert.d.ts.map +1 -1
  14. package/dist/packages/docs/convert.js +6 -15
  15. package/dist/packages/docs/convert.js.map +1 -1
  16. package/dist/packages/docs/import-docx.d.ts.map +1 -1
  17. package/dist/packages/docs/import-docx.js +168 -82
  18. package/dist/packages/docs/import-docx.js.map +1 -1
  19. package/dist/packages/docs/parse-colors.d.ts +0 -5
  20. package/dist/packages/docs/parse-colors.d.ts.map +1 -1
  21. package/dist/packages/docs/parse-colors.js +2 -2
  22. package/dist/packages/docs/parse-colors.js.map +1 -1
  23. package/dist/packages/docs/parse-css.d.ts +0 -9
  24. package/dist/packages/docs/parse-css.d.ts.map +1 -1
  25. package/dist/packages/docs/parse-css.js +4 -6
  26. package/dist/packages/docs/parse-css.js.map +1 -1
  27. package/dist/packages/docs/parse-helpers.d.ts +0 -1
  28. package/dist/packages/docs/parse-helpers.d.ts.map +1 -1
  29. package/dist/packages/docs/parse-helpers.js +1 -1
  30. package/dist/packages/docs/parse-helpers.js.map +1 -1
  31. package/dist/packages/docs/parse-inline.d.ts +0 -13
  32. package/dist/packages/docs/parse-inline.d.ts.map +1 -1
  33. package/dist/packages/docs/parse-inline.js +7 -7
  34. package/dist/packages/docs/parse-inline.js.map +1 -1
  35. package/dist/packages/docs/parse-layout.d.ts.map +1 -1
  36. package/dist/packages/docs/parse-layout.js +1 -14
  37. package/dist/packages/docs/parse-layout.js.map +1 -1
  38. package/dist/packages/docs/parse-special.js +1 -1
  39. package/dist/packages/docs/parse-special.js.map +1 -1
  40. package/dist/packages/docs/parse.d.ts.map +1 -1
  41. package/dist/packages/docs/parse.js +76 -30
  42. package/dist/packages/docs/parse.js.map +1 -1
  43. package/dist/packages/shared/fetch-with-proxy.d.ts +13 -8
  44. package/dist/packages/shared/fetch-with-proxy.d.ts.map +1 -1
  45. package/dist/packages/shared/fetch-with-proxy.js +189 -22
  46. package/dist/packages/shared/fetch-with-proxy.js.map +1 -1
  47. package/dist/packages/shared/zip-guard.d.ts +37 -0
  48. package/dist/packages/shared/zip-guard.d.ts.map +1 -0
  49. package/dist/packages/shared/zip-guard.js +101 -0
  50. package/dist/packages/shared/zip-guard.js.map +1 -0
  51. package/dist/packages/slides/convert.d.ts +1 -3
  52. package/dist/packages/slides/convert.d.ts.map +1 -1
  53. package/dist/packages/slides/convert.js +8 -74
  54. package/dist/packages/slides/convert.js.map +1 -1
  55. package/dist/packages/slides/createPresentation.d.ts +1 -1
  56. package/dist/packages/slides/createPresentation.d.ts.map +1 -1
  57. package/dist/packages/slides/createPresentation.js +1 -10
  58. package/dist/packages/slides/createPresentation.js.map +1 -1
  59. package/dist/packages/slides/import-pptx.d.ts.map +1 -1
  60. package/dist/packages/slides/import-pptx.js +5 -7
  61. package/dist/packages/slides/import-pptx.js.map +1 -1
  62. package/dist/packages/slides/parse.d.ts +0 -22
  63. package/dist/packages/slides/parse.d.ts.map +1 -1
  64. package/dist/packages/slides/parse.js +38 -42
  65. package/dist/packages/slides/parse.js.map +1 -1
  66. package/dist/packages/slides/transform.d.ts.map +1 -1
  67. package/dist/packages/slides/transform.js +1 -5
  68. package/dist/packages/slides/transform.js.map +1 -1
  69. package/dist/packages/slides/vendor/VENDORING.md +2 -2
  70. package/package.json +16 -10
  71. package/dist/packages/cli/commands/common.d.ts +0 -2
  72. package/dist/packages/cli/commands/common.d.ts.map +0 -1
  73. package/dist/packages/cli/commands/common.js +0 -22
  74. package/dist/packages/cli/commands/common.js.map +0 -1
@@ -1,33 +1,200 @@
1
+ import * as http from "node:http";
2
+ import * as tls from "node:tls";
3
+ import { URL } from "node:url";
4
+ const userAgent = "Mozilla/5.0 (compatible; Copilot/1.0)";
1
5
  /**
2
- * HTTP fetch utility with proxy support for Node.js environments.
3
- * Uses undici ProxyAgent when HTTPS_PROXY or HTTP_PROXY environment variables are set.
6
+ * Create a TCP tunnel through an HTTP proxy using the CONNECT method.
4
7
  */
5
- const userAgent = 'Mozilla/5.0 (compatible; Copilot/1.0)';
8
+ function connectThroughProxy(proxy, targetHost, targetPort) {
9
+ return new Promise((resolve, reject) => {
10
+ const req = http.request({
11
+ host: proxy.hostname,
12
+ port: Number(proxy.port),
13
+ method: "CONNECT",
14
+ path: `${targetHost}:${targetPort}`,
15
+ });
16
+ req.on("connect", (res, socket) => {
17
+ if (res.statusCode === 200) {
18
+ resolve(socket);
19
+ }
20
+ else {
21
+ socket.destroy();
22
+ reject(new Error(`Proxy CONNECT failed with status ${res.statusCode}`));
23
+ }
24
+ });
25
+ req.on("error", reject);
26
+ req.end();
27
+ });
28
+ }
29
+ /**
30
+ * Upgrade a raw TCP socket to TLS.
31
+ * Uses the documented tls.connect({ socket, servername }) API.
32
+ * @see https://nodejs.org/api/tls.html#tlsconnectoptions-callback
33
+ */
34
+ function upgradeTls(rawSocket, servername) {
35
+ return new Promise((resolve, reject) => {
36
+ const tlsSocket = tls.connect({ socket: rawSocket, servername }, () => {
37
+ resolve(tlsSocket);
38
+ });
39
+ tlsSocket.on("error", reject);
40
+ });
41
+ }
6
42
  /**
7
- * Fetch a URL with optional proxy support based on environment variables.
8
- * Checks HTTPS_PROXY, HTTP_PROXY, https_proxy, and http_proxy.
43
+ * Parse a raw HTTP/1.1 response from a TLS socket stream.
44
+ * Handles both Content-Length and chunked Transfer-Encoding.
45
+ */
46
+ function parseHttpResponse(tlsSocket) {
47
+ return new Promise((resolve, reject) => {
48
+ let headerDone = false;
49
+ let raw = Buffer.alloc(0);
50
+ let statusCode = 0;
51
+ let statusText = "";
52
+ const headers = {};
53
+ const bodyChunks = [];
54
+ let contentLength = -1;
55
+ let isChunked = false;
56
+ let bodyBytesRead = 0;
57
+ let headerEndIndex = -1;
58
+ function tryParseHeaders() {
59
+ const str = raw.toString("utf-8");
60
+ const idx = str.indexOf("\r\n\r\n");
61
+ if (idx === -1)
62
+ return false;
63
+ headerEndIndex = Buffer.byteLength(str.slice(0, idx + 4), "utf-8");
64
+ const headerSection = str.slice(0, idx);
65
+ const lines = headerSection.split("\r\n");
66
+ // Parse status line: HTTP/1.1 200 OK
67
+ const statusLine = lines[0];
68
+ const match = statusLine.match(/^HTTP\/\d\.\d\s+(\d+)\s*(.*)/);
69
+ if (match) {
70
+ statusCode = parseInt(match[1], 10);
71
+ statusText = match[2];
72
+ }
73
+ // Parse headers
74
+ for (let i = 1; i < lines.length; i++) {
75
+ const colonIdx = lines[i].indexOf(":");
76
+ if (colonIdx > 0) {
77
+ const key = lines[i].slice(0, colonIdx).trim().toLowerCase();
78
+ const val = lines[i].slice(colonIdx + 1).trim();
79
+ headers[key] = val;
80
+ }
81
+ }
82
+ if (headers["transfer-encoding"]?.includes("chunked")) {
83
+ isChunked = true;
84
+ }
85
+ else if (headers["content-length"]) {
86
+ contentLength = parseInt(headers["content-length"], 10);
87
+ }
88
+ // Push any leftover bytes after headers as body
89
+ const bodyStart = raw.slice(headerEndIndex);
90
+ if (bodyStart.length > 0) {
91
+ bodyChunks.push(bodyStart);
92
+ bodyBytesRead += bodyStart.length;
93
+ }
94
+ return true;
95
+ }
96
+ function decodeChunkedBody(buf) {
97
+ const parts = [];
98
+ let offset = 0;
99
+ while (offset < buf.length) {
100
+ const lineEnd = buf.indexOf(Buffer.from("\r\n"), offset);
101
+ if (lineEnd === -1)
102
+ break;
103
+ const sizeHex = buf.slice(offset, lineEnd).toString("utf-8").trim();
104
+ const chunkSize = parseInt(sizeHex, 16);
105
+ if (chunkSize === 0)
106
+ break;
107
+ const chunkStart = lineEnd + 2;
108
+ const chunkEnd = chunkStart + chunkSize;
109
+ if (chunkEnd > buf.length)
110
+ break;
111
+ parts.push(buf.slice(chunkStart, chunkEnd));
112
+ offset = chunkEnd + 2; // skip trailing \r\n
113
+ }
114
+ return Buffer.concat(parts);
115
+ }
116
+ tlsSocket.on("data", (chunk) => {
117
+ if (!headerDone) {
118
+ raw = Buffer.concat([raw, chunk]);
119
+ if (tryParseHeaders()) {
120
+ headerDone = true;
121
+ // Check if body is already complete
122
+ if (!isChunked &&
123
+ contentLength >= 0 &&
124
+ bodyBytesRead >= contentLength) {
125
+ tlsSocket.destroy();
126
+ }
127
+ }
128
+ }
129
+ else {
130
+ bodyChunks.push(chunk);
131
+ bodyBytesRead += chunk.length;
132
+ if (!isChunked &&
133
+ contentLength >= 0 &&
134
+ bodyBytesRead >= contentLength) {
135
+ tlsSocket.destroy();
136
+ }
137
+ }
138
+ });
139
+ tlsSocket.on("end", finish);
140
+ tlsSocket.on("close", finish);
141
+ let finished = false;
142
+ function finish() {
143
+ if (finished)
144
+ return;
145
+ finished = true;
146
+ let body = Buffer.concat(bodyChunks);
147
+ if (isChunked) {
148
+ body = decodeChunkedBody(body);
149
+ }
150
+ else if (contentLength >= 0) {
151
+ body = body.subarray(0, contentLength);
152
+ }
153
+ const responseHeaders = new Headers(headers);
154
+ resolve({
155
+ ok: statusCode >= 200 && statusCode < 300,
156
+ status: statusCode,
157
+ statusText,
158
+ headers: responseHeaders,
159
+ arrayBuffer: () => Promise.resolve(body.buffer.slice(body.byteOffset, body.byteOffset + body.byteLength)),
160
+ text: () => Promise.resolve(body.toString("utf-8")),
161
+ });
162
+ }
163
+ tlsSocket.on("error", (err) => {
164
+ if (!finished)
165
+ reject(err);
166
+ });
167
+ });
168
+ }
169
+ /**
170
+ * Fetch a URL with optional proxy support.
171
+ * Uses only documented Node.js APIs: http.CONNECT, tls.connect(), raw HTTP write.
9
172
  *
10
173
  * @param url - The URL to fetch
11
- * @returns A Promise resolving to a Response object
174
+ * @returns A Promise resolving to a ProxyResponse or native Response
12
175
  */
13
176
  export async function fetchWithProxy(url) {
14
- const proxyUrl = process.env.HTTPS_PROXY || process.env.HTTP_PROXY ||
15
- process.env.https_proxy || process.env.http_proxy;
177
+ const proxyUrl = process.env.HTTPS_PROXY ||
178
+ process.env.HTTP_PROXY ||
179
+ process.env.https_proxy ||
180
+ process.env.http_proxy;
16
181
  if (proxyUrl) {
17
- const undici = await import('undici');
18
- const agent = new undici.ProxyAgent(proxyUrl);
19
- const response = await undici.fetch(url, {
20
- dispatcher: agent,
21
- headers: {
22
- 'User-Agent': userAgent,
23
- },
24
- });
25
- return response;
182
+ const proxy = new URL(proxyUrl);
183
+ const target = new URL(url);
184
+ // 1. Tunnel through proxy
185
+ const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
186
+ // 2. TLS handshake (documented: tls.connect with socket option)
187
+ const tlsSocket = await upgradeTls(rawSocket, target.hostname);
188
+ // 3. Write raw HTTP/1.1 request (per Node.js CONNECT docs pattern)
189
+ const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r\n` +
190
+ `Host: ${target.hostname}\r\n` +
191
+ `User-Agent: ${userAgent}\r\n` +
192
+ `Connection: close\r\n` +
193
+ `\r\n`;
194
+ tlsSocket.write(requestLine);
195
+ // 4. Parse raw HTTP response
196
+ return parseHttpResponse(tlsSocket);
26
197
  }
27
- return fetch(url, {
28
- headers: {
29
- 'User-Agent': userAgent,
30
- },
31
- });
198
+ return fetch(url, { headers: { "User-Agent": userAgent } });
32
199
  }
33
200
  //# sourceMappingURL=fetch-with-proxy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,SAAS,GAAG,uCAAuC,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;QACjD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEnE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YACvC,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE;gBACP,YAAY,EAAE,SAAS;aACxB;SACF,CAAC,CAAC;QACH,OAAO,QAA+B,CAAC;IACzC,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,EAAE;QAChB,OAAO,EAAE;YACP,YAAY,EAAE,SAAS;SACxB;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Zip bomb protection for JSZip-based document processing.
3
+ *
4
+ * PPTX, DOCX (and XLSX) files are ZIP archives — this is how the Office Open
5
+ * XML format works. When docgen calls JSZip.loadAsync() to read a PPTX or
6
+ * DOCX, it decompresses the contents into memory. A "zip bomb" exploits this:
7
+ * a malicious file that is tiny on disk (passes upload size checks) but
8
+ * contains entries crafted from highly repetitive data that inflate to an
9
+ * enormous size in memory, crashing the process.
10
+ *
11
+ * The signature of a zip bomb is an extreme compression ratio
12
+ * (uncompressed / compressed). Legitimate Office documents compress 2–10:1;
13
+ * a bomb is typically 1,000:1 or more.
14
+ *
15
+ * The ZIP format stores each entry's uncompressed size in the central-directory
16
+ * header. JSZip reads this metadata during loadAsync WITHOUT decompressing any
17
+ * data. This module uses that metadata to reject suspicious archives before any
18
+ * inflation occurs.
19
+ */
20
+ import JSZip from "jszip";
21
+ /**
22
+ * Load a ZIP archive from an ArrayBuffer with zip bomb protections.
23
+ *
24
+ * Checks (in order):
25
+ * 1. Compression ratio per entry — primary zip bomb signal
26
+ * 2. Overall compression ratio — catches distributed bombs
27
+ * 3. Entry count — zip-of-zips / resource limit
28
+ * 4. Total uncompressed size — memory ceiling
29
+ *
30
+ * Throws a descriptive Error if any limit is exceeded so callers can
31
+ * surface a safe message (e.g. HTTP 400) without crashing.
32
+ *
33
+ * @param arrayBuffer - Raw bytes of the ZIP-based file (PPTX, DOCX, …).
34
+ * @returns - Parsed JSZip instance ready for file access.
35
+ */
36
+ export declare function loadZipSafely(arrayBuffer: ArrayBuffer): Promise<JSZip>;
37
+ //# sourceMappingURL=zip-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-guard.d.ts","sourceRoot":"","sources":["../../../packages/shared/zip-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAuC1B;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CA2D5E"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Zip bomb protection for JSZip-based document processing.
3
+ *
4
+ * PPTX, DOCX (and XLSX) files are ZIP archives — this is how the Office Open
5
+ * XML format works. When docgen calls JSZip.loadAsync() to read a PPTX or
6
+ * DOCX, it decompresses the contents into memory. A "zip bomb" exploits this:
7
+ * a malicious file that is tiny on disk (passes upload size checks) but
8
+ * contains entries crafted from highly repetitive data that inflate to an
9
+ * enormous size in memory, crashing the process.
10
+ *
11
+ * The signature of a zip bomb is an extreme compression ratio
12
+ * (uncompressed / compressed). Legitimate Office documents compress 2–10:1;
13
+ * a bomb is typically 1,000:1 or more.
14
+ *
15
+ * The ZIP format stores each entry's uncompressed size in the central-directory
16
+ * header. JSZip reads this metadata during loadAsync WITHOUT decompressing any
17
+ * data. This module uses that metadata to reject suspicious archives before any
18
+ * inflation occurs.
19
+ */
20
+ import JSZip from "jszip";
21
+ /**
22
+ * Maximum compression ratio (total uncompressed / compressed input size).
23
+ * Legitimate DOCX/PPTX files rarely exceed 10:1; 100:1 is a generous ceiling
24
+ * that still catches all known zip-bomb payloads.
25
+ *
26
+ * This is the primary zip bomb signal — a tiny file that claims to expand
27
+ * to an enormous amount of data.
28
+ */
29
+ const MAX_COMPRESSION_RATIO = 100;
30
+ /**
31
+ * Maximum number of entries (files + directories) inside the archive.
32
+ * Protects against "zip of many files" attacks and limits iteration cost.
33
+ * Real PPTX/DOCX files have fewer than 500 entries in practice.
34
+ */
35
+ const MAX_ZIP_ENTRIES = 1000;
36
+ /**
37
+ * Maximum total uncompressed size across all entries (500 MB).
38
+ * This is a memory-protection ceiling, not a security check per se —
39
+ * the compression ratio check above is what catches actual zip bombs.
40
+ * Upstream callers (e.g. Picasso's FileTransferService) already enforce
41
+ * a compressed-size limit, so we do not duplicate that check here.
42
+ */
43
+ const MAX_TOTAL_UNCOMPRESSED_BYTES = 500 * 1024 * 1024;
44
+ /**
45
+ * Load a ZIP archive from an ArrayBuffer with zip bomb protections.
46
+ *
47
+ * Checks (in order):
48
+ * 1. Compression ratio per entry — primary zip bomb signal
49
+ * 2. Overall compression ratio — catches distributed bombs
50
+ * 3. Entry count — zip-of-zips / resource limit
51
+ * 4. Total uncompressed size — memory ceiling
52
+ *
53
+ * Throws a descriptive Error if any limit is exceeded so callers can
54
+ * surface a safe message (e.g. HTTP 400) without crashing.
55
+ *
56
+ * @param arrayBuffer - Raw bytes of the ZIP-based file (PPTX, DOCX, …).
57
+ * @returns - Parsed JSZip instance ready for file access.
58
+ */
59
+ export async function loadZipSafely(arrayBuffer) {
60
+ const zip = await JSZip.loadAsync(arrayBuffer);
61
+ const entries = Object.values(zip.files);
62
+ // ── 1 & 2. Compression-ratio gates (primary zip bomb detection) ──────────
63
+ // Read uncompressed sizes from ZIP central-directory metadata.
64
+ // JSZip populates this during loadAsync — no decompression required.
65
+ let totalUncompressedBytes = 0;
66
+ for (const file of entries) {
67
+ if (file.dir)
68
+ continue;
69
+ const uncompressedSize = (file._data?.uncompressedSize) ?? 0;
70
+ // Per-entry ratio: catches a single large-ratio entry even if it would
71
+ // not skew the overall ratio (e.g. one bomb entry among many small ones).
72
+ if (arrayBuffer.byteLength > 0) {
73
+ const entryRatio = uncompressedSize / arrayBuffer.byteLength;
74
+ if (entryRatio > MAX_COMPRESSION_RATIO) {
75
+ throw new Error(`Zip bomb detected: entry "${file.name}" has a compression ratio of ` +
76
+ `${entryRatio.toFixed(1)}:1, which exceeds the limit of ${MAX_COMPRESSION_RATIO}:1.`);
77
+ }
78
+ }
79
+ totalUncompressedBytes += uncompressedSize;
80
+ }
81
+ // Overall ratio: catches distributed bombs spread across many entries.
82
+ if (arrayBuffer.byteLength > 0) {
83
+ const overallRatio = totalUncompressedBytes / arrayBuffer.byteLength;
84
+ if (overallRatio > MAX_COMPRESSION_RATIO) {
85
+ throw new Error(`Zip bomb detected: overall compression ratio of ${overallRatio.toFixed(1)}:1 ` +
86
+ `exceeds the limit of ${MAX_COMPRESSION_RATIO}:1.`);
87
+ }
88
+ }
89
+ // ── 3. Entry-count gate ──────────────────────────────────────────────────
90
+ if (entries.length > MAX_ZIP_ENTRIES) {
91
+ throw new Error(`Archive contains too many entries: ${entries.length} exceeds ` +
92
+ `the limit of ${MAX_ZIP_ENTRIES}.`);
93
+ }
94
+ // ── 4. Total uncompressed size gate (memory ceiling) ─────────────────────
95
+ if (totalUncompressedBytes > MAX_TOTAL_UNCOMPRESSED_BYTES) {
96
+ throw new Error(`Archive total uncompressed size of ${totalUncompressedBytes} bytes exceeds ` +
97
+ `the limit of ${MAX_TOTAL_UNCOMPRESSED_BYTES} bytes.`);
98
+ }
99
+ return zip;
100
+ }
101
+ //# sourceMappingURL=zip-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-guard.js","sourceRoot":"","sources":["../../../packages/shared/zip-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC;;;;GAIG;AACH,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,4BAA4B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAavD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAwB;IAC1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEzC,4EAA4E;IAC5E,+DAA+D;IAC/D,qEAAqE;IACrE,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG;YAAE,SAAS;QAEvB,MAAM,gBAAgB,GACpB,CAAE,IAAsC,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAEzE,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,WAAW,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC;YAC7D,IAAI,UAAU,GAAG,qBAAqB,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CACb,6BAA6B,IAAI,CAAC,IAAI,+BAA+B;oBACnE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,qBAAqB,KAAK,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,sBAAsB,IAAI,gBAAgB,CAAC;IAC7C,CAAC;IAED,uEAAuE;IACvE,IAAI,WAAW,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,sBAAsB,GAAG,WAAW,CAAC,UAAU,CAAC;QACrE,IAAI,YAAY,GAAG,qBAAqB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,mDAAmD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;gBAC7E,wBAAwB,qBAAqB,KAAK,CACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO,CAAC,MAAM,WAAW;YAC7D,gBAAgB,eAAe,GAAG,CACrC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,IAAI,sBAAsB,GAAG,4BAA4B,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,sCAAsC,sBAAsB,iBAAiB;YAC3E,gBAAgB,4BAA4B,SAAS,CACxD,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -33,8 +33,6 @@ export declare function applyBackground(background: SlideBackground, slide: Slid
33
33
  * @param slide - The target PptxGenJS Slide instance.
34
34
  * @param pres - The PptxGenJS presentation instance (needed for `pres.ShapeType`).
35
35
  * Typed as `any` because `ShapeType` is a runtime property.
36
- * @param bgColor - Optional background color (hex) for blending transparent gradients.
37
- * Used for LibreOffice compatibility since it doesn't support gradient alpha.
38
36
  */
39
- export declare function addElementsToSlide(elements: SlideElement[], slide: Slide, pres: any, bgColor?: string): Promise<void>;
37
+ export declare function addElementsToSlide(elements: SlideElement[], slide: Slide, pres: any): Promise<void>;
40
38
  //# sourceMappingURL=convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,KAAK,EAKN,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEb,MAAM,UAAU,CAAC;AAoHlB;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,SAAI,EACd,cAAc,SAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAMD;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAkBf;AAgFD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,KAAK,EAEZ,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAmcf"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,KAAK,EAKN,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEb,MAAM,UAAU,CAAC;AAqClB;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,SAAI,EACd,cAAc,SAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAMD;;GAEG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,IAAI,CAAC,CAkBf;AAgFD;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,KAAK,EAEZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC,CAwcf"}
@@ -30,73 +30,6 @@ function addAltFonts(runs) {
30
30
  return runs;
31
31
  }
32
32
  // ---------------------------------------------------------------------------
33
- // Color blending utilities for LibreOffice compatibility
34
- // ---------------------------------------------------------------------------
35
- /**
36
- * Parse a hex color string to RGB components.
37
- */
38
- function hexToRgb(hex) {
39
- const h = hex.replace('#', '');
40
- return {
41
- r: parseInt(h.substring(0, 2), 16),
42
- g: parseInt(h.substring(2, 4), 16),
43
- b: parseInt(h.substring(4, 6), 16),
44
- };
45
- }
46
- /**
47
- * Convert RGB components to hex color string.
48
- */
49
- function rgbToHex(r, g, b) {
50
- const toHex = (n) => Math.round(Math.max(0, Math.min(255, n))).toString(16).padStart(2, '0');
51
- return `${toHex(r)}${toHex(g)}${toHex(b)}`.toUpperCase();
52
- }
53
- /**
54
- * Blend a foreground color with a background color at the given opacity.
55
- * This simulates how a semi-transparent color appears over a background.
56
- *
57
- * @param fgHex - Foreground color in hex (e.g., "D4A84B")
58
- * @param bgHex - Background color in hex (e.g., "1A3C34")
59
- * @param opacity - Opacity of foreground (0-1, where 1 is fully opaque)
60
- * @returns Blended color in hex
61
- */
62
- function blendColors(fgHex, bgHex, opacity) {
63
- const fg = hexToRgb(fgHex);
64
- const bg = hexToRgb(bgHex);
65
- // Alpha blending: result = fg * opacity + bg * (1 - opacity)
66
- const r = fg.r * opacity + bg.r * (1 - opacity);
67
- const g = fg.g * opacity + bg.g * (1 - opacity);
68
- const b = fg.b * opacity + bg.b * (1 - opacity);
69
- return rgbToHex(r, g, b);
70
- }
71
- /**
72
- * Apply opacity to a gradient by blending its colors with the background.
73
- * This is used for LibreOffice compatibility since LibreOffice doesn't properly
74
- * render gradient fills with per-stop alpha values.
75
- *
76
- * @param gradient - Original gradient properties
77
- * @param opacity - CSS opacity (0-1)
78
- * @param bgColor - Background color in hex to blend with
79
- * @returns New gradient with blended colors
80
- */
81
- function applyOpacityToGradient(gradient, opacity, bgColor) {
82
- return {
83
- ...gradient,
84
- stops: gradient.stops.map(stop => {
85
- // Also factor in any existing stop transparency
86
- const stopOpacity = stop.transparency !== undefined
87
- ? (100 - stop.transparency) / 100
88
- : 1;
89
- const effectiveOpacity = opacity * stopOpacity;
90
- return {
91
- ...stop,
92
- color: blendColors(stop.color, bgColor, effectiveOpacity),
93
- // Remove transparency since it's now baked into the color
94
- transparency: undefined,
95
- };
96
- }),
97
- };
98
- }
99
- // ---------------------------------------------------------------------------
100
33
  // fetchImageAsDataUrl
101
34
  // ---------------------------------------------------------------------------
102
35
  /**
@@ -262,12 +195,10 @@ async function getImageSource(src) {
262
195
  * @param slide - The target PptxGenJS Slide instance.
263
196
  * @param pres - The PptxGenJS presentation instance (needed for `pres.ShapeType`).
264
197
  * Typed as `any` because `ShapeType` is a runtime property.
265
- * @param bgColor - Optional background color (hex) for blending transparent gradients.
266
- * Used for LibreOffice compatibility since it doesn't support gradient alpha.
267
198
  */
268
199
  export async function addElementsToSlide(elements, slide,
269
200
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
270
- pres, bgColor) {
201
+ pres) {
271
202
  // ---- First pass: slide background images ----
272
203
  for (const el of elements) {
273
204
  if (el.type === 'slideBackgroundImage') {
@@ -581,8 +512,10 @@ pres, bgColor) {
581
512
  shapeOptions.align = el.style.align;
582
513
  if (el.style.valign)
583
514
  shapeOptions.valign = el.style.valign;
584
- if (el.style.fontFill)
515
+ if (el.style.fontFill) {
585
516
  shapeOptions.fontFill = el.style.fontFill;
517
+ delete shapeOptions.color;
518
+ }
586
519
  // Zero out OOXML default insets (~7pt horizontal, ~3.6pt vertical)
587
520
  // so text positioning matches CSS box model exactly.
588
521
  // Explicit margin/inset from parsed styles will override this default.
@@ -635,8 +568,9 @@ pres, bgColor) {
635
568
  margin: el.style.margin,
636
569
  inset: 0,
637
570
  };
638
- if (el.style.margin)
639
- listOptions.margin = el.style.margin;
571
+ if (el.style.transparency !== null && el.style.transparency !== undefined) {
572
+ listOptions.transparency = el.style.transparency;
573
+ }
640
574
  slide.addText(addAltFonts(el.items), listOptions);
641
575
  }
642
576
  else {
@@ -646,7 +580,7 @@ pres, bgColor) {
646
580
  const heightPt = el.position.h * 72;
647
581
  const isSingleLine = heightPt <= lineHeightPt * 1.5;
648
582
  let adjustedX = el.position.x;
649
- let adjustedW = el.position.w;
583
+ let adjustedW;
650
584
  let adjustedH = el.position.h;
651
585
  if (isSingleLine) {
652
586
  // Add width buffer for single-line text to account for minor font metric
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../packages/slides/convert.ts"],"names":[],"mappings":"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"}