summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/htmlparser2/lib/esm
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/htmlparser2/lib/esm
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/htmlparser2/lib/esm')
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts190
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js489
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts143
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js932
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts17
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js32
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts44
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js62
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js.map1
-rw-r--r--includes/external/addressbook/node_modules/htmlparser2/lib/esm/package.json1
17 files changed, 1918 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts
new file mode 100644
index 0000000..ce46d58
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts
@@ -0,0 +1,190 @@
+import Tokenizer, { Callbacks, QuoteType } from "./Tokenizer.js";
+export interface ParserOptions {
+ /**
+ * Indicates whether special tags (`<script>`, `<style>`, and `<title>`) should get special treatment
+ * and if "empty" tags (eg. `<br>`) can have children. If `false`, the content of special tags
+ * will be text only. For feeds and other XML content (documents that don't consist of HTML),
+ * set this to `true`.
+ *
+ * @default false
+ */
+ xmlMode?: boolean;
+ /**
+ * Decode entities within the document.
+ *
+ * @default true
+ */
+ decodeEntities?: boolean;
+ /**
+ * If set to true, all tags will be lowercased.
+ *
+ * @default !xmlMode
+ */
+ lowerCaseTags?: boolean;
+ /**
+ * If set to `true`, all attribute names will be lowercased. This has noticeable impact on speed.
+ *
+ * @default !xmlMode
+ */
+ lowerCaseAttributeNames?: boolean;
+ /**
+ * If set to true, CDATA sections will be recognized as text even if the xmlMode option is not enabled.
+ * NOTE: If xmlMode is set to `true` then CDATA sections will always be recognized as text.
+ *
+ * @default xmlMode
+ */
+ recognizeCDATA?: boolean;
+ /**
+ * If set to `true`, self-closing tags will trigger the onclosetag event even if xmlMode is not set to `true`.
+ * NOTE: If xmlMode is set to `true` then self-closing tags will always be recognized.
+ *
+ * @default xmlMode
+ */
+ recognizeSelfClosing?: boolean;
+ /**
+ * Allows the default tokenizer to be overwritten.
+ */
+ Tokenizer?: typeof Tokenizer;
+}
+export interface Handler {
+ onparserinit(parser: Parser): void;
+ /**
+ * Resets the handler back to starting state
+ */
+ onreset(): void;
+ /**
+ * Signals the handler that parsing is done
+ */
+ onend(): void;
+ onerror(error: Error): void;
+ onclosetag(name: string, isImplied: boolean): void;
+ onopentagname(name: string): void;
+ /**
+ *
+ * @param name Name of the attribute
+ * @param value Value of the attribute.
+ * @param quote Quotes used around the attribute. `null` if the attribute has no quotes around the value, `undefined` if the attribute has no value.
+ */
+ onattribute(name: string, value: string, quote?: string | undefined | null): void;
+ onopentag(name: string, attribs: {
+ [s: string]: string;
+ }, isImplied: boolean): void;
+ ontext(data: string): void;
+ oncomment(data: string): void;
+ oncdatastart(): void;
+ oncdataend(): void;
+ oncommentend(): void;
+ onprocessinginstruction(name: string, data: string): void;
+}
+export declare class Parser implements Callbacks {
+ private readonly options;
+ /** The start index of the last event. */
+ startIndex: number;
+ /** The end index of the last event. */
+ endIndex: number;
+ /**
+ * Store the start index of the current open tag,
+ * so we can update the start index for attributes.
+ */
+ private openTagStart;
+ private tagname;
+ private attribname;
+ private attribvalue;
+ private attribs;
+ private readonly stack;
+ private readonly foreignContext;
+ private readonly cbs;
+ private readonly lowerCaseTagNames;
+ private readonly lowerCaseAttributeNames;
+ private readonly tokenizer;
+ private readonly buffers;
+ private bufferOffset;
+ /** The index of the last written buffer. Used when resuming after a `pause()`. */
+ private writeIndex;
+ /** Indicates whether the parser has finished running / `.end` has been called. */
+ private ended;
+ constructor(cbs?: Partial<Handler> | null, options?: ParserOptions);
+ /** @internal */
+ ontext(start: number, endIndex: number): void;
+ /** @internal */
+ ontextentity(cp: number): void;
+ protected isVoidElement(name: string): boolean;
+ /** @internal */
+ onopentagname(start: number, endIndex: number): void;
+ private emitOpenTag;
+ private endOpenTag;
+ /** @internal */
+ onopentagend(endIndex: number): void;
+ /** @internal */
+ onclosetag(start: number, endIndex: number): void;
+ /** @internal */
+ onselfclosingtag(endIndex: number): void;
+ private closeCurrentTag;
+ /** @internal */
+ onattribname(start: number, endIndex: number): void;
+ /** @internal */
+ onattribdata(start: number, endIndex: number): void;
+ /** @internal */
+ onattribentity(cp: number): void;
+ /** @internal */
+ onattribend(quote: QuoteType, endIndex: number): void;
+ private getInstructionName;
+ /** @internal */
+ ondeclaration(start: number, endIndex: number): void;
+ /** @internal */
+ onprocessinginstruction(start: number, endIndex: number): void;
+ /** @internal */
+ oncomment(start: number, endIndex: number, offset: number): void;
+ /** @internal */
+ oncdata(start: number, endIndex: number, offset: number): void;
+ /** @internal */
+ onend(): void;
+ /**
+ * Resets the parser to a blank state, ready to parse a new HTML document
+ */
+ reset(): void;
+ /**
+ * Resets the parser, then parses a complete document and
+ * pushes it to the handler.
+ *
+ * @param data Document to parse.
+ */
+ parseComplete(data: string): void;
+ private getSlice;
+ private shiftBuffer;
+ /**
+ * Parses a chunk of data and calls the corresponding callbacks.
+ *
+ * @param chunk Chunk to parse.
+ */
+ write(chunk: string): void;
+ /**
+ * Parses the end of the buffer and clears the stack, calls onend.
+ *
+ * @param chunk Optional final chunk to parse.
+ */
+ end(chunk?: string): void;
+ /**
+ * Pauses parsing. The parser won't emit events until `resume` is called.
+ */
+ pause(): void;
+ /**
+ * Resumes parsing after `pause` was called.
+ */
+ resume(): void;
+ /**
+ * Alias of `write`, for backwards compatibility.
+ *
+ * @param chunk Chunk to parse.
+ * @deprecated
+ */
+ parseChunk(chunk: string): void;
+ /**
+ * Alias of `end`, for backwards compatibility.
+ *
+ * @param chunk Optional final chunk to parse.
+ * @deprecated
+ */
+ done(chunk?: string): void;
+}
+//# sourceMappingURL=Parser.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts.map
new file mode 100644
index 0000000..9f9aa66
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Parser.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["Parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js
new file mode 100644
index 0000000..68cc0ed
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js
@@ -0,0 +1,489 @@
+import Tokenizer, { QuoteType } from "./Tokenizer.js";
+import { fromCodePoint } from "entities/lib/decode.js";
+const formTags = new Set([
+ "input",
+ "option",
+ "optgroup",
+ "select",
+ "button",
+ "datalist",
+ "textarea",
+]);
+const pTag = new Set(["p"]);
+const tableSectionTags = new Set(["thead", "tbody"]);
+const ddtTags = new Set(["dd", "dt"]);
+const rtpTags = new Set(["rt", "rp"]);
+const openImpliesClose = new Map([
+ ["tr", new Set(["tr", "th", "td"])],
+ ["th", new Set(["th"])],
+ ["td", new Set(["thead", "th", "td"])],
+ ["body", new Set(["head", "link", "script"])],
+ ["li", new Set(["li"])],
+ ["p", pTag],
+ ["h1", pTag],
+ ["h2", pTag],
+ ["h3", pTag],
+ ["h4", pTag],
+ ["h5", pTag],
+ ["h6", pTag],
+ ["select", formTags],
+ ["input", formTags],
+ ["output", formTags],
+ ["button", formTags],
+ ["datalist", formTags],
+ ["textarea", formTags],
+ ["option", new Set(["option"])],
+ ["optgroup", new Set(["optgroup", "option"])],
+ ["dd", ddtTags],
+ ["dt", ddtTags],
+ ["address", pTag],
+ ["article", pTag],
+ ["aside", pTag],
+ ["blockquote", pTag],
+ ["details", pTag],
+ ["div", pTag],
+ ["dl", pTag],
+ ["fieldset", pTag],
+ ["figcaption", pTag],
+ ["figure", pTag],
+ ["footer", pTag],
+ ["form", pTag],
+ ["header", pTag],
+ ["hr", pTag],
+ ["main", pTag],
+ ["nav", pTag],
+ ["ol", pTag],
+ ["pre", pTag],
+ ["section", pTag],
+ ["table", pTag],
+ ["ul", pTag],
+ ["rt", rtpTags],
+ ["rp", rtpTags],
+ ["tbody", tableSectionTags],
+ ["tfoot", tableSectionTags],
+]);
+const voidElements = new Set([
+ "area",
+ "base",
+ "basefont",
+ "br",
+ "col",
+ "command",
+ "embed",
+ "frame",
+ "hr",
+ "img",
+ "input",
+ "isindex",
+ "keygen",
+ "link",
+ "meta",
+ "param",
+ "source",
+ "track",
+ "wbr",
+]);
+const foreignContextElements = new Set(["math", "svg"]);
+const htmlIntegrationElements = new Set([
+ "mi",
+ "mo",
+ "mn",
+ "ms",
+ "mtext",
+ "annotation-xml",
+ "foreignobject",
+ "desc",
+ "title",
+]);
+const reNameEnd = /\s|\//;
+export class Parser {
+ constructor(cbs, options = {}) {
+ var _a, _b, _c, _d, _e;
+ this.options = options;
+ /** The start index of the last event. */
+ this.startIndex = 0;
+ /** The end index of the last event. */
+ this.endIndex = 0;
+ /**
+ * Store the start index of the current open tag,
+ * so we can update the start index for attributes.
+ */
+ this.openTagStart = 0;
+ this.tagname = "";
+ this.attribname = "";
+ this.attribvalue = "";
+ this.attribs = null;
+ this.stack = [];
+ this.foreignContext = [];
+ this.buffers = [];
+ this.bufferOffset = 0;
+ /** The index of the last written buffer. Used when resuming after a `pause()`. */
+ this.writeIndex = 0;
+ /** Indicates whether the parser has finished running / `.end` has been called. */
+ this.ended = false;
+ this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
+ this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;
+ this.lowerCaseAttributeNames =
+ (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;
+ this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer)(this.options, this);
+ (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);
+ }
+ // Tokenizer event handlers
+ /** @internal */
+ ontext(start, endIndex) {
+ var _a, _b;
+ const data = this.getSlice(start, endIndex);
+ this.endIndex = endIndex - 1;
+ (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);
+ this.startIndex = endIndex;
+ }
+ /** @internal */
+ ontextentity(cp) {
+ var _a, _b;
+ /*
+ * Entities can be emitted on the character, or directly after.
+ * We use the section start here to get accurate indices.
+ */
+ const index = this.tokenizer.getSectionStart();
+ this.endIndex = index - 1;
+ (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));
+ this.startIndex = index;
+ }
+ isVoidElement(name) {
+ return !this.options.xmlMode && voidElements.has(name);
+ }
+ /** @internal */
+ onopentagname(start, endIndex) {
+ this.endIndex = endIndex;
+ let name = this.getSlice(start, endIndex);
+ if (this.lowerCaseTagNames) {
+ name = name.toLowerCase();
+ }
+ this.emitOpenTag(name);
+ }
+ emitOpenTag(name) {
+ var _a, _b, _c, _d;
+ this.openTagStart = this.startIndex;
+ this.tagname = name;
+ const impliesClose = !this.options.xmlMode && openImpliesClose.get(name);
+ if (impliesClose) {
+ while (this.stack.length > 0 &&
+ impliesClose.has(this.stack[this.stack.length - 1])) {
+ const element = this.stack.pop();
+ (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);
+ }
+ }
+ if (!this.isVoidElement(name)) {
+ this.stack.push(name);
+ if (foreignContextElements.has(name)) {
+ this.foreignContext.push(true);
+ }
+ else if (htmlIntegrationElements.has(name)) {
+ this.foreignContext.push(false);
+ }
+ }
+ (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);
+ if (this.cbs.onopentag)
+ this.attribs = {};
+ }
+ endOpenTag(isImplied) {
+ var _a, _b;
+ this.startIndex = this.openTagStart;
+ if (this.attribs) {
+ (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);
+ this.attribs = null;
+ }
+ if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
+ this.cbs.onclosetag(this.tagname, true);
+ }
+ this.tagname = "";
+ }
+ /** @internal */
+ onopentagend(endIndex) {
+ this.endIndex = endIndex;
+ this.endOpenTag(false);
+ // Set `startIndex` for next node
+ this.startIndex = endIndex + 1;
+ }
+ /** @internal */
+ onclosetag(start, endIndex) {
+ var _a, _b, _c, _d, _e, _f;
+ this.endIndex = endIndex;
+ let name = this.getSlice(start, endIndex);
+ if (this.lowerCaseTagNames) {
+ name = name.toLowerCase();
+ }
+ if (foreignContextElements.has(name) ||
+ htmlIntegrationElements.has(name)) {
+ this.foreignContext.pop();
+ }
+ if (!this.isVoidElement(name)) {
+ const pos = this.stack.lastIndexOf(name);
+ if (pos !== -1) {
+ if (this.cbs.onclosetag) {
+ let count = this.stack.length - pos;
+ while (count--) {
+ // We know the stack has sufficient elements.
+ this.cbs.onclosetag(this.stack.pop(), count !== 0);
+ }
+ }
+ else
+ this.stack.length = pos;
+ }
+ else if (!this.options.xmlMode && name === "p") {
+ // Implicit open before close
+ this.emitOpenTag("p");
+ this.closeCurrentTag(true);
+ }
+ }
+ else if (!this.options.xmlMode && name === "br") {
+ // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.
+ (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, "br");
+ (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, "br", {}, true);
+ (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", false);
+ }
+ // Set `startIndex` for next node
+ this.startIndex = endIndex + 1;
+ }
+ /** @internal */
+ onselfclosingtag(endIndex) {
+ this.endIndex = endIndex;
+ if (this.options.xmlMode ||
+ this.options.recognizeSelfClosing ||
+ this.foreignContext[this.foreignContext.length - 1]) {
+ this.closeCurrentTag(false);
+ // Set `startIndex` for next node
+ this.startIndex = endIndex + 1;
+ }
+ else {
+ // Ignore the fact that the tag is self-closing.
+ this.onopentagend(endIndex);
+ }
+ }
+ closeCurrentTag(isOpenImplied) {
+ var _a, _b;
+ const name = this.tagname;
+ this.endOpenTag(isOpenImplied);
+ // Self-closing tags will be on the top of the stack
+ if (this.stack[this.stack.length - 1] === name) {
+ // If the opening tag isn't implied, the closing tag has to be implied.
+ (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);
+ this.stack.pop();
+ }
+ }
+ /** @internal */
+ onattribname(start, endIndex) {
+ this.startIndex = start;
+ const name = this.getSlice(start, endIndex);
+ this.attribname = this.lowerCaseAttributeNames
+ ? name.toLowerCase()
+ : name;
+ }
+ /** @internal */
+ onattribdata(start, endIndex) {
+ this.attribvalue += this.getSlice(start, endIndex);
+ }
+ /** @internal */
+ onattribentity(cp) {
+ this.attribvalue += fromCodePoint(cp);
+ }
+ /** @internal */
+ onattribend(quote, endIndex) {
+ var _a, _b;
+ this.endIndex = endIndex;
+ (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double
+ ? '"'
+ : quote === QuoteType.Single
+ ? "'"
+ : quote === QuoteType.NoValue
+ ? undefined
+ : null);
+ if (this.attribs &&
+ !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
+ this.attribs[this.attribname] = this.attribvalue;
+ }
+ this.attribvalue = "";
+ }
+ getInstructionName(value) {
+ const index = value.search(reNameEnd);
+ let name = index < 0 ? value : value.substr(0, index);
+ if (this.lowerCaseTagNames) {
+ name = name.toLowerCase();
+ }
+ return name;
+ }
+ /** @internal */
+ ondeclaration(start, endIndex) {
+ this.endIndex = endIndex;
+ const value = this.getSlice(start, endIndex);
+ if (this.cbs.onprocessinginstruction) {
+ const name = this.getInstructionName(value);
+ this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);
+ }
+ // Set `startIndex` for next node
+ this.startIndex = endIndex + 1;
+ }
+ /** @internal */
+ onprocessinginstruction(start, endIndex) {
+ this.endIndex = endIndex;
+ const value = this.getSlice(start, endIndex);
+ if (this.cbs.onprocessinginstruction) {
+ const name = this.getInstructionName(value);
+ this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);
+ }
+ // Set `startIndex` for next node
+ this.startIndex = endIndex + 1;
+ }
+ /** @internal */
+ oncomment(start, endIndex, offset) {
+ var _a, _b, _c, _d;
+ this.endIndex = endIndex;
+ (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));
+ (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
+ // Set `startIndex` for next node
+ this.startIndex = endIndex + 1;
+ }
+ /** @internal */
+ oncdata(start, endIndex, offset) {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
+ this.endIndex = endIndex;
+ const value = this.getSlice(start, endIndex - offset);
+ if (this.options.xmlMode || this.options.recognizeCDATA) {
+ (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);
+ (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);
+ (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);
+ }
+ else {
+ (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);
+ (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
+ }
+ // Set `startIndex` for next node
+ this.startIndex = endIndex + 1;
+ }
+ /** @internal */
+ onend() {
+ var _a, _b;
+ if (this.cbs.onclosetag) {
+ // Set the end index for all remaining tags
+ this.endIndex = this.startIndex;
+ for (let index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))
+ ;
+ }
+ (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);
+ }
+ /**
+ * Resets the parser to a blank state, ready to parse a new HTML document
+ */
+ reset() {
+ var _a, _b, _c, _d;
+ (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);
+ this.tokenizer.reset();
+ this.tagname = "";
+ this.attribname = "";
+ this.attribs = null;
+ this.stack.length = 0;
+ this.startIndex = 0;
+ this.endIndex = 0;
+ (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
+ this.buffers.length = 0;
+ this.bufferOffset = 0;
+ this.writeIndex = 0;
+ this.ended = false;
+ }
+ /**
+ * Resets the parser, then parses a complete document and
+ * pushes it to the handler.
+ *
+ * @param data Document to parse.
+ */
+ parseComplete(data) {
+ this.reset();
+ this.end(data);
+ }
+ getSlice(start, end) {
+ while (start - this.bufferOffset >= this.buffers[0].length) {
+ this.shiftBuffer();
+ }
+ let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);
+ while (end - this.bufferOffset > this.buffers[0].length) {
+ this.shiftBuffer();
+ slice += this.buffers[0].slice(0, end - this.bufferOffset);
+ }
+ return slice;
+ }
+ shiftBuffer() {
+ this.bufferOffset += this.buffers[0].length;
+ this.writeIndex--;
+ this.buffers.shift();
+ }
+ /**
+ * Parses a chunk of data and calls the corresponding callbacks.
+ *
+ * @param chunk Chunk to parse.
+ */
+ write(chunk) {
+ var _a, _b;
+ if (this.ended) {
+ (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(".write() after done!"));
+ return;
+ }
+ this.buffers.push(chunk);
+ if (this.tokenizer.running) {
+ this.tokenizer.write(chunk);
+ this.writeIndex++;
+ }
+ }
+ /**
+ * Parses the end of the buffer and clears the stack, calls onend.
+ *
+ * @param chunk Optional final chunk to parse.
+ */
+ end(chunk) {
+ var _a, _b;
+ if (this.ended) {
+ (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(".end() after done!"));
+ return;
+ }
+ if (chunk)
+ this.write(chunk);
+ this.ended = true;
+ this.tokenizer.end();
+ }
+ /**
+ * Pauses parsing. The parser won't emit events until `resume` is called.
+ */
+ pause() {
+ this.tokenizer.pause();
+ }
+ /**
+ * Resumes parsing after `pause` was called.
+ */
+ resume() {
+ this.tokenizer.resume();
+ while (this.tokenizer.running &&
+ this.writeIndex < this.buffers.length) {
+ this.tokenizer.write(this.buffers[this.writeIndex++]);
+ }
+ if (this.ended)
+ this.tokenizer.end();
+ }
+ /**
+ * Alias of `write`, for backwards compatibility.
+ *
+ * @param chunk Chunk to parse.
+ * @deprecated
+ */
+ parseChunk(chunk) {
+ this.write(chunk);
+ }
+ /**
+ * Alias of `end`, for backwards compatibility.
+ *
+ * @param chunk Optional final chunk to parse.
+ * @deprecated
+ */
+ done(chunk) {
+ this.end(chunk);
+ }
+}
+//# sourceMappingURL=Parser.js.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js.map
new file mode 100644
index 0000000..dfe9f34
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Parser.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Parser.js","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["Parser.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts
new file mode 100644
index 0000000..213adf2
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts
@@ -0,0 +1,143 @@
+export declare enum QuoteType {
+ NoValue = 0,
+ Unquoted = 1,
+ Single = 2,
+ Double = 3
+}
+export interface Callbacks {
+ onattribdata(start: number, endIndex: number): void;
+ onattribentity(codepoint: number): void;
+ onattribend(quote: QuoteType, endIndex: number): void;
+ onattribname(start: number, endIndex: number): void;
+ oncdata(start: number, endIndex: number, endOffset: number): void;
+ onclosetag(start: number, endIndex: number): void;
+ oncomment(start: number, endIndex: number, endOffset: number): void;
+ ondeclaration(start: number, endIndex: number): void;
+ onend(): void;
+ onopentagend(endIndex: number): void;
+ onopentagname(start: number, endIndex: number): void;
+ onprocessinginstruction(start: number, endIndex: number): void;
+ onselfclosingtag(endIndex: number): void;
+ ontext(start: number, endIndex: number): void;
+ ontextentity(codepoint: number): void;
+}
+export default class Tokenizer {
+ private readonly cbs;
+ /** The current state the tokenizer is in. */
+ private state;
+ /** The read buffer. */
+ private buffer;
+ /** The beginning of the section that is currently being read. */
+ private sectionStart;
+ /** The index within the buffer that we are currently looking at. */
+ private index;
+ /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */
+ private baseState;
+ /** For special parsing behavior inside of script and style tags. */
+ private isSpecial;
+ /** Indicates whether the tokenizer has been paused. */
+ running: boolean;
+ /** The offset of the current buffer. */
+ private offset;
+ private readonly xmlMode;
+ private readonly decodeEntities;
+ private readonly entityTrie;
+ constructor({ xmlMode, decodeEntities, }: {
+ xmlMode?: boolean;
+ decodeEntities?: boolean;
+ }, cbs: Callbacks);
+ reset(): void;
+ write(chunk: string): void;
+ end(): void;
+ pause(): void;
+ resume(): void;
+ /**
+ * The current index within all of the written data.
+ */
+ getIndex(): number;
+ /**
+ * The start of the current section.
+ */
+ getSectionStart(): number;
+ private stateText;
+ private currentSequence;
+ private sequenceIndex;
+ private stateSpecialStartSequence;
+ /** Look for an end tag. For <title> tags, also decode entities. */
+ private stateInSpecialTag;
+ private stateCDATASequence;
+ /**
+ * When we wait for one specific character, we can speed things up
+ * by skipping through the buffer until we find it.
+ *
+ * @returns Whether the character was found.
+ */
+ private fastForwardTo;
+ /**
+ * Comments and CDATA end with `-->` and `]]>`.
+ *
+ * Their common qualities are:
+ * - Their end sequences have a distinct character they start with.
+ * - That character is then repeated, so we have to check multiple repeats.
+ * - All characters but the start character of the sequence can be skipped.
+ */
+ private stateInCommentLike;
+ /**
+ * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.
+ *
+ * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).
+ * We allow anything that wouldn't end the tag.
+ */
+ private isTagStartChar;
+ private startSpecial;
+ private stateBeforeTagName;
+ private stateInTagName;
+ private stateBeforeClosingTagName;
+ private stateInClosingTagName;
+ private stateAfterClosingTagName;
+ private stateBeforeAttributeName;
+ private stateInSelfClosingTag;
+ private stateInAttributeName;
+ private stateAfterAttributeName;
+ private stateBeforeAttributeValue;
+ private handleInAttributeValue;
+ private stateInAttributeValueDoubleQuotes;
+ private stateInAttributeValueSingleQuotes;
+ private stateInAttributeValueNoQuotes;
+ private stateBeforeDeclaration;
+ private stateInDeclaration;
+ private stateInProcessingInstruction;
+ private stateBeforeComment;
+ private stateInSpecialComment;
+ private stateBeforeSpecialS;
+ private trieIndex;
+ private trieCurrent;
+ /** For named entities, the index of the value. For numeric entities, the code point. */
+ private entityResult;
+ private entityExcess;
+ private stateBeforeEntity;
+ private stateInNamedEntity;
+ private emitNamedEntity;
+ private stateBeforeNumericEntity;
+ private emitNumericEntity;
+ private stateInNumericEntity;
+ private stateInHexEntity;
+ private allowLegacyEntity;
+ /**
+ * Remove data that has already been consumed from the buffer.
+ */
+ private cleanup;
+ private shouldContinue;
+ /**
+ * Iterates through the buffer, calling the function corresponding to the current state.
+ *
+ * States that are more likely to be hit are higher up, as a performance improvement.
+ */
+ private parse;
+ private finish;
+ /** Handle any trailing data. */
+ private handleTrailingData;
+ private emitPartial;
+ private emitCodePoint;
+}
+//# sourceMappingURL=Tokenizer.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts.map
new file mode 100644
index 0000000..b5c06fe
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["Tokenizer.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js
new file mode 100644
index 0000000..a97456b
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js
@@ -0,0 +1,932 @@
+import { htmlDecodeTree, xmlDecodeTree, BinTrieFlags, determineBranch, replaceCodePoint, } from "entities/lib/decode.js";
+var CharCodes;
+(function (CharCodes) {
+ CharCodes[CharCodes["Tab"] = 9] = "Tab";
+ CharCodes[CharCodes["NewLine"] = 10] = "NewLine";
+ CharCodes[CharCodes["FormFeed"] = 12] = "FormFeed";
+ CharCodes[CharCodes["CarriageReturn"] = 13] = "CarriageReturn";
+ CharCodes[CharCodes["Space"] = 32] = "Space";
+ CharCodes[CharCodes["ExclamationMark"] = 33] = "ExclamationMark";
+ CharCodes[CharCodes["Number"] = 35] = "Number";
+ CharCodes[CharCodes["Amp"] = 38] = "Amp";
+ CharCodes[CharCodes["SingleQuote"] = 39] = "SingleQuote";
+ CharCodes[CharCodes["DoubleQuote"] = 34] = "DoubleQuote";
+ CharCodes[CharCodes["Dash"] = 45] = "Dash";
+ CharCodes[CharCodes["Slash"] = 47] = "Slash";
+ CharCodes[CharCodes["Zero"] = 48] = "Zero";
+ CharCodes[CharCodes["Nine"] = 57] = "Nine";
+ CharCodes[CharCodes["Semi"] = 59] = "Semi";
+ CharCodes[CharCodes["Lt"] = 60] = "Lt";
+ CharCodes[CharCodes["Eq"] = 61] = "Eq";
+ CharCodes[CharCodes["Gt"] = 62] = "Gt";
+ CharCodes[CharCodes["Questionmark"] = 63] = "Questionmark";
+ CharCodes[CharCodes["UpperA"] = 65] = "UpperA";
+ CharCodes[CharCodes["LowerA"] = 97] = "LowerA";
+ CharCodes[CharCodes["UpperF"] = 70] = "UpperF";
+ CharCodes[CharCodes["LowerF"] = 102] = "LowerF";
+ CharCodes[CharCodes["UpperZ"] = 90] = "UpperZ";
+ CharCodes[CharCodes["LowerZ"] = 122] = "LowerZ";
+ CharCodes[CharCodes["LowerX"] = 120] = "LowerX";
+ CharCodes[CharCodes["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
+})(CharCodes || (CharCodes = {}));
+/** All the states the tokenizer can be in. */
+var State;
+(function (State) {
+ State[State["Text"] = 1] = "Text";
+ State[State["BeforeTagName"] = 2] = "BeforeTagName";
+ State[State["InTagName"] = 3] = "InTagName";
+ State[State["InSelfClosingTag"] = 4] = "InSelfClosingTag";
+ State[State["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
+ State[State["InClosingTagName"] = 6] = "InClosingTagName";
+ State[State["AfterClosingTagName"] = 7] = "AfterClosingTagName";
+ // Attributes
+ State[State["BeforeAttributeName"] = 8] = "BeforeAttributeName";
+ State[State["InAttributeName"] = 9] = "InAttributeName";
+ State[State["AfterAttributeName"] = 10] = "AfterAttributeName";
+ State[State["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
+ State[State["InAttributeValueDq"] = 12] = "InAttributeValueDq";
+ State[State["InAttributeValueSq"] = 13] = "InAttributeValueSq";
+ State[State["InAttributeValueNq"] = 14] = "InAttributeValueNq";
+ // Declarations
+ State[State["BeforeDeclaration"] = 15] = "BeforeDeclaration";
+ State[State["InDeclaration"] = 16] = "InDeclaration";
+ // Processing instructions
+ State[State["InProcessingInstruction"] = 17] = "InProcessingInstruction";
+ // Comments & CDATA
+ State[State["BeforeComment"] = 18] = "BeforeComment";
+ State[State["CDATASequence"] = 19] = "CDATASequence";
+ State[State["InSpecialComment"] = 20] = "InSpecialComment";
+ State[State["InCommentLike"] = 21] = "InCommentLike";
+ // Special tags
+ State[State["BeforeSpecialS"] = 22] = "BeforeSpecialS";
+ State[State["SpecialStartSequence"] = 23] = "SpecialStartSequence";
+ State[State["InSpecialTag"] = 24] = "InSpecialTag";
+ State[State["BeforeEntity"] = 25] = "BeforeEntity";
+ State[State["BeforeNumericEntity"] = 26] = "BeforeNumericEntity";
+ State[State["InNamedEntity"] = 27] = "InNamedEntity";
+ State[State["InNumericEntity"] = 28] = "InNumericEntity";
+ State[State["InHexEntity"] = 29] = "InHexEntity";
+})(State || (State = {}));
+function isWhitespace(c) {
+ return (c === CharCodes.Space ||
+ c === CharCodes.NewLine ||
+ c === CharCodes.Tab ||
+ c === CharCodes.FormFeed ||
+ c === CharCodes.CarriageReturn);
+}
+function isEndOfTagSection(c) {
+ return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);
+}
+function isNumber(c) {
+ return c >= CharCodes.Zero && c <= CharCodes.Nine;
+}
+function isASCIIAlpha(c) {
+ return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||
+ (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));
+}
+function isHexDigit(c) {
+ return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||
+ (c >= CharCodes.LowerA && c <= CharCodes.LowerF));
+}
+export var QuoteType;
+(function (QuoteType) {
+ QuoteType[QuoteType["NoValue"] = 0] = "NoValue";
+ QuoteType[QuoteType["Unquoted"] = 1] = "Unquoted";
+ QuoteType[QuoteType["Single"] = 2] = "Single";
+ QuoteType[QuoteType["Double"] = 3] = "Double";
+})(QuoteType || (QuoteType = {}));
+/**
+ * Sequences used to match longer strings.
+ *
+ * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End
+ * sequences with an increased offset.
+ */
+const Sequences = {
+ Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),
+ CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),
+ CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),
+ ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),
+ StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),
+ TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`
+};
+export default class Tokenizer {
+ constructor({ xmlMode = false, decodeEntities = true, }, cbs) {
+ this.cbs = cbs;
+ /** The current state the tokenizer is in. */
+ this.state = State.Text;
+ /** The read buffer. */
+ this.buffer = "";
+ /** The beginning of the section that is currently being read. */
+ this.sectionStart = 0;
+ /** The index within the buffer that we are currently looking at. */
+ this.index = 0;
+ /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */
+ this.baseState = State.Text;
+ /** For special parsing behavior inside of script and style tags. */
+ this.isSpecial = false;
+ /** Indicates whether the tokenizer has been paused. */
+ this.running = true;
+ /** The offset of the current buffer. */
+ this.offset = 0;
+ this.currentSequence = undefined;
+ this.sequenceIndex = 0;
+ this.trieIndex = 0;
+ this.trieCurrent = 0;
+ /** For named entities, the index of the value. For numeric entities, the code point. */
+ this.entityResult = 0;
+ this.entityExcess = 0;
+ this.xmlMode = xmlMode;
+ this.decodeEntities = decodeEntities;
+ this.entityTrie = xmlMode ? xmlDecodeTree : htmlDecodeTree;
+ }
+ reset() {
+ this.state = State.Text;
+ this.buffer = "";
+ this.sectionStart = 0;
+ this.index = 0;
+ this.baseState = State.Text;
+ this.currentSequence = undefined;
+ this.running = true;
+ this.offset = 0;
+ }
+ write(chunk) {
+ this.offset += this.buffer.length;
+ this.buffer = chunk;
+ this.parse();
+ }
+ end() {
+ if (this.running)
+ this.finish();
+ }
+ pause() {
+ this.running = false;
+ }
+ resume() {
+ this.running = true;
+ if (this.index < this.buffer.length + this.offset) {
+ this.parse();
+ }
+ }
+ /**
+ * The current index within all of the written data.
+ */
+ getIndex() {
+ return this.index;
+ }
+ /**
+ * The start of the current section.
+ */
+ getSectionStart() {
+ return this.sectionStart;
+ }
+ stateText(c) {
+ if (c === CharCodes.Lt ||
+ (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {
+ if (this.index > this.sectionStart) {
+ this.cbs.ontext(this.sectionStart, this.index);
+ }
+ this.state = State.BeforeTagName;
+ this.sectionStart = this.index;
+ }
+ else if (this.decodeEntities && c === CharCodes.Amp) {
+ this.state = State.BeforeEntity;
+ }
+ }
+ stateSpecialStartSequence(c) {
+ const isEnd = this.sequenceIndex === this.currentSequence.length;
+ const isMatch = isEnd
+ ? // If we are at the end of the sequence, make sure the tag name has ended
+ isEndOfTagSection(c)
+ : // Otherwise, do a case-insensitive comparison
+ (c | 0x20) === this.currentSequence[this.sequenceIndex];
+ if (!isMatch) {
+ this.isSpecial = false;
+ }
+ else if (!isEnd) {
+ this.sequenceIndex++;
+ return;
+ }
+ this.sequenceIndex = 0;
+ this.state = State.InTagName;
+ this.stateInTagName(c);
+ }
+ /** Look for an end tag. For <title> tags, also decode entities. */
+ stateInSpecialTag(c) {
+ if (this.sequenceIndex === this.currentSequence.length) {
+ if (c === CharCodes.Gt || isWhitespace(c)) {
+ const endOfText = this.index - this.currentSequence.length;
+ if (this.sectionStart < endOfText) {
+ // Spoof the index so that reported locations match up.
+ const actualIndex = this.index;
+ this.index = endOfText;
+ this.cbs.ontext(this.sectionStart, endOfText);
+ this.index = actualIndex;
+ }
+ this.isSpecial = false;
+ this.sectionStart = endOfText + 2; // Skip over the `</`
+ this.stateInClosingTagName(c);
+ return; // We are done; skip the rest of the function.
+ }
+ this.sequenceIndex = 0;
+ }
+ if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {
+ this.sequenceIndex += 1;
+ }
+ else if (this.sequenceIndex === 0) {
+ if (this.currentSequence === Sequences.TitleEnd) {
+ // We have to parse entities in <title> tags.
+ if (this.decodeEntities && c === CharCodes.Amp) {
+ this.state = State.BeforeEntity;
+ }
+ }
+ else if (this.fastForwardTo(CharCodes.Lt)) {
+ // Outside of <title> tags, we can fast-forward.
+ this.sequenceIndex = 1;
+ }
+ }
+ else {
+ // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.
+ this.sequenceIndex = Number(c === CharCodes.Lt);
+ }
+ }
+ stateCDATASequence(c) {
+ if (c === Sequences.Cdata[this.sequenceIndex]) {
+ if (++this.sequenceIndex === Sequences.Cdata.length) {
+ this.state = State.InCommentLike;
+ this.currentSequence = Sequences.CdataEnd;
+ this.sequenceIndex = 0;
+ this.sectionStart = this.index + 1;
+ }
+ }
+ else {
+ this.sequenceIndex = 0;
+ this.state = State.InDeclaration;
+ this.stateInDeclaration(c); // Reconsume the character
+ }
+ }
+ /**
+ * When we wait for one specific character, we can speed things up
+ * by skipping through the buffer until we find it.
+ *
+ * @returns Whether the character was found.
+ */
+ fastForwardTo(c) {
+ while (++this.index < this.buffer.length + this.offset) {
+ if (this.buffer.charCodeAt(this.index - this.offset) === c) {
+ return true;
+ }
+ }
+ /*
+ * We increment the index at the end of the `parse` loop,
+ * so set it to `buffer.length - 1` here.
+ *
+ * TODO: Refactor `parse` to increment index before calling states.
+ */
+ this.index = this.buffer.length + this.offset - 1;
+ return false;
+ }
+ /**
+ * Comments and CDATA end with `-->` and `]]>`.
+ *
+ * Their common qualities are:
+ * - Their end sequences have a distinct character they start with.
+ * - That character is then repeated, so we have to check multiple repeats.
+ * - All characters but the start character of the sequence can be skipped.
+ */
+ stateInCommentLike(c) {
+ if (c === this.currentSequence[this.sequenceIndex]) {
+ if (++this.sequenceIndex === this.currentSequence.length) {
+ if (this.currentSequence === Sequences.CdataEnd) {
+ this.cbs.oncdata(this.sectionStart, this.index, 2);
+ }
+ else {
+ this.cbs.oncomment(this.sectionStart, this.index, 2);
+ }
+ this.sequenceIndex = 0;
+ this.sectionStart = this.index + 1;
+ this.state = State.Text;
+ }
+ }
+ else if (this.sequenceIndex === 0) {
+ // Fast-forward to the first character of the sequence
+ if (this.fastForwardTo(this.currentSequence[0])) {
+ this.sequenceIndex = 1;
+ }
+ }
+ else if (c !== this.currentSequence[this.sequenceIndex - 1]) {
+ // Allow long sequences, eg. --->, ]]]>
+ this.sequenceIndex = 0;
+ }
+ }
+ /**
+ * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.
+ *
+ * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).
+ * We allow anything that wouldn't end the tag.
+ */
+ isTagStartChar(c) {
+ return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);
+ }
+ startSpecial(sequence, offset) {
+ this.isSpecial = true;
+ this.currentSequence = sequence;
+ this.sequenceIndex = offset;
+ this.state = State.SpecialStartSequence;
+ }
+ stateBeforeTagName(c) {
+ if (c === CharCodes.ExclamationMark) {
+ this.state = State.BeforeDeclaration;
+ this.sectionStart = this.index + 1;
+ }
+ else if (c === CharCodes.Questionmark) {
+ this.state = State.InProcessingInstruction;
+ this.sectionStart = this.index + 1;
+ }
+ else if (this.isTagStartChar(c)) {
+ const lower = c | 0x20;
+ this.sectionStart = this.index;
+ if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {
+ this.startSpecial(Sequences.TitleEnd, 3);
+ }
+ else {
+ this.state =
+ !this.xmlMode && lower === Sequences.ScriptEnd[2]
+ ? State.BeforeSpecialS
+ : State.InTagName;
+ }
+ }
+ else if (c === CharCodes.Slash) {
+ this.state = State.BeforeClosingTagName;
+ }
+ else {
+ this.state = State.Text;
+ this.stateText(c);
+ }
+ }
+ stateInTagName(c) {
+ if (isEndOfTagSection(c)) {
+ this.cbs.onopentagname(this.sectionStart, this.index);
+ this.sectionStart = -1;
+ this.state = State.BeforeAttributeName;
+ this.stateBeforeAttributeName(c);
+ }
+ }
+ stateBeforeClosingTagName(c) {
+ if (isWhitespace(c)) {
+ // Ignore
+ }
+ else if (c === CharCodes.Gt) {
+ this.state = State.Text;
+ }
+ else {
+ this.state = this.isTagStartChar(c)
+ ? State.InClosingTagName
+ : State.InSpecialComment;
+ this.sectionStart = this.index;
+ }
+ }
+ stateInClosingTagName(c) {
+ if (c === CharCodes.Gt || isWhitespace(c)) {
+ this.cbs.onclosetag(this.sectionStart, this.index);
+ this.sectionStart = -1;
+ this.state = State.AfterClosingTagName;
+ this.stateAfterClosingTagName(c);
+ }
+ }
+ stateAfterClosingTagName(c) {
+ // Skip everything until ">"
+ if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
+ this.state = State.Text;
+ this.baseState = State.Text;
+ this.sectionStart = this.index + 1;
+ }
+ }
+ stateBeforeAttributeName(c) {
+ if (c === CharCodes.Gt) {
+ this.cbs.onopentagend(this.index);
+ if (this.isSpecial) {
+ this.state = State.InSpecialTag;
+ this.sequenceIndex = 0;
+ }
+ else {
+ this.state = State.Text;
+ }
+ this.baseState = this.state;
+ this.sectionStart = this.index + 1;
+ }
+ else if (c === CharCodes.Slash) {
+ this.state = State.InSelfClosingTag;
+ }
+ else if (!isWhitespace(c)) {
+ this.state = State.InAttributeName;
+ this.sectionStart = this.index;
+ }
+ }
+ stateInSelfClosingTag(c) {
+ if (c === CharCodes.Gt) {
+ this.cbs.onselfclosingtag(this.index);
+ this.state = State.Text;
+ this.baseState = State.Text;
+ this.sectionStart = this.index + 1;
+ this.isSpecial = false; // Reset special state, in case of self-closing special tags
+ }
+ else if (!isWhitespace(c)) {
+ this.state = State.BeforeAttributeName;
+ this.stateBeforeAttributeName(c);
+ }
+ }
+ stateInAttributeName(c) {
+ if (c === CharCodes.Eq || isEndOfTagSection(c)) {
+ this.cbs.onattribname(this.sectionStart, this.index);
+ this.sectionStart = -1;
+ this.state = State.AfterAttributeName;
+ this.stateAfterAttributeName(c);
+ }
+ }
+ stateAfterAttributeName(c) {
+ if (c === CharCodes.Eq) {
+ this.state = State.BeforeAttributeValue;
+ }
+ else if (c === CharCodes.Slash || c === CharCodes.Gt) {
+ this.cbs.onattribend(QuoteType.NoValue, this.index);
+ this.state = State.BeforeAttributeName;
+ this.stateBeforeAttributeName(c);
+ }
+ else if (!isWhitespace(c)) {
+ this.cbs.onattribend(QuoteType.NoValue, this.index);
+ this.state = State.InAttributeName;
+ this.sectionStart = this.index;
+ }
+ }
+ stateBeforeAttributeValue(c) {
+ if (c === CharCodes.DoubleQuote) {
+ this.state = State.InAttributeValueDq;
+ this.sectionStart = this.index + 1;
+ }
+ else if (c === CharCodes.SingleQuote) {
+ this.state = State.InAttributeValueSq;
+ this.sectionStart = this.index + 1;
+ }
+ else if (!isWhitespace(c)) {
+ this.sectionStart = this.index;
+ this.state = State.InAttributeValueNq;
+ this.stateInAttributeValueNoQuotes(c); // Reconsume token
+ }
+ }
+ handleInAttributeValue(c, quote) {
+ if (c === quote ||
+ (!this.decodeEntities && this.fastForwardTo(quote))) {
+ this.cbs.onattribdata(this.sectionStart, this.index);
+ this.sectionStart = -1;
+ this.cbs.onattribend(quote === CharCodes.DoubleQuote
+ ? QuoteType.Double
+ : QuoteType.Single, this.index);
+ this.state = State.BeforeAttributeName;
+ }
+ else if (this.decodeEntities && c === CharCodes.Amp) {
+ this.baseState = this.state;
+ this.state = State.BeforeEntity;
+ }
+ }
+ stateInAttributeValueDoubleQuotes(c) {
+ this.handleInAttributeValue(c, CharCodes.DoubleQuote);
+ }
+ stateInAttributeValueSingleQuotes(c) {
+ this.handleInAttributeValue(c, CharCodes.SingleQuote);
+ }
+ stateInAttributeValueNoQuotes(c) {
+ if (isWhitespace(c) || c === CharCodes.Gt) {
+ this.cbs.onattribdata(this.sectionStart, this.index);
+ this.sectionStart = -1;
+ this.cbs.onattribend(QuoteType.Unquoted, this.index);
+ this.state = State.BeforeAttributeName;
+ this.stateBeforeAttributeName(c);
+ }
+ else if (this.decodeEntities && c === CharCodes.Amp) {
+ this.baseState = this.state;
+ this.state = State.BeforeEntity;
+ }
+ }
+ stateBeforeDeclaration(c) {
+ if (c === CharCodes.OpeningSquareBracket) {
+ this.state = State.CDATASequence;
+ this.sequenceIndex = 0;
+ }
+ else {
+ this.state =
+ c === CharCodes.Dash
+ ? State.BeforeComment
+ : State.InDeclaration;
+ }
+ }
+ stateInDeclaration(c) {
+ if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
+ this.cbs.ondeclaration(this.sectionStart, this.index);
+ this.state = State.Text;
+ this.sectionStart = this.index + 1;
+ }
+ }
+ stateInProcessingInstruction(c) {
+ if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
+ this.cbs.onprocessinginstruction(this.sectionStart, this.index);
+ this.state = State.Text;
+ this.sectionStart = this.index + 1;
+ }
+ }
+ stateBeforeComment(c) {
+ if (c === CharCodes.Dash) {
+ this.state = State.InCommentLike;
+ this.currentSequence = Sequences.CommentEnd;
+ // Allow short comments (eg. <!-->)
+ this.sequenceIndex = 2;
+ this.sectionStart = this.index + 1;
+ }
+ else {
+ this.state = State.InDeclaration;
+ }
+ }
+ stateInSpecialComment(c) {
+ if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {
+ this.cbs.oncomment(this.sectionStart, this.index, 0);
+ this.state = State.Text;
+ this.sectionStart = this.index + 1;
+ }
+ }
+ stateBeforeSpecialS(c) {
+ const lower = c | 0x20;
+ if (lower === Sequences.ScriptEnd[3]) {
+ this.startSpecial(Sequences.ScriptEnd, 4);
+ }
+ else if (lower === Sequences.StyleEnd[3]) {
+ this.startSpecial(Sequences.StyleEnd, 4);
+ }
+ else {
+ this.state = State.InTagName;
+ this.stateInTagName(c); // Consume the token again
+ }
+ }
+ stateBeforeEntity(c) {
+ // Start excess with 1 to include the '&'
+ this.entityExcess = 1;
+ this.entityResult = 0;
+ if (c === CharCodes.Number) {
+ this.state = State.BeforeNumericEntity;
+ }
+ else if (c === CharCodes.Amp) {
+ // We have two `&` characters in a row. Stay in the current state.
+ }
+ else {
+ this.trieIndex = 0;
+ this.trieCurrent = this.entityTrie[0];
+ this.state = State.InNamedEntity;
+ this.stateInNamedEntity(c);
+ }
+ }
+ stateInNamedEntity(c) {
+ this.entityExcess += 1;
+ this.trieIndex = determineBranch(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);
+ if (this.trieIndex < 0) {
+ this.emitNamedEntity();
+ this.index--;
+ return;
+ }
+ this.trieCurrent = this.entityTrie[this.trieIndex];
+ const masked = this.trieCurrent & BinTrieFlags.VALUE_LENGTH;
+ // If the branch is a value, store it and continue
+ if (masked) {
+ // The mask is the number of bytes of the value, including the current byte.
+ const valueLength = (masked >> 14) - 1;
+ // If we have a legacy entity while parsing strictly, just skip the number of bytes
+ if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {
+ this.trieIndex += valueLength;
+ }
+ else {
+ // Add 1 as we have already incremented the excess
+ const entityStart = this.index - this.entityExcess + 1;
+ if (entityStart > this.sectionStart) {
+ this.emitPartial(this.sectionStart, entityStart);
+ }
+ // If this is a surrogate pair, consume the next two bytes
+ this.entityResult = this.trieIndex;
+ this.trieIndex += valueLength;
+ this.entityExcess = 0;
+ this.sectionStart = this.index + 1;
+ if (valueLength === 0) {
+ this.emitNamedEntity();
+ }
+ }
+ }
+ }
+ emitNamedEntity() {
+ this.state = this.baseState;
+ if (this.entityResult === 0) {
+ return;
+ }
+ const valueLength = (this.entityTrie[this.entityResult] & BinTrieFlags.VALUE_LENGTH) >>
+ 14;
+ switch (valueLength) {
+ case 1: {
+ this.emitCodePoint(this.entityTrie[this.entityResult] &
+ ~BinTrieFlags.VALUE_LENGTH);
+ break;
+ }
+ case 2: {
+ this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
+ break;
+ }
+ case 3: {
+ this.emitCodePoint(this.entityTrie[this.entityResult + 1]);
+ this.emitCodePoint(this.entityTrie[this.entityResult + 2]);
+ }
+ }
+ }
+ stateBeforeNumericEntity(c) {
+ if ((c | 0x20) === CharCodes.LowerX) {
+ this.entityExcess++;
+ this.state = State.InHexEntity;
+ }
+ else {
+ this.state = State.InNumericEntity;
+ this.stateInNumericEntity(c);
+ }
+ }
+ emitNumericEntity(strict) {
+ const entityStart = this.index - this.entityExcess - 1;
+ const numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);
+ if (numberStart !== this.index) {
+ // Emit leading data if any
+ if (entityStart > this.sectionStart) {
+ this.emitPartial(this.sectionStart, entityStart);
+ }
+ this.sectionStart = this.index + Number(strict);
+ this.emitCodePoint(replaceCodePoint(this.entityResult));
+ }
+ this.state = this.baseState;
+ }
+ stateInNumericEntity(c) {
+ if (c === CharCodes.Semi) {
+ this.emitNumericEntity(true);
+ }
+ else if (isNumber(c)) {
+ this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);
+ this.entityExcess++;
+ }
+ else {
+ if (this.allowLegacyEntity()) {
+ this.emitNumericEntity(false);
+ }
+ else {
+ this.state = this.baseState;
+ }
+ this.index--;
+ }
+ }
+ stateInHexEntity(c) {
+ if (c === CharCodes.Semi) {
+ this.emitNumericEntity(true);
+ }
+ else if (isNumber(c)) {
+ this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);
+ this.entityExcess++;
+ }
+ else if (isHexDigit(c)) {
+ this.entityResult =
+ this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);
+ this.entityExcess++;
+ }
+ else {
+ if (this.allowLegacyEntity()) {
+ this.emitNumericEntity(false);
+ }
+ else {
+ this.state = this.baseState;
+ }
+ this.index--;
+ }
+ }
+ allowLegacyEntity() {
+ return (!this.xmlMode &&
+ (this.baseState === State.Text ||
+ this.baseState === State.InSpecialTag));
+ }
+ /**
+ * Remove data that has already been consumed from the buffer.
+ */
+ cleanup() {
+ // If we are inside of text or attributes, emit what we already have.
+ if (this.running && this.sectionStart !== this.index) {
+ if (this.state === State.Text ||
+ (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {
+ this.cbs.ontext(this.sectionStart, this.index);
+ this.sectionStart = this.index;
+ }
+ else if (this.state === State.InAttributeValueDq ||
+ this.state === State.InAttributeValueSq ||
+ this.state === State.InAttributeValueNq) {
+ this.cbs.onattribdata(this.sectionStart, this.index);
+ this.sectionStart = this.index;
+ }
+ }
+ }
+ shouldContinue() {
+ return this.index < this.buffer.length + this.offset && this.running;
+ }
+ /**
+ * Iterates through the buffer, calling the function corresponding to the current state.
+ *
+ * States that are more likely to be hit are higher up, as a performance improvement.
+ */
+ parse() {
+ while (this.shouldContinue()) {
+ const c = this.buffer.charCodeAt(this.index - this.offset);
+ switch (this.state) {
+ case State.Text: {
+ this.stateText(c);
+ break;
+ }
+ case State.SpecialStartSequence: {
+ this.stateSpecialStartSequence(c);
+ break;
+ }
+ case State.InSpecialTag: {
+ this.stateInSpecialTag(c);
+ break;
+ }
+ case State.CDATASequence: {
+ this.stateCDATASequence(c);
+ break;
+ }
+ case State.InAttributeValueDq: {
+ this.stateInAttributeValueDoubleQuotes(c);
+ break;
+ }
+ case State.InAttributeName: {
+ this.stateInAttributeName(c);
+ break;
+ }
+ case State.InCommentLike: {
+ this.stateInCommentLike(c);
+ break;
+ }
+ case State.InSpecialComment: {
+ this.stateInSpecialComment(c);
+ break;
+ }
+ case State.BeforeAttributeName: {
+ this.stateBeforeAttributeName(c);
+ break;
+ }
+ case State.InTagName: {
+ this.stateInTagName(c);
+ break;
+ }
+ case State.InClosingTagName: {
+ this.stateInClosingTagName(c);
+ break;
+ }
+ case State.BeforeTagName: {
+ this.stateBeforeTagName(c);
+ break;
+ }
+ case State.AfterAttributeName: {
+ this.stateAfterAttributeName(c);
+ break;
+ }
+ case State.InAttributeValueSq: {
+ this.stateInAttributeValueSingleQuotes(c);
+ break;
+ }
+ case State.BeforeAttributeValue: {
+ this.stateBeforeAttributeValue(c);
+ break;
+ }
+ case State.BeforeClosingTagName: {
+ this.stateBeforeClosingTagName(c);
+ break;
+ }
+ case State.AfterClosingTagName: {
+ this.stateAfterClosingTagName(c);
+ break;
+ }
+ case State.BeforeSpecialS: {
+ this.stateBeforeSpecialS(c);
+ break;
+ }
+ case State.InAttributeValueNq: {
+ this.stateInAttributeValueNoQuotes(c);
+ break;
+ }
+ case State.InSelfClosingTag: {
+ this.stateInSelfClosingTag(c);
+ break;
+ }
+ case State.InDeclaration: {
+ this.stateInDeclaration(c);
+ break;
+ }
+ case State.BeforeDeclaration: {
+ this.stateBeforeDeclaration(c);
+ break;
+ }
+ case State.BeforeComment: {
+ this.stateBeforeComment(c);
+ break;
+ }
+ case State.InProcessingInstruction: {
+ this.stateInProcessingInstruction(c);
+ break;
+ }
+ case State.InNamedEntity: {
+ this.stateInNamedEntity(c);
+ break;
+ }
+ case State.BeforeEntity: {
+ this.stateBeforeEntity(c);
+ break;
+ }
+ case State.InHexEntity: {
+ this.stateInHexEntity(c);
+ break;
+ }
+ case State.InNumericEntity: {
+ this.stateInNumericEntity(c);
+ break;
+ }
+ default: {
+ // `this._state === State.BeforeNumericEntity`
+ this.stateBeforeNumericEntity(c);
+ }
+ }
+ this.index++;
+ }
+ this.cleanup();
+ }
+ finish() {
+ if (this.state === State.InNamedEntity) {
+ this.emitNamedEntity();
+ }
+ // If there is remaining data, emit it in a reasonable way
+ if (this.sectionStart < this.index) {
+ this.handleTrailingData();
+ }
+ this.cbs.onend();
+ }
+ /** Handle any trailing data. */
+ handleTrailingData() {
+ const endIndex = this.buffer.length + this.offset;
+ if (this.state === State.InCommentLike) {
+ if (this.currentSequence === Sequences.CdataEnd) {
+ this.cbs.oncdata(this.sectionStart, endIndex, 0);
+ }
+ else {
+ this.cbs.oncomment(this.sectionStart, endIndex, 0);
+ }
+ }
+ else if (this.state === State.InNumericEntity &&
+ this.allowLegacyEntity()) {
+ this.emitNumericEntity(false);
+ // All trailing data will have been consumed
+ }
+ else if (this.state === State.InHexEntity &&
+ this.allowLegacyEntity()) {
+ this.emitNumericEntity(false);
+ // All trailing data will have been consumed
+ }
+ else if (this.state === State.InTagName ||
+ this.state === State.BeforeAttributeName ||
+ this.state === State.BeforeAttributeValue ||
+ this.state === State.AfterAttributeName ||
+ this.state === State.InAttributeName ||
+ this.state === State.InAttributeValueSq ||
+ this.state === State.InAttributeValueDq ||
+ this.state === State.InAttributeValueNq ||
+ this.state === State.InClosingTagName) {
+ /*
+ * If we are currently in an opening or closing tag, us not calling the
+ * respective callback signals that the tag should be ignored.
+ */
+ }
+ else {
+ this.cbs.ontext(this.sectionStart, endIndex);
+ }
+ }
+ emitPartial(start, endIndex) {
+ if (this.baseState !== State.Text &&
+ this.baseState !== State.InSpecialTag) {
+ this.cbs.onattribdata(start, endIndex);
+ }
+ else {
+ this.cbs.ontext(start, endIndex);
+ }
+ }
+ emitCodePoint(cp) {
+ if (this.baseState !== State.Text &&
+ this.baseState !== State.InSpecialTag) {
+ this.cbs.onattribentity(cp);
+ }
+ else {
+ this.cbs.ontextentity(cp);
+ }
+ }
+}
+//# sourceMappingURL=Tokenizer.js.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js.map
new file mode 100644
index 0000000..2c52baf
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/Tokenizer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Tokenizer.js","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["Tokenizer.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts
new file mode 100644
index 0000000..c3090f7
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts
@@ -0,0 +1,17 @@
+/// <reference types="node" />
+/// <reference types="node" />
+import { Handler, ParserOptions } from "./Parser.js";
+import { Writable } from "node:stream";
+/**
+ * WritableStream makes the `Parser` interface available as a NodeJS stream.
+ *
+ * @see Parser
+ */
+export declare class WritableStream extends Writable {
+ private readonly _parser;
+ private readonly _decoder;
+ constructor(cbs: Partial<Handler>, options?: ParserOptions);
+ _write(chunk: string | Buffer, encoding: string, callback: () => void): void;
+ _final(callback: () => void): void;
+}
+//# sourceMappingURL=WritableStream.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts.map
new file mode 100644
index 0000000..bed24b6
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"WritableStream.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["WritableStream.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAU,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQvC;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;gBAEpC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa;IAKjD,MAAM,CACX,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,IAAI,GACrB,IAAI;IAOE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;CAI9C"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js
new file mode 100644
index 0000000..bf6093e
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js
@@ -0,0 +1,32 @@
+import { Parser } from "./Parser.js";
+/*
+ * NOTE: If either of these two imports produces a type error,
+ * please update your @types/node dependency!
+ */
+import { Writable } from "node:stream";
+import { StringDecoder } from "node:string_decoder";
+// Following the example in https://nodejs.org/api/stream.html#stream_decoding_buffers_in_a_writable_stream
+function isBuffer(_chunk, encoding) {
+ return encoding === "buffer";
+}
+/**
+ * WritableStream makes the `Parser` interface available as a NodeJS stream.
+ *
+ * @see Parser
+ */
+export class WritableStream extends Writable {
+ constructor(cbs, options) {
+ super({ decodeStrings: false });
+ this._decoder = new StringDecoder();
+ this._parser = new Parser(cbs, options);
+ }
+ _write(chunk, encoding, callback) {
+ this._parser.write(isBuffer(chunk, encoding) ? this._decoder.write(chunk) : chunk);
+ callback();
+ }
+ _final(callback) {
+ this._parser.end(this._decoder.end());
+ callback();
+ }
+}
+//# sourceMappingURL=WritableStream.js.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js.map
new file mode 100644
index 0000000..fc7290a
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/WritableStream.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"WritableStream.js","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["WritableStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,MAAM,aAAa,CAAC;AAC7D;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,2GAA2G;AAC3G,SAAS,QAAQ,CAAC,MAAuB,EAAE,QAAgB;IACvD,OAAO,QAAQ,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAIxC,YAAY,GAAqB,EAAE,OAAuB;QACtD,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAHnB,aAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;QAI5C,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEQ,MAAM,CACX,KAAsB,EACtB,QAAgB,EAChB,QAAoB;QAEpB,IAAI,CAAC,OAAO,CAAC,KAAK,CACd,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CACjE,CAAC;QACF,QAAQ,EAAE,CAAC;IACf,CAAC;IAEQ,MAAM,CAAC,QAAoB;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACtC,QAAQ,EAAE,CAAC;IACf,CAAC;CACJ"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts
new file mode 100644
index 0000000..9f08885
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts
@@ -0,0 +1,44 @@
+import { Parser, ParserOptions } from "./Parser.js";
+export { Parser, type ParserOptions } from "./Parser.js";
+import { DomHandlerOptions, ChildNode, Element, Document } from "domhandler";
+export { DomHandler, DomHandler as DefaultHandler, type DomHandlerOptions, } from "domhandler";
+export type Options = ParserOptions & DomHandlerOptions;
+/**
+ * Parses the data, returns the resulting document.
+ *
+ * @param data The data that should be parsed.
+ * @param options Optional options for the parser and DOM builder.
+ */
+export declare function parseDocument(data: string, options?: Options): Document;
+/**
+ * Parses data, returns an array of the root nodes.
+ *
+ * Note that the root nodes still have a `Document` node as their parent.
+ * Use `parseDocument` to get the `Document` node instead.
+ *
+ * @param data The data that should be parsed.
+ * @param options Optional options for the parser and DOM builder.
+ * @deprecated Use `parseDocument` instead.
+ */
+export declare function parseDOM(data: string, options?: Options): ChildNode[];
+/**
+ * Creates a parser instance, with an attached DOM handler.
+ *
+ * @param callback A callback that will be called once parsing has been completed.
+ * @param options Optional options for the parser and DOM builder.
+ * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.
+ */
+export declare function createDomStream(callback: (error: Error | null, dom: ChildNode[]) => void, options?: Options, elementCallback?: (element: Element) => void): Parser;
+export { default as Tokenizer, type Callbacks as TokenizerCallbacks, } from "./Tokenizer.js";
+export * as ElementType from "domelementtype";
+import { Feed } from "domutils";
+export { getFeed } from "domutils";
+/**
+ * Parse a feed.
+ *
+ * @param feed The feed that should be parsed, as a string.
+ * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.
+ */
+export declare function parseFeed(feed: string, options?: Options): Feed | null;
+export * as DomUtils from "domutils";
+//# sourceMappingURL=index.d.ts.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts.map
new file mode 100644
index 0000000..4b15dd9
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAEH,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,QAAQ,EACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,UAAU,EAEV,UAAU,IAAI,cAAc,EAC5B,KAAK,iBAAiB,GACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAIxD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAIvE;AACD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,CAErE;AACD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,IAAI,EACzD,OAAO,CAAC,EAAE,OAAO,EACjB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAC7C,MAAM,CAGR;AAED,OAAO,EACH,OAAO,IAAI,SAAS,EACpB,KAAK,SAAS,IAAI,kBAAkB,GACvC,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAW,IAAI,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC;;;;;GAKG;AACH,wBAAgB,SAAS,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,OAAiC,GAC3C,IAAI,GAAG,IAAI,CAEb;AAED,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js
new file mode 100644
index 0000000..949c914
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js
@@ -0,0 +1,62 @@
+import { Parser } from "./Parser.js";
+export { Parser } from "./Parser.js";
+import { DomHandler, } from "domhandler";
+export { DomHandler,
+// Old name for DomHandler
+DomHandler as DefaultHandler, } from "domhandler";
+// Helper methods
+/**
+ * Parses the data, returns the resulting document.
+ *
+ * @param data The data that should be parsed.
+ * @param options Optional options for the parser and DOM builder.
+ */
+export function parseDocument(data, options) {
+ const handler = new DomHandler(undefined, options);
+ new Parser(handler, options).end(data);
+ return handler.root;
+}
+/**
+ * Parses data, returns an array of the root nodes.
+ *
+ * Note that the root nodes still have a `Document` node as their parent.
+ * Use `parseDocument` to get the `Document` node instead.
+ *
+ * @param data The data that should be parsed.
+ * @param options Optional options for the parser and DOM builder.
+ * @deprecated Use `parseDocument` instead.
+ */
+export function parseDOM(data, options) {
+ return parseDocument(data, options).children;
+}
+/**
+ * Creates a parser instance, with an attached DOM handler.
+ *
+ * @param callback A callback that will be called once parsing has been completed.
+ * @param options Optional options for the parser and DOM builder.
+ * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.
+ */
+export function createDomStream(callback, options, elementCallback) {
+ const handler = new DomHandler(callback, options, elementCallback);
+ return new Parser(handler, options);
+}
+export { default as Tokenizer, } from "./Tokenizer.js";
+/*
+ * All of the following exports exist for backwards-compatibility.
+ * They should probably be removed eventually.
+ */
+export * as ElementType from "domelementtype";
+import { getFeed } from "domutils";
+export { getFeed } from "domutils";
+const parseFeedDefaultOptions = { xmlMode: true };
+/**
+ * Parse a feed.
+ *
+ * @param feed The feed that should be parsed, as a string.
+ * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.
+ */
+export function parseFeed(feed, options = parseFeedDefaultOptions) {
+ return getFeed(parseDOM(feed, options));
+}
+export * as DomUtils from "domutils";
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js.map b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js.map
new file mode 100644
index 0000000..3aa7317
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/fb55/htmlparser2/c123610e003a1eaebc61febed01cabb6e41eb658/src/","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAEzD,OAAO,EACH,UAAU,GAKb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,UAAU;AACV,0BAA0B;AAC1B,UAAU,IAAI,cAAc,GAE/B,MAAM,YAAY,CAAC;AAIpB,iBAAiB;AAEjB;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAiB;IACzD,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC,IAAI,CAAC;AACxB,CAAC;AACD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,OAAiB;IACpD,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;AACjD,CAAC;AACD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC3B,QAAyD,EACzD,OAAiB,EACjB,eAA4C;IAE5C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IACnE,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,OAAO,EACH,OAAO,IAAI,SAAS,GAEvB,MAAM,gBAAgB,CAAC;AAExB;;;GAGG;AACH,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAQ,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,uBAAuB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACrB,IAAY,EACZ,UAAmB,uBAAuB;IAE1C,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC"} \ No newline at end of file
diff --git a/includes/external/addressbook/node_modules/htmlparser2/lib/esm/package.json b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/package.json
new file mode 100644
index 0000000..089153b
--- /dev/null
+++ b/includes/external/addressbook/node_modules/htmlparser2/lib/esm/package.json
@@ -0,0 +1 @@
+{"type":"module"}