@langchain/core 1.1.49-dev-1781048185730 → 1.1.49
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 +8 -0
- package/agents.cjs +1 -0
- package/agents.d.cts +1 -0
- package/agents.d.ts +1 -0
- package/agents.js +1 -0
- package/caches.cjs +1 -0
- package/caches.d.cts +1 -0
- package/caches.d.ts +1 -0
- package/caches.js +1 -0
- package/callbacks/base.cjs +1 -0
- package/callbacks/base.d.cts +1 -0
- package/callbacks/base.d.ts +1 -0
- package/callbacks/base.js +1 -0
- package/callbacks/dispatch/web.cjs +1 -0
- package/callbacks/dispatch/web.d.cts +1 -0
- package/callbacks/dispatch/web.d.ts +1 -0
- package/callbacks/dispatch/web.js +1 -0
- package/callbacks/dispatch.cjs +1 -0
- package/callbacks/dispatch.d.cts +1 -0
- package/callbacks/dispatch.d.ts +1 -0
- package/callbacks/dispatch.js +1 -0
- package/callbacks/manager.cjs +1 -0
- package/callbacks/manager.d.cts +1 -0
- package/callbacks/manager.d.ts +1 -0
- package/callbacks/manager.js +1 -0
- package/callbacks/promises.cjs +1 -0
- package/callbacks/promises.d.cts +1 -0
- package/callbacks/promises.d.ts +1 -0
- package/callbacks/promises.js +1 -0
- package/chat_history.cjs +1 -0
- package/chat_history.d.cts +1 -0
- package/chat_history.d.ts +1 -0
- package/chat_history.js +1 -0
- package/context.cjs +1 -0
- package/context.d.cts +1 -0
- package/context.d.ts +1 -0
- package/context.js +1 -0
- package/dist/callbacks/dispatch/index.cjs.map +1 -1
- package/dist/callbacks/dispatch/index.js.map +1 -1
- package/dist/callbacks/manager.cjs.map +1 -1
- package/dist/callbacks/manager.js.map +1 -1
- package/dist/example_selectors/conditional.cjs.map +1 -1
- package/dist/example_selectors/conditional.js.map +1 -1
- package/dist/example_selectors/length_based.cjs.map +1 -1
- package/dist/example_selectors/length_based.js.map +1 -1
- package/dist/example_selectors/semantic_similarity.cjs.map +1 -1
- package/dist/example_selectors/semantic_similarity.js.map +1 -1
- package/dist/indexing/base.cjs.map +1 -1
- package/dist/indexing/base.js.map +1 -1
- package/dist/language_models/base.cjs +1 -1
- package/dist/language_models/base.cjs.map +1 -1
- package/dist/language_models/base.js +1 -1
- package/dist/language_models/base.js.map +1 -1
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/compat.cjs.map +1 -1
- package/dist/language_models/compat.js.map +1 -1
- package/dist/language_models/llms.cjs.map +1 -1
- package/dist/language_models/llms.js.map +1 -1
- package/dist/language_models/stream.cjs.map +1 -1
- package/dist/language_models/stream.js.map +1 -1
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.js.map +1 -1
- package/dist/memory.cjs.map +1 -1
- package/dist/memory.js.map +1 -1
- package/dist/messages/base.cjs.map +1 -1
- package/dist/messages/base.js.map +1 -1
- package/dist/messages/block_translators/anthropic.cjs.map +1 -1
- package/dist/messages/block_translators/anthropic.js.map +1 -1
- package/dist/messages/block_translators/bedrock_converse.cjs.map +1 -1
- package/dist/messages/block_translators/bedrock_converse.js.map +1 -1
- package/dist/messages/block_translators/google.cjs.map +1 -1
- package/dist/messages/block_translators/google.js.map +1 -1
- package/dist/messages/block_translators/google_vertexai.cjs.map +1 -1
- package/dist/messages/block_translators/google_vertexai.js.map +1 -1
- package/dist/messages/block_translators/openai.cjs.map +1 -1
- package/dist/messages/block_translators/openai.js.map +1 -1
- package/dist/messages/transformers.cjs.map +1 -1
- package/dist/messages/transformers.js.map +1 -1
- package/dist/messages/utils.cjs.map +1 -1
- package/dist/messages/utils.js.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.cjs.map +1 -1
- package/dist/output_parsers/openai_functions/json_output_functions_parsers.js.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.cjs.map +1 -1
- package/dist/output_parsers/openai_tools/json_output_tools_parsers.js.map +1 -1
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/output_parsers/xml.cjs.map +1 -1
- package/dist/output_parsers/xml.js.map +1 -1
- package/dist/prompts/base.cjs.map +1 -1
- package/dist/prompts/base.js.map +1 -1
- package/dist/prompts/chat.cjs.map +1 -1
- package/dist/prompts/chat.js.map +1 -1
- package/dist/prompts/few_shot.cjs.map +1 -1
- package/dist/prompts/few_shot.js.map +1 -1
- package/dist/prompts/image.cjs.map +1 -1
- package/dist/prompts/image.js.map +1 -1
- package/dist/prompts/prompt.cjs.map +1 -1
- package/dist/prompts/prompt.js.map +1 -1
- package/dist/prompts/string.cjs.map +1 -1
- package/dist/prompts/string.js.map +1 -1
- package/dist/prompts/template.cjs.map +1 -1
- package/dist/prompts/template.js.map +1 -1
- package/dist/retrievers/index.cjs.map +1 -1
- package/dist/retrievers/index.js.map +1 -1
- package/dist/runnables/base.cjs.map +1 -1
- package/dist/runnables/base.js.map +1 -1
- package/dist/runnables/branch.cjs.map +1 -1
- package/dist/runnables/branch.js.map +1 -1
- package/dist/runnables/graph.cjs.map +1 -1
- package/dist/runnables/graph.js.map +1 -1
- package/dist/runnables/graph_mermaid.cjs.map +1 -1
- package/dist/runnables/graph_mermaid.js.map +1 -1
- package/dist/runnables/history.cjs.map +1 -1
- package/dist/runnables/history.js.map +1 -1
- package/dist/runnables/router.cjs.map +1 -1
- package/dist/runnables/router.js.map +1 -1
- package/dist/runnables/utils.cjs.map +1 -1
- package/dist/runnables/utils.js.map +1 -1
- package/dist/singletons/async_local_storage/context.cjs.map +1 -1
- package/dist/singletons/async_local_storage/context.js.map +1 -1
- package/dist/singletons/async_local_storage/index.cjs.map +1 -1
- package/dist/singletons/async_local_storage/index.js.map +1 -1
- package/dist/testing/fake_model_builder.cjs.map +1 -1
- package/dist/testing/fake_model_builder.js.map +1 -1
- package/dist/testing/matchers.cjs.map +1 -1
- package/dist/testing/matchers.js.map +1 -1
- package/dist/tracers/console.cjs.map +1 -1
- package/dist/tracers/console.js.map +1 -1
- package/dist/tracers/event_stream.cjs.map +1 -1
- package/dist/tracers/event_stream.js.map +1 -1
- package/dist/tracers/tracer_langchain.cjs.map +1 -1
- package/dist/tracers/tracer_langchain.js.map +1 -1
- package/dist/utils/callbacks.cjs.map +1 -1
- package/dist/utils/callbacks.js.map +1 -1
- package/dist/utils/context.cjs.map +1 -1
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/env.cjs.map +1 -1
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/fast-json-patch/src/core.cjs.map +1 -1
- package/dist/utils/fast-json-patch/src/core.js.map +1 -1
- package/dist/utils/json_schema.cjs.map +1 -1
- package/dist/utils/json_schema.js.map +1 -1
- package/dist/utils/sax-js/sax.cjs.map +1 -1
- package/dist/utils/sax-js/sax.js.map +1 -1
- package/dist/utils/ssrf.cjs.map +1 -1
- package/dist/utils/ssrf.js.map +1 -1
- package/dist/utils/stream.d.cts +2 -2
- package/dist/utils/stream.d.cts.map +1 -1
- package/dist/utils/stream.d.ts +2 -2
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/testing/chat_models.cjs.map +1 -1
- package/dist/utils/testing/chat_models.js.map +1 -1
- package/dist/utils/testing/embeddings.cjs.map +1 -1
- package/dist/utils/testing/embeddings.js.map +1 -1
- package/dist/utils/testing/vectorstores.cjs.map +1 -1
- package/dist/utils/testing/vectorstores.js.map +1 -1
- package/dist/utils/types/zod.cjs.map +1 -1
- package/dist/utils/types/zod.js.map +1 -1
- package/dist/utils/uuid/v35.cjs.map +1 -1
- package/dist/utils/uuid/v35.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/nativeEnum.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/pipeline.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/set.js.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.cjs +26 -0
- package/dist/utils/zod-to-json-schema/parsers/string.cjs.map +1 -1
- package/dist/utils/zod-to-json-schema/parsers/string.js +26 -0
- package/dist/utils/zod-to-json-schema/parsers/string.js.map +1 -1
- package/dist/vectorstores.cjs.map +1 -1
- package/dist/vectorstores.js.map +1 -1
- package/document_loaders/base.cjs +1 -0
- package/document_loaders/base.d.cts +1 -0
- package/document_loaders/base.d.ts +1 -0
- package/document_loaders/base.js +1 -0
- package/document_loaders/langsmith.cjs +1 -0
- package/document_loaders/langsmith.d.cts +1 -0
- package/document_loaders/langsmith.d.ts +1 -0
- package/document_loaders/langsmith.js +1 -0
- package/documents.cjs +1 -0
- package/documents.d.cts +1 -0
- package/documents.d.ts +1 -0
- package/documents.js +1 -0
- package/embeddings.cjs +1 -0
- package/embeddings.d.cts +1 -0
- package/embeddings.d.ts +1 -0
- package/embeddings.js +1 -0
- package/errors.cjs +1 -0
- package/errors.d.cts +1 -0
- package/errors.d.ts +1 -0
- package/errors.js +1 -0
- package/example_selectors.cjs +1 -0
- package/example_selectors.d.cts +1 -0
- package/example_selectors.d.ts +1 -0
- package/example_selectors.js +1 -0
- package/indexing.cjs +1 -0
- package/indexing.d.cts +1 -0
- package/indexing.d.ts +1 -0
- package/indexing.js +1 -0
- package/language_models/base.cjs +1 -0
- package/language_models/base.d.cts +1 -0
- package/language_models/base.d.ts +1 -0
- package/language_models/base.js +1 -0
- package/language_models/chat_models.cjs +1 -0
- package/language_models/chat_models.d.cts +1 -0
- package/language_models/chat_models.d.ts +1 -0
- package/language_models/chat_models.js +1 -0
- package/language_models/compat.cjs +1 -0
- package/language_models/compat.d.cts +1 -0
- package/language_models/compat.d.ts +1 -0
- package/language_models/compat.js +1 -0
- package/language_models/event.cjs +1 -0
- package/language_models/event.d.cts +1 -0
- package/language_models/event.d.ts +1 -0
- package/language_models/event.js +1 -0
- package/language_models/llms.cjs +1 -0
- package/language_models/llms.d.cts +1 -0
- package/language_models/llms.d.ts +1 -0
- package/language_models/llms.js +1 -0
- package/language_models/profile.cjs +1 -0
- package/language_models/profile.d.cts +1 -0
- package/language_models/profile.d.ts +1 -0
- package/language_models/profile.js +1 -0
- package/language_models/stream.cjs +1 -0
- package/language_models/stream.d.cts +1 -0
- package/language_models/stream.d.ts +1 -0
- package/language_models/stream.js +1 -0
- package/language_models/structured_output.cjs +1 -0
- package/language_models/structured_output.d.cts +1 -0
- package/language_models/structured_output.d.ts +1 -0
- package/language_models/structured_output.js +1 -0
- package/load/serializable.cjs +1 -0
- package/load/serializable.d.cts +1 -0
- package/load/serializable.d.ts +1 -0
- package/load/serializable.js +1 -0
- package/load.cjs +1 -0
- package/load.d.cts +1 -0
- package/load.d.ts +1 -0
- package/load.js +1 -0
- package/memory.cjs +1 -0
- package/memory.d.cts +1 -0
- package/memory.d.ts +1 -0
- package/memory.js +1 -0
- package/messages/tool.cjs +1 -0
- package/messages/tool.d.cts +1 -0
- package/messages/tool.d.ts +1 -0
- package/messages/tool.js +1 -0
- package/messages.cjs +1 -0
- package/messages.d.cts +1 -0
- package/messages.d.ts +1 -0
- package/messages.js +1 -0
- package/output_parsers/openai_functions.cjs +1 -0
- package/output_parsers/openai_functions.d.cts +1 -0
- package/output_parsers/openai_functions.d.ts +1 -0
- package/output_parsers/openai_functions.js +1 -0
- package/output_parsers/openai_tools.cjs +1 -0
- package/output_parsers/openai_tools.d.cts +1 -0
- package/output_parsers/openai_tools.d.ts +1 -0
- package/output_parsers/openai_tools.js +1 -0
- package/output_parsers.cjs +1 -0
- package/output_parsers.d.cts +1 -0
- package/output_parsers.d.ts +1 -0
- package/output_parsers.js +1 -0
- package/outputs.cjs +1 -0
- package/outputs.d.cts +1 -0
- package/outputs.d.ts +1 -0
- package/outputs.js +1 -0
- package/package.json +5 -5
- package/prompt_values.cjs +1 -0
- package/prompt_values.d.cts +1 -0
- package/prompt_values.d.ts +1 -0
- package/prompt_values.js +1 -0
- package/prompts.cjs +1 -0
- package/prompts.d.cts +1 -0
- package/prompts.d.ts +1 -0
- package/prompts.js +1 -0
- package/retrievers/document_compressors.cjs +1 -0
- package/retrievers/document_compressors.d.cts +1 -0
- package/retrievers/document_compressors.d.ts +1 -0
- package/retrievers/document_compressors.js +1 -0
- package/retrievers.cjs +1 -0
- package/retrievers.d.cts +1 -0
- package/retrievers.d.ts +1 -0
- package/retrievers.js +1 -0
- package/runnables/graph.cjs +1 -0
- package/runnables/graph.d.cts +1 -0
- package/runnables/graph.d.ts +1 -0
- package/runnables/graph.js +1 -0
- package/runnables.cjs +1 -0
- package/runnables.d.cts +1 -0
- package/runnables.d.ts +1 -0
- package/runnables.js +1 -0
- package/singletons.cjs +1 -0
- package/singletons.d.cts +1 -0
- package/singletons.d.ts +1 -0
- package/singletons.js +1 -0
- package/stores.cjs +1 -0
- package/stores.d.cts +1 -0
- package/stores.d.ts +1 -0
- package/stores.js +1 -0
- package/structured_query.cjs +1 -0
- package/structured_query.d.cts +1 -0
- package/structured_query.d.ts +1 -0
- package/structured_query.js +1 -0
- package/tools.cjs +1 -0
- package/tools.d.cts +1 -0
- package/tools.d.ts +1 -0
- package/tools.js +1 -0
- package/tracers/base.cjs +1 -0
- package/tracers/base.d.cts +1 -0
- package/tracers/base.d.ts +1 -0
- package/tracers/base.js +1 -0
- package/tracers/console.cjs +1 -0
- package/tracers/console.d.cts +1 -0
- package/tracers/console.d.ts +1 -0
- package/tracers/console.js +1 -0
- package/tracers/log_stream.cjs +1 -0
- package/tracers/log_stream.d.cts +1 -0
- package/tracers/log_stream.d.ts +1 -0
- package/tracers/log_stream.js +1 -0
- package/tracers/run_collector.cjs +1 -0
- package/tracers/run_collector.d.cts +1 -0
- package/tracers/run_collector.d.ts +1 -0
- package/tracers/run_collector.js +1 -0
- package/tracers/tracer_langchain.cjs +1 -0
- package/tracers/tracer_langchain.d.cts +1 -0
- package/tracers/tracer_langchain.d.ts +1 -0
- package/tracers/tracer_langchain.js +1 -0
- package/types/stream.cjs +1 -0
- package/types/stream.d.cts +1 -0
- package/types/stream.d.ts +1 -0
- package/types/stream.js +1 -0
- package/utils/async_caller.cjs +1 -0
- package/utils/async_caller.d.cts +1 -0
- package/utils/async_caller.d.ts +1 -0
- package/utils/async_caller.js +1 -0
- package/utils/chunk_array.cjs +1 -0
- package/utils/chunk_array.d.cts +1 -0
- package/utils/chunk_array.d.ts +1 -0
- package/utils/chunk_array.js +1 -0
- package/utils/context.cjs +1 -0
- package/utils/context.d.cts +1 -0
- package/utils/context.d.ts +1 -0
- package/utils/context.js +1 -0
- package/utils/env.cjs +1 -0
- package/utils/env.d.cts +1 -0
- package/utils/env.d.ts +1 -0
- package/utils/env.js +1 -0
- package/utils/event_source_parse.cjs +1 -0
- package/utils/event_source_parse.d.cts +1 -0
- package/utils/event_source_parse.d.ts +1 -0
- package/utils/event_source_parse.js +1 -0
- package/utils/format.cjs +1 -0
- package/utils/format.d.cts +1 -0
- package/utils/format.d.ts +1 -0
- package/utils/format.js +1 -0
- package/utils/function_calling.cjs +1 -0
- package/utils/function_calling.d.cts +1 -0
- package/utils/function_calling.d.ts +1 -0
- package/utils/function_calling.js +1 -0
- package/utils/hash.cjs +1 -0
- package/utils/hash.d.cts +1 -0
- package/utils/hash.d.ts +1 -0
- package/utils/hash.js +1 -0
- package/utils/json_patch.cjs +1 -0
- package/utils/json_patch.d.cts +1 -0
- package/utils/json_patch.d.ts +1 -0
- package/utils/json_patch.js +1 -0
- package/utils/json_schema.cjs +1 -0
- package/utils/json_schema.d.cts +1 -0
- package/utils/json_schema.d.ts +1 -0
- package/utils/json_schema.js +1 -0
- package/utils/math.cjs +1 -0
- package/utils/math.d.cts +1 -0
- package/utils/math.d.ts +1 -0
- package/utils/math.js +1 -0
- package/utils/ssrf.cjs +1 -0
- package/utils/ssrf.d.cts +1 -0
- package/utils/ssrf.d.ts +1 -0
- package/utils/ssrf.js +1 -0
- package/utils/standard_schema.cjs +1 -0
- package/utils/standard_schema.d.cts +1 -0
- package/utils/standard_schema.d.ts +1 -0
- package/utils/standard_schema.js +1 -0
- package/utils/stream.cjs +1 -0
- package/utils/stream.d.cts +1 -0
- package/utils/stream.d.ts +1 -0
- package/utils/stream.js +1 -0
- package/utils/testing.cjs +1 -0
- package/utils/testing.d.cts +1 -0
- package/utils/testing.d.ts +1 -0
- package/utils/testing.js +1 -0
- package/utils/tiktoken.cjs +1 -0
- package/utils/tiktoken.d.cts +1 -0
- package/utils/tiktoken.d.ts +1 -0
- package/utils/tiktoken.js +1 -0
- package/utils/types.cjs +1 -0
- package/utils/types.d.cts +1 -0
- package/utils/types.d.ts +1 -0
- package/utils/types.js +1 -0
- package/utils/uuid.cjs +1 -0
- package/utils/uuid.d.cts +1 -0
- package/utils/uuid.d.ts +1 -0
- package/utils/uuid.js +1 -0
- package/vectorstores.cjs +1 -0
- package/vectorstores.d.cts +1 -0
- package/vectorstores.d.ts +1 -0
- package/vectorstores.js +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sax.cjs","names":[],"sources":["../../../src/utils/sax-js/sax.ts"],"sourcesContent":["// @ts-nocheck\n\n// Inlined to deal with portability issues\n// Originally from: https://github.com/isaacs/sax-js\n\nconst initializeSax = function () {\n const sax: any = {};\n sax.parser = function (strict, opt) {\n return new SAXParser(strict, opt);\n };\n sax.SAXParser = SAXParser;\n sax.SAXStream = SAXStream;\n sax.createStream = createStream;\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024;\n\n const buffers = [\n \"comment\",\n \"sgmlDecl\",\n \"textNode\",\n \"tagName\",\n \"doctype\",\n \"procInstName\",\n \"procInstBody\",\n \"entity\",\n \"attribName\",\n \"attribValue\",\n \"cdata\",\n \"script\",\n ];\n\n sax.EVENTS = [\n \"text\",\n \"processinginstruction\",\n \"sgmldeclaration\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"opencdata\",\n \"cdata\",\n \"closecdata\",\n \"error\",\n \"end\",\n \"ready\",\n \"script\",\n \"opennamespace\",\n \"closenamespace\",\n ];\n\n function SAXParser(strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt);\n }\n\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = \"\";\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? \"toLowerCase\" : \"toUpperCase\";\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities\n ? Object.create(sax.XML_ENTITIES)\n : Object.create(sax.ENTITIES);\n parser.attribList = [];\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit(parser, \"onready\");\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F() {}\n F.prototype = o;\n var newf = new F();\n return newf;\n };\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = [];\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i);\n return a;\n };\n }\n\n function checkBufferLength(parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length;\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case \"textNode\":\n closeText(parser);\n break;\n\n case \"cdata\":\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n break;\n\n case \"script\":\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n break;\n\n default:\n error(parser, \"Max buffer length exceeded: \" + buffers[i]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m + parser.position;\n }\n\n function clearBuffers(parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = \"\";\n }\n }\n\n function flushBuffers(parser) {\n closeText(parser);\n if (parser.cdata !== \"\") {\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n }\n if (parser.script !== \"\") {\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n }\n\n SAXParser.prototype = {\n end: function () {\n end(this);\n },\n write: write,\n resume: function () {\n this.error = null;\n return this;\n },\n close: function () {\n return this.write(null);\n },\n flush: function () {\n flushBuffers(this);\n },\n };\n\n var Stream = ReadableStream;\n if (!Stream) Stream = function () {};\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== \"error\" && ev !== \"end\";\n });\n\n function createStream(strict, opt) {\n return new SAXStream(strict, opt);\n }\n\n function SAXStream(strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt);\n }\n\n Stream.apply(this);\n\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n\n var me = this;\n\n this._parser.onend = function () {\n me.emit(\"end\");\n };\n\n this._parser.onerror = function (er) {\n me.emit(\"error\", er);\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null;\n };\n\n this._decoder = null;\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, \"on\" + ev, {\n get: function () {\n return me._parser[\"on\" + ev];\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev);\n me._parser[\"on\" + ev] = h;\n return h;\n }\n me.on(ev, h);\n },\n enumerable: true,\n configurable: false,\n });\n });\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream,\n },\n });\n\n SAXStream.prototype.write = function (data) {\n this._parser.write(data.toString());\n this.emit(\"data\", data);\n return true;\n };\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true;\n };\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this;\n if (!me._parser[\"on\" + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser[\"on\" + ev] = function () {\n var args =\n arguments.length === 1\n ? [arguments[0]]\n : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n\n return Stream.prototype.on.call(me, ev, handler);\n };\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = \"[CDATA[\";\n var DOCTYPE = \"DOCTYPE\";\n var XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\n var XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart =\n /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n\n var nameBody =\n /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n\n var entityStart =\n /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var entityBody =\n /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n\n function isWhitespace(c) {\n return c === \" \" || c === \"\\n\" || c === \"\\r\" || c === \"\\t\";\n }\n\n function isQuote(c) {\n return c === '\"' || c === \"'\";\n }\n\n function isAttribEnd(c) {\n return c === \">\" || isWhitespace(c);\n }\n\n function isMatch(regex, c) {\n return regex.test(c);\n }\n\n function notMatch(regex, c) {\n return !isMatch(regex, c);\n }\n\n var S = 0;\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++, // <script> ... <\n };\n\n sax.XML_ENTITIES = {\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: '\"',\n apos: \"'\",\n };\n\n sax.ENTITIES = {\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: '\"',\n apos: \"'\",\n AElig: 198,\n Aacute: 193,\n Acirc: 194,\n Agrave: 192,\n Aring: 197,\n Atilde: 195,\n Auml: 196,\n Ccedil: 199,\n ETH: 208,\n Eacute: 201,\n Ecirc: 202,\n Egrave: 200,\n Euml: 203,\n Iacute: 205,\n Icirc: 206,\n Igrave: 204,\n Iuml: 207,\n Ntilde: 209,\n Oacute: 211,\n Ocirc: 212,\n Ograve: 210,\n Oslash: 216,\n Otilde: 213,\n Ouml: 214,\n THORN: 222,\n Uacute: 218,\n Ucirc: 219,\n Ugrave: 217,\n Uuml: 220,\n Yacute: 221,\n aacute: 225,\n acirc: 226,\n aelig: 230,\n agrave: 224,\n aring: 229,\n atilde: 227,\n auml: 228,\n ccedil: 231,\n eacute: 233,\n ecirc: 234,\n egrave: 232,\n eth: 240,\n euml: 235,\n iacute: 237,\n icirc: 238,\n igrave: 236,\n iuml: 239,\n ntilde: 241,\n oacute: 243,\n ocirc: 244,\n ograve: 242,\n oslash: 248,\n otilde: 245,\n ouml: 246,\n szlig: 223,\n thorn: 254,\n uacute: 250,\n ucirc: 251,\n ugrave: 249,\n uuml: 252,\n yacute: 253,\n yuml: 255,\n copy: 169,\n reg: 174,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup1: 185,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n times: 215,\n divide: 247,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n fnof: 402,\n circ: 710,\n tilde: 732,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n bull: 8226,\n hellip: 8230,\n permil: 8240,\n prime: 8242,\n Prime: 8243,\n lsaquo: 8249,\n rsaquo: 8250,\n oline: 8254,\n frasl: 8260,\n euro: 8364,\n image: 8465,\n weierp: 8472,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830,\n };\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key];\n var s = typeof e === \"number\" ? String.fromCharCode(e) : e;\n sax.ENTITIES[key] = s;\n });\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s;\n }\n\n // shorthand\n S = sax.STATE;\n\n function emit(parser, event, data) {\n parser[event] && parser[event](data);\n }\n\n function emitNode(parser, nodeType, data) {\n if (parser.textNode) closeText(parser);\n emit(parser, nodeType, data);\n }\n\n function closeText(parser) {\n parser.textNode = textopts(parser.opt, parser.textNode);\n if (parser.textNode) emit(parser, \"ontext\", parser.textNode);\n parser.textNode = \"\";\n }\n\n function textopts(opt, text) {\n if (opt.trim) text = text.trim();\n if (opt.normalize) text = text.replace(/\\s+/g, \" \");\n return text;\n }\n\n function error(parser, er) {\n closeText(parser);\n if (parser.trackPosition) {\n er +=\n \"\\nLine: \" +\n parser.line +\n \"\\nColumn: \" +\n parser.column +\n \"\\nChar: \" +\n parser.c;\n }\n er = new Error(er);\n parser.error = er;\n emit(parser, \"onerror\", er);\n return parser;\n }\n\n function end(parser) {\n if (parser.sawRoot && !parser.closedRoot)\n strictFail(parser, \"Unclosed root tag\");\n if (\n parser.state !== S.BEGIN &&\n parser.state !== S.BEGIN_WHITESPACE &&\n parser.state !== S.TEXT\n ) {\n error(parser, \"Unexpected end\");\n }\n closeText(parser);\n parser.c = \"\";\n parser.closed = true;\n emit(parser, \"onend\");\n SAXParser.call(parser, parser.strict, parser.opt);\n return parser;\n }\n\n function strictFail(parser, message) {\n if (typeof parser !== \"object\" || !(parser instanceof SAXParser)) {\n throw new Error(\"bad call to strictFail\");\n }\n if (parser.strict) {\n error(parser, message);\n }\n }\n\n function newTag(parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();\n var parent = parser.tags[parser.tags.length - 1] || parser;\n var tag = (parser.tag = { name: parser.tagName, attributes: {} });\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns;\n }\n parser.attribList.length = 0;\n emitNode(parser, \"onopentagstart\", tag);\n }\n\n function qname(name, attribute) {\n var i = name.indexOf(\":\");\n var qualName = i < 0 ? [\"\", name] : name.split(\":\");\n var prefix = qualName[0];\n var local = qualName[1];\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === \"xmlns\") {\n prefix = \"xmlns\";\n local = \"\";\n }\n\n return { prefix: prefix, local: local };\n }\n\n function attrib(parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]();\n }\n\n if (\n parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)\n ) {\n parser.attribName = parser.attribValue = \"\";\n return;\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true);\n var prefix = qn.prefix;\n var local = qn.local;\n\n if (prefix === \"xmlns\") {\n // namespace binding attribute. push the binding into scope\n if (local === \"xml\" && parser.attribValue !== XML_NAMESPACE) {\n strictFail(\n parser,\n \"xml: prefix must be bound to \" +\n XML_NAMESPACE +\n \"\\n\" +\n \"Actual: \" +\n parser.attribValue\n );\n } else if (\n local === \"xmlns\" &&\n parser.attribValue !== XMLNS_NAMESPACE\n ) {\n strictFail(\n parser,\n \"xmlns: prefix must be bound to \" +\n XMLNS_NAMESPACE +\n \"\\n\" +\n \"Actual: \" +\n parser.attribValue\n );\n } else {\n var tag = parser.tag;\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = parser.attribValue;\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue]);\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue;\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: parser.attribValue,\n });\n }\n\n parser.attribName = parser.attribValue = \"\";\n }\n\n function openTag(parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag;\n\n // add namespace info to tag\n var qn = qname(parser.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || \"\";\n\n if (tag.prefix && !tag.uri) {\n strictFail(\n parser,\n \"Unbound namespace prefix: \" + JSON.stringify(parser.tagName)\n );\n tag.uri = qn.prefix;\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, \"onopennamespace\", {\n prefix: p,\n uri: tag.ns[p],\n });\n });\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i];\n var name = nv[0];\n var value = nv[1];\n var qualName = qname(name, true);\n var prefix = qualName.prefix;\n var local = qualName.local;\n var uri = prefix === \"\" ? \"\" : tag.ns[prefix] || \"\";\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri,\n };\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== \"xmlns\" && !uri) {\n strictFail(\n parser,\n \"Unbound namespace prefix: \" + JSON.stringify(prefix)\n );\n a.uri = prefix;\n }\n parser.tag.attributes[name] = a;\n emitNode(parser, \"onattribute\", a);\n }\n parser.attribList.length = 0;\n }\n\n parser.tag.isSelfClosing = !!selfClosing;\n\n // process the tag\n parser.sawRoot = true;\n parser.tags.push(parser.tag);\n emitNode(parser, \"onopentag\", parser.tag);\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === \"script\") {\n parser.state = S.SCRIPT;\n } else {\n parser.state = S.TEXT;\n }\n parser.tag = null;\n parser.tagName = \"\";\n }\n parser.attribName = parser.attribValue = \"\";\n parser.attribList.length = 0;\n }\n\n function closeTag(parser) {\n if (!parser.tagName) {\n strictFail(parser, \"Weird empty close tag.\");\n parser.textNode += \"</>\";\n parser.state = S.TEXT;\n return;\n }\n\n if (parser.script) {\n if (parser.tagName !== \"script\") {\n parser.script += \"</\" + parser.tagName + \">\";\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n return;\n }\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length;\n var tagName = parser.tagName;\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]();\n }\n var closeTo = tagName;\n while (t--) {\n var close = parser.tags[t];\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, \"Unexpected close tag\");\n } else {\n break;\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, \"Unmatched closing tag: \" + parser.tagName);\n parser.textNode += \"</\" + parser.tagName + \">\";\n parser.state = S.TEXT;\n return;\n }\n parser.tagName = tagName;\n var s = parser.tags.length;\n while (s-- > t) {\n var tag = (parser.tag = parser.tags.pop());\n parser.tagName = parser.tag.name;\n emitNode(parser, \"onclosetag\", parser.tagName);\n\n var x = {};\n for (var i in tag.ns) {\n x[i] = tag.ns[i];\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p];\n emitNode(parser, \"onclosenamespace\", { prefix: p, uri: n });\n });\n }\n }\n if (t === 0) parser.closedRoot = true;\n parser.tagName = parser.attribValue = parser.attribName = \"\";\n parser.attribList.length = 0;\n parser.state = S.TEXT;\n }\n\n function parseEntity(parser) {\n var entity = parser.entity;\n var entityLC = entity.toLowerCase();\n var num;\n var numStr = \"\";\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity];\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === \"#\") {\n if (entity.charAt(1) === \"x\") {\n entity = entity.slice(2);\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n } else {\n entity = entity.slice(1);\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, \"\");\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, \"Invalid character entity\");\n return \"&\" + parser.entity + \";\";\n }\n\n return String.fromCodePoint(num);\n }\n\n function beginWhiteSpace(parser, c) {\n if (c === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, \"Non-whitespace before first tag.\");\n parser.textNode = c;\n parser.state = S.TEXT;\n }\n }\n\n function charAt(chunk, i) {\n var result = \"\";\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result;\n }\n\n function write(chunk) {\n var parser = this;\n if (this.error) {\n throw this.error;\n }\n if (parser.closed) {\n return error(\n parser,\n \"Cannot write after close. Assign an onready handler.\"\n );\n }\n if (chunk === null) {\n return end(parser);\n }\n if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n var i = 0;\n var c = \"\";\n while (true) {\n c = charAt(chunk, i++);\n parser.c = c;\n\n if (!c) {\n break;\n }\n\n if (parser.trackPosition) {\n parser.position++;\n if (c === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE;\n if (c === \"\\uFEFF\") {\n continue;\n }\n beginWhiteSpace(parser, c);\n continue;\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c);\n continue;\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1;\n while (c && c !== \"<\" && c !== \"&\") {\n c = charAt(chunk, i++);\n if (c && parser.trackPosition) {\n parser.position++;\n if (c === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1);\n }\n if (\n c === \"<\" &&\n !(parser.sawRoot && parser.closedRoot && !parser.strict)\n ) {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, \"Text data outside of root node.\");\n }\n if (c === \"&\") {\n parser.state = S.TEXT_ENTITY;\n } else {\n parser.textNode += c;\n }\n }\n continue;\n\n case S.SCRIPT:\n // only non-strict\n if (c === \"<\") {\n parser.state = S.SCRIPT_ENDING;\n } else {\n parser.script += c;\n }\n continue;\n\n case S.SCRIPT_ENDING:\n if (c === \"/\") {\n parser.state = S.CLOSE_TAG;\n } else {\n parser.script += \"<\" + c;\n parser.state = S.SCRIPT;\n }\n continue;\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === \"!\") {\n parser.state = S.SGML_DECL;\n parser.sgmlDecl = \"\";\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG;\n parser.tagName = c;\n } else if (c === \"/\") {\n parser.state = S.CLOSE_TAG;\n parser.tagName = \"\";\n } else if (c === \"?\") {\n parser.state = S.PROC_INST;\n parser.procInstName = parser.procInstBody = \"\";\n } else {\n strictFail(parser, \"Unencoded <\");\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition;\n c = new Array(pad).join(\" \") + c;\n }\n parser.textNode += \"<\" + c;\n parser.state = S.TEXT;\n }\n continue;\n\n case S.SGML_DECL:\n if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, \"onopencdata\");\n parser.state = S.CDATA;\n parser.sgmlDecl = \"\";\n parser.cdata = \"\";\n } else if (parser.sgmlDecl + c === \"--\") {\n parser.state = S.COMMENT;\n parser.comment = \"\";\n parser.sgmlDecl = \"\";\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE;\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser, \"Inappropriately located doctype declaration\");\n }\n parser.doctype = \"\";\n parser.sgmlDecl = \"\";\n } else if (c === \">\") {\n emitNode(parser, \"onsgmldeclaration\", parser.sgmlDecl);\n parser.sgmlDecl = \"\";\n parser.state = S.TEXT;\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED;\n parser.sgmlDecl += c;\n } else {\n parser.sgmlDecl += c;\n }\n continue;\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL;\n parser.q = \"\";\n }\n parser.sgmlDecl += c;\n continue;\n\n case S.DOCTYPE:\n if (c === \">\") {\n parser.state = S.TEXT;\n emitNode(parser, \"ondoctype\", parser.doctype);\n parser.doctype = true; // just remember that we saw it.\n } else {\n parser.doctype += c;\n if (c === \"[\") {\n parser.state = S.DOCTYPE_DTD;\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED;\n parser.q = c;\n }\n }\n continue;\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c;\n if (c === parser.q) {\n parser.q = \"\";\n parser.state = S.DOCTYPE;\n }\n continue;\n\n case S.DOCTYPE_DTD:\n parser.doctype += c;\n if (c === \"]\") {\n parser.state = S.DOCTYPE;\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_DTD_QUOTED;\n parser.q = c;\n }\n continue;\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c;\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD;\n parser.q = \"\";\n }\n continue;\n\n case S.COMMENT:\n if (c === \"-\") {\n parser.state = S.COMMENT_ENDING;\n } else {\n parser.comment += c;\n }\n continue;\n\n case S.COMMENT_ENDING:\n if (c === \"-\") {\n parser.state = S.COMMENT_ENDED;\n parser.comment = textopts(parser.opt, parser.comment);\n if (parser.comment) {\n emitNode(parser, \"oncomment\", parser.comment);\n }\n parser.comment = \"\";\n } else {\n parser.comment += \"-\" + c;\n parser.state = S.COMMENT;\n }\n continue;\n\n case S.COMMENT_ENDED:\n if (c !== \">\") {\n strictFail(parser, \"Malformed comment\");\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += \"--\" + c;\n parser.state = S.COMMENT;\n } else {\n parser.state = S.TEXT;\n }\n continue;\n\n case S.CDATA:\n if (c === \"]\") {\n parser.state = S.CDATA_ENDING;\n } else {\n parser.cdata += c;\n }\n continue;\n\n case S.CDATA_ENDING:\n if (c === \"]\") {\n parser.state = S.CDATA_ENDING_2;\n } else {\n parser.cdata += \"]\" + c;\n parser.state = S.CDATA;\n }\n continue;\n\n case S.CDATA_ENDING_2:\n if (c === \">\") {\n if (parser.cdata) {\n emitNode(parser, \"oncdata\", parser.cdata);\n }\n emitNode(parser, \"onclosecdata\");\n parser.cdata = \"\";\n parser.state = S.TEXT;\n } else if (c === \"]\") {\n parser.cdata += \"]\";\n } else {\n parser.cdata += \"]]\" + c;\n parser.state = S.CDATA;\n }\n continue;\n\n case S.PROC_INST:\n if (c === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY;\n } else {\n parser.procInstName += c;\n }\n continue;\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue;\n } else if (c === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else {\n parser.procInstBody += c;\n }\n continue;\n\n case S.PROC_INST_ENDING:\n if (c === \">\") {\n emitNode(parser, \"onprocessinginstruction\", {\n name: parser.procInstName,\n body: parser.procInstBody,\n });\n parser.procInstName = parser.procInstBody = \"\";\n parser.state = S.TEXT;\n } else {\n parser.procInstBody += \"?\" + c;\n parser.state = S.PROC_INST_BODY;\n }\n continue;\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c;\n } else {\n newTag(parser);\n if (c === \">\") {\n openTag(parser);\n } else if (c === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, \"Invalid character in tag name\");\n }\n parser.state = S.ATTRIB;\n }\n }\n continue;\n\n case S.OPEN_TAG_SLASH:\n if (c === \">\") {\n openTag(parser, true);\n closeTag(parser);\n } else {\n strictFail(\n parser,\n \"Forward-slash in opening tag not followed by >\"\n );\n parser.state = S.ATTRIB;\n }\n continue;\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue;\n } else if (c === \">\") {\n openTag(parser);\n } else if (c === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n\n case S.ATTRIB_NAME:\n if (c === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (c === \">\") {\n strictFail(parser, \"Attribute without value\");\n parser.attribValue = parser.attribName;\n attrib(parser);\n openTag(parser);\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE;\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (isWhitespace(c)) {\n continue;\n } else {\n strictFail(parser, \"Attribute without value\");\n parser.tag.attributes[parser.attribName] = \"\";\n parser.attribValue = \"\";\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: \"\",\n });\n parser.attribName = \"\";\n if (c === \">\") {\n openTag(parser);\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c;\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n parser.state = S.ATTRIB;\n }\n }\n continue;\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue;\n } else if (isQuote(c)) {\n parser.q = c;\n parser.state = S.ATTRIB_VALUE_QUOTED;\n } else {\n strictFail(parser, \"Unquoted attribute value\");\n parser.state = S.ATTRIB_VALUE_UNQUOTED;\n parser.attribValue = c;\n }\n continue;\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q;\n } else {\n parser.attribValue += c;\n }\n continue;\n }\n attrib(parser);\n parser.q = \"\";\n parser.state = S.ATTRIB_VALUE_CLOSED;\n continue;\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB;\n } else if (c === \">\") {\n openTag(parser);\n } else if (c === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, \"No whitespace between attributes\");\n parser.attribName = c;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_U;\n } else {\n parser.attribValue += c;\n }\n continue;\n }\n attrib(parser);\n if (c === \">\") {\n openTag(parser);\n } else {\n parser.state = S.ATTRIB;\n }\n continue;\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue;\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += \"</\" + c;\n parser.state = S.SCRIPT;\n } else {\n strictFail(parser, \"Invalid tagname in closing tag.\");\n }\n } else {\n parser.tagName = c;\n }\n } else if (c === \">\") {\n closeTag(parser);\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c;\n } else if (parser.script) {\n parser.script += \"</\" + parser.tagName;\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, \"Invalid tagname in closing tag\");\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue;\n }\n if (c === \">\") {\n closeTag(parser);\n } else {\n strictFail(parser, \"Invalid characters in closing tag\");\n }\n continue;\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState;\n var buffer;\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT;\n buffer = \"textNode\";\n break;\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED;\n buffer = \"attribValue\";\n break;\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED;\n buffer = \"attribValue\";\n break;\n }\n\n if (c === \";\") {\n if (parser.opt.unparsedEntities) {\n var parsedEntity = parseEntity(parser);\n parser.entity = \"\";\n parser.state = returnState;\n parser.write(parsedEntity);\n } else {\n parser[buffer] += parseEntity(parser);\n parser.entity = \"\";\n parser.state = returnState;\n }\n } else if (\n isMatch(parser.entity.length ? entityBody : entityStart, c)\n ) {\n parser.entity += c;\n } else {\n strictFail(parser, \"Invalid character in entity name\");\n parser[buffer] += \"&\" + parser.entity + c;\n parser.entity = \"\";\n parser.state = returnState;\n }\n\n continue;\n\n default: /* istanbul ignore next */ {\n throw new Error(parser, \"Unknown state: \" + parser.state);\n }\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser);\n }\n return parser;\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n if (!length) {\n return \"\";\n }\n var result = \"\";\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError(\"Invalid code point: \" + codePoint);\n }\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = (codePoint % 0x400) + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, \"fromCodePoint\", {\n value: fromCodePoint,\n configurable: true,\n writable: true,\n });\n } else {\n String.fromCodePoint = fromCodePoint;\n }\n })();\n }\n return sax;\n};\n\nconst sax = /** #__PURE__ */ initializeSax();\n\nexport { sax };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sax.cjs","names":[],"sources":["../../../src/utils/sax-js/sax.ts"],"sourcesContent":["// @ts-nocheck\n\n// Inlined to deal with portability issues\n// Originally from: https://github.com/isaacs/sax-js\n\nconst initializeSax = function () {\n const sax: any = {};\n sax.parser = function (strict, opt) {\n return new SAXParser(strict, opt);\n };\n sax.SAXParser = SAXParser;\n sax.SAXStream = SAXStream;\n sax.createStream = createStream;\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024;\n\n const buffers = [\n \"comment\",\n \"sgmlDecl\",\n \"textNode\",\n \"tagName\",\n \"doctype\",\n \"procInstName\",\n \"procInstBody\",\n \"entity\",\n \"attribName\",\n \"attribValue\",\n \"cdata\",\n \"script\",\n ];\n\n sax.EVENTS = [\n \"text\",\n \"processinginstruction\",\n \"sgmldeclaration\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"opencdata\",\n \"cdata\",\n \"closecdata\",\n \"error\",\n \"end\",\n \"ready\",\n \"script\",\n \"opennamespace\",\n \"closenamespace\",\n ];\n\n function SAXParser(strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt);\n }\n\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = \"\";\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? \"toLowerCase\" : \"toUpperCase\";\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities\n ? Object.create(sax.XML_ENTITIES)\n : Object.create(sax.ENTITIES);\n parser.attribList = [];\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit(parser, \"onready\");\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F() {}\n F.prototype = o;\n var newf = new F();\n return newf;\n };\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = [];\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i);\n return a;\n };\n }\n\n function checkBufferLength(parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length;\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case \"textNode\":\n closeText(parser);\n break;\n\n case \"cdata\":\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n break;\n\n case \"script\":\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n break;\n\n default:\n error(parser, \"Max buffer length exceeded: \" + buffers[i]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m + parser.position;\n }\n\n function clearBuffers(parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = \"\";\n }\n }\n\n function flushBuffers(parser) {\n closeText(parser);\n if (parser.cdata !== \"\") {\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n }\n if (parser.script !== \"\") {\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n }\n\n SAXParser.prototype = {\n end: function () {\n end(this);\n },\n write: write,\n resume: function () {\n this.error = null;\n return this;\n },\n close: function () {\n return this.write(null);\n },\n flush: function () {\n flushBuffers(this);\n },\n };\n\n var Stream = ReadableStream;\n if (!Stream) Stream = function () {};\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== \"error\" && ev !== \"end\";\n });\n\n function createStream(strict, opt) {\n return new SAXStream(strict, opt);\n }\n\n function SAXStream(strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt);\n }\n\n Stream.apply(this);\n\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n\n var me = this;\n\n this._parser.onend = function () {\n me.emit(\"end\");\n };\n\n this._parser.onerror = function (er) {\n me.emit(\"error\", er);\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null;\n };\n\n this._decoder = null;\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, \"on\" + ev, {\n get: function () {\n return me._parser[\"on\" + ev];\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev);\n me._parser[\"on\" + ev] = h;\n return h;\n }\n me.on(ev, h);\n },\n enumerable: true,\n configurable: false,\n });\n });\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream,\n },\n });\n\n SAXStream.prototype.write = function (data) {\n this._parser.write(data.toString());\n this.emit(\"data\", data);\n return true;\n };\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true;\n };\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this;\n if (!me._parser[\"on\" + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser[\"on\" + ev] = function () {\n var args =\n arguments.length === 1\n ? [arguments[0]]\n : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n\n return Stream.prototype.on.call(me, ev, handler);\n };\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = \"[CDATA[\";\n var DOCTYPE = \"DOCTYPE\";\n var XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\n var XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart =\n /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n\n var nameBody =\n /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n\n var entityStart =\n /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var entityBody =\n /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n\n function isWhitespace(c) {\n return c === \" \" || c === \"\\n\" || c === \"\\r\" || c === \"\\t\";\n }\n\n function isQuote(c) {\n return c === '\"' || c === \"'\";\n }\n\n function isAttribEnd(c) {\n return c === \">\" || isWhitespace(c);\n }\n\n function isMatch(regex, c) {\n return regex.test(c);\n }\n\n function notMatch(regex, c) {\n return !isMatch(regex, c);\n }\n\n var S = 0;\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++, // <script> ... <\n };\n\n sax.XML_ENTITIES = {\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: '\"',\n apos: \"'\",\n };\n\n sax.ENTITIES = {\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n quot: '\"',\n apos: \"'\",\n AElig: 198,\n Aacute: 193,\n Acirc: 194,\n Agrave: 192,\n Aring: 197,\n Atilde: 195,\n Auml: 196,\n Ccedil: 199,\n ETH: 208,\n Eacute: 201,\n Ecirc: 202,\n Egrave: 200,\n Euml: 203,\n Iacute: 205,\n Icirc: 206,\n Igrave: 204,\n Iuml: 207,\n Ntilde: 209,\n Oacute: 211,\n Ocirc: 212,\n Ograve: 210,\n Oslash: 216,\n Otilde: 213,\n Ouml: 214,\n THORN: 222,\n Uacute: 218,\n Ucirc: 219,\n Ugrave: 217,\n Uuml: 220,\n Yacute: 221,\n aacute: 225,\n acirc: 226,\n aelig: 230,\n agrave: 224,\n aring: 229,\n atilde: 227,\n auml: 228,\n ccedil: 231,\n eacute: 233,\n ecirc: 234,\n egrave: 232,\n eth: 240,\n euml: 235,\n iacute: 237,\n icirc: 238,\n igrave: 236,\n iuml: 239,\n ntilde: 241,\n oacute: 243,\n ocirc: 244,\n ograve: 242,\n oslash: 248,\n otilde: 245,\n ouml: 246,\n szlig: 223,\n thorn: 254,\n uacute: 250,\n ucirc: 251,\n ugrave: 249,\n uuml: 252,\n yacute: 253,\n yuml: 255,\n copy: 169,\n reg: 174,\n nbsp: 160,\n iexcl: 161,\n cent: 162,\n pound: 163,\n curren: 164,\n yen: 165,\n brvbar: 166,\n sect: 167,\n uml: 168,\n ordf: 170,\n laquo: 171,\n not: 172,\n shy: 173,\n macr: 175,\n deg: 176,\n plusmn: 177,\n sup1: 185,\n sup2: 178,\n sup3: 179,\n acute: 180,\n micro: 181,\n para: 182,\n middot: 183,\n cedil: 184,\n ordm: 186,\n raquo: 187,\n frac14: 188,\n frac12: 189,\n frac34: 190,\n iquest: 191,\n times: 215,\n divide: 247,\n OElig: 338,\n oelig: 339,\n Scaron: 352,\n scaron: 353,\n Yuml: 376,\n fnof: 402,\n circ: 710,\n tilde: 732,\n Alpha: 913,\n Beta: 914,\n Gamma: 915,\n Delta: 916,\n Epsilon: 917,\n Zeta: 918,\n Eta: 919,\n Theta: 920,\n Iota: 921,\n Kappa: 922,\n Lambda: 923,\n Mu: 924,\n Nu: 925,\n Xi: 926,\n Omicron: 927,\n Pi: 928,\n Rho: 929,\n Sigma: 931,\n Tau: 932,\n Upsilon: 933,\n Phi: 934,\n Chi: 935,\n Psi: 936,\n Omega: 937,\n alpha: 945,\n beta: 946,\n gamma: 947,\n delta: 948,\n epsilon: 949,\n zeta: 950,\n eta: 951,\n theta: 952,\n iota: 953,\n kappa: 954,\n lambda: 955,\n mu: 956,\n nu: 957,\n xi: 958,\n omicron: 959,\n pi: 960,\n rho: 961,\n sigmaf: 962,\n sigma: 963,\n tau: 964,\n upsilon: 965,\n phi: 966,\n chi: 967,\n psi: 968,\n omega: 969,\n thetasym: 977,\n upsih: 978,\n piv: 982,\n ensp: 8194,\n emsp: 8195,\n thinsp: 8201,\n zwnj: 8204,\n zwj: 8205,\n lrm: 8206,\n rlm: 8207,\n ndash: 8211,\n mdash: 8212,\n lsquo: 8216,\n rsquo: 8217,\n sbquo: 8218,\n ldquo: 8220,\n rdquo: 8221,\n bdquo: 8222,\n dagger: 8224,\n Dagger: 8225,\n bull: 8226,\n hellip: 8230,\n permil: 8240,\n prime: 8242,\n Prime: 8243,\n lsaquo: 8249,\n rsaquo: 8250,\n oline: 8254,\n frasl: 8260,\n euro: 8364,\n image: 8465,\n weierp: 8472,\n real: 8476,\n trade: 8482,\n alefsym: 8501,\n larr: 8592,\n uarr: 8593,\n rarr: 8594,\n darr: 8595,\n harr: 8596,\n crarr: 8629,\n lArr: 8656,\n uArr: 8657,\n rArr: 8658,\n dArr: 8659,\n hArr: 8660,\n forall: 8704,\n part: 8706,\n exist: 8707,\n empty: 8709,\n nabla: 8711,\n isin: 8712,\n notin: 8713,\n ni: 8715,\n prod: 8719,\n sum: 8721,\n minus: 8722,\n lowast: 8727,\n radic: 8730,\n prop: 8733,\n infin: 8734,\n ang: 8736,\n and: 8743,\n or: 8744,\n cap: 8745,\n cup: 8746,\n int: 8747,\n there4: 8756,\n sim: 8764,\n cong: 8773,\n asymp: 8776,\n ne: 8800,\n equiv: 8801,\n le: 8804,\n ge: 8805,\n sub: 8834,\n sup: 8835,\n nsub: 8836,\n sube: 8838,\n supe: 8839,\n oplus: 8853,\n otimes: 8855,\n perp: 8869,\n sdot: 8901,\n lceil: 8968,\n rceil: 8969,\n lfloor: 8970,\n rfloor: 8971,\n lang: 9001,\n rang: 9002,\n loz: 9674,\n spades: 9824,\n clubs: 9827,\n hearts: 9829,\n diams: 9830,\n };\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key];\n var s = typeof e === \"number\" ? String.fromCharCode(e) : e;\n sax.ENTITIES[key] = s;\n });\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s;\n }\n\n // shorthand\n S = sax.STATE;\n\n function emit(parser, event, data) {\n parser[event] && parser[event](data);\n }\n\n function emitNode(parser, nodeType, data) {\n if (parser.textNode) closeText(parser);\n emit(parser, nodeType, data);\n }\n\n function closeText(parser) {\n parser.textNode = textopts(parser.opt, parser.textNode);\n if (parser.textNode) emit(parser, \"ontext\", parser.textNode);\n parser.textNode = \"\";\n }\n\n function textopts(opt, text) {\n if (opt.trim) text = text.trim();\n if (opt.normalize) text = text.replace(/\\s+/g, \" \");\n return text;\n }\n\n function error(parser, er) {\n closeText(parser);\n if (parser.trackPosition) {\n er +=\n \"\\nLine: \" +\n parser.line +\n \"\\nColumn: \" +\n parser.column +\n \"\\nChar: \" +\n parser.c;\n }\n er = new Error(er);\n parser.error = er;\n emit(parser, \"onerror\", er);\n return parser;\n }\n\n function end(parser) {\n if (parser.sawRoot && !parser.closedRoot)\n strictFail(parser, \"Unclosed root tag\");\n if (\n parser.state !== S.BEGIN &&\n parser.state !== S.BEGIN_WHITESPACE &&\n parser.state !== S.TEXT\n ) {\n error(parser, \"Unexpected end\");\n }\n closeText(parser);\n parser.c = \"\";\n parser.closed = true;\n emit(parser, \"onend\");\n SAXParser.call(parser, parser.strict, parser.opt);\n return parser;\n }\n\n function strictFail(parser, message) {\n if (typeof parser !== \"object\" || !(parser instanceof SAXParser)) {\n throw new Error(\"bad call to strictFail\");\n }\n if (parser.strict) {\n error(parser, message);\n }\n }\n\n function newTag(parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();\n var parent = parser.tags[parser.tags.length - 1] || parser;\n var tag = (parser.tag = { name: parser.tagName, attributes: {} });\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns;\n }\n parser.attribList.length = 0;\n emitNode(parser, \"onopentagstart\", tag);\n }\n\n function qname(name, attribute) {\n var i = name.indexOf(\":\");\n var qualName = i < 0 ? [\"\", name] : name.split(\":\");\n var prefix = qualName[0];\n var local = qualName[1];\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === \"xmlns\") {\n prefix = \"xmlns\";\n local = \"\";\n }\n\n return { prefix: prefix, local: local };\n }\n\n function attrib(parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]();\n }\n\n if (\n parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)\n ) {\n parser.attribName = parser.attribValue = \"\";\n return;\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true);\n var prefix = qn.prefix;\n var local = qn.local;\n\n if (prefix === \"xmlns\") {\n // namespace binding attribute. push the binding into scope\n if (local === \"xml\" && parser.attribValue !== XML_NAMESPACE) {\n strictFail(\n parser,\n \"xml: prefix must be bound to \" +\n XML_NAMESPACE +\n \"\\n\" +\n \"Actual: \" +\n parser.attribValue\n );\n } else if (\n local === \"xmlns\" &&\n parser.attribValue !== XMLNS_NAMESPACE\n ) {\n strictFail(\n parser,\n \"xmlns: prefix must be bound to \" +\n XMLNS_NAMESPACE +\n \"\\n\" +\n \"Actual: \" +\n parser.attribValue\n );\n } else {\n var tag = parser.tag;\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = parser.attribValue;\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue]);\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue;\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: parser.attribValue,\n });\n }\n\n parser.attribName = parser.attribValue = \"\";\n }\n\n function openTag(parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag;\n\n // add namespace info to tag\n var qn = qname(parser.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || \"\";\n\n if (tag.prefix && !tag.uri) {\n strictFail(\n parser,\n \"Unbound namespace prefix: \" + JSON.stringify(parser.tagName)\n );\n tag.uri = qn.prefix;\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, \"onopennamespace\", {\n prefix: p,\n uri: tag.ns[p],\n });\n });\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i];\n var name = nv[0];\n var value = nv[1];\n var qualName = qname(name, true);\n var prefix = qualName.prefix;\n var local = qualName.local;\n var uri = prefix === \"\" ? \"\" : tag.ns[prefix] || \"\";\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri,\n };\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== \"xmlns\" && !uri) {\n strictFail(\n parser,\n \"Unbound namespace prefix: \" + JSON.stringify(prefix)\n );\n a.uri = prefix;\n }\n parser.tag.attributes[name] = a;\n emitNode(parser, \"onattribute\", a);\n }\n parser.attribList.length = 0;\n }\n\n parser.tag.isSelfClosing = !!selfClosing;\n\n // process the tag\n parser.sawRoot = true;\n parser.tags.push(parser.tag);\n emitNode(parser, \"onopentag\", parser.tag);\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === \"script\") {\n parser.state = S.SCRIPT;\n } else {\n parser.state = S.TEXT;\n }\n parser.tag = null;\n parser.tagName = \"\";\n }\n parser.attribName = parser.attribValue = \"\";\n parser.attribList.length = 0;\n }\n\n function closeTag(parser) {\n if (!parser.tagName) {\n strictFail(parser, \"Weird empty close tag.\");\n parser.textNode += \"</>\";\n parser.state = S.TEXT;\n return;\n }\n\n if (parser.script) {\n if (parser.tagName !== \"script\") {\n parser.script += \"</\" + parser.tagName + \">\";\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n return;\n }\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length;\n var tagName = parser.tagName;\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]();\n }\n var closeTo = tagName;\n while (t--) {\n var close = parser.tags[t];\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, \"Unexpected close tag\");\n } else {\n break;\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, \"Unmatched closing tag: \" + parser.tagName);\n parser.textNode += \"</\" + parser.tagName + \">\";\n parser.state = S.TEXT;\n return;\n }\n parser.tagName = tagName;\n var s = parser.tags.length;\n while (s-- > t) {\n var tag = (parser.tag = parser.tags.pop());\n parser.tagName = parser.tag.name;\n emitNode(parser, \"onclosetag\", parser.tagName);\n\n var x = {};\n for (var i in tag.ns) {\n x[i] = tag.ns[i];\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p];\n emitNode(parser, \"onclosenamespace\", { prefix: p, uri: n });\n });\n }\n }\n if (t === 0) parser.closedRoot = true;\n parser.tagName = parser.attribValue = parser.attribName = \"\";\n parser.attribList.length = 0;\n parser.state = S.TEXT;\n }\n\n function parseEntity(parser) {\n var entity = parser.entity;\n var entityLC = entity.toLowerCase();\n var num;\n var numStr = \"\";\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity];\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC];\n }\n entity = entityLC;\n if (entity.charAt(0) === \"#\") {\n if (entity.charAt(1) === \"x\") {\n entity = entity.slice(2);\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n } else {\n entity = entity.slice(1);\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, \"\");\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, \"Invalid character entity\");\n return \"&\" + parser.entity + \";\";\n }\n\n return String.fromCodePoint(num);\n }\n\n function beginWhiteSpace(parser, c) {\n if (c === \"<\") {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, \"Non-whitespace before first tag.\");\n parser.textNode = c;\n parser.state = S.TEXT;\n }\n }\n\n function charAt(chunk, i) {\n var result = \"\";\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result;\n }\n\n function write(chunk) {\n var parser = this;\n if (this.error) {\n throw this.error;\n }\n if (parser.closed) {\n return error(\n parser,\n \"Cannot write after close. Assign an onready handler.\"\n );\n }\n if (chunk === null) {\n return end(parser);\n }\n if (typeof chunk === \"object\") {\n chunk = chunk.toString();\n }\n var i = 0;\n var c = \"\";\n while (true) {\n c = charAt(chunk, i++);\n parser.c = c;\n\n if (!c) {\n break;\n }\n\n if (parser.trackPosition) {\n parser.position++;\n if (c === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE;\n if (c === \"\\uFEFF\") {\n continue;\n }\n beginWhiteSpace(parser, c);\n continue;\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c);\n continue;\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1;\n while (c && c !== \"<\" && c !== \"&\") {\n c = charAt(chunk, i++);\n if (c && parser.trackPosition) {\n parser.position++;\n if (c === \"\\n\") {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1);\n }\n if (\n c === \"<\" &&\n !(parser.sawRoot && parser.closedRoot && !parser.strict)\n ) {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, \"Text data outside of root node.\");\n }\n if (c === \"&\") {\n parser.state = S.TEXT_ENTITY;\n } else {\n parser.textNode += c;\n }\n }\n continue;\n\n case S.SCRIPT:\n // only non-strict\n if (c === \"<\") {\n parser.state = S.SCRIPT_ENDING;\n } else {\n parser.script += c;\n }\n continue;\n\n case S.SCRIPT_ENDING:\n if (c === \"/\") {\n parser.state = S.CLOSE_TAG;\n } else {\n parser.script += \"<\" + c;\n parser.state = S.SCRIPT;\n }\n continue;\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === \"!\") {\n parser.state = S.SGML_DECL;\n parser.sgmlDecl = \"\";\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG;\n parser.tagName = c;\n } else if (c === \"/\") {\n parser.state = S.CLOSE_TAG;\n parser.tagName = \"\";\n } else if (c === \"?\") {\n parser.state = S.PROC_INST;\n parser.procInstName = parser.procInstBody = \"\";\n } else {\n strictFail(parser, \"Unencoded <\");\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition;\n c = new Array(pad).join(\" \") + c;\n }\n parser.textNode += \"<\" + c;\n parser.state = S.TEXT;\n }\n continue;\n\n case S.SGML_DECL:\n if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, \"onopencdata\");\n parser.state = S.CDATA;\n parser.sgmlDecl = \"\";\n parser.cdata = \"\";\n } else if (parser.sgmlDecl + c === \"--\") {\n parser.state = S.COMMENT;\n parser.comment = \"\";\n parser.sgmlDecl = \"\";\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE;\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser, \"Inappropriately located doctype declaration\");\n }\n parser.doctype = \"\";\n parser.sgmlDecl = \"\";\n } else if (c === \">\") {\n emitNode(parser, \"onsgmldeclaration\", parser.sgmlDecl);\n parser.sgmlDecl = \"\";\n parser.state = S.TEXT;\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED;\n parser.sgmlDecl += c;\n } else {\n parser.sgmlDecl += c;\n }\n continue;\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL;\n parser.q = \"\";\n }\n parser.sgmlDecl += c;\n continue;\n\n case S.DOCTYPE:\n if (c === \">\") {\n parser.state = S.TEXT;\n emitNode(parser, \"ondoctype\", parser.doctype);\n parser.doctype = true; // just remember that we saw it.\n } else {\n parser.doctype += c;\n if (c === \"[\") {\n parser.state = S.DOCTYPE_DTD;\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED;\n parser.q = c;\n }\n }\n continue;\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c;\n if (c === parser.q) {\n parser.q = \"\";\n parser.state = S.DOCTYPE;\n }\n continue;\n\n case S.DOCTYPE_DTD:\n parser.doctype += c;\n if (c === \"]\") {\n parser.state = S.DOCTYPE;\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_DTD_QUOTED;\n parser.q = c;\n }\n continue;\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c;\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD;\n parser.q = \"\";\n }\n continue;\n\n case S.COMMENT:\n if (c === \"-\") {\n parser.state = S.COMMENT_ENDING;\n } else {\n parser.comment += c;\n }\n continue;\n\n case S.COMMENT_ENDING:\n if (c === \"-\") {\n parser.state = S.COMMENT_ENDED;\n parser.comment = textopts(parser.opt, parser.comment);\n if (parser.comment) {\n emitNode(parser, \"oncomment\", parser.comment);\n }\n parser.comment = \"\";\n } else {\n parser.comment += \"-\" + c;\n parser.state = S.COMMENT;\n }\n continue;\n\n case S.COMMENT_ENDED:\n if (c !== \">\") {\n strictFail(parser, \"Malformed comment\");\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += \"--\" + c;\n parser.state = S.COMMENT;\n } else {\n parser.state = S.TEXT;\n }\n continue;\n\n case S.CDATA:\n if (c === \"]\") {\n parser.state = S.CDATA_ENDING;\n } else {\n parser.cdata += c;\n }\n continue;\n\n case S.CDATA_ENDING:\n if (c === \"]\") {\n parser.state = S.CDATA_ENDING_2;\n } else {\n parser.cdata += \"]\" + c;\n parser.state = S.CDATA;\n }\n continue;\n\n case S.CDATA_ENDING_2:\n if (c === \">\") {\n if (parser.cdata) {\n emitNode(parser, \"oncdata\", parser.cdata);\n }\n emitNode(parser, \"onclosecdata\");\n parser.cdata = \"\";\n parser.state = S.TEXT;\n } else if (c === \"]\") {\n parser.cdata += \"]\";\n } else {\n parser.cdata += \"]]\" + c;\n parser.state = S.CDATA;\n }\n continue;\n\n case S.PROC_INST:\n if (c === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY;\n } else {\n parser.procInstName += c;\n }\n continue;\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue;\n } else if (c === \"?\") {\n parser.state = S.PROC_INST_ENDING;\n } else {\n parser.procInstBody += c;\n }\n continue;\n\n case S.PROC_INST_ENDING:\n if (c === \">\") {\n emitNode(parser, \"onprocessinginstruction\", {\n name: parser.procInstName,\n body: parser.procInstBody,\n });\n parser.procInstName = parser.procInstBody = \"\";\n parser.state = S.TEXT;\n } else {\n parser.procInstBody += \"?\" + c;\n parser.state = S.PROC_INST_BODY;\n }\n continue;\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c;\n } else {\n newTag(parser);\n if (c === \">\") {\n openTag(parser);\n } else if (c === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, \"Invalid character in tag name\");\n }\n parser.state = S.ATTRIB;\n }\n }\n continue;\n\n case S.OPEN_TAG_SLASH:\n if (c === \">\") {\n openTag(parser, true);\n closeTag(parser);\n } else {\n strictFail(\n parser,\n \"Forward-slash in opening tag not followed by >\"\n );\n parser.state = S.ATTRIB;\n }\n continue;\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue;\n } else if (c === \">\") {\n openTag(parser);\n } else if (c === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n\n case S.ATTRIB_NAME:\n if (c === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (c === \">\") {\n strictFail(parser, \"Attribute without value\");\n parser.attribValue = parser.attribName;\n attrib(parser);\n openTag(parser);\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE;\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === \"=\") {\n parser.state = S.ATTRIB_VALUE;\n } else if (isWhitespace(c)) {\n continue;\n } else {\n strictFail(parser, \"Attribute without value\");\n parser.tag.attributes[parser.attribName] = \"\";\n parser.attribValue = \"\";\n emitNode(parser, \"onattribute\", {\n name: parser.attribName,\n value: \"\",\n });\n parser.attribName = \"\";\n if (c === \">\") {\n openTag(parser);\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c;\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n parser.state = S.ATTRIB;\n }\n }\n continue;\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue;\n } else if (isQuote(c)) {\n parser.q = c;\n parser.state = S.ATTRIB_VALUE_QUOTED;\n } else {\n strictFail(parser, \"Unquoted attribute value\");\n parser.state = S.ATTRIB_VALUE_UNQUOTED;\n parser.attribValue = c;\n }\n continue;\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q;\n } else {\n parser.attribValue += c;\n }\n continue;\n }\n attrib(parser);\n parser.q = \"\";\n parser.state = S.ATTRIB_VALUE_CLOSED;\n continue;\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB;\n } else if (c === \">\") {\n openTag(parser);\n } else if (c === \"/\") {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, \"No whitespace between attributes\");\n parser.attribName = c;\n parser.attribValue = \"\";\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, \"Invalid attribute name\");\n }\n continue;\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === \"&\") {\n parser.state = S.ATTRIB_VALUE_ENTITY_U;\n } else {\n parser.attribValue += c;\n }\n continue;\n }\n attrib(parser);\n if (c === \">\") {\n openTag(parser);\n } else {\n parser.state = S.ATTRIB;\n }\n continue;\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue;\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += \"</\" + c;\n parser.state = S.SCRIPT;\n } else {\n strictFail(parser, \"Invalid tagname in closing tag.\");\n }\n } else {\n parser.tagName = c;\n }\n } else if (c === \">\") {\n closeTag(parser);\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c;\n } else if (parser.script) {\n parser.script += \"</\" + parser.tagName;\n parser.tagName = \"\";\n parser.state = S.SCRIPT;\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, \"Invalid tagname in closing tag\");\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE;\n }\n continue;\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue;\n }\n if (c === \">\") {\n closeTag(parser);\n } else {\n strictFail(parser, \"Invalid characters in closing tag\");\n }\n continue;\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState;\n var buffer;\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT;\n buffer = \"textNode\";\n break;\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED;\n buffer = \"attribValue\";\n break;\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED;\n buffer = \"attribValue\";\n break;\n }\n\n if (c === \";\") {\n if (parser.opt.unparsedEntities) {\n var parsedEntity = parseEntity(parser);\n parser.entity = \"\";\n parser.state = returnState;\n parser.write(parsedEntity);\n } else {\n parser[buffer] += parseEntity(parser);\n parser.entity = \"\";\n parser.state = returnState;\n }\n } else if (\n isMatch(parser.entity.length ? entityBody : entityStart, c)\n ) {\n parser.entity += c;\n } else {\n strictFail(parser, \"Invalid character in entity name\");\n parser[buffer] += \"&\" + parser.entity + c;\n parser.entity = \"\";\n parser.state = returnState;\n }\n\n continue;\n\n default: /* istanbul ignore next */ {\n throw new Error(parser, \"Unknown state: \" + parser.state);\n }\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser);\n }\n return parser;\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n if (!length) {\n return \"\";\n }\n var result = \"\";\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError(\"Invalid code point: \" + codePoint);\n }\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = (codePoint % 0x400) + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, \"fromCodePoint\", {\n value: fromCodePoint,\n configurable: true,\n writable: true,\n });\n } else {\n String.fromCodePoint = fromCodePoint;\n }\n })();\n }\n return sax;\n};\n\nconst sax = /** #__PURE__ */ initializeSax();\n\nexport { sax };\n"],"mappings":"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"}
|