summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/dom-serializer/lib
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
committerRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
commit83354b2b88218090988dd6e526b0a2505b57e0f1 (patch)
treee3c73c38a122a78bb7e66fbb99056407edd9d4b9 /includes/external/addressbook/node_modules/dom-serializer/lib
parent47b8f2299a483024c4a6a8876af825a010954caa (diff)
downloadpluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.gz
pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.bz2
pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.zip
Updated 5 files and added 1110 files (automated)
Diffstat (limited to 'includes/external/addressbook/node_modules/dom-serializer/lib')
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts3
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.js100
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts52
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.js190
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/esm/package.json1
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts3
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.js103
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts52
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/dom-serializer/lib/index.js229
13 files changed, 737 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts
new file mode 100644
index 0000000..a8b0938
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts
@@ -0,0 +1,3 @@
+export declare const elementNames: Map<string, string>;
+export declare const attributeNames: Map<string, string>;
+//# sourceMappingURL=foreignNames.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map
new file mode 100644
index 0000000..f471fd0
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"foreignNames.d.ts","sourceRoot":"","sources":["../../src/foreignNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,qBAwCxB,CAAC;AACF,eAAO,MAAM,cAAc,qBA8D1B,CAAC"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.js b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.js
new file mode 100644
index 0000000..ebd6272
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/foreignNames.js
@@ -0,0 +1,100 @@
+export const elementNames = new Map([
+ "altGlyph",
+ "altGlyphDef",
+ "altGlyphItem",
+ "animateColor",
+ "animateMotion",
+ "animateTransform",
+ "clipPath",
+ "feBlend",
+ "feColorMatrix",
+ "feComponentTransfer",
+ "feComposite",
+ "feConvolveMatrix",
+ "feDiffuseLighting",
+ "feDisplacementMap",
+ "feDistantLight",
+ "feDropShadow",
+ "feFlood",
+ "feFuncA",
+ "feFuncB",
+ "feFuncG",
+ "feFuncR",
+ "feGaussianBlur",
+ "feImage",
+ "feMerge",
+ "feMergeNode",
+ "feMorphology",
+ "feOffset",
+ "fePointLight",
+ "feSpecularLighting",
+ "feSpotLight",
+ "feTile",
+ "feTurbulence",
+ "foreignObject",
+ "glyphRef",
+ "linearGradient",
+ "radialGradient",
+ "textPath",
+].map((val) => [val.toLowerCase(), val]));
+export const attributeNames = new Map([
+ "definitionURL",
+ "attributeName",
+ "attributeType",
+ "baseFrequency",
+ "baseProfile",
+ "calcMode",
+ "clipPathUnits",
+ "diffuseConstant",
+ "edgeMode",
+ "filterUnits",
+ "glyphRef",
+ "gradientTransform",
+ "gradientUnits",
+ "kernelMatrix",
+ "kernelUnitLength",
+ "keyPoints",
+ "keySplines",
+ "keyTimes",
+ "lengthAdjust",
+ "limitingConeAngle",
+ "markerHeight",
+ "markerUnits",
+ "markerWidth",
+ "maskContentUnits",
+ "maskUnits",
+ "numOctaves",
+ "pathLength",
+ "patternContentUnits",
+ "patternTransform",
+ "patternUnits",
+ "pointsAtX",
+ "pointsAtY",
+ "pointsAtZ",
+ "preserveAlpha",
+ "preserveAspectRatio",
+ "primitiveUnits",
+ "refX",
+ "refY",
+ "repeatCount",
+ "repeatDur",
+ "requiredExtensions",
+ "requiredFeatures",
+ "specularConstant",
+ "specularExponent",
+ "spreadMethod",
+ "startOffset",
+ "stdDeviation",
+ "stitchTiles",
+ "surfaceScale",
+ "systemLanguage",
+ "tableValues",
+ "targetX",
+ "targetY",
+ "textLength",
+ "viewBox",
+ "viewTarget",
+ "xChannelSelector",
+ "yChannelSelector",
+ "zoomAndPan",
+].map((val) => [val.toLowerCase(), val]));
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts
new file mode 100644
index 0000000..cdf04f0
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts
@@ -0,0 +1,52 @@
+import type { AnyNode } from "domhandler";
+export interface DomSerializerOptions {
+ /**
+ * Print an empty attribute's value.
+ *
+ * @default xmlMode
+ * @example With <code>emptyAttrs: false</code>: <code>&lt;input checked&gt;</code>
+ * @example With <code>emptyAttrs: true</code>: <code>&lt;input checked=""&gt;</code>
+ */
+ emptyAttrs?: boolean;
+ /**
+ * Print self-closing tags for tags without contents.
+ *
+ * @default xmlMode
+ * @example With <code>selfClosingTags: false</code>: <code>&lt;foo&gt;&lt;/foo&gt;</code>
+ * @example With <code>selfClosingTags: true</code>: <code>&lt;foo /&gt;</code>
+ */
+ selfClosingTags?: boolean;
+ /**
+ * Treat the input as an XML document; enables the `emptyAttrs` and `selfClosingTags` options.
+ *
+ * If the value is `"foreign"`, it will try to correct mixed-case attribute names.
+ *
+ * @default false
+ */
+ xmlMode?: boolean | "foreign";
+ /**
+ * Encode characters that are either reserved in HTML or XML.
+ *
+ * If `xmlMode` is `true` or the value not `'utf8'`, characters outside of the utf8 range will be encoded as well.
+ *
+ * @default `decodeEntities`
+ */
+ encodeEntities?: boolean | "utf8";
+ /**
+ * Option inherited from parsing; will be used as the default value for `encodeEntities`.
+ *
+ * @default true
+ */
+ decodeEntities?: boolean;
+}
+/**
+ * Renders a DOM node or an array of DOM nodes to a string.
+ *
+ * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
+ *
+ * @param node Node to be rendered.
+ * @param options Changes serialization behavior
+ */
+export declare function render(node: AnyNode | ArrayLike<AnyNode>, options?: DomSerializerOptions): string;
+export default render;
+//# sourceMappingURL=index.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts.map b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts.map
new file mode 100644
index 0000000..0476a46
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA4ED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,EAClC,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAUR;AAED,eAAe,MAAM,CAAC"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.js b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.js
new file mode 100644
index 0000000..1ccc9d5
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/index.js
@@ -0,0 +1,190 @@
+/*
+ * Module dependencies
+ */
+import * as ElementType from "domelementtype";
+import { encodeXML, escapeAttribute, escapeText } from "entities";
+/**
+ * Mixed-case SVG and MathML tags & attributes
+ * recognized by the HTML parser.
+ *
+ * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign
+ */
+import { elementNames, attributeNames } from "./foreignNames.js";
+const unencodedElements = new Set([
+ "style",
+ "script",
+ "xmp",
+ "iframe",
+ "noembed",
+ "noframes",
+ "plaintext",
+ "noscript",
+]);
+function replaceQuotes(value) {
+ return value.replace(/"/g, "&quot;");
+}
+/**
+ * Format attributes
+ */
+function formatAttributes(attributes, opts) {
+ var _a;
+ if (!attributes)
+ return;
+ const encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false
+ ? replaceQuotes
+ : opts.xmlMode || opts.encodeEntities !== "utf8"
+ ? encodeXML
+ : escapeAttribute;
+ return Object.keys(attributes)
+ .map((key) => {
+ var _a, _b;
+ const value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : "";
+ if (opts.xmlMode === "foreign") {
+ /* Fix up mixed-case attribute names */
+ key = (_b = attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;
+ }
+ if (!opts.emptyAttrs && !opts.xmlMode && value === "") {
+ return key;
+ }
+ return `${key}="${encode(value)}"`;
+ })
+ .join(" ");
+}
+/**
+ * Self-enclosing tags
+ */
+const singleTag = new Set([
+ "area",
+ "base",
+ "basefont",
+ "br",
+ "col",
+ "command",
+ "embed",
+ "frame",
+ "hr",
+ "img",
+ "input",
+ "isindex",
+ "keygen",
+ "link",
+ "meta",
+ "param",
+ "source",
+ "track",
+ "wbr",
+]);
+/**
+ * Renders a DOM node or an array of DOM nodes to a string.
+ *
+ * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
+ *
+ * @param node Node to be rendered.
+ * @param options Changes serialization behavior
+ */
+export function render(node, options = {}) {
+ const nodes = "length" in node ? node : [node];
+ let output = "";
+ for (let i = 0; i < nodes.length; i++) {
+ output += renderNode(nodes[i], options);
+ }
+ return output;
+}
+export default render;
+function renderNode(node, options) {
+ switch (node.type) {
+ case ElementType.Root:
+ return render(node.children, options);
+ // @ts-expect-error We don't use `Doctype` yet
+ case ElementType.Doctype:
+ case ElementType.Directive:
+ return renderDirective(node);
+ case ElementType.Comment:
+ return renderComment(node);
+ case ElementType.CDATA:
+ return renderCdata(node);
+ case ElementType.Script:
+ case ElementType.Style:
+ case ElementType.Tag:
+ return renderTag(node, options);
+ case ElementType.Text:
+ return renderText(node, options);
+ }
+}
+const foreignModeIntegrationPoints = new Set([
+ "mi",
+ "mo",
+ "mn",
+ "ms",
+ "mtext",
+ "annotation-xml",
+ "foreignObject",
+ "desc",
+ "title",
+]);
+const foreignElements = new Set(["svg", "math"]);
+function renderTag(elem, opts) {
+ var _a;
+ // Handle SVG / MathML in HTML
+ if (opts.xmlMode === "foreign") {
+ /* Fix up mixed-case element names */
+ elem.name = (_a = elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;
+ /* Exit foreign mode at integration points */
+ if (elem.parent &&
+ foreignModeIntegrationPoints.has(elem.parent.name)) {
+ opts = { ...opts, xmlMode: false };
+ }
+ }
+ if (!opts.xmlMode && foreignElements.has(elem.name)) {
+ opts = { ...opts, xmlMode: "foreign" };
+ }
+ let tag = `<${elem.name}`;
+ const attribs = formatAttributes(elem.attribs, opts);
+ if (attribs) {
+ tag += ` ${attribs}`;
+ }
+ if (elem.children.length === 0 &&
+ (opts.xmlMode
+ ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
+ opts.selfClosingTags !== false
+ : // User explicitly asked for self-closing tags, even in HTML mode
+ opts.selfClosingTags && singleTag.has(elem.name))) {
+ if (!opts.xmlMode)
+ tag += " ";
+ tag += "/>";
+ }
+ else {
+ tag += ">";
+ if (elem.children.length > 0) {
+ tag += render(elem.children, opts);
+ }
+ if (opts.xmlMode || !singleTag.has(elem.name)) {
+ tag += `</${elem.name}>`;
+ }
+ }
+ return tag;
+}
+function renderDirective(elem) {
+ return `<${elem.data}>`;
+}
+function renderText(elem, opts) {
+ var _a;
+ let data = elem.data || "";
+ // If entities weren't decoded, no need to encode them back
+ if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&
+ !(!opts.xmlMode &&
+ elem.parent &&
+ unencodedElements.has(elem.parent.name))) {
+ data =
+ opts.xmlMode || opts.encodeEntities !== "utf8"
+ ? encodeXML(data)
+ : escapeText(data);
+ }
+ return data;
+}
+function renderCdata(elem) {
+ return `<![CDATA[${elem.children[0].data}]]>`;
+}
+function renderComment(elem) {
+ return `<!--${elem.data}-->`;
+}
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/esm/package.json b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/package.json
new file mode 100644
index 0000000..089153b
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/esm/package.json
@@ -0,0 +1 @@
+{"type":"module"}
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts b/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts
new file mode 100644
index 0000000..a8b0938
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts
@@ -0,0 +1,3 @@
+export declare const elementNames: Map<string, string>;
+export declare const attributeNames: Map<string, string>;
+//# sourceMappingURL=foreignNames.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts.map b/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts.map
new file mode 100644
index 0000000..bc1d2d0
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"foreignNames.d.ts","sourceRoot":"","sources":["../src/foreignNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,qBAwCxB,CAAC;AACF,eAAO,MAAM,cAAc,qBA8D1B,CAAC"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.js b/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.js
new file mode 100644
index 0000000..3b24b75
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/foreignNames.js
@@ -0,0 +1,103 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.attributeNames = exports.elementNames = void 0;
+exports.elementNames = new Map([
+ "altGlyph",
+ "altGlyphDef",
+ "altGlyphItem",
+ "animateColor",
+ "animateMotion",
+ "animateTransform",
+ "clipPath",
+ "feBlend",
+ "feColorMatrix",
+ "feComponentTransfer",
+ "feComposite",
+ "feConvolveMatrix",
+ "feDiffuseLighting",
+ "feDisplacementMap",
+ "feDistantLight",
+ "feDropShadow",
+ "feFlood",
+ "feFuncA",
+ "feFuncB",
+ "feFuncG",
+ "feFuncR",
+ "feGaussianBlur",
+ "feImage",
+ "feMerge",
+ "feMergeNode",
+ "feMorphology",
+ "feOffset",
+ "fePointLight",
+ "feSpecularLighting",
+ "feSpotLight",
+ "feTile",
+ "feTurbulence",
+ "foreignObject",
+ "glyphRef",
+ "linearGradient",
+ "radialGradient",
+ "textPath",
+].map(function (val) { return [val.toLowerCase(), val]; }));
+exports.attributeNames = new Map([
+ "definitionURL",
+ "attributeName",
+ "attributeType",
+ "baseFrequency",
+ "baseProfile",
+ "calcMode",
+ "clipPathUnits",
+ "diffuseConstant",
+ "edgeMode",
+ "filterUnits",
+ "glyphRef",
+ "gradientTransform",
+ "gradientUnits",
+ "kernelMatrix",
+ "kernelUnitLength",
+ "keyPoints",
+ "keySplines",
+ "keyTimes",
+ "lengthAdjust",
+ "limitingConeAngle",
+ "markerHeight",
+ "markerUnits",
+ "markerWidth",
+ "maskContentUnits",
+ "maskUnits",
+ "numOctaves",
+ "pathLength",
+ "patternContentUnits",
+ "patternTransform",
+ "patternUnits",
+ "pointsAtX",
+ "pointsAtY",
+ "pointsAtZ",
+ "preserveAlpha",
+ "preserveAspectRatio",
+ "primitiveUnits",
+ "refX",
+ "refY",
+ "repeatCount",
+ "repeatDur",
+ "requiredExtensions",
+ "requiredFeatures",
+ "specularConstant",
+ "specularExponent",
+ "spreadMethod",
+ "startOffset",
+ "stdDeviation",
+ "stitchTiles",
+ "surfaceScale",
+ "systemLanguage",
+ "tableValues",
+ "targetX",
+ "targetY",
+ "textLength",
+ "viewBox",
+ "viewTarget",
+ "xChannelSelector",
+ "yChannelSelector",
+ "zoomAndPan",
+].map(function (val) { return [val.toLowerCase(), val]; }));
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts b/includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts
new file mode 100644
index 0000000..cdf04f0
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts
@@ -0,0 +1,52 @@
+import type { AnyNode } from "domhandler";
+export interface DomSerializerOptions {
+ /**
+ * Print an empty attribute's value.
+ *
+ * @default xmlMode
+ * @example With <code>emptyAttrs: false</code>: <code>&lt;input checked&gt;</code>
+ * @example With <code>emptyAttrs: true</code>: <code>&lt;input checked=""&gt;</code>
+ */
+ emptyAttrs?: boolean;
+ /**
+ * Print self-closing tags for tags without contents.
+ *
+ * @default xmlMode
+ * @example With <code>selfClosingTags: false</code>: <code>&lt;foo&gt;&lt;/foo&gt;</code>
+ * @example With <code>selfClosingTags: true</code>: <code>&lt;foo /&gt;</code>
+ */
+ selfClosingTags?: boolean;
+ /**
+ * Treat the input as an XML document; enables the `emptyAttrs` and `selfClosingTags` options.
+ *
+ * If the value is `"foreign"`, it will try to correct mixed-case attribute names.
+ *
+ * @default false
+ */
+ xmlMode?: boolean | "foreign";
+ /**
+ * Encode characters that are either reserved in HTML or XML.
+ *
+ * If `xmlMode` is `true` or the value not `'utf8'`, characters outside of the utf8 range will be encoded as well.
+ *
+ * @default `decodeEntities`
+ */
+ encodeEntities?: boolean | "utf8";
+ /**
+ * Option inherited from parsing; will be used as the default value for `encodeEntities`.
+ *
+ * @default true
+ */
+ decodeEntities?: boolean;
+}
+/**
+ * Renders a DOM node or an array of DOM nodes to a string.
+ *
+ * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
+ *
+ * @param node Node to be rendered.
+ * @param options Changes serialization behavior
+ */
+export declare function render(node: AnyNode | ArrayLike<AnyNode>, options?: DomSerializerOptions): string;
+export default render;
+//# sourceMappingURL=index.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts.map b/includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts.map
new file mode 100644
index 0000000..6d9d0b6
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA4ED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,EAClC,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAUR;AAED,eAAe,MAAM,CAAC"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/dom-serializer/lib/index.js b/includes/external/addressbook/node_modules/dom-serializer/lib/index.js
new file mode 100644
index 0000000..af996ff
--- /dev/null
+++ b/includes/external/addressbook/node_modules/dom-serializer/lib/index.js
@@ -0,0 +1,229 @@
+"use strict";
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.render = void 0;
+/*
+ * Module dependencies
+ */
+var ElementType = __importStar(require("domelementtype"));
+var entities_1 = require("entities");
+/**
+ * Mixed-case SVG and MathML tags & attributes
+ * recognized by the HTML parser.
+ *
+ * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign
+ */
+var foreignNames_js_1 = require("./foreignNames.js");
+var unencodedElements = new Set([
+ "style",
+ "script",
+ "xmp",
+ "iframe",
+ "noembed",
+ "noframes",
+ "plaintext",
+ "noscript",
+]);
+function replaceQuotes(value) {
+ return value.replace(/"/g, "&quot;");
+}
+/**
+ * Format attributes
+ */
+function formatAttributes(attributes, opts) {
+ var _a;
+ if (!attributes)
+ return;
+ var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false
+ ? replaceQuotes
+ : opts.xmlMode || opts.encodeEntities !== "utf8"
+ ? entities_1.encodeXML
+ : entities_1.escapeAttribute;
+ return Object.keys(attributes)
+ .map(function (key) {
+ var _a, _b;
+ var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : "";
+ if (opts.xmlMode === "foreign") {
+ /* Fix up mixed-case attribute names */
+ key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;
+ }
+ if (!opts.emptyAttrs && !opts.xmlMode && value === "") {
+ return key;
+ }
+ return "".concat(key, "=\"").concat(encode(value), "\"");
+ })
+ .join(" ");
+}
+/**
+ * Self-enclosing tags
+ */
+var singleTag = new Set([
+ "area",
+ "base",
+ "basefont",
+ "br",
+ "col",
+ "command",
+ "embed",
+ "frame",
+ "hr",
+ "img",
+ "input",
+ "isindex",
+ "keygen",
+ "link",
+ "meta",
+ "param",
+ "source",
+ "track",
+ "wbr",
+]);
+/**
+ * Renders a DOM node or an array of DOM nodes to a string.
+ *
+ * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).
+ *
+ * @param node Node to be rendered.
+ * @param options Changes serialization behavior
+ */
+function render(node, options) {
+ if (options === void 0) { options = {}; }
+ var nodes = "length" in node ? node : [node];
+ var output = "";
+ for (var i = 0; i < nodes.length; i++) {
+ output += renderNode(nodes[i], options);
+ }
+ return output;
+}
+exports.render = render;
+exports.default = render;
+function renderNode(node, options) {
+ switch (node.type) {
+ case ElementType.Root:
+ return render(node.children, options);
+ // @ts-expect-error We don't use `Doctype` yet
+ case ElementType.Doctype:
+ case ElementType.Directive:
+ return renderDirective(node);
+ case ElementType.Comment:
+ return renderComment(node);
+ case ElementType.CDATA:
+ return renderCdata(node);
+ case ElementType.Script:
+ case ElementType.Style:
+ case ElementType.Tag:
+ return renderTag(node, options);
+ case ElementType.Text:
+ return renderText(node, options);
+ }
+}
+var foreignModeIntegrationPoints = new Set([
+ "mi",
+ "mo",
+ "mn",
+ "ms",
+ "mtext",
+ "annotation-xml",
+ "foreignObject",
+ "desc",
+ "title",
+]);
+var foreignElements = new Set(["svg", "math"]);
+function renderTag(elem, opts) {
+ var _a;
+ // Handle SVG / MathML in HTML
+ if (opts.xmlMode === "foreign") {
+ /* Fix up mixed-case element names */
+ elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;
+ /* Exit foreign mode at integration points */
+ if (elem.parent &&
+ foreignModeIntegrationPoints.has(elem.parent.name)) {
+ opts = __assign(__assign({}, opts), { xmlMode: false });
+ }
+ }
+ if (!opts.xmlMode && foreignElements.has(elem.name)) {
+ opts = __assign(__assign({}, opts), { xmlMode: "foreign" });
+ }
+ var tag = "<".concat(elem.name);
+ var attribs = formatAttributes(elem.attribs, opts);
+ if (attribs) {
+ tag += " ".concat(attribs);
+ }
+ if (elem.children.length === 0 &&
+ (opts.xmlMode
+ ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags
+ opts.selfClosingTags !== false
+ : // User explicitly asked for self-closing tags, even in HTML mode
+ opts.selfClosingTags && singleTag.has(elem.name))) {
+ if (!opts.xmlMode)
+ tag += " ";
+ tag += "/>";
+ }
+ else {
+ tag += ">";
+ if (elem.children.length > 0) {
+ tag += render(elem.children, opts);
+ }
+ if (opts.xmlMode || !singleTag.has(elem.name)) {
+ tag += "</".concat(elem.name, ">");
+ }
+ }
+ return tag;
+}
+function renderDirective(elem) {
+ return "<".concat(elem.data, ">");
+}
+function renderText(elem, opts) {
+ var _a;
+ var data = elem.data || "";
+ // If entities weren't decoded, no need to encode them back
+ if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&
+ !(!opts.xmlMode &&
+ elem.parent &&
+ unencodedElements.has(elem.parent.name))) {
+ data =
+ opts.xmlMode || opts.encodeEntities !== "utf8"
+ ? (0, entities_1.encodeXML)(data)
+ : (0, entities_1.escapeText)(data);
+ }
+ return data;
+}
+function renderCdata(elem) {
+ return "<![CDATA[".concat(elem.children[0].data, "]]>");
+}
+function renderComment(elem) {
+ return "<!--".concat(elem.data, "-->");
+}