@websolutespa/bom-next 3.0.2 → 4.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -7
- package/README.md +28 -0
- package/dist/_virtual/{_rolldown/runtime.js → rolldown_runtime.js} +7 -4
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/client.js +17 -6
- package/dist/client/client.js.map +1 -1
- package/dist/client/extra.d.ts +3 -3
- package/dist/client/extra.d.ts.map +1 -1
- package/dist/client/extra.js +10 -5
- package/dist/client/extra.js.map +1 -1
- package/dist/client/label.d.ts +3 -3
- package/dist/client/label.d.ts.map +1 -1
- package/dist/client/label.js +10 -5
- package/dist/client/label.js.map +1 -1
- package/dist/client/layout.d.ts +3 -3
- package/dist/client/layout.d.ts.map +1 -1
- package/dist/client/layout.js +10 -5
- package/dist/client/layout.js.map +1 -1
- package/dist/client/local.collection.d.ts.map +1 -1
- package/dist/client/local.collection.js +4 -2
- package/dist/client/local.collection.js.map +1 -1
- package/dist/client/metadata.d.ts +3 -3
- package/dist/client/metadata.d.ts.map +1 -1
- package/dist/client/metadata.js +48 -40
- package/dist/client/metadata.js.map +1 -1
- package/dist/client/page.d.ts +3 -3
- package/dist/client/page.d.ts.map +1 -1
- package/dist/client/page.js +10 -5
- package/dist/client/page.js.map +1 -1
- package/dist/client/useApi.d.ts +7 -7
- package/dist/client/useApi.d.ts.map +1 -1
- package/dist/client/useApi.js +2 -1
- package/dist/client/useApi.js.map +1 -1
- package/dist/client/useCollectionApi.d.ts +6 -6
- package/dist/client/useCollectionApi.d.ts.map +1 -1
- package/dist/client/useCollectionApi.js +4 -2
- package/dist/client/useCollectionApi.js.map +1 -1
- package/dist/client/useExtra.d.ts.map +1 -1
- package/dist/client/useExtra.js +5 -2
- package/dist/client/useExtra.js.map +1 -1
- package/dist/client/useHttp.d.ts.map +1 -1
- package/dist/client/useHttp.js +9 -6
- package/dist/client/useHttp.js.map +1 -1
- package/dist/client/useLabel.d.ts.map +1 -1
- package/dist/client/useLabel.js +5 -2
- package/dist/client/useLabel.js.map +1 -1
- package/dist/client/useLayout.d.ts.map +1 -1
- package/dist/client/useLayout.js +5 -2
- package/dist/client/useLayout.js.map +1 -1
- package/dist/client/useLink.d.ts.map +1 -1
- package/dist/client/useLink.js +7 -3
- package/dist/client/useLink.js.map +1 -1
- package/dist/client/useMetaData.d.ts.map +1 -1
- package/dist/client/useMetaData.js +5 -2
- package/dist/client/useMetaData.js.map +1 -1
- package/dist/client/usePage.d.ts.map +1 -1
- package/dist/client/usePage.js +5 -2
- package/dist/client/usePage.js.map +1 -1
- package/dist/client/useUser.d.ts.map +1 -1
- package/dist/client/useUser.js +5 -2
- package/dist/client/useUser.js.map +1 -1
- package/dist/client/user.d.ts.map +1 -1
- package/dist/client/user.js +17 -11
- package/dist/client/user.js.map +1 -1
- package/dist/exports/client.js +2 -1
- package/dist/exports/instrumentation.js +2 -1
- package/dist/exports/proxy.js +2 -1
- package/dist/exports/server.d.ts +5 -4
- package/dist/exports/server.js +7 -5
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -2
- package/dist/instrumentation/client.d.ts.map +1 -1
- package/dist/instrumentation/client.js +2 -1
- package/dist/instrumentation/client.js.map +1 -1
- package/dist/instrumentation/sentry/capture.requestError.js +4 -1
- package/dist/instrumentation/sentry/capture.requestError.js.map +1 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js +2 -1
- package/dist/instrumentation/sentry/capture.routerTransitionStart.js.map +1 -1
- package/dist/instrumentation/sentry/config.client.js +10 -2
- package/dist/instrumentation/sentry/config.client.js.map +1 -0
- package/dist/instrumentation/sentry/config.edge.js +10 -2
- package/dist/instrumentation/sentry/config.edge.js.map +1 -0
- package/dist/instrumentation/sentry/config.server.js +10 -2
- package/dist/instrumentation/sentry/config.server.js.map +1 -0
- package/dist/instrumentation/server.d.ts.map +1 -1
- package/dist/instrumentation/server.js +8 -5
- package/dist/instrumentation/server.js.map +1 -1
- package/dist/instrumentation/types.d.ts.map +1 -1
- package/dist/lib/breadcrumb.d.ts.map +1 -1
- package/dist/lib/breadcrumb.js +6 -1
- package/dist/lib/breadcrumb.js.map +1 -1
- package/dist/lib/const.d.ts +14 -2
- package/dist/lib/const.d.ts.map +1 -1
- package/dist/lib/const.js +24 -2
- package/dist/lib/const.js.map +1 -1
- package/dist/lib/http.d.ts +9 -0
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +27 -4
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/label.d.ts.map +1 -1
- package/dist/lib/label.js +4 -3
- package/dist/lib/label.js.map +1 -1
- package/dist/lib/layout.defaults.d.ts.map +1 -1
- package/dist/lib/layout.defaults.js +1 -1
- package/dist/lib/layout.defaults.js.map +1 -1
- package/dist/lib/link.d.ts.map +1 -1
- package/dist/lib/link.js +2 -1
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/meta-data.d.ts.map +1 -1
- package/dist/lib/open-graph.d.ts.map +1 -1
- package/dist/lib/pagination.d.ts.map +1 -1
- package/dist/lib/pagination.js +4 -2
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/route.d.ts.map +1 -1
- package/dist/lib/route.js +9 -3
- package/dist/lib/route.js.map +1 -1
- package/dist/lib/store.d.ts.map +1 -1
- package/dist/lib/store.js +31 -31
- package/dist/lib/store.js.map +1 -1
- package/dist/lib/structured-data.d.ts.map +1 -1
- package/dist/lib/twitter-card.d.ts.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +3 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/mock.d.ts.map +1 -1
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js +3 -2
- package/dist/node_modules/@selderee/plugin-htmlparser2/lib/hp2-builder.js.map +1 -1
- package/dist/node_modules/deepmerge/dist/cjs.js +17 -9
- package/dist/node_modules/deepmerge/dist/cjs.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js +2 -2
- package/dist/node_modules/dom-serializer/lib/esm/foreignNames.js.map +1 -1
- package/dist/node_modules/dom-serializer/lib/esm/index.js +10 -15
- package/dist/node_modules/dom-serializer/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domelementtype/lib/esm/index.js +12 -12
- package/dist/node_modules/domelementtype/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/index.js +4 -3
- package/dist/node_modules/domhandler/lib/esm/index.js.map +1 -1
- package/dist/node_modules/domhandler/lib/esm/node.js +8 -7
- package/dist/node_modules/domhandler/lib/esm/node.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode.js +33 -32
- package/dist/node_modules/entities/lib/esm/decode.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js +5 -5
- package/dist/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/escape.js +14 -6
- package/dist/node_modules/entities/lib/esm/escape.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -1
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js +2 -2
- package/dist/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -1
- package/dist/node_modules/html-to-text/lib/html-to-text.js +45 -33
- package/dist/node_modules/html-to-text/lib/html-to-text.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js +25 -25
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js +76 -73
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js.map +1 -1
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js +4 -3
- package/dist/node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js.map +1 -1
- package/dist/node_modules/leac/lib/leac.js +72 -72
- package/dist/node_modules/leac/lib/leac.js.map +1 -1
- package/dist/node_modules/parseley/lib/parseley.js +37 -33
- package/dist/node_modules/parseley/lib/parseley.js.map +1 -1
- package/dist/node_modules/peberminta/lib/core.js +4 -4
- package/dist/node_modules/peberminta/lib/core.js.map +1 -1
- package/dist/node_modules/selderee/lib/selderee.js +16 -10
- package/dist/node_modules/selderee/lib/selderee.js.map +1 -1
- package/dist/proxy/protected-route.d.ts.map +1 -1
- package/dist/proxy/protected-route.js +11 -6
- package/dist/proxy/protected-route.js.map +1 -1
- package/dist/proxy/proxy.d.ts +5 -4
- package/dist/proxy/proxy.d.ts.map +1 -1
- package/dist/proxy/proxy.js +26 -6
- package/dist/proxy/proxy.js.map +1 -1
- package/dist/proxy/route-auto-detection.d.ts.map +1 -1
- package/dist/proxy/route-auto-detection.js +26 -14
- package/dist/proxy/route-auto-detection.js.map +1 -1
- package/dist/proxy/route-proxy.d.ts.map +1 -1
- package/dist/proxy/route-proxy.js +22 -5
- package/dist/proxy/route-proxy.js.map +1 -1
- package/dist/server/context.d.ts +31 -15
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +156 -69
- package/dist/server/context.js.map +1 -1
- package/dist/server/handlers/auth.handler.d.ts.map +1 -1
- package/dist/server/handlers/auth.handler.js +4 -2
- package/dist/server/handlers/auth.handler.js.map +1 -1
- package/dist/server/handlers/captions.handler.d.ts.map +1 -1
- package/dist/server/handlers/captions.handler.js +4 -2
- package/dist/server/handlers/captions.handler.js.map +1 -1
- package/dist/server/handlers/collection.handler.d.ts.map +1 -1
- package/dist/server/handlers/collection.handler.js +2 -1
- package/dist/server/handlers/collection.handler.js.map +1 -1
- package/dist/server/handlers/error-response.js +6 -2
- package/dist/server/handlers/error-response.js.map +1 -1
- package/dist/server/handlers/index.handler.d.ts.map +1 -1
- package/dist/server/handlers/index.handler.js +2 -1
- package/dist/server/handlers/index.handler.js.map +1 -1
- package/dist/server/handlers/preview.handler.d.ts.map +1 -1
- package/dist/server/handlers/preview.handler.js +6 -3
- package/dist/server/handlers/preview.handler.js.map +1 -1
- package/dist/server/handlers/registry.handler.d.ts.map +1 -1
- package/dist/server/handlers/registry.handler.js +14 -9
- package/dist/server/handlers/registry.handler.js.map +1 -1
- package/dist/server/handlers/route.handler.d.ts.map +1 -1
- package/dist/server/handlers/route.handler.js +12 -3
- package/dist/server/handlers/route.handler.js.map +1 -1
- package/dist/server/handlers/sitemap.handler.d.ts.map +1 -1
- package/dist/server/handlers/sitemap.handler.js +12 -9
- package/dist/server/handlers/sitemap.handler.js.map +1 -1
- package/dist/server/handlers/static-params.handler.d.ts.map +1 -1
- package/dist/server/handlers/static-params.handler.js +13 -8
- package/dist/server/handlers/static-params.handler.js.map +1 -1
- package/dist/server/handlers/vars.handler.d.ts.map +1 -1
- package/dist/server/handlers/vars.handler.js +5 -4
- package/dist/server/handlers/vars.handler.js.map +1 -1
- package/dist/server/helpers.d.ts +50 -0
- package/dist/server/helpers.d.ts.map +1 -0
- package/dist/server/helpers.js +60 -0
- package/dist/server/helpers.js.map +1 -0
- package/dist/server/layout.js +69 -34
- package/dist/server/layout.js.map +1 -1
- package/dist/server/lazy.d.ts +1 -0
- package/dist/server/lazy.d.ts.map +1 -1
- package/dist/server/lazy.js +3 -2
- package/dist/server/lazy.js.map +1 -1
- package/dist/server/local-api.d.ts.map +1 -1
- package/dist/server/local-api.js +12 -6
- package/dist/server/local-api.js.map +1 -1
- package/dist/server/metadata.d.ts +8 -5
- package/dist/server/metadata.d.ts.map +1 -1
- package/dist/server/metadata.js +21 -7
- package/dist/server/metadata.js.map +1 -1
- package/dist/server/mixer-payload.d.ts +1 -1
- package/dist/server/mixer-payload.d.ts.map +1 -1
- package/dist/server/mixer.d.ts +48 -6
- package/dist/server/mixer.d.ts.map +1 -1
- package/dist/server/mixer.js +235 -68
- package/dist/server/mixer.js.map +1 -1
- package/dist/server/page.d.ts +21 -5
- package/dist/server/page.d.ts.map +1 -1
- package/dist/server/page.js +74 -15
- package/dist/server/page.js.map +1 -1
- package/dist/server/utils.d.ts.map +1 -1
- package/dist/server/utils.js +4 -2
- package/dist/server/utils.js.map +1 -1
- package/dist/server/utmz.d.ts.map +1 -1
- package/dist/server/utmz.js +1 -1
- package/dist/server/utmz.js.map +1 -1
- package/dist/types.d.ts +79 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +16 -15
- package/src/exports/server.ts +1 -0
- package/src/lib/const.ts +15 -0
- package/src/lib/http.ts +15 -4
- package/src/proxy/proxy.ts +11 -4
- package/src/server/context.test.ts +467 -0
- package/src/server/context.ts +237 -78
- package/src/server/context.type-test.ts +106 -0
- package/src/server/helpers.ts +58 -0
- package/src/server/layout.ts +45 -39
- package/src/server/lazy.ts +1 -1
- package/src/server/metadata.ts +15 -7
- package/src/server/mixer.ts +57 -9
- package/src/server/page.ts +62 -17
- package/src/types.ts +109 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.js","names":[],"sources":["../../../../../../../../../node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js"],"sourcesContent":["import Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/lib/decode.js\";\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nexport class Parser {\n constructor(cbs, options = {}) {\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n ontext(start, endIndex) {\n var _a, _b;\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n }\n /** @internal */\n ontextentity(cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n const index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));\n this.startIndex = index;\n }\n isVoidElement(name) {\n return !this.options.xmlMode && voidElements.has(name);\n }\n /** @internal */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n }\n emitOpenTag(name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n const impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n const element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n }\n /** @internal */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onclosetag(start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n const pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n let count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n closeCurrentTag(isOpenImplied) {\n var _a, _b;\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n }\n /** @internal */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /** @internal */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /** @internal */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /** @internal */\n onattribend(quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /** @internal */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncomment(start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncdata(start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n end(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n parseChunk(chunk) {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n done(chunk) {\n this.end(chunk);\n }\n}\n//# sourceMappingURL=Parser.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Parser.js","names":[],"sources":["../../../../../../../../../../node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Parser.js"],"sourcesContent":["import Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/lib/decode.js\";\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nexport class Parser {\n constructor(cbs, options = {}) {\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n ontext(start, endIndex) {\n var _a, _b;\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n }\n /** @internal */\n ontextentity(cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n const index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));\n this.startIndex = index;\n }\n isVoidElement(name) {\n return !this.options.xmlMode && voidElements.has(name);\n }\n /** @internal */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n }\n emitOpenTag(name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n const impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n const element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n }\n /** @internal */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onclosetag(start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n const pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n let count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n closeCurrentTag(isOpenImplied) {\n var _a, _b;\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n }\n /** @internal */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /** @internal */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /** @internal */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /** @internal */\n onattribend(quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /** @internal */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncomment(start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncdata(start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n end(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n parseChunk(chunk) {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n done(chunk) {\n this.end(chunk);\n }\n}\n//# sourceMappingURL=Parser.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -2,69 +2,70 @@ import decode_data_html_default from "../../../../../entities/lib/esm/generated/
|
|
|
2
2
|
import decode_data_xml_default from "../../../../../entities/lib/esm/generated/decode-data-xml.js";
|
|
3
3
|
import { replaceCodePoint } from "../../../../../entities/lib/esm/decode_codepoint.js";
|
|
4
4
|
import { BinTrieFlags, determineBranch } from "../../../../../entities/lib/esm/decode.js";
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
//#region ../../../node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js
|
|
6
7
|
var CharCodes;
|
|
7
|
-
(function(CharCodes) {
|
|
8
|
-
CharCodes[CharCodes["Tab"] = 9] = "Tab";
|
|
9
|
-
CharCodes[CharCodes["NewLine"] = 10] = "NewLine";
|
|
10
|
-
CharCodes[CharCodes["FormFeed"] = 12] = "FormFeed";
|
|
11
|
-
CharCodes[CharCodes["CarriageReturn"] = 13] = "CarriageReturn";
|
|
12
|
-
CharCodes[CharCodes["Space"] = 32] = "Space";
|
|
13
|
-
CharCodes[CharCodes["ExclamationMark"] = 33] = "ExclamationMark";
|
|
14
|
-
CharCodes[CharCodes["Number"] = 35] = "Number";
|
|
15
|
-
CharCodes[CharCodes["Amp"] = 38] = "Amp";
|
|
16
|
-
CharCodes[CharCodes["SingleQuote"] = 39] = "SingleQuote";
|
|
17
|
-
CharCodes[CharCodes["DoubleQuote"] = 34] = "DoubleQuote";
|
|
18
|
-
CharCodes[CharCodes["Dash"] = 45] = "Dash";
|
|
19
|
-
CharCodes[CharCodes["Slash"] = 47] = "Slash";
|
|
20
|
-
CharCodes[CharCodes["Zero"] = 48] = "Zero";
|
|
21
|
-
CharCodes[CharCodes["Nine"] = 57] = "Nine";
|
|
22
|
-
CharCodes[CharCodes["Semi"] = 59] = "Semi";
|
|
23
|
-
CharCodes[CharCodes["Lt"] = 60] = "Lt";
|
|
24
|
-
CharCodes[CharCodes["Eq"] = 61] = "Eq";
|
|
25
|
-
CharCodes[CharCodes["Gt"] = 62] = "Gt";
|
|
26
|
-
CharCodes[CharCodes["Questionmark"] = 63] = "Questionmark";
|
|
27
|
-
CharCodes[CharCodes["UpperA"] = 65] = "UpperA";
|
|
28
|
-
CharCodes[CharCodes["LowerA"] = 97] = "LowerA";
|
|
29
|
-
CharCodes[CharCodes["UpperF"] = 70] = "UpperF";
|
|
30
|
-
CharCodes[CharCodes["LowerF"] = 102] = "LowerF";
|
|
31
|
-
CharCodes[CharCodes["UpperZ"] = 90] = "UpperZ";
|
|
32
|
-
CharCodes[CharCodes["LowerZ"] = 122] = "LowerZ";
|
|
33
|
-
CharCodes[CharCodes["LowerX"] = 120] = "LowerX";
|
|
34
|
-
CharCodes[CharCodes["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
|
|
8
|
+
(function(CharCodes$1) {
|
|
9
|
+
CharCodes$1[CharCodes$1["Tab"] = 9] = "Tab";
|
|
10
|
+
CharCodes$1[CharCodes$1["NewLine"] = 10] = "NewLine";
|
|
11
|
+
CharCodes$1[CharCodes$1["FormFeed"] = 12] = "FormFeed";
|
|
12
|
+
CharCodes$1[CharCodes$1["CarriageReturn"] = 13] = "CarriageReturn";
|
|
13
|
+
CharCodes$1[CharCodes$1["Space"] = 32] = "Space";
|
|
14
|
+
CharCodes$1[CharCodes$1["ExclamationMark"] = 33] = "ExclamationMark";
|
|
15
|
+
CharCodes$1[CharCodes$1["Number"] = 35] = "Number";
|
|
16
|
+
CharCodes$1[CharCodes$1["Amp"] = 38] = "Amp";
|
|
17
|
+
CharCodes$1[CharCodes$1["SingleQuote"] = 39] = "SingleQuote";
|
|
18
|
+
CharCodes$1[CharCodes$1["DoubleQuote"] = 34] = "DoubleQuote";
|
|
19
|
+
CharCodes$1[CharCodes$1["Dash"] = 45] = "Dash";
|
|
20
|
+
CharCodes$1[CharCodes$1["Slash"] = 47] = "Slash";
|
|
21
|
+
CharCodes$1[CharCodes$1["Zero"] = 48] = "Zero";
|
|
22
|
+
CharCodes$1[CharCodes$1["Nine"] = 57] = "Nine";
|
|
23
|
+
CharCodes$1[CharCodes$1["Semi"] = 59] = "Semi";
|
|
24
|
+
CharCodes$1[CharCodes$1["Lt"] = 60] = "Lt";
|
|
25
|
+
CharCodes$1[CharCodes$1["Eq"] = 61] = "Eq";
|
|
26
|
+
CharCodes$1[CharCodes$1["Gt"] = 62] = "Gt";
|
|
27
|
+
CharCodes$1[CharCodes$1["Questionmark"] = 63] = "Questionmark";
|
|
28
|
+
CharCodes$1[CharCodes$1["UpperA"] = 65] = "UpperA";
|
|
29
|
+
CharCodes$1[CharCodes$1["LowerA"] = 97] = "LowerA";
|
|
30
|
+
CharCodes$1[CharCodes$1["UpperF"] = 70] = "UpperF";
|
|
31
|
+
CharCodes$1[CharCodes$1["LowerF"] = 102] = "LowerF";
|
|
32
|
+
CharCodes$1[CharCodes$1["UpperZ"] = 90] = "UpperZ";
|
|
33
|
+
CharCodes$1[CharCodes$1["LowerZ"] = 122] = "LowerZ";
|
|
34
|
+
CharCodes$1[CharCodes$1["LowerX"] = 120] = "LowerX";
|
|
35
|
+
CharCodes$1[CharCodes$1["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
|
|
35
36
|
})(CharCodes || (CharCodes = {}));
|
|
36
37
|
/** All the states the tokenizer can be in. */
|
|
37
38
|
var State;
|
|
38
|
-
(function(State) {
|
|
39
|
-
State[State["Text"] = 1] = "Text";
|
|
40
|
-
State[State["BeforeTagName"] = 2] = "BeforeTagName";
|
|
41
|
-
State[State["InTagName"] = 3] = "InTagName";
|
|
42
|
-
State[State["InSelfClosingTag"] = 4] = "InSelfClosingTag";
|
|
43
|
-
State[State["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
|
|
44
|
-
State[State["InClosingTagName"] = 6] = "InClosingTagName";
|
|
45
|
-
State[State["AfterClosingTagName"] = 7] = "AfterClosingTagName";
|
|
46
|
-
State[State["BeforeAttributeName"] = 8] = "BeforeAttributeName";
|
|
47
|
-
State[State["InAttributeName"] = 9] = "InAttributeName";
|
|
48
|
-
State[State["AfterAttributeName"] = 10] = "AfterAttributeName";
|
|
49
|
-
State[State["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
|
|
50
|
-
State[State["InAttributeValueDq"] = 12] = "InAttributeValueDq";
|
|
51
|
-
State[State["InAttributeValueSq"] = 13] = "InAttributeValueSq";
|
|
52
|
-
State[State["InAttributeValueNq"] = 14] = "InAttributeValueNq";
|
|
53
|
-
State[State["BeforeDeclaration"] = 15] = "BeforeDeclaration";
|
|
54
|
-
State[State["InDeclaration"] = 16] = "InDeclaration";
|
|
55
|
-
State[State["InProcessingInstruction"] = 17] = "InProcessingInstruction";
|
|
56
|
-
State[State["BeforeComment"] = 18] = "BeforeComment";
|
|
57
|
-
State[State["CDATASequence"] = 19] = "CDATASequence";
|
|
58
|
-
State[State["InSpecialComment"] = 20] = "InSpecialComment";
|
|
59
|
-
State[State["InCommentLike"] = 21] = "InCommentLike";
|
|
60
|
-
State[State["BeforeSpecialS"] = 22] = "BeforeSpecialS";
|
|
61
|
-
State[State["SpecialStartSequence"] = 23] = "SpecialStartSequence";
|
|
62
|
-
State[State["InSpecialTag"] = 24] = "InSpecialTag";
|
|
63
|
-
State[State["BeforeEntity"] = 25] = "BeforeEntity";
|
|
64
|
-
State[State["BeforeNumericEntity"] = 26] = "BeforeNumericEntity";
|
|
65
|
-
State[State["InNamedEntity"] = 27] = "InNamedEntity";
|
|
66
|
-
State[State["InNumericEntity"] = 28] = "InNumericEntity";
|
|
67
|
-
State[State["InHexEntity"] = 29] = "InHexEntity";
|
|
39
|
+
(function(State$1) {
|
|
40
|
+
State$1[State$1["Text"] = 1] = "Text";
|
|
41
|
+
State$1[State$1["BeforeTagName"] = 2] = "BeforeTagName";
|
|
42
|
+
State$1[State$1["InTagName"] = 3] = "InTagName";
|
|
43
|
+
State$1[State$1["InSelfClosingTag"] = 4] = "InSelfClosingTag";
|
|
44
|
+
State$1[State$1["BeforeClosingTagName"] = 5] = "BeforeClosingTagName";
|
|
45
|
+
State$1[State$1["InClosingTagName"] = 6] = "InClosingTagName";
|
|
46
|
+
State$1[State$1["AfterClosingTagName"] = 7] = "AfterClosingTagName";
|
|
47
|
+
State$1[State$1["BeforeAttributeName"] = 8] = "BeforeAttributeName";
|
|
48
|
+
State$1[State$1["InAttributeName"] = 9] = "InAttributeName";
|
|
49
|
+
State$1[State$1["AfterAttributeName"] = 10] = "AfterAttributeName";
|
|
50
|
+
State$1[State$1["BeforeAttributeValue"] = 11] = "BeforeAttributeValue";
|
|
51
|
+
State$1[State$1["InAttributeValueDq"] = 12] = "InAttributeValueDq";
|
|
52
|
+
State$1[State$1["InAttributeValueSq"] = 13] = "InAttributeValueSq";
|
|
53
|
+
State$1[State$1["InAttributeValueNq"] = 14] = "InAttributeValueNq";
|
|
54
|
+
State$1[State$1["BeforeDeclaration"] = 15] = "BeforeDeclaration";
|
|
55
|
+
State$1[State$1["InDeclaration"] = 16] = "InDeclaration";
|
|
56
|
+
State$1[State$1["InProcessingInstruction"] = 17] = "InProcessingInstruction";
|
|
57
|
+
State$1[State$1["BeforeComment"] = 18] = "BeforeComment";
|
|
58
|
+
State$1[State$1["CDATASequence"] = 19] = "CDATASequence";
|
|
59
|
+
State$1[State$1["InSpecialComment"] = 20] = "InSpecialComment";
|
|
60
|
+
State$1[State$1["InCommentLike"] = 21] = "InCommentLike";
|
|
61
|
+
State$1[State$1["BeforeSpecialS"] = 22] = "BeforeSpecialS";
|
|
62
|
+
State$1[State$1["SpecialStartSequence"] = 23] = "SpecialStartSequence";
|
|
63
|
+
State$1[State$1["InSpecialTag"] = 24] = "InSpecialTag";
|
|
64
|
+
State$1[State$1["BeforeEntity"] = 25] = "BeforeEntity";
|
|
65
|
+
State$1[State$1["BeforeNumericEntity"] = 26] = "BeforeNumericEntity";
|
|
66
|
+
State$1[State$1["InNamedEntity"] = 27] = "InNamedEntity";
|
|
67
|
+
State$1[State$1["InNumericEntity"] = 28] = "InNumericEntity";
|
|
68
|
+
State$1[State$1["InHexEntity"] = 29] = "InHexEntity";
|
|
68
69
|
})(State || (State = {}));
|
|
69
70
|
function isWhitespace(c) {
|
|
70
71
|
return c === CharCodes.Space || c === CharCodes.NewLine || c === CharCodes.Tab || c === CharCodes.FormFeed || c === CharCodes.CarriageReturn;
|
|
@@ -82,11 +83,11 @@ function isHexDigit(c) {
|
|
|
82
83
|
return c >= CharCodes.UpperA && c <= CharCodes.UpperF || c >= CharCodes.LowerA && c <= CharCodes.LowerF;
|
|
83
84
|
}
|
|
84
85
|
var QuoteType;
|
|
85
|
-
(function(QuoteType) {
|
|
86
|
-
QuoteType[QuoteType["NoValue"] = 0] = "NoValue";
|
|
87
|
-
QuoteType[QuoteType["Unquoted"] = 1] = "Unquoted";
|
|
88
|
-
QuoteType[QuoteType["Single"] = 2] = "Single";
|
|
89
|
-
QuoteType[QuoteType["Double"] = 3] = "Double";
|
|
86
|
+
(function(QuoteType$1) {
|
|
87
|
+
QuoteType$1[QuoteType$1["NoValue"] = 0] = "NoValue";
|
|
88
|
+
QuoteType$1[QuoteType$1["Unquoted"] = 1] = "Unquoted";
|
|
89
|
+
QuoteType$1[QuoteType$1["Single"] = 2] = "Single";
|
|
90
|
+
QuoteType$1[QuoteType$1["Double"] = 3] = "Double";
|
|
90
91
|
})(QuoteType || (QuoteType = {}));
|
|
91
92
|
/**
|
|
92
93
|
* Sequences used to match longer strings.
|
|
@@ -218,7 +219,8 @@ var Tokenizer = class {
|
|
|
218
219
|
}
|
|
219
220
|
stateSpecialStartSequence(c) {
|
|
220
221
|
const isEnd = this.sequenceIndex === this.currentSequence.length;
|
|
221
|
-
|
|
222
|
+
const isMatch = isEnd ? isEndOfTagSection(c) : (c | 32) === this.currentSequence[this.sequenceIndex];
|
|
223
|
+
if (!isMatch) this.isSpecial = false;
|
|
222
224
|
else if (!isEnd) {
|
|
223
225
|
this.sequenceIndex++;
|
|
224
226
|
return;
|
|
@@ -532,7 +534,8 @@ var Tokenizer = class {
|
|
|
532
534
|
emitNamedEntity() {
|
|
533
535
|
this.state = this.baseState;
|
|
534
536
|
if (this.entityResult === 0) return;
|
|
535
|
-
|
|
537
|
+
const valueLength = (this.entityTrie[this.entityResult] & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
538
|
+
switch (valueLength) {
|
|
536
539
|
case 1:
|
|
537
540
|
this.emitCodePoint(this.entityTrie[this.entityResult] & ~BinTrieFlags.VALUE_LENGTH);
|
|
538
541
|
break;
|
|
@@ -555,7 +558,8 @@ var Tokenizer = class {
|
|
|
555
558
|
}
|
|
556
559
|
emitNumericEntity(strict) {
|
|
557
560
|
const entityStart = this.index - this.entityExcess - 1;
|
|
558
|
-
|
|
561
|
+
const numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);
|
|
562
|
+
if (numberStart !== this.index) {
|
|
559
563
|
if (entityStart > this.sectionStart) this.emitPartial(this.sectionStart, entityStart);
|
|
560
564
|
this.sectionStart = this.index + Number(strict);
|
|
561
565
|
this.emitCodePoint(replaceCodePoint(this.entityResult));
|
|
@@ -714,10 +718,9 @@ var Tokenizer = class {
|
|
|
714
718
|
/** Handle any trailing data. */
|
|
715
719
|
handleTrailingData() {
|
|
716
720
|
const endIndex = this.buffer.length + this.offset;
|
|
717
|
-
if (this.state === State.InCommentLike)
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
} else if (this.state === State.InNumericEntity && this.allowLegacyEntity()) this.emitNumericEntity(false);
|
|
721
|
+
if (this.state === State.InCommentLike) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex, 0);
|
|
722
|
+
else this.cbs.oncomment(this.sectionStart, endIndex, 0);
|
|
723
|
+
else if (this.state === State.InNumericEntity && this.allowLegacyEntity()) this.emitNumericEntity(false);
|
|
721
724
|
else if (this.state === State.InHexEntity && this.allowLegacyEntity()) this.emitNumericEntity(false);
|
|
722
725
|
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) {} else this.cbs.ontext(this.sectionStart, endIndex);
|
|
723
726
|
}
|
|
@@ -730,7 +733,7 @@ var Tokenizer = class {
|
|
|
730
733
|
else this.cbs.ontextentity(cp);
|
|
731
734
|
}
|
|
732
735
|
};
|
|
733
|
-
//#endregion
|
|
734
|
-
export { QuoteType, Tokenizer as default };
|
|
735
736
|
|
|
737
|
+
//#endregion
|
|
738
|
+
export { QuoteType, Tokenizer };
|
|
736
739
|
//# sourceMappingURL=Tokenizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tokenizer.js","names":["xmlDecodeTree","htmlDecodeTree"],"sources":["../../../../../../../../../node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js"],"sourcesContent":["import { htmlDecodeTree, xmlDecodeTree, BinTrieFlags, determineBranch, replaceCodePoint, } from \"entities/lib/decode.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nexport default class Tokenizer {\n constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? xmlDecodeTree : htmlDecodeTree;\n }\n reset() {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n }\n write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n /**\n * The current index within all of the written data.\n */\n getIndex() {\n return this.index;\n }\n /**\n * The start of the current section.\n */\n getSectionStart() {\n return this.sectionStart;\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> tags, also decode entities. */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n startSpecial(sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttributeName(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n }\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n stateInDeclaration(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n }\n stateInSpecialComment(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n stateBeforeEntity(c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n }\n stateInNamedEntity(c) {\n this.entityExcess += 1;\n this.trieIndex = determineBranch(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n const masked = this.trieCurrent & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n const valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n const entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n }\n emitNamedEntity() {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n const valueLength = (this.entityTrie[this.entityResult] & BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n }\n stateBeforeNumericEntity(c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n }\n emitNumericEntity(strict) {\n const entityStart = this.index - this.entityExcess - 1;\n const numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint(replaceCodePoint(this.entityResult));\n }\n this.state = this.baseState;\n }\n stateInNumericEntity(c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n }\n stateInHexEntity(c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n }\n allowLegacyEntity() {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n finish() {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitPartial(start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n }\n emitCodePoint(cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;AACA,IAAI;CACH,SAAU,WAAW;CAClB,UAAU,UAAU,SAAS,KAAK;CAClC,UAAU,UAAU,aAAa,MAAM;CACvC,UAAU,UAAU,cAAc,MAAM;CACxC,UAAU,UAAU,oBAAoB,MAAM;CAC9C,UAAU,UAAU,WAAW,MAAM;CACrC,UAAU,UAAU,qBAAqB,MAAM;CAC/C,UAAU,UAAU,YAAY,MAAM;CACtC,UAAU,UAAU,SAAS,MAAM;CACnC,UAAU,UAAU,iBAAiB,MAAM;CAC3C,UAAU,UAAU,iBAAiB,MAAM;CAC3C,UAAU,UAAU,UAAU,MAAM;CACpC,UAAU,UAAU,WAAW,MAAM;CACrC,UAAU,UAAU,UAAU,MAAM;CACpC,UAAU,UAAU,UAAU,MAAM;CACpC,UAAU,UAAU,UAAU,MAAM;CACpC,UAAU,UAAU,QAAQ,MAAM;CAClC,UAAU,UAAU,QAAQ,MAAM;CAClC,UAAU,UAAU,QAAQ,MAAM;CAClC,UAAU,UAAU,kBAAkB,MAAM;CAC5C,UAAU,UAAU,YAAY,MAAM;CACtC,UAAU,UAAU,YAAY,MAAM;CACtC,UAAU,UAAU,YAAY,MAAM;CACtC,UAAU,UAAU,YAAY,OAAO;CACvC,UAAU,UAAU,YAAY,MAAM;CACtC,UAAU,UAAU,YAAY,OAAO;CACvC,UAAU,UAAU,YAAY,OAAO;CACvC,UAAU,UAAU,0BAA0B,MAAM;AACxD,EAAA,CAAG,cAAc,YAAY,CAAC,EAAE;;AAEhC,IAAI;CACH,SAAU,OAAO;CACd,MAAM,MAAM,UAAU,KAAK;CAC3B,MAAM,MAAM,mBAAmB,KAAK;CACpC,MAAM,MAAM,eAAe,KAAK;CAChC,MAAM,MAAM,sBAAsB,KAAK;CACvC,MAAM,MAAM,0BAA0B,KAAK;CAC3C,MAAM,MAAM,sBAAsB,KAAK;CACvC,MAAM,MAAM,yBAAyB,KAAK;CAE1C,MAAM,MAAM,yBAAyB,KAAK;CAC1C,MAAM,MAAM,qBAAqB,KAAK;CACtC,MAAM,MAAM,wBAAwB,MAAM;CAC1C,MAAM,MAAM,0BAA0B,MAAM;CAC5C,MAAM,MAAM,wBAAwB,MAAM;CAC1C,MAAM,MAAM,wBAAwB,MAAM;CAC1C,MAAM,MAAM,wBAAwB,MAAM;CAE1C,MAAM,MAAM,uBAAuB,MAAM;CACzC,MAAM,MAAM,mBAAmB,MAAM;CAErC,MAAM,MAAM,6BAA6B,MAAM;CAE/C,MAAM,MAAM,mBAAmB,MAAM;CACrC,MAAM,MAAM,mBAAmB,MAAM;CACrC,MAAM,MAAM,sBAAsB,MAAM;CACxC,MAAM,MAAM,mBAAmB,MAAM;CAErC,MAAM,MAAM,oBAAoB,MAAM;CACtC,MAAM,MAAM,0BAA0B,MAAM;CAC5C,MAAM,MAAM,kBAAkB,MAAM;CACpC,MAAM,MAAM,kBAAkB,MAAM;CACpC,MAAM,MAAM,yBAAyB,MAAM;CAC3C,MAAM,MAAM,mBAAmB,MAAM;CACrC,MAAM,MAAM,qBAAqB,MAAM;CACvC,MAAM,MAAM,iBAAiB,MAAM;AACvC,EAAA,CAAG,UAAU,QAAQ,CAAC,EAAE;AACxB,SAAS,aAAa,GAAG;CACrB,OAAQ,MAAM,UAAU,SACpB,MAAM,UAAU,WAChB,MAAM,UAAU,OAChB,MAAM,UAAU,YAChB,MAAM,UAAU;AACxB;AACA,SAAS,kBAAkB,GAAG;CAC1B,OAAO,MAAM,UAAU,SAAS,MAAM,UAAU,MAAM,aAAa,CAAC;AACxE;AACA,SAAS,SAAS,GAAG;CACjB,OAAO,KAAK,UAAU,QAAQ,KAAK,UAAU;AACjD;AACA,SAAS,aAAa,GAAG;CACrB,OAAS,KAAK,UAAU,UAAU,KAAK,UAAU,UAC5C,KAAK,UAAU,UAAU,KAAK,UAAU;AACjD;AACA,SAAS,WAAW,GAAG;CACnB,OAAS,KAAK,UAAU,UAAU,KAAK,UAAU,UAC5C,KAAK,UAAU,UAAU,KAAK,UAAU;AACjD;AACA,IAAW;CACV,SAAU,WAAW;CAClB,UAAU,UAAU,aAAa,KAAK;CACtC,UAAU,UAAU,cAAc,KAAK;CACvC,UAAU,UAAU,YAAY,KAAK;CACrC,UAAU,UAAU,YAAY,KAAK;AACzC,EAAA,CAAG,cAAc,YAAY,CAAC,EAAE;;;;;;;AAOhC,MAAM,YAAY;CACd,OAAO,IAAI,WAAW;EAAC;EAAM;EAAM;EAAM;EAAM;EAAM;CAAI,CAAC;CAC1D,UAAU,IAAI,WAAW;EAAC;EAAM;EAAM;CAAI,CAAC;CAC3C,YAAY,IAAI,WAAW;EAAC;EAAM;EAAM;CAAI,CAAC;CAC7C,WAAW,IAAI,WAAW;EAAC;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;CAAI,CAAC;CAC1E,UAAU,IAAI,WAAW;EAAC;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;CAAI,CAAC;CACnE,UAAU,IAAI,WAAW;EAAC;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;CAAI,CAAC;AACvE;AACA,IAAqB,YAArB,MAA+B;CAC3B,YAAY,EAAE,UAAU,OAAO,iBAAiB,QAAS,KAAK;EAC1D,KAAK,MAAM;;EAEX,KAAK,QAAQ,MAAM;;EAEnB,KAAK,SAAS;;EAEd,KAAK,eAAe;;EAEpB,KAAK,QAAQ;;EAEb,KAAK,YAAY,MAAM;;EAEvB,KAAK,YAAY;;EAEjB,KAAK,UAAU;;EAEf,KAAK,SAAS;EACd,KAAK,kBAAkB,KAAA;EACvB,KAAK,gBAAgB;EACrB,KAAK,YAAY;EACjB,KAAK,cAAc;;EAEnB,KAAK,eAAe;EACpB,KAAK,eAAe;EACpB,KAAK,UAAU;EACf,KAAK,iBAAiB;EACtB,KAAK,aAAa,UAAUA,0BAAgBC;CAChD;CACA,QAAQ;EACJ,KAAK,QAAQ,MAAM;EACnB,KAAK,SAAS;EACd,KAAK,eAAe;EACpB,KAAK,QAAQ;EACb,KAAK,YAAY,MAAM;EACvB,KAAK,kBAAkB,KAAA;EACvB,KAAK,UAAU;EACf,KAAK,SAAS;CAClB;CACA,MAAM,OAAO;EACT,KAAK,UAAU,KAAK,OAAO;EAC3B,KAAK,SAAS;EACd,KAAK,MAAM;CACf;CACA,MAAM;EACF,IAAI,KAAK,SACL,KAAK,OAAO;CACpB;CACA,QAAQ;EACJ,KAAK,UAAU;CACnB;CACA,SAAS;EACL,KAAK,UAAU;EACf,IAAI,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,QACvC,KAAK,MAAM;CAEnB;;;;CAIA,WAAW;EACP,OAAO,KAAK;CAChB;;;;CAIA,kBAAkB;EACd,OAAO,KAAK;CAChB;CACA,UAAU,GAAG;EACT,IAAI,MAAM,UAAU,MACf,CAAC,KAAK,kBAAkB,KAAK,cAAc,UAAU,EAAE,GAAI;GAC5D,IAAI,KAAK,QAAQ,KAAK,cAClB,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,KAAK;GAEjD,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK;EAC7B,OACK,IAAI,KAAK,kBAAkB,MAAM,UAAU,KAC5C,KAAK,QAAQ,MAAM;CAE3B;CACA,0BAA0B,GAAG;EACzB,MAAM,QAAQ,KAAK,kBAAkB,KAAK,gBAAgB;EAM1D,IAAI,EALY,QAER,kBAAkB,CAAC,KAElB,IAAI,QAAU,KAAK,gBAAgB,KAAK,iBAE7C,KAAK,YAAY;OAEhB,IAAI,CAAC,OAAO;GACb,KAAK;GACL;EACJ;EACA,KAAK,gBAAgB;EACrB,KAAK,QAAQ,MAAM;EACnB,KAAK,eAAe,CAAC;CACzB;;CAEA,kBAAkB,GAAG;EACjB,IAAI,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;GACpD,IAAI,MAAM,UAAU,MAAM,aAAa,CAAC,GAAG;IACvC,MAAM,YAAY,KAAK,QAAQ,KAAK,gBAAgB;IACpD,IAAI,KAAK,eAAe,WAAW;KAE/B,MAAM,cAAc,KAAK;KACzB,KAAK,QAAQ;KACb,KAAK,IAAI,OAAO,KAAK,cAAc,SAAS;KAC5C,KAAK,QAAQ;IACjB;IACA,KAAK,YAAY;IACjB,KAAK,eAAe,YAAY;IAChC,KAAK,sBAAsB,CAAC;IAC5B;GACJ;GACA,KAAK,gBAAgB;EACzB;EACA,KAAK,IAAI,QAAU,KAAK,gBAAgB,KAAK,gBACzC,KAAK,iBAAiB;OAErB,IAAI,KAAK,kBAAkB,GAAG;GAC/B,IAAI,KAAK,oBAAoB,UAAU,UAE/B;QAAA,KAAK,kBAAkB,MAAM,UAAU,KACvC,KAAK,QAAQ,MAAM;GAAA,OAGtB,IAAI,KAAK,cAAc,UAAU,EAAE,GAEpC,KAAK,gBAAgB;EAE7B,OAGI,KAAK,gBAAgB,OAAO,MAAM,UAAU,EAAE;CAEtD;CACA,mBAAmB,GAAG;EAClB,IAAI,MAAM,UAAU,MAAM,KAAK,gBACvB;OAAA,EAAE,KAAK,kBAAkB,UAAU,MAAM,QAAQ;IACjD,KAAK,QAAQ,MAAM;IACnB,KAAK,kBAAkB,UAAU;IACjC,KAAK,gBAAgB;IACrB,KAAK,eAAe,KAAK,QAAQ;GACrC;SAEC;GACD,KAAK,gBAAgB;GACrB,KAAK,QAAQ,MAAM;GACnB,KAAK,mBAAmB,CAAC;EAC7B;CACJ;;;;;;;CAOA,cAAc,GAAG;EACb,OAAO,EAAE,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,QAC5C,IAAI,KAAK,OAAO,WAAW,KAAK,QAAQ,KAAK,MAAM,MAAM,GACrD,OAAO;EASf,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,SAAS;EAChD,OAAO;CACX;;;;;;;;;CASA,mBAAmB,GAAG;EAClB,IAAI,MAAM,KAAK,gBAAgB,KAAK,gBAC5B;OAAA,EAAE,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;IACtD,IAAI,KAAK,oBAAoB,UAAU,UACnC,KAAK,IAAI,QAAQ,KAAK,cAAc,KAAK,OAAO,CAAC;SAGjD,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,OAAO,CAAC;IAEvD,KAAK,gBAAgB;IACrB,KAAK,eAAe,KAAK,QAAQ;IACjC,KAAK,QAAQ,MAAM;GACvB;SAEC,IAAI,KAAK,kBAAkB,GAExB;OAAA,KAAK,cAAc,KAAK,gBAAgB,EAAE,GAC1C,KAAK,gBAAgB;EAAA,OAGxB,IAAI,MAAM,KAAK,gBAAgB,KAAK,gBAAgB,IAErD,KAAK,gBAAgB;CAE7B;;;;;;;CAOA,eAAe,GAAG;EACd,OAAO,KAAK,UAAU,CAAC,kBAAkB,CAAC,IAAI,aAAa,CAAC;CAChE;CACA,aAAa,UAAU,QAAQ;EAC3B,KAAK,YAAY;EACjB,KAAK,kBAAkB;EACvB,KAAK,gBAAgB;EACrB,KAAK,QAAQ,MAAM;CACvB;CACA,mBAAmB,GAAG;EAClB,IAAI,MAAM,UAAU,iBAAiB;GACjC,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK,QAAQ;EACrC,OACK,IAAI,MAAM,UAAU,cAAc;GACnC,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK,QAAQ;EACrC,OACK,IAAI,KAAK,eAAe,CAAC,GAAG;GAC7B,MAAM,QAAQ,IAAI;GAClB,KAAK,eAAe,KAAK;GACzB,IAAI,CAAC,KAAK,WAAW,UAAU,UAAU,SAAS,IAC9C,KAAK,aAAa,UAAU,UAAU,CAAC;QAGvC,KAAK,QACD,CAAC,KAAK,WAAW,UAAU,UAAU,UAAU,KACzC,MAAM,iBACN,MAAM;EAExB,OACK,IAAI,MAAM,UAAU,OACrB,KAAK,QAAQ,MAAM;OAElB;GACD,KAAK,QAAQ,MAAM;GACnB,KAAK,UAAU,CAAC;EACpB;CACJ;CACA,eAAe,GAAG;EACd,IAAI,kBAAkB,CAAC,GAAG;GACtB,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,KAAK;GACpD,KAAK,eAAe;GACpB,KAAK,QAAQ,MAAM;GACnB,KAAK,yBAAyB,CAAC;EACnC;CACJ;CACA,0BAA0B,GAAG;EACzB,IAAI,aAAa,CAAC,GAAG,CAErB,OACK,IAAI,MAAM,UAAU,IACrB,KAAK,QAAQ,MAAM;OAElB;GACD,KAAK,QAAQ,KAAK,eAAe,CAAC,IAC5B,MAAM,mBACN,MAAM;GACZ,KAAK,eAAe,KAAK;EAC7B;CACJ;CACA,sBAAsB,GAAG;EACrB,IAAI,MAAM,UAAU,MAAM,aAAa,CAAC,GAAG;GACvC,KAAK,IAAI,WAAW,KAAK,cAAc,KAAK,KAAK;GACjD,KAAK,eAAe;GACpB,KAAK,QAAQ,MAAM;GACnB,KAAK,yBAAyB,CAAC;EACnC;CACJ;CACA,yBAAyB,GAAG;EAExB,IAAI,MAAM,UAAU,MAAM,KAAK,cAAc,UAAU,EAAE,GAAG;GACxD,KAAK,QAAQ,MAAM;GACnB,KAAK,YAAY,MAAM;GACvB,KAAK,eAAe,KAAK,QAAQ;EACrC;CACJ;CACA,yBAAyB,GAAG;EACxB,IAAI,MAAM,UAAU,IAAI;GACpB,KAAK,IAAI,aAAa,KAAK,KAAK;GAChC,IAAI,KAAK,WAAW;IAChB,KAAK,QAAQ,MAAM;IACnB,KAAK,gBAAgB;GACzB,OAEI,KAAK,QAAQ,MAAM;GAEvB,KAAK,YAAY,KAAK;GACtB,KAAK,eAAe,KAAK,QAAQ;EACrC,OACK,IAAI,MAAM,UAAU,OACrB,KAAK,QAAQ,MAAM;OAElB,IAAI,CAAC,aAAa,CAAC,GAAG;GACvB,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK;EAC7B;CACJ;CACA,sBAAsB,GAAG;EACrB,IAAI,MAAM,UAAU,IAAI;GACpB,KAAK,IAAI,iBAAiB,KAAK,KAAK;GACpC,KAAK,QAAQ,MAAM;GACnB,KAAK,YAAY,MAAM;GACvB,KAAK,eAAe,KAAK,QAAQ;GACjC,KAAK,YAAY;EACrB,OACK,IAAI,CAAC,aAAa,CAAC,GAAG;GACvB,KAAK,QAAQ,MAAM;GACnB,KAAK,yBAAyB,CAAC;EACnC;CACJ;CACA,qBAAqB,GAAG;EACpB,IAAI,MAAM,UAAU,MAAM,kBAAkB,CAAC,GAAG;GAC5C,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK;GACnD,KAAK,eAAe;GACpB,KAAK,QAAQ,MAAM;GACnB,KAAK,wBAAwB,CAAC;EAClC;CACJ;CACA,wBAAwB,GAAG;EACvB,IAAI,MAAM,UAAU,IAChB,KAAK,QAAQ,MAAM;OAElB,IAAI,MAAM,UAAU,SAAS,MAAM,UAAU,IAAI;GAClD,KAAK,IAAI,YAAY,UAAU,SAAS,KAAK,KAAK;GAClD,KAAK,QAAQ,MAAM;GACnB,KAAK,yBAAyB,CAAC;EACnC,OACK,IAAI,CAAC,aAAa,CAAC,GAAG;GACvB,KAAK,IAAI,YAAY,UAAU,SAAS,KAAK,KAAK;GAClD,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK;EAC7B;CACJ;CACA,0BAA0B,GAAG;EACzB,IAAI,MAAM,UAAU,aAAa;GAC7B,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK,QAAQ;EACrC,OACK,IAAI,MAAM,UAAU,aAAa;GAClC,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK,QAAQ;EACrC,OACK,IAAI,CAAC,aAAa,CAAC,GAAG;GACvB,KAAK,eAAe,KAAK;GACzB,KAAK,QAAQ,MAAM;GACnB,KAAK,8BAA8B,CAAC;EACxC;CACJ;CACA,uBAAuB,GAAG,OAAO;EAC7B,IAAI,MAAM,SACL,CAAC,KAAK,kBAAkB,KAAK,cAAc,KAAK,GAAI;GACrD,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK;GACnD,KAAK,eAAe;GACpB,KAAK,IAAI,YAAY,UAAU,UAAU,cACnC,UAAU,SACV,UAAU,QAAQ,KAAK,KAAK;GAClC,KAAK,QAAQ,MAAM;EACvB,OACK,IAAI,KAAK,kBAAkB,MAAM,UAAU,KAAK;GACjD,KAAK,YAAY,KAAK;GACtB,KAAK,QAAQ,MAAM;EACvB;CACJ;CACA,kCAAkC,GAAG;EACjC,KAAK,uBAAuB,GAAG,UAAU,WAAW;CACxD;CACA,kCAAkC,GAAG;EACjC,KAAK,uBAAuB,GAAG,UAAU,WAAW;CACxD;CACA,8BAA8B,GAAG;EAC7B,IAAI,aAAa,CAAC,KAAK,MAAM,UAAU,IAAI;GACvC,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK;GACnD,KAAK,eAAe;GACpB,KAAK,IAAI,YAAY,UAAU,UAAU,KAAK,KAAK;GACnD,KAAK,QAAQ,MAAM;GACnB,KAAK,yBAAyB,CAAC;EACnC,OACK,IAAI,KAAK,kBAAkB,MAAM,UAAU,KAAK;GACjD,KAAK,YAAY,KAAK;GACtB,KAAK,QAAQ,MAAM;EACvB;CACJ;CACA,uBAAuB,GAAG;EACtB,IAAI,MAAM,UAAU,sBAAsB;GACtC,KAAK,QAAQ,MAAM;GACnB,KAAK,gBAAgB;EACzB,OAEI,KAAK,QACD,MAAM,UAAU,OACV,MAAM,gBACN,MAAM;CAExB;CACA,mBAAmB,GAAG;EAClB,IAAI,MAAM,UAAU,MAAM,KAAK,cAAc,UAAU,EAAE,GAAG;GACxD,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,KAAK;GACpD,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK,QAAQ;EACrC;CACJ;CACA,6BAA6B,GAAG;EAC5B,IAAI,MAAM,UAAU,MAAM,KAAK,cAAc,UAAU,EAAE,GAAG;GACxD,KAAK,IAAI,wBAAwB,KAAK,cAAc,KAAK,KAAK;GAC9D,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK,QAAQ;EACrC;CACJ;CACA,mBAAmB,GAAG;EAClB,IAAI,MAAM,UAAU,MAAM;GACtB,KAAK,QAAQ,MAAM;GACnB,KAAK,kBAAkB,UAAU;GAEjC,KAAK,gBAAgB;GACrB,KAAK,eAAe,KAAK,QAAQ;EACrC,OAEI,KAAK,QAAQ,MAAM;CAE3B;CACA,sBAAsB,GAAG;EACrB,IAAI,MAAM,UAAU,MAAM,KAAK,cAAc,UAAU,EAAE,GAAG;GACxD,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,OAAO,CAAC;GACnD,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,KAAK,QAAQ;EACrC;CACJ;CACA,oBAAoB,GAAG;EACnB,MAAM,QAAQ,IAAI;EAClB,IAAI,UAAU,UAAU,UAAU,IAC9B,KAAK,aAAa,UAAU,WAAW,CAAC;OAEvC,IAAI,UAAU,UAAU,SAAS,IAClC,KAAK,aAAa,UAAU,UAAU,CAAC;OAEtC;GACD,KAAK,QAAQ,MAAM;GACnB,KAAK,eAAe,CAAC;EACzB;CACJ;CACA,kBAAkB,GAAG;EAEjB,KAAK,eAAe;EACpB,KAAK,eAAe;EACpB,IAAI,MAAM,UAAU,QAChB,KAAK,QAAQ,MAAM;OAElB,IAAI,MAAM,UAAU,KAAK,CAE9B,OACK;GACD,KAAK,YAAY;GACjB,KAAK,cAAc,KAAK,WAAW;GACnC,KAAK,QAAQ,MAAM;GACnB,KAAK,mBAAmB,CAAC;EAC7B;CACJ;CACA,mBAAmB,GAAG;EAClB,KAAK,gBAAgB;EACrB,KAAK,YAAY,gBAAgB,KAAK,YAAY,KAAK,aAAa,KAAK,YAAY,GAAG,CAAC;EACzF,IAAI,KAAK,YAAY,GAAG;GACpB,KAAK,gBAAgB;GACrB,KAAK;GACL;EACJ;EACA,KAAK,cAAc,KAAK,WAAW,KAAK;EACxC,MAAM,SAAS,KAAK,cAAc,aAAa;EAE/C,IAAI,QAAQ;GAER,MAAM,eAAe,UAAU,MAAM;GAErC,IAAI,CAAC,KAAK,kBAAkB,KAAK,MAAM,UAAU,MAC7C,KAAK,aAAa;QAEjB;IAED,MAAM,cAAc,KAAK,QAAQ,KAAK,eAAe;IACrD,IAAI,cAAc,KAAK,cACnB,KAAK,YAAY,KAAK,cAAc,WAAW;IAGnD,KAAK,eAAe,KAAK;IACzB,KAAK,aAAa;IAClB,KAAK,eAAe;IACpB,KAAK,eAAe,KAAK,QAAQ;IACjC,IAAI,gBAAgB,GAChB,KAAK,gBAAgB;GAE7B;EACJ;CACJ;CACA,kBAAkB;EACd,KAAK,QAAQ,KAAK;EAClB,IAAI,KAAK,iBAAiB,GACtB;EAIJ,SAFqB,KAAK,WAAW,KAAK,gBAAgB,aAAa,iBACnE,IACJ;GACI,KAAK;IACD,KAAK,cAAc,KAAK,WAAW,KAAK,gBACpC,CAAC,aAAa,YAAY;IAC9B;GAEJ,KAAK;IACD,KAAK,cAAc,KAAK,WAAW,KAAK,eAAe,EAAE;IACzD;GAEJ,KAAK;IACD,KAAK,cAAc,KAAK,WAAW,KAAK,eAAe,EAAE;IACzD,KAAK,cAAc,KAAK,WAAW,KAAK,eAAe,EAAE;EAEjE;CACJ;CACA,yBAAyB,GAAG;EACxB,KAAK,IAAI,QAAU,UAAU,QAAQ;GACjC,KAAK;GACL,KAAK,QAAQ,MAAM;EACvB,OACK;GACD,KAAK,QAAQ,MAAM;GACnB,KAAK,qBAAqB,CAAC;EAC/B;CACJ;CACA,kBAAkB,QAAQ;EACtB,MAAM,cAAc,KAAK,QAAQ,KAAK,eAAe;EAErD,IADoB,cAAc,IAAI,OAAO,KAAK,UAAU,MAAM,WAAW,MACzD,KAAK,OAAO;GAE5B,IAAI,cAAc,KAAK,cACnB,KAAK,YAAY,KAAK,cAAc,WAAW;GAEnD,KAAK,eAAe,KAAK,QAAQ,OAAO,MAAM;GAC9C,KAAK,cAAc,iBAAiB,KAAK,YAAY,CAAC;EAC1D;EACA,KAAK,QAAQ,KAAK;CACtB;CACA,qBAAqB,GAAG;EACpB,IAAI,MAAM,UAAU,MAChB,KAAK,kBAAkB,IAAI;OAE1B,IAAI,SAAS,CAAC,GAAG;GAClB,KAAK,eAAe,KAAK,eAAe,MAAM,IAAI,UAAU;GAC5D,KAAK;EACT,OACK;GACD,IAAI,KAAK,kBAAkB,GACvB,KAAK,kBAAkB,KAAK;QAG5B,KAAK,QAAQ,KAAK;GAEtB,KAAK;EACT;CACJ;CACA,iBAAiB,GAAG;EAChB,IAAI,MAAM,UAAU,MAChB,KAAK,kBAAkB,IAAI;OAE1B,IAAI,SAAS,CAAC,GAAG;GAClB,KAAK,eAAe,KAAK,eAAe,MAAM,IAAI,UAAU;GAC5D,KAAK;EACT,OACK,IAAI,WAAW,CAAC,GAAG;GACpB,KAAK,eACD,KAAK,eAAe,OAAO,IAAI,MAAQ,UAAU,SAAS;GAC9D,KAAK;EACT,OACK;GACD,IAAI,KAAK,kBAAkB,GACvB,KAAK,kBAAkB,KAAK;QAG5B,KAAK,QAAQ,KAAK;GAEtB,KAAK;EACT;CACJ;CACA,oBAAoB;EAChB,OAAQ,CAAC,KAAK,YACT,KAAK,cAAc,MAAM,QACtB,KAAK,cAAc,MAAM;CACrC;;;;CAIA,UAAU;EAEN,IAAI,KAAK,WAAW,KAAK,iBAAiB,KAAK,OAAO;GAClD,IAAI,KAAK,UAAU,MAAM,QACpB,KAAK,UAAU,MAAM,gBAAgB,KAAK,kBAAkB,GAAI;IACjE,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,KAAK;IAC7C,KAAK,eAAe,KAAK;GAC7B,OACK,IAAI,KAAK,UAAU,MAAM,sBAC1B,KAAK,UAAU,MAAM,sBACrB,KAAK,UAAU,MAAM,oBAAoB;IACzC,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,KAAK;IACnD,KAAK,eAAe,KAAK;GAC7B;EACJ;CACJ;CACA,iBAAiB;EACb,OAAO,KAAK,QAAQ,KAAK,OAAO,SAAS,KAAK,UAAU,KAAK;CACjE;;;;;;CAMA,QAAQ;EACJ,OAAO,KAAK,eAAe,GAAG;GAC1B,MAAM,IAAI,KAAK,OAAO,WAAW,KAAK,QAAQ,KAAK,MAAM;GACzD,QAAQ,KAAK,OAAb;IACI,KAAK,MAAM;KACP,KAAK,UAAU,CAAC;KAChB;IAEJ,KAAK,MAAM;KACP,KAAK,0BAA0B,CAAC;KAChC;IAEJ,KAAK,MAAM;KACP,KAAK,kBAAkB,CAAC;KACxB;IAEJ,KAAK,MAAM;KACP,KAAK,mBAAmB,CAAC;KACzB;IAEJ,KAAK,MAAM;KACP,KAAK,kCAAkC,CAAC;KACxC;IAEJ,KAAK,MAAM;KACP,KAAK,qBAAqB,CAAC;KAC3B;IAEJ,KAAK,MAAM;KACP,KAAK,mBAAmB,CAAC;KACzB;IAEJ,KAAK,MAAM;KACP,KAAK,sBAAsB,CAAC;KAC5B;IAEJ,KAAK,MAAM;KACP,KAAK,yBAAyB,CAAC;KAC/B;IAEJ,KAAK,MAAM;KACP,KAAK,eAAe,CAAC;KACrB;IAEJ,KAAK,MAAM;KACP,KAAK,sBAAsB,CAAC;KAC5B;IAEJ,KAAK,MAAM;KACP,KAAK,mBAAmB,CAAC;KACzB;IAEJ,KAAK,MAAM;KACP,KAAK,wBAAwB,CAAC;KAC9B;IAEJ,KAAK,MAAM;KACP,KAAK,kCAAkC,CAAC;KACxC;IAEJ,KAAK,MAAM;KACP,KAAK,0BAA0B,CAAC;KAChC;IAEJ,KAAK,MAAM;KACP,KAAK,0BAA0B,CAAC;KAChC;IAEJ,KAAK,MAAM;KACP,KAAK,yBAAyB,CAAC;KAC/B;IAEJ,KAAK,MAAM;KACP,KAAK,oBAAoB,CAAC;KAC1B;IAEJ,KAAK,MAAM;KACP,KAAK,8BAA8B,CAAC;KACpC;IAEJ,KAAK,MAAM;KACP,KAAK,sBAAsB,CAAC;KAC5B;IAEJ,KAAK,MAAM;KACP,KAAK,mBAAmB,CAAC;KACzB;IAEJ,KAAK,MAAM;KACP,KAAK,uBAAuB,CAAC;KAC7B;IAEJ,KAAK,MAAM;KACP,KAAK,mBAAmB,CAAC;KACzB;IAEJ,KAAK,MAAM;KACP,KAAK,6BAA6B,CAAC;KACnC;IAEJ,KAAK,MAAM;KACP,KAAK,mBAAmB,CAAC;KACzB;IAEJ,KAAK,MAAM;KACP,KAAK,kBAAkB,CAAC;KACxB;IAEJ,KAAK,MAAM;KACP,KAAK,iBAAiB,CAAC;KACvB;IAEJ,KAAK,MAAM;KACP,KAAK,qBAAqB,CAAC;KAC3B;IAEJ,SAEI,KAAK,yBAAyB,CAAC;GAEvC;GACA,KAAK;EACT;EACA,KAAK,QAAQ;CACjB;CACA,SAAS;EACL,IAAI,KAAK,UAAU,MAAM,eACrB,KAAK,gBAAgB;EAGzB,IAAI,KAAK,eAAe,KAAK,OACzB,KAAK,mBAAmB;EAE5B,KAAK,IAAI,MAAM;CACnB;;CAEA,qBAAqB;EACjB,MAAM,WAAW,KAAK,OAAO,SAAS,KAAK;EAC3C,IAAI,KAAK,UAAU,MAAM,eAAe;GACpC,IAAI,KAAK,oBAAoB,UAAU,UACnC,KAAK,IAAI,QAAQ,KAAK,cAAc,UAAU,CAAC;QAG/C,KAAK,IAAI,UAAU,KAAK,cAAc,UAAU,CAAC;EAEzD,OACK,IAAI,KAAK,UAAU,MAAM,mBAC1B,KAAK,kBAAkB,GACvB,KAAK,kBAAkB,KAAK;OAG3B,IAAI,KAAK,UAAU,MAAM,eAC1B,KAAK,kBAAkB,GACvB,KAAK,kBAAkB,KAAK;OAG3B,IAAI,KAAK,UAAU,MAAM,aAC1B,KAAK,UAAU,MAAM,uBACrB,KAAK,UAAU,MAAM,wBACrB,KAAK,UAAU,MAAM,sBACrB,KAAK,UAAU,MAAM,mBACrB,KAAK,UAAU,MAAM,sBACrB,KAAK,UAAU,MAAM,sBACrB,KAAK,UAAU,MAAM,sBACrB,KAAK,UAAU,MAAM,kBAAkB,CAK3C,OAEI,KAAK,IAAI,OAAO,KAAK,cAAc,QAAQ;CAEnD;CACA,YAAY,OAAO,UAAU;EACzB,IAAI,KAAK,cAAc,MAAM,QACzB,KAAK,cAAc,MAAM,cACzB,KAAK,IAAI,aAAa,OAAO,QAAQ;OAGrC,KAAK,IAAI,OAAO,OAAO,QAAQ;CAEvC;CACA,cAAc,IAAI;EACd,IAAI,KAAK,cAAc,MAAM,QACzB,KAAK,cAAc,MAAM,cACzB,KAAK,IAAI,eAAe,EAAE;OAG1B,KAAK,IAAI,aAAa,EAAE;CAEhC;AACJ"}
|
|
1
|
+
{"version":3,"file":"Tokenizer.js","names":["CharCodes","State","QuoteType","xmlDecodeTree","htmlDecodeTree"],"sources":["../../../../../../../../../../node_modules/html-to-text/node_modules/htmlparser2/lib/esm/Tokenizer.js"],"sourcesContent":["import { htmlDecodeTree, xmlDecodeTree, BinTrieFlags, determineBranch, replaceCodePoint, } from \"entities/lib/decode.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nexport default class Tokenizer {\n constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? xmlDecodeTree : htmlDecodeTree;\n }\n reset() {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n }\n write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n /**\n * The current index within all of the written data.\n */\n getIndex() {\n return this.index;\n }\n /**\n * The start of the current section.\n */\n getSectionStart() {\n return this.sectionStart;\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> tags, also decode entities. */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n startSpecial(sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttributeName(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n }\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n stateInDeclaration(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n }\n stateInSpecialComment(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n stateBeforeEntity(c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n }\n stateInNamedEntity(c) {\n this.entityExcess += 1;\n this.trieIndex = determineBranch(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n const masked = this.trieCurrent & BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n const valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n const entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n }\n emitNamedEntity() {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n const valueLength = (this.entityTrie[this.entityResult] & BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n }\n stateBeforeNumericEntity(c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n }\n emitNumericEntity(strict) {\n const entityStart = this.index - this.entityExcess - 1;\n const numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint(replaceCodePoint(this.entityResult));\n }\n this.state = this.baseState;\n }\n stateInNumericEntity(c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n }\n stateInHexEntity(c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n }\n allowLegacyEntity() {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n finish() {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitPartial(start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n }\n emitCodePoint(cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DomHandler } from "../../../../../domhandler/lib/esm/index.js";
|
|
2
|
-
import "./Tokenizer.js";
|
|
2
|
+
import { Tokenizer } from "./Tokenizer.js";
|
|
3
3
|
import { Parser } from "./Parser.js";
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
//#region ../../../node_modules/html-to-text/node_modules/htmlparser2/lib/esm/index.js
|
|
5
6
|
/**
|
|
6
7
|
* Parses the data, returns the resulting document.
|
|
7
8
|
*
|
|
@@ -13,7 +14,7 @@ function parseDocument(data, options) {
|
|
|
13
14
|
new Parser(handler, options).end(data);
|
|
14
15
|
return handler.root;
|
|
15
16
|
}
|
|
17
|
+
|
|
16
18
|
//#endregion
|
|
17
19
|
export { parseDocument };
|
|
18
|
-
|
|
19
20
|
//# sourceMappingURL=index.js.map
|