ooxml-core 1.16.0 → 1.16.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/PptxHandler-7RNEJ2IO.mjs +4 -0
- package/dist/{PptxHandler-3A7VEXVK.cjs → PptxHandler-MK665E6Z.cjs} +3 -3
- package/dist/{PptxHandler-M35YFCUC.mjs → PptxHandler-ZF4G56V3.mjs} +2 -2
- package/dist/{PresentationBuilder-C7NPM7OQ.mjs → PresentationBuilder-HPHJTMIB.mjs} +2 -2
- package/dist/{PresentationBuilder-Y6DJK6H2.mjs → PresentationBuilder-J7HAJGMB.mjs} +2 -2
- package/dist/{PresentationBuilder-XVRTITYR.cjs → PresentationBuilder-JGYSF25G.cjs} +5 -5
- package/dist/automation/index.cjs +36 -9
- package/dist/automation/index.mjs +36 -9
- package/dist/chart/index.cjs +23 -4
- package/dist/chart/index.mjs +23 -4
- package/dist/{chunk-LM6VBPQJ.mjs → chunk-5ROLXCIY.mjs} +24 -5
- package/dist/{chunk-KOX5Y5E5.mjs → chunk-HMZFUT65.mjs} +1 -1
- package/dist/{chunk-WBCV52YV.mjs → chunk-IBFHMYJD.mjs} +1 -1
- package/dist/{chunk-UGWY72WC.cjs → chunk-K7Z2EDI5.cjs} +23 -4
- package/dist/{chunk-B37EVUMG.mjs → chunk-MVS2PT2Q.mjs} +1 -1
- package/dist/{chunk-AHRFBMLK.cjs → chunk-THEWZNWS.cjs} +1007 -1007
- package/dist/{chunk-WEFFRYXN.mjs → chunk-TWXBU7RE.mjs} +23 -4
- package/dist/{chunk-OKGQ2X7D.mjs → chunk-YQ7HJOEZ.mjs} +1 -1
- package/dist/{chunk-C2Y6SZDN.mjs → chunk-ZBCNC5RI.mjs} +4 -4
- package/dist/collab/broadcast-transport.d.ts.map +1 -1
- package/dist/collab/identity.d.ts +2 -0
- package/dist/collab/identity.d.ts.map +1 -1
- package/dist/collab/index.cjs +11 -2
- package/dist/collab/index.mjs +11 -3
- package/dist/crypto/index.cjs +23 -4
- package/dist/crypto/index.mjs +23 -4
- package/dist/diagram/index.cjs +23 -4
- package/dist/diagram/index.mjs +23 -4
- package/dist/docx/embedded.cjs +23 -4
- package/dist/docx/embedded.mjs +23 -4
- package/dist/docx/index.cjs +24 -5
- package/dist/docx/index.mjs +24 -5
- package/dist/docx/layout/index.cjs +24 -5
- package/dist/docx/layout/index.mjs +24 -5
- package/dist/docx/load/index.cjs +23 -4
- package/dist/docx/load/index.mjs +23 -4
- package/dist/docx/ui/index.cjs +32 -5
- package/dist/docx/ui/index.mjs +32 -5
- package/dist/drawingml/index.cjs +23 -4
- package/dist/drawingml/index.mjs +23 -4
- package/dist/index.cjs +23 -4
- package/dist/index.mjs +23 -4
- package/dist/math/index.cjs +23 -4
- package/dist/math/index.mjs +23 -4
- package/dist/opc/index.cjs +23 -4
- package/dist/opc/index.mjs +23 -4
- package/dist/pptx/automation/index.cjs +28 -9
- package/dist/pptx/automation/index.mjs +5 -5
- package/dist/pptx/cli/index.cjs +28 -9
- package/dist/pptx/cli/index.mjs +4 -4
- package/dist/pptx/converter/index.mjs +2 -2
- package/dist/pptx/editor/render/find-replace.cjs +14 -14
- package/dist/pptx/editor/render/find-replace.mjs +1 -1
- package/dist/pptx/editor/render/slide-operations.cjs +8 -8
- package/dist/pptx/editor/render/slide-operations.mjs +2 -2
- package/dist/pptx/index.cjs +28 -9
- package/dist/pptx/index.mjs +5 -5
- package/dist/teams/index.cjs +38 -9
- package/dist/teams/index.mjs +38 -9
- package/dist/visio/index.cjs +23 -4
- package/dist/visio/index.mjs +23 -4
- package/dist/visio/ui/index.cjs +23 -4
- package/dist/visio/ui/index.mjs +23 -4
- package/dist/xlsx/edit/slicers.d.ts.map +1 -1
- package/dist/xlsx/edit/timelines.d.ts.map +1 -1
- package/dist/xlsx/index.cjs +36 -9
- package/dist/xlsx/index.mjs +36 -9
- package/dist/xlsx/load/index.cjs +26 -5
- package/dist/xlsx/load/index.mjs +26 -5
- package/dist/xlsx/ui/index.cjs +33 -8
- package/dist/xlsx/ui/index.mjs +33 -8
- package/dist/xml/index.cjs +23 -4
- package/dist/xml/index.mjs +23 -4
- package/dist/xml/xml.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/PptxHandler-7POULDRL.mjs +0 -4
|
@@ -10,15 +10,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
10
10
|
maxDepth: 512,
|
|
11
11
|
maxNodes: 5e6
|
|
12
12
|
};
|
|
13
|
-
var
|
|
13
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
14
|
+
var MARKUP_SKIPS = [
|
|
15
|
+
["<!--", "-->"],
|
|
16
|
+
["<![CDATA[", "]]>"],
|
|
17
|
+
["<?", "?>"]
|
|
18
|
+
];
|
|
14
19
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
15
20
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
16
21
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
17
22
|
let depth = 0;
|
|
18
23
|
let nodes = 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
let at = xml.indexOf("<");
|
|
25
|
+
while (at !== -1) {
|
|
26
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
27
|
+
if (skip) {
|
|
28
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
29
|
+
if (end === -1) return;
|
|
30
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
TAG_RE.lastIndex = at;
|
|
34
|
+
const match = TAG_RE.exec(xml);
|
|
35
|
+
if (!match) {
|
|
36
|
+
at = xml.indexOf("<", at + 1);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const [, closing, , selfClosing] = match;
|
|
40
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
22
41
|
if (closing) {
|
|
23
42
|
depth--;
|
|
24
43
|
continue;
|
|
@@ -15308,7 +15327,7 @@ function shapeSvg(spec, widthPx, heightPx, theme) {
|
|
|
15308
15327
|
spec.flipH || spec.flipV ? `translate(${spec.flipH ? w : 0} ${spec.flipV ? h : 0}) scale(${spec.flipH ? -1 : 1} ${spec.flipV ? -1 : 1})` : ""
|
|
15309
15328
|
].filter(Boolean).join(" ");
|
|
15310
15329
|
const label = escapeXml(lookupPresetShape(spec.preset) ? spec.preset : "Shape");
|
|
15311
|
-
return `<svg xmlns="http://www.w3.org/2000/svg" width="${round(w)}" height="${round(h)}" viewBox="0 0 ${round(w)} ${round(h)}" style="overflow:visible" role="img" aria-label="${label}"><g${transform ? ` transform="${transform}"` : ""}>${paths}${text2}</g></svg>`;
|
|
15330
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${round(w)}" height="${round(h)}" viewBox="0 0 ${round(w)} ${round(h)}" style="overflow:visible" role="img" aria-label="${label}"><g${transform ? ` transform="${escapeXml(transform)}"` : ""}>${paths}${text2}</g></svg>`;
|
|
15312
15331
|
}
|
|
15313
15332
|
|
|
15314
15333
|
// docx/layout/units.ts
|
package/dist/docx/load/index.cjs
CHANGED
|
@@ -3207,15 +3207,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
3207
3207
|
maxDepth: 512,
|
|
3208
3208
|
maxNodes: 5e6
|
|
3209
3209
|
};
|
|
3210
|
-
var
|
|
3210
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
3211
|
+
var MARKUP_SKIPS = [
|
|
3212
|
+
["<!--", "-->"],
|
|
3213
|
+
["<![CDATA[", "]]>"],
|
|
3214
|
+
["<?", "?>"]
|
|
3215
|
+
];
|
|
3211
3216
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
3212
3217
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
3213
3218
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
3214
3219
|
let depth = 0;
|
|
3215
3220
|
let nodes = 0;
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3221
|
+
let at = xml.indexOf("<");
|
|
3222
|
+
while (at !== -1) {
|
|
3223
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
3224
|
+
if (skip) {
|
|
3225
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
3226
|
+
if (end === -1) return;
|
|
3227
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
3228
|
+
continue;
|
|
3229
|
+
}
|
|
3230
|
+
TAG_RE.lastIndex = at;
|
|
3231
|
+
const match = TAG_RE.exec(xml);
|
|
3232
|
+
if (!match) {
|
|
3233
|
+
at = xml.indexOf("<", at + 1);
|
|
3234
|
+
continue;
|
|
3235
|
+
}
|
|
3236
|
+
const [, closing, , selfClosing] = match;
|
|
3237
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
3219
3238
|
if (closing) {
|
|
3220
3239
|
depth--;
|
|
3221
3240
|
continue;
|
package/dist/docx/load/index.mjs
CHANGED
|
@@ -3201,15 +3201,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
3201
3201
|
maxDepth: 512,
|
|
3202
3202
|
maxNodes: 5e6
|
|
3203
3203
|
};
|
|
3204
|
-
var
|
|
3204
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
3205
|
+
var MARKUP_SKIPS = [
|
|
3206
|
+
["<!--", "-->"],
|
|
3207
|
+
["<![CDATA[", "]]>"],
|
|
3208
|
+
["<?", "?>"]
|
|
3209
|
+
];
|
|
3205
3210
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
3206
3211
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
3207
3212
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
3208
3213
|
let depth = 0;
|
|
3209
3214
|
let nodes = 0;
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3215
|
+
let at = xml.indexOf("<");
|
|
3216
|
+
while (at !== -1) {
|
|
3217
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
3218
|
+
if (skip) {
|
|
3219
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
3220
|
+
if (end === -1) return;
|
|
3221
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
3222
|
+
continue;
|
|
3223
|
+
}
|
|
3224
|
+
TAG_RE.lastIndex = at;
|
|
3225
|
+
const match = TAG_RE.exec(xml);
|
|
3226
|
+
if (!match) {
|
|
3227
|
+
at = xml.indexOf("<", at + 1);
|
|
3228
|
+
continue;
|
|
3229
|
+
}
|
|
3230
|
+
const [, closing, , selfClosing] = match;
|
|
3231
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
3213
3232
|
if (closing) {
|
|
3214
3233
|
depth--;
|
|
3215
3234
|
continue;
|
package/dist/docx/ui/index.cjs
CHANGED
|
@@ -406,10 +406,18 @@ function isNonNegativeSafeInteger(value) {
|
|
|
406
406
|
}
|
|
407
407
|
|
|
408
408
|
// collab/identity.ts
|
|
409
|
+
function randomToken() {
|
|
410
|
+
const cryptoApi = globalThis.crypto;
|
|
411
|
+
if (cryptoApi?.getRandomValues) {
|
|
412
|
+
return cryptoApi.getRandomValues(new Uint32Array(2)).reduce((s, n2) => s + n2.toString(36), "").slice(0, 8);
|
|
413
|
+
}
|
|
414
|
+
return (fallbackCounter++).toString(36).padStart(8, "0");
|
|
415
|
+
}
|
|
416
|
+
var fallbackCounter = 0;
|
|
409
417
|
function createClientId() {
|
|
410
418
|
const cryptoApi = globalThis.crypto;
|
|
411
419
|
if (cryptoApi?.randomUUID) return cryptoApi.randomUUID();
|
|
412
|
-
return `c${Date.now().toString(36)}${
|
|
420
|
+
return `c${Date.now().toString(36)}${randomToken()}`;
|
|
413
421
|
}
|
|
414
422
|
function clientKey(clientId) {
|
|
415
423
|
if (!isValidId(clientId)) throw new Error("Invalid collaboration client ID");
|
|
@@ -780,15 +788,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
780
788
|
maxDepth: 512,
|
|
781
789
|
maxNodes: 5e6
|
|
782
790
|
};
|
|
783
|
-
var
|
|
791
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
792
|
+
var MARKUP_SKIPS = [
|
|
793
|
+
["<!--", "-->"],
|
|
794
|
+
["<![CDATA[", "]]>"],
|
|
795
|
+
["<?", "?>"]
|
|
796
|
+
];
|
|
784
797
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
785
798
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
786
799
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
787
800
|
let depth = 0;
|
|
788
801
|
let nodes = 0;
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
802
|
+
let at = xml.indexOf("<");
|
|
803
|
+
while (at !== -1) {
|
|
804
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
805
|
+
if (skip) {
|
|
806
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
807
|
+
if (end === -1) return;
|
|
808
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
809
|
+
continue;
|
|
810
|
+
}
|
|
811
|
+
TAG_RE.lastIndex = at;
|
|
812
|
+
const match = TAG_RE.exec(xml);
|
|
813
|
+
if (!match) {
|
|
814
|
+
at = xml.indexOf("<", at + 1);
|
|
815
|
+
continue;
|
|
816
|
+
}
|
|
817
|
+
const [, closing, , selfClosing] = match;
|
|
818
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
792
819
|
if (closing) {
|
|
793
820
|
depth--;
|
|
794
821
|
continue;
|
package/dist/docx/ui/index.mjs
CHANGED
|
@@ -384,10 +384,18 @@ function isNonNegativeSafeInteger(value) {
|
|
|
384
384
|
}
|
|
385
385
|
|
|
386
386
|
// collab/identity.ts
|
|
387
|
+
function randomToken() {
|
|
388
|
+
const cryptoApi = globalThis.crypto;
|
|
389
|
+
if (cryptoApi?.getRandomValues) {
|
|
390
|
+
return cryptoApi.getRandomValues(new Uint32Array(2)).reduce((s, n2) => s + n2.toString(36), "").slice(0, 8);
|
|
391
|
+
}
|
|
392
|
+
return (fallbackCounter++).toString(36).padStart(8, "0");
|
|
393
|
+
}
|
|
394
|
+
var fallbackCounter = 0;
|
|
387
395
|
function createClientId() {
|
|
388
396
|
const cryptoApi = globalThis.crypto;
|
|
389
397
|
if (cryptoApi?.randomUUID) return cryptoApi.randomUUID();
|
|
390
|
-
return `c${Date.now().toString(36)}${
|
|
398
|
+
return `c${Date.now().toString(36)}${randomToken()}`;
|
|
391
399
|
}
|
|
392
400
|
function clientKey(clientId) {
|
|
393
401
|
if (!isValidId(clientId)) throw new Error("Invalid collaboration client ID");
|
|
@@ -758,15 +766,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
758
766
|
maxDepth: 512,
|
|
759
767
|
maxNodes: 5e6
|
|
760
768
|
};
|
|
761
|
-
var
|
|
769
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
770
|
+
var MARKUP_SKIPS = [
|
|
771
|
+
["<!--", "-->"],
|
|
772
|
+
["<![CDATA[", "]]>"],
|
|
773
|
+
["<?", "?>"]
|
|
774
|
+
];
|
|
762
775
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
763
776
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
764
777
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
765
778
|
let depth = 0;
|
|
766
779
|
let nodes = 0;
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
780
|
+
let at = xml.indexOf("<");
|
|
781
|
+
while (at !== -1) {
|
|
782
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
783
|
+
if (skip) {
|
|
784
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
785
|
+
if (end === -1) return;
|
|
786
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
787
|
+
continue;
|
|
788
|
+
}
|
|
789
|
+
TAG_RE.lastIndex = at;
|
|
790
|
+
const match = TAG_RE.exec(xml);
|
|
791
|
+
if (!match) {
|
|
792
|
+
at = xml.indexOf("<", at + 1);
|
|
793
|
+
continue;
|
|
794
|
+
}
|
|
795
|
+
const [, closing, , selfClosing] = match;
|
|
796
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
770
797
|
if (closing) {
|
|
771
798
|
depth--;
|
|
772
799
|
continue;
|
package/dist/drawingml/index.cjs
CHANGED
|
@@ -12,15 +12,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
12
12
|
maxDepth: 512,
|
|
13
13
|
maxNodes: 5e6
|
|
14
14
|
};
|
|
15
|
-
var
|
|
15
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
16
|
+
var MARKUP_SKIPS = [
|
|
17
|
+
["<!--", "-->"],
|
|
18
|
+
["<![CDATA[", "]]>"],
|
|
19
|
+
["<?", "?>"]
|
|
20
|
+
];
|
|
16
21
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
17
22
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
18
23
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
19
24
|
let depth = 0;
|
|
20
25
|
let nodes = 0;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
let at = xml.indexOf("<");
|
|
27
|
+
while (at !== -1) {
|
|
28
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
29
|
+
if (skip) {
|
|
30
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
31
|
+
if (end === -1) return;
|
|
32
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
TAG_RE.lastIndex = at;
|
|
36
|
+
const match = TAG_RE.exec(xml);
|
|
37
|
+
if (!match) {
|
|
38
|
+
at = xml.indexOf("<", at + 1);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const [, closing, , selfClosing] = match;
|
|
42
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
24
43
|
if (closing) {
|
|
25
44
|
depth--;
|
|
26
45
|
continue;
|
package/dist/drawingml/index.mjs
CHANGED
|
@@ -10,15 +10,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
10
10
|
maxDepth: 512,
|
|
11
11
|
maxNodes: 5e6
|
|
12
12
|
};
|
|
13
|
-
var
|
|
13
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
14
|
+
var MARKUP_SKIPS = [
|
|
15
|
+
["<!--", "-->"],
|
|
16
|
+
["<![CDATA[", "]]>"],
|
|
17
|
+
["<?", "?>"]
|
|
18
|
+
];
|
|
14
19
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
15
20
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
16
21
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
17
22
|
let depth = 0;
|
|
18
23
|
let nodes = 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
let at = xml.indexOf("<");
|
|
25
|
+
while (at !== -1) {
|
|
26
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
27
|
+
if (skip) {
|
|
28
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
29
|
+
if (end === -1) return;
|
|
30
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
TAG_RE.lastIndex = at;
|
|
34
|
+
const match = TAG_RE.exec(xml);
|
|
35
|
+
if (!match) {
|
|
36
|
+
at = xml.indexOf("<", at + 1);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const [, closing, , selfClosing] = match;
|
|
40
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
22
41
|
if (closing) {
|
|
23
42
|
depth--;
|
|
24
43
|
continue;
|
package/dist/index.cjs
CHANGED
|
@@ -2226,15 +2226,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
2226
2226
|
maxDepth: 512,
|
|
2227
2227
|
maxNodes: 5e6
|
|
2228
2228
|
};
|
|
2229
|
-
var
|
|
2229
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
2230
|
+
var MARKUP_SKIPS = [
|
|
2231
|
+
["<!--", "-->"],
|
|
2232
|
+
["<![CDATA[", "]]>"],
|
|
2233
|
+
["<?", "?>"]
|
|
2234
|
+
];
|
|
2230
2235
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
2231
2236
|
const maxDepth2 = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
2232
2237
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
2233
2238
|
let depth = 0;
|
|
2234
2239
|
let nodes = 0;
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2240
|
+
let at2 = xml.indexOf("<");
|
|
2241
|
+
while (at2 !== -1) {
|
|
2242
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
2243
|
+
if (skip) {
|
|
2244
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
2245
|
+
if (end === -1) return;
|
|
2246
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
2247
|
+
continue;
|
|
2248
|
+
}
|
|
2249
|
+
TAG_RE.lastIndex = at2;
|
|
2250
|
+
const match = TAG_RE.exec(xml);
|
|
2251
|
+
if (!match) {
|
|
2252
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
2253
|
+
continue;
|
|
2254
|
+
}
|
|
2255
|
+
const [, closing, , selfClosing] = match;
|
|
2256
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
2238
2257
|
if (closing) {
|
|
2239
2258
|
depth--;
|
|
2240
2259
|
continue;
|
package/dist/index.mjs
CHANGED
|
@@ -2220,15 +2220,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
2220
2220
|
maxDepth: 512,
|
|
2221
2221
|
maxNodes: 5e6
|
|
2222
2222
|
};
|
|
2223
|
-
var
|
|
2223
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
2224
|
+
var MARKUP_SKIPS = [
|
|
2225
|
+
["<!--", "-->"],
|
|
2226
|
+
["<![CDATA[", "]]>"],
|
|
2227
|
+
["<?", "?>"]
|
|
2228
|
+
];
|
|
2224
2229
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
2225
2230
|
const maxDepth2 = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
2226
2231
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
2227
2232
|
let depth = 0;
|
|
2228
2233
|
let nodes = 0;
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2234
|
+
let at2 = xml.indexOf("<");
|
|
2235
|
+
while (at2 !== -1) {
|
|
2236
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
2237
|
+
if (skip) {
|
|
2238
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
2239
|
+
if (end === -1) return;
|
|
2240
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
2241
|
+
continue;
|
|
2242
|
+
}
|
|
2243
|
+
TAG_RE.lastIndex = at2;
|
|
2244
|
+
const match = TAG_RE.exec(xml);
|
|
2245
|
+
if (!match) {
|
|
2246
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
2247
|
+
continue;
|
|
2248
|
+
}
|
|
2249
|
+
const [, closing, , selfClosing] = match;
|
|
2250
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
2232
2251
|
if (closing) {
|
|
2233
2252
|
depth--;
|
|
2234
2253
|
continue;
|
package/dist/math/index.cjs
CHANGED
|
@@ -2122,15 +2122,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
2122
2122
|
maxDepth: 512,
|
|
2123
2123
|
maxNodes: 5e6
|
|
2124
2124
|
};
|
|
2125
|
-
var
|
|
2125
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
2126
|
+
var MARKUP_SKIPS = [
|
|
2127
|
+
["<!--", "-->"],
|
|
2128
|
+
["<![CDATA[", "]]>"],
|
|
2129
|
+
["<?", "?>"]
|
|
2130
|
+
];
|
|
2126
2131
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
2127
2132
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
2128
2133
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
2129
2134
|
let depth = 0;
|
|
2130
2135
|
let nodes = 0;
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2136
|
+
let at = xml.indexOf("<");
|
|
2137
|
+
while (at !== -1) {
|
|
2138
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
2139
|
+
if (skip) {
|
|
2140
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
2141
|
+
if (end === -1) return;
|
|
2142
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
2143
|
+
continue;
|
|
2144
|
+
}
|
|
2145
|
+
TAG_RE.lastIndex = at;
|
|
2146
|
+
const match = TAG_RE.exec(xml);
|
|
2147
|
+
if (!match) {
|
|
2148
|
+
at = xml.indexOf("<", at + 1);
|
|
2149
|
+
continue;
|
|
2150
|
+
}
|
|
2151
|
+
const [, closing, , selfClosing] = match;
|
|
2152
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
2134
2153
|
if (closing) {
|
|
2135
2154
|
depth--;
|
|
2136
2155
|
continue;
|
package/dist/math/index.mjs
CHANGED
|
@@ -2120,15 +2120,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
2120
2120
|
maxDepth: 512,
|
|
2121
2121
|
maxNodes: 5e6
|
|
2122
2122
|
};
|
|
2123
|
-
var
|
|
2123
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
2124
|
+
var MARKUP_SKIPS = [
|
|
2125
|
+
["<!--", "-->"],
|
|
2126
|
+
["<![CDATA[", "]]>"],
|
|
2127
|
+
["<?", "?>"]
|
|
2128
|
+
];
|
|
2124
2129
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
2125
2130
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
2126
2131
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
2127
2132
|
let depth = 0;
|
|
2128
2133
|
let nodes = 0;
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2134
|
+
let at = xml.indexOf("<");
|
|
2135
|
+
while (at !== -1) {
|
|
2136
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
2137
|
+
if (skip) {
|
|
2138
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
2139
|
+
if (end === -1) return;
|
|
2140
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
2141
|
+
continue;
|
|
2142
|
+
}
|
|
2143
|
+
TAG_RE.lastIndex = at;
|
|
2144
|
+
const match = TAG_RE.exec(xml);
|
|
2145
|
+
if (!match) {
|
|
2146
|
+
at = xml.indexOf("<", at + 1);
|
|
2147
|
+
continue;
|
|
2148
|
+
}
|
|
2149
|
+
const [, closing, , selfClosing] = match;
|
|
2150
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
2132
2151
|
if (closing) {
|
|
2133
2152
|
depth--;
|
|
2134
2153
|
continue;
|
package/dist/opc/index.cjs
CHANGED
|
@@ -138,15 +138,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
138
138
|
maxDepth: 512,
|
|
139
139
|
maxNodes: 5e6
|
|
140
140
|
};
|
|
141
|
-
var
|
|
141
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
142
|
+
var MARKUP_SKIPS = [
|
|
143
|
+
["<!--", "-->"],
|
|
144
|
+
["<![CDATA[", "]]>"],
|
|
145
|
+
["<?", "?>"]
|
|
146
|
+
];
|
|
142
147
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
143
148
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
144
149
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
145
150
|
let depth = 0;
|
|
146
151
|
let nodes = 0;
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
let at = xml.indexOf("<");
|
|
153
|
+
while (at !== -1) {
|
|
154
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
155
|
+
if (skip) {
|
|
156
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
157
|
+
if (end === -1) return;
|
|
158
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
TAG_RE.lastIndex = at;
|
|
162
|
+
const match = TAG_RE.exec(xml);
|
|
163
|
+
if (!match) {
|
|
164
|
+
at = xml.indexOf("<", at + 1);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
const [, closing, , selfClosing] = match;
|
|
168
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
150
169
|
if (closing) {
|
|
151
170
|
depth--;
|
|
152
171
|
continue;
|
package/dist/opc/index.mjs
CHANGED
|
@@ -132,15 +132,34 @@ var DEFAULT_XML_LIMITS = {
|
|
|
132
132
|
maxDepth: 512,
|
|
133
133
|
maxNodes: 5e6
|
|
134
134
|
};
|
|
135
|
-
var
|
|
135
|
+
var TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
136
|
+
var MARKUP_SKIPS = [
|
|
137
|
+
["<!--", "-->"],
|
|
138
|
+
["<![CDATA[", "]]>"],
|
|
139
|
+
["<?", "?>"]
|
|
140
|
+
];
|
|
136
141
|
function checkXmlLimits(xml, label, limits = {}) {
|
|
137
142
|
const maxDepth = limits.maxDepth ?? DEFAULT_XML_LIMITS.maxDepth;
|
|
138
143
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
139
144
|
let depth = 0;
|
|
140
145
|
let nodes = 0;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
146
|
+
let at = xml.indexOf("<");
|
|
147
|
+
while (at !== -1) {
|
|
148
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at));
|
|
149
|
+
if (skip) {
|
|
150
|
+
const end = xml.indexOf(skip[1], at + skip[0].length);
|
|
151
|
+
if (end === -1) return;
|
|
152
|
+
at = xml.indexOf("<", end + skip[1].length);
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
TAG_RE.lastIndex = at;
|
|
156
|
+
const match = TAG_RE.exec(xml);
|
|
157
|
+
if (!match) {
|
|
158
|
+
at = xml.indexOf("<", at + 1);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const [, closing, , selfClosing] = match;
|
|
162
|
+
at = xml.indexOf("<", at + match[0].length);
|
|
144
163
|
if (closing) {
|
|
145
164
|
depth--;
|
|
146
165
|
continue;
|
|
@@ -39375,9 +39375,23 @@ function checkXmlLimits(xml, label, limits = {}) {
|
|
|
39375
39375
|
const maxNodes = limits.maxNodes ?? DEFAULT_XML_LIMITS.maxNodes;
|
|
39376
39376
|
let depth = 0;
|
|
39377
39377
|
let nodes = 0;
|
|
39378
|
-
|
|
39379
|
-
|
|
39380
|
-
|
|
39378
|
+
let at2 = xml.indexOf("<");
|
|
39379
|
+
while (at2 !== -1) {
|
|
39380
|
+
const skip = MARKUP_SKIPS.find(([open]) => xml.startsWith(open, at2));
|
|
39381
|
+
if (skip) {
|
|
39382
|
+
const end = xml.indexOf(skip[1], at2 + skip[0].length);
|
|
39383
|
+
if (end === -1) return;
|
|
39384
|
+
at2 = xml.indexOf("<", end + skip[1].length);
|
|
39385
|
+
continue;
|
|
39386
|
+
}
|
|
39387
|
+
TAG_RE.lastIndex = at2;
|
|
39388
|
+
const match = TAG_RE.exec(xml);
|
|
39389
|
+
if (!match) {
|
|
39390
|
+
at2 = xml.indexOf("<", at2 + 1);
|
|
39391
|
+
continue;
|
|
39392
|
+
}
|
|
39393
|
+
const [, closing, , selfClosing] = match;
|
|
39394
|
+
at2 = xml.indexOf("<", at2 + match[0].length);
|
|
39381
39395
|
if (closing) {
|
|
39382
39396
|
depth--;
|
|
39383
39397
|
continue;
|
|
@@ -39418,7 +39432,7 @@ function named(element, local, ns, lenient = true) {
|
|
|
39418
39432
|
function attr(element, local, ns, prefix) {
|
|
39419
39433
|
return element?.getAttributeNS(ns, local) ?? element?.getAttribute(`${prefix}:${local}`) ?? void 0;
|
|
39420
39434
|
}
|
|
39421
|
-
var DEFAULT_XML_LIMITS,
|
|
39435
|
+
var DEFAULT_XML_LIMITS, TAG_RE, MARKUP_SKIPS, buildXml, isElement, elements, children2, first, relAttr;
|
|
39422
39436
|
var init_xml = __esm({
|
|
39423
39437
|
"xml/xml.ts"() {
|
|
39424
39438
|
init_namespaces();
|
|
@@ -39426,7 +39440,12 @@ var init_xml = __esm({
|
|
|
39426
39440
|
maxDepth: 512,
|
|
39427
39441
|
maxNodes: 5e6
|
|
39428
39442
|
};
|
|
39429
|
-
|
|
39443
|
+
TAG_RE = /<(\/?)([^\s\/>]+)(?:\s+[^\s=\/>]+\s*=\s*(?:"[^"]*"|'[^']*'))*\s*(\/?)>/y;
|
|
39444
|
+
MARKUP_SKIPS = [
|
|
39445
|
+
["<!--", "-->"],
|
|
39446
|
+
["<![CDATA[", "]]>"],
|
|
39447
|
+
["<?", "?>"]
|
|
39448
|
+
];
|
|
39430
39449
|
buildXml = (node) => new xmldom.XMLSerializer().serializeToString(node);
|
|
39431
39450
|
isElement = (node) => node.nodeType === 1;
|
|
39432
39451
|
elements = (parent) => Array.from(parent.childNodes).filter(isElement);
|
|
@@ -93326,9 +93345,9 @@ function prefixOf(qname) {
|
|
|
93326
93345
|
function findOutOfScopePrefixes(xml) {
|
|
93327
93346
|
const missing = /* @__PURE__ */ new Set();
|
|
93328
93347
|
const stack = [];
|
|
93329
|
-
|
|
93348
|
+
TAG_RE2.lastIndex = 0;
|
|
93330
93349
|
let m;
|
|
93331
|
-
while (m =
|
|
93350
|
+
while (m = TAG_RE2.exec(xml)) {
|
|
93332
93351
|
if (m[1]) {
|
|
93333
93352
|
stack.pop();
|
|
93334
93353
|
continue;
|
|
@@ -93418,7 +93437,7 @@ function declareUsedNamespaces(xml) {
|
|
|
93418
93437
|
const nameEnd = rootStart + 1 + (/^[^\s/>]+/.exec(rootTag2.slice(1))?.[0].length ?? 0);
|
|
93419
93438
|
return xml.slice(0, nameEnd) + additions.join("") + xml.slice(nameEnd);
|
|
93420
93439
|
}
|
|
93421
|
-
var WELL_KNOWN_NAMESPACES, NAME,
|
|
93440
|
+
var WELL_KNOWN_NAMESPACES, NAME, TAG_RE2, ATTR_RE, USED_PREFIX_RE, DECL_RE;
|
|
93422
93441
|
var init_xml_namespace_declarations = __esm({
|
|
93423
93442
|
"pptx/core/utils/xml-namespace-declarations.ts"() {
|
|
93424
93443
|
WELL_KNOWN_NAMESPACES = {
|
|
@@ -93458,7 +93477,7 @@ var init_xml_namespace_declarations = __esm({
|
|
|
93458
93477
|
o: "urn:schemas-microsoft-com:office:office"
|
|
93459
93478
|
};
|
|
93460
93479
|
NAME = "[A-Za-z_][\\w.-]*";
|
|
93461
|
-
|
|
93480
|
+
TAG_RE2 = new RegExp(
|
|
93462
93481
|
`<(/?)(${NAME}(?::${NAME})?)((?:\\s+[^\\s=>/]+\\s*=\\s*(?:"[^"]*"|'[^']*'))*)\\s*(/?)>`,
|
|
93463
93482
|
"g"
|
|
93464
93483
|
);
|