@magic-translate/react 1.16.0 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/components/Translate.d.ts +5 -5
- package/dist/components/Translate.d.ts.map +1 -1
- package/dist/components/Translate.js +26 -41
- package/dist/components/Translate.js.map +1 -1
- package/dist/components/Translate.test.d.ts +1 -1
- package/dist/components/Translate.test.js +172 -446
- package/dist/components/Translate.test.js.map +1 -1
- package/dist/context/MagicTranslateContext.d.ts +31 -31
- package/dist/context/MagicTranslateContext.d.ts.map +1 -1
- package/dist/context/MagicTranslateContext.js +21 -14
- package/dist/context/MagicTranslateContext.js.map +1 -1
- package/dist/hooks/use-language-switcher.d.ts +5 -5
- package/dist/hooks/use-language-switcher.js +2 -2
- package/dist/hooks/use-language-switcher.js.map +1 -1
- package/dist/hooks/use-magic-translate.d.ts +1 -1
- package/dist/hooks/use-magic-translate.d.ts.map +1 -1
- package/dist/hooks/use-magic-translate.js +1 -1
- package/dist/hooks/use-magic-translate.js.map +1 -1
- package/dist/hooks/use-translate.d.ts +3 -3
- package/dist/hooks/use-translate.js +11 -28
- package/dist/hooks/use-translate.js.map +1 -1
- package/dist/hooks/use-translate.test.d.ts +1 -1
- package/dist/hooks/use-translate.test.js +65 -117
- package/dist/hooks/use-translate.test.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.es.js +2 -2
- package/dist/index.es.js.map +1 -1
- package/dist/index.min.js +3 -2
- package/dist/index.min.js.map +1 -1
- package/package.json +50 -53
package/dist/index.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.min.js","sources":["../node_modules/@magic-translate/core/src/constants.ts","../node_modules/@magic-translate/core/src/domain/language.ts","../node_modules/@magic-translate/core/src/utils/remove-undefined.ts","../node_modules/@magic-translate/core/src/api/data-loader.ts","../node_modules/@magic-translate/core/node_modules/dataloader/index.js","../node_modules/@magic-translate/core/src/utils/object-to-url-search-params.ts","../node_modules/@magic-translate/core/src/api/setup-translate.ts","../node_modules/@magic-translate/core/src/utils/uts-locale-to-language.ts","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/react-property/lib/index.js","../node_modules/inline-style-parser/index.js","../node_modules/style-to-object/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-js/cjs/index.js","../node_modules/html-react-parser/lib/utilities.js","../node_modules/html-react-parser/lib/attributes-to-props.js","../node_modules/html-react-parser/lib/dom-to-react.js","../node_modules/entities/lib/generated/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/generated/decode-data-html.ts","../node_modules/entities/lib/generated/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/generated/decode-data-xml.ts","../node_modules/entities/lib/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/decode_codepoint.ts","../node_modules/entities/lib/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/decode.ts","../node_modules/htmlparser2/lib/https:/raw.githubusercontent.com/fb55/htmlparser2/4763205746cd80120b5d2b69041197a394d24ba9/src/Tokenizer.ts","../node_modules/htmlparser2/lib/https:/raw.githubusercontent.com/fb55/htmlparser2/4763205746cd80120b5d2b69041197a394d24ba9/src/Parser.ts","../node_modules/domelementtype/lib/index.js","../node_modules/domhandler/lib/node.js","../node_modules/domhandler/lib/index.js","../node_modules/entities/lib/generated/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/generated/encode-html.ts","../node_modules/entities/lib/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/escape.ts","../node_modules/entities/lib/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/encode.ts","../node_modules/entities/lib/https:/raw.githubusercontent.com/fb55/entities/867ac709ba482a56a98b7c35f49ca833c74dc193/src/index.ts","../node_modules/dom-serializer/lib/foreignNames.js","../node_modules/dom-serializer/lib/index.js","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/stringify.ts","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/traversal.ts","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/manipulation.ts","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/querying.ts","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/legacy.ts","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/helpers.ts","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/feeds.ts","../node_modules/domutils/lib/https:/raw.githubusercontent.com/fb55/domutils/f7e357b5c210b6731c2a60e0b7b3cfaa1f96b706/src/index.ts","../node_modules/htmlparser2/lib/https:/raw.githubusercontent.com/fb55/htmlparser2/4763205746cd80120b5d2b69041197a394d24ba9/src/index.ts","../node_modules/html-dom-parser/lib/server/utilities.js","../node_modules/html-dom-parser/lib/server/html-to-dom.js","../node_modules/html-dom-parser/index.js","../node_modules/html-react-parser/index.js","../node_modules/html-react-parser/index.mjs","../node_modules/dataloader/index.js","../src/context/MagicTranslateContext.tsx","../src/hooks/use-magic-translate.tsx","../src/components/Translate.tsx","../src/hooks/use-translate.ts","../src/hooks/use-language-switcher.ts"],"sourcesContent":["export const libraryName = 'Magic Translate';\nexport const libraryWebsite = 'https://magictranslate.io';\n","export enum Language {\n AF = 'af',\n SQ = 'sq',\n AM = 'am',\n AR = 'ar',\n HY = 'hy',\n AZ = 'az',\n BN = 'bn',\n BS = 'bs',\n BG = 'bg',\n CA = 'ca',\n ZH = 'zh',\n ZH_TW = 'zh-TW',\n HR = 'hr',\n CS = 'cs',\n DA = 'da',\n FA_AF = 'fa-AF',\n NL = 'nl',\n EN = 'en',\n ET = 'et',\n FA = 'fa',\n TL = 'tl',\n FI = 'fi',\n FR = 'fr',\n FR_CA = 'fr-CA',\n KA = 'ka',\n DE = 'de',\n EL = 'el',\n GU = 'gu',\n HT = 'ht',\n HA = 'ha',\n HE = 'he',\n HI = 'hi',\n HU = 'hu',\n IS = 'is',\n ID = 'id',\n GA = 'ga',\n IT = 'it',\n JA = 'ja',\n KN = 'kn',\n KK = 'kk',\n KO = 'ko',\n LV = 'lv',\n LT = 'lt',\n MK = 'mk',\n MS = 'ms',\n ML = 'ml',\n MT = 'mt',\n MR = 'mr',\n MN = 'mn',\n NO = 'no',\n PS = 'ps',\n PL = 'pl',\n PT = 'pt',\n PT_PT = 'pt-PT',\n PA = 'pa',\n RO = 'ro',\n RU = 'ru',\n SR = 'sr',\n SI = 'si',\n SK = 'sk',\n SL = 'sl',\n SO = 'so',\n ES = 'es',\n ES_MX = 'es-MX',\n SW = 'sw',\n SV = 'sv',\n TA = 'ta',\n TE = 'te',\n TH = 'th',\n TR = 'tr',\n UK = 'uk',\n UR = 'ur',\n UZ = 'uz',\n VI = 'vi',\n CY = 'cy',\n}\n","export function removeUndefined<T>(obj: {\n [k: string]: T | undefined | null;\n}): {\n [k: string]: T;\n} {\n return Object.keys(obj)\n .filter((k) => obj[k] !== undefined)\n .reduce((acc, k) => ({ ...acc, [k]: obj[k] }), {});\n}\n","import { libraryName } from '../constants';\nimport { Language } from '../domain/language';\nimport { removeUndefined } from '../utils/remove-undefined';\nimport { convertObjectToURLSearchParams } from '../utils/object-to-url-search-params';\n\nexport interface TranslateOptions {\n lang?: `${Language}`;\n formality?: 'formal' | 'informal';\n}\n\nexport interface DataLoaderLoadParams extends TranslateOptions {\n text: string;\n sourceLang?: `${Language}`;\n}\n\nexport interface DataLoaderOptions extends TranslateOptions {\n debug?: boolean;\n useJson?: boolean;\n apiUrl?: string;\n lang: `${Language}`;\n sourceLang?: `${Language}`;\n apiKey: string;\n}\n\nexport const defaultDataLoaderOptions: Omit<DataLoaderOptions, 'apiKey'> = {\n debug: false,\n apiUrl: 'https://api.magictranslate.io',\n lang: Language.DE,\n};\n\nenum ErrorCode {\n QUOTA_EXCEEDED_ERROR = 'QUOTA_EXCEEDED_ERROR',\n}\n\ntype TranslationResponse =\n | TranslationSuccessResponse\n | TranslationErrorResponse;\n\ninterface TranslationSuccessResponse {\n results: string[];\n\n error: null | TranslationErrorResponse;\n}\n\ninterface TranslationErrorResponse {\n code: ErrorCode;\n message: string;\n}\nexport const cacheKeyFn =\n (apiKey: string, sourceLanguage?: `${Language}`, language?: `${Language}`) =>\n (params: DataLoaderLoadParams) =>\n Object.entries(\n removeUndefined({\n apiKey,\n language,\n sourceLanguage: params.sourceLang ?? sourceLanguage ?? 'auto',\n ...params,\n })\n )\n .sort(([key]) => key.localeCompare(key))\n .reduce((acc, cur) => `${acc};${cur.join('=')}`, '');\n\nexport const defaultLoaderFactory =\n (globalOptions: DataLoaderOptions) =>\n async (content: readonly DataLoaderLoadParams[]) => {\n if (globalOptions.debug) {\n console.debug(`[${libraryName}]: batch function called with: `, content);\n }\n\n if (globalOptions.lang === globalOptions.sourceLang) {\n return content.map((c) => c.text);\n }\n\n const { apiKey, lang, formality } = globalOptions;\n\n const body = removeUndefined({\n apiKey,\n lang,\n formality,\n items: content.map(({ text, sourceLang, lang, ...options }) => {\n return removeUndefined({\n text,\n lang,\n sourceLang,\n ...options,\n });\n }),\n });\n\n return fetch(\n `${globalOptions.apiUrl ?? defaultDataLoaderOptions.apiUrl}/v1/translate`,\n {\n method: 'POST',\n body: globalOptions.useJson\n ? JSON.stringify(body)\n : convertObjectToURLSearchParams(body),\n headers: {\n 'Content-Type': globalOptions.useJson\n ? 'application/json'\n : 'application/x-www-form-urlencoded',\n },\n }\n )\n .then((res) => res.json() as Promise<TranslationResponse>)\n .then((response) => {\n if ('results' in response) {\n return response.results;\n }\n\n if ('code' in response) {\n console.error(`[${libraryName}]: ${response.message}`);\n } else {\n // unexpected response payload\n console.error(\n `[${libraryName}]: Unexpected payload from magic translate server: ${JSON.stringify(\n response\n )}`\n );\n }\n\n // return unmodified input\n return content.map((c) => c.text);\n })\n .catch((e) => {\n console.error(\n `[${libraryName}]: Error while loading translations: `,\n e\n );\n return content.map((c) => c.text);\n });\n };\n","\"use strict\";\n\n/**\n * Copyright (c) 2019-present, GraphQL Foundation\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// A Function, which when given an Array of keys, returns a Promise of an Array\n// of values or Errors.\n// Optionally turn off batching or caching or provide a cache key function or a\n// custom cache instance.\n// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nvar DataLoader =\n/*#__PURE__*/\nfunction () {\n function DataLoader(batchLoadFn, options) {\n if (typeof batchLoadFn !== 'function') {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + (\"Array<key> and returns Promise<Array<value>>, but got: \" + batchLoadFn + \".\"));\n }\n\n this._batchLoadFn = batchLoadFn;\n this._maxBatchSize = getValidMaxBatchSize(options);\n this._batchScheduleFn = getValidBatchScheduleFn(options);\n this._cacheKeyFn = getValidCacheKeyFn(options);\n this._cacheMap = getValidCacheMap(options);\n this._batch = null;\n } // Private\n\n\n var _proto = DataLoader.prototype;\n\n /**\n * Loads a key, returning a `Promise` for the value represented by that key.\n */\n _proto.load = function load(key) {\n if (key === null || key === undefined) {\n throw new TypeError('The loader.load() function must be called with a value, ' + (\"but got: \" + String(key) + \".\"));\n }\n\n var batch = getCurrentBatch(this);\n var cacheMap = this._cacheMap;\n\n var cacheKey = this._cacheKeyFn(key); // If caching and there is a cache-hit, return cached Promise.\n\n\n if (cacheMap) {\n var cachedPromise = cacheMap.get(cacheKey);\n\n if (cachedPromise) {\n var cacheHits = batch.cacheHits || (batch.cacheHits = []);\n return new Promise(function (resolve) {\n cacheHits.push(function () {\n resolve(cachedPromise);\n });\n });\n }\n } // Otherwise, produce a new Promise for this key, and enqueue it to be\n // dispatched along with the current batch.\n\n\n batch.keys.push(key);\n var promise = new Promise(function (resolve, reject) {\n batch.callbacks.push({\n resolve: resolve,\n reject: reject\n });\n }); // If caching, cache this promise.\n\n if (cacheMap) {\n cacheMap.set(cacheKey, promise);\n }\n\n return promise;\n }\n /**\n * Loads multiple keys, promising an array of values:\n *\n * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n *\n * This is similar to the more verbose:\n *\n * var [ a, b ] = await Promise.all([\n * myLoader.load('a'),\n * myLoader.load('b')\n * ]);\n *\n * However it is different in the case where any load fails. Where\n * Promise.all() would reject, loadMany() always resolves, however each result\n * is either a value or an Error instance.\n *\n * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n * // c instanceof Error\n *\n */\n ;\n\n _proto.loadMany = function loadMany(keys) {\n if (!isArrayLike(keys)) {\n throw new TypeError('The loader.loadMany() function must be called with Array<key> ' + (\"but got: \" + keys + \".\"));\n } // Support ArrayLike by using only minimal property access\n\n\n var loadPromises = [];\n\n for (var i = 0; i < keys.length; i++) {\n loadPromises.push(this.load(keys[i])[\"catch\"](function (error) {\n return error;\n }));\n }\n\n return Promise.all(loadPromises);\n }\n /**\n * Clears the value at `key` from the cache, if it exists. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clear = function clear(key) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key);\n\n cacheMap[\"delete\"](cacheKey);\n }\n\n return this;\n }\n /**\n * Clears the entire cache. To be used when some event results in unknown\n * invalidations across this particular `DataLoader`. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clearAll = function clearAll() {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n cacheMap.clear();\n }\n\n return this;\n }\n /**\n * Adds the provided key and value to the cache. If the key already\n * exists, no change is made. Returns itself for method chaining.\n *\n * To prime the cache with an error at a key, provide an Error instance.\n */\n ;\n\n _proto.prime = function prime(key, value) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key); // Only add the key if it does not already exist.\n\n\n if (cacheMap.get(cacheKey) === undefined) {\n // Cache a rejected promise if the value is an Error, in order to match\n // the behavior of load(key).\n var promise;\n\n if (value instanceof Error) {\n promise = Promise.reject(value); // Since this is a case where an Error is intentionally being primed\n // for a given key, we want to disable unhandled promise rejection.\n\n promise[\"catch\"](function () {});\n } else {\n promise = Promise.resolve(value);\n }\n\n cacheMap.set(cacheKey, promise);\n }\n }\n\n return this;\n };\n\n return DataLoader;\n}(); // Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\n\n\nvar enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {\n if (!resolvedPromise) {\n resolvedPromise = Promise.resolve();\n }\n\n resolvedPromise.then(function () {\n process.nextTick(fn);\n });\n} : typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n} : function (fn) {\n setTimeout(fn);\n}; // Private: cached resolved Promise instance\n\nvar resolvedPromise; // Private: Describes a batch of requests\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch(loader) {\n // If there is an existing batch which has not yet dispatched and is within\n // the limit of the batch size, then return it.\n var existingBatch = loader._batch;\n\n if (existingBatch !== null && !existingBatch.hasDispatched && existingBatch.keys.length < loader._maxBatchSize && (!existingBatch.cacheHits || existingBatch.cacheHits.length < loader._maxBatchSize)) {\n return existingBatch;\n } // Otherwise, create a new batch for this loader.\n\n\n var newBatch = {\n hasDispatched: false,\n keys: [],\n callbacks: []\n }; // Store it on the loader so it may be reused.\n\n loader._batch = newBatch; // Then schedule a task to dispatch this batch of requests.\n\n loader._batchScheduleFn(function () {\n dispatchBatch(loader, newBatch);\n });\n\n return newBatch;\n}\n\nfunction dispatchBatch(loader, batch) {\n // Mark this batch as having been dispatched.\n batch.hasDispatched = true; // If there's nothing to load, resolve any cache hits and return early.\n\n if (batch.keys.length === 0) {\n resolveCacheHits(batch);\n return;\n } // Call the provided batchLoadFn for this loader with the batch's keys and\n // with the loader as the `this` context.\n\n\n var batchPromise = loader._batchLoadFn(batch.keys); // Assert the expected response from batchLoadFn\n\n\n if (!batchPromise || typeof batchPromise.then !== 'function') {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise: \" + String(batchPromise) + \".\")));\n } // Await the resolution of the call to batchLoadFn.\n\n\n batchPromise.then(function (values) {\n // Assert the expected resolution from batchLoadFn.\n if (!isArrayLike(values)) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise of an Array: \" + String(values) + \".\"));\n }\n\n if (values.length !== batch.keys.length) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + (\"\\n\\nKeys:\\n\" + String(batch.keys)) + (\"\\n\\nValues:\\n\" + String(values)));\n } // Resolve all cache hits in the same micro-task as freshly loaded values.\n\n\n resolveCacheHits(batch); // Step through values, resolving or rejecting each Promise in the batch.\n\n for (var i = 0; i < batch.callbacks.length; i++) {\n var value = values[i];\n\n if (value instanceof Error) {\n batch.callbacks[i].reject(value);\n } else {\n batch.callbacks[i].resolve(value);\n }\n }\n })[\"catch\"](function (error) {\n failedDispatch(loader, batch, error);\n });\n} // Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\n\n\nfunction failedDispatch(loader, batch, error) {\n // Cache hits are resolved, even though the batch failed.\n resolveCacheHits(batch);\n\n for (var i = 0; i < batch.keys.length; i++) {\n loader.clear(batch.keys[i]);\n batch.callbacks[i].reject(error);\n }\n} // Private: Resolves the Promises for any cache hits in this batch.\n\n\nfunction resolveCacheHits(batch) {\n if (batch.cacheHits) {\n for (var i = 0; i < batch.cacheHits.length; i++) {\n batch.cacheHits[i]();\n }\n }\n} // Private: given the DataLoader's options, produce a valid max batch size.\n\n\nfunction getValidMaxBatchSize(options) {\n var shouldBatch = !options || options.batch !== false;\n\n if (!shouldBatch) {\n return 1;\n }\n\n var maxBatchSize = options && options.maxBatchSize;\n\n if (maxBatchSize === undefined) {\n return Infinity;\n }\n\n if (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n throw new TypeError(\"maxBatchSize must be a positive number: \" + maxBatchSize);\n }\n\n return maxBatchSize;\n} // Private\n\n\nfunction getValidBatchScheduleFn(options) {\n var batchScheduleFn = options && options.batchScheduleFn;\n\n if (batchScheduleFn === undefined) {\n return enqueuePostPromiseJob;\n }\n\n if (typeof batchScheduleFn !== 'function') {\n throw new TypeError(\"batchScheduleFn must be a function: \" + batchScheduleFn);\n }\n\n return batchScheduleFn;\n} // Private: given the DataLoader's options, produce a cache key function.\n\n\nfunction getValidCacheKeyFn(options) {\n var cacheKeyFn = options && options.cacheKeyFn;\n\n if (cacheKeyFn === undefined) {\n return function (key) {\n return key;\n };\n }\n\n if (typeof cacheKeyFn !== 'function') {\n throw new TypeError(\"cacheKeyFn must be a function: \" + cacheKeyFn);\n }\n\n return cacheKeyFn;\n} // Private: given the DataLoader's options, produce a CacheMap to be used.\n\n\nfunction getValidCacheMap(options) {\n var shouldCache = !options || options.cache !== false;\n\n if (!shouldCache) {\n return null;\n }\n\n var cacheMap = options && options.cacheMap;\n\n if (cacheMap === undefined) {\n return new Map();\n }\n\n if (cacheMap !== null) {\n var cacheFunctions = ['get', 'set', 'delete', 'clear'];\n var missingFunctions = cacheFunctions.filter(function (fnName) {\n return cacheMap && typeof cacheMap[fnName] !== 'function';\n });\n\n if (missingFunctions.length !== 0) {\n throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n }\n }\n\n return cacheMap;\n} // Private\n\n\nfunction isArrayLike(x) {\n return typeof x === 'object' && x !== null && typeof x.length === 'number' && (x.length === 0 || x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1));\n}\n\nmodule.exports = DataLoader;","export function convertObjectToURLSearchParams(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj: Record<string, any>\n): URLSearchParams {\n const params = new URLSearchParams();\n\n const traverse = <T extends Record<string, T>>(\n data: Record<string, T>,\n prefix = ''\n ): void => {\n if (Array.isArray(data)) {\n data.forEach((item, index) => {\n const keyPrefix = prefix ? `${prefix}[${index}]` : `[${index}]`;\n traverse(item, keyPrefix);\n });\n } else if (typeof data === 'object' && data !== null) {\n Object.entries(data).forEach(([key, value]) => {\n const keyPrefix = prefix ? `${prefix}.${key}` : key;\n traverse(value, keyPrefix);\n });\n } else {\n params.append(prefix, data);\n }\n };\n\n traverse(obj);\n return params;\n}\n","import DataLoader from 'dataloader';\nimport {\n cacheKeyFn,\n DataLoaderLoadParams,\n defaultLoaderFactory,\n TranslateOptions,\n} from './data-loader';\nimport { Language } from '../domain/language';\nimport { MagicTranslateConfig } from '../domain/config';\n\nexport function setupTranslate({\n debug,\n apiKey,\n sourceLanguage,\n _apiUrl,\n formality,\n _loaderFactory,\n}: Omit<MagicTranslateConfig, 'language'>): (\n language: `${Language}`,\n text: string,\n options?: TranslateOptions\n) => Promise<string> {\n const loaderOptions = {\n debug: !!debug,\n apiKey: apiKey,\n lang: Language.EN, // not relevant, as language will always be overridden\n sourceLang: sourceLanguage,\n apiUrl: _apiUrl,\n formality: formality,\n };\n\n const loader = new DataLoader<DataLoaderLoadParams, string, string>(\n (_loaderFactory ?? defaultLoaderFactory)(loaderOptions),\n {\n cacheKeyFn: cacheKeyFn(apiKey, sourceLanguage),\n }\n );\n\n return (lang: `${Language}`, text: string, options?: TranslateOptions) =>\n loader.load({ text, ...options, lang });\n}\n\nexport const setupT = setupTranslate;\n","import { Language } from '../domain/language';\n\nconst FALLBACK_LANGUAGE = Language.EN;\n\nexport function utsLocaleToLanguage(\n utsLocale?: string,\n fallback?: `${Language}`\n): `${Language}` {\n if (!utsLocale) {\n return fallback ?? FALLBACK_LANGUAGE;\n }\n\n if (\n [Language.FA_AF, Language.FR_CA, Language.PT_PT, Language.ES_MX].includes(\n utsLocale as Language\n )\n ) {\n return utsLocale as Language;\n }\n\n const country = utsLocale.includes('-') ? utsLocale.split('-')[0] : utsLocale;\n\n const countries = Object.values(Language);\n if (countries.includes(country as Language)) {\n return country as Language;\n }\n\n if (fallback) {\n return fallback;\n }\n\n console.warn(\n `Language not found for UTS locale \"${utsLocale}\" and no fallback provided was provided. Falling back to \"${FALLBACK_LANGUAGE}\"`\n );\n\n return FALLBACK_LANGUAGE;\n}\n","// An attribute in which the DOM/SVG standard name is the same as the React prop name (e.g., 'accept').\nvar SAME = 0;\nexports.SAME = SAME;\n\n// An attribute in which the React prop name is the camelcased version of the DOM/SVG standard name (e.g., 'acceptCharset').\nvar CAMELCASE = 1;\nexports.CAMELCASE = CAMELCASE;\n\nexports.possibleStandardNames = {\n accept: 0,\n acceptCharset: 1,\n 'accept-charset': 'acceptCharset',\n accessKey: 1,\n action: 0,\n allowFullScreen: 1,\n alt: 0,\n as: 0,\n async: 0,\n autoCapitalize: 1,\n autoComplete: 1,\n autoCorrect: 1,\n autoFocus: 1,\n autoPlay: 1,\n autoSave: 1,\n capture: 0,\n cellPadding: 1,\n cellSpacing: 1,\n challenge: 0,\n charSet: 1,\n checked: 0,\n children: 0,\n cite: 0,\n class: 'className',\n classID: 1,\n className: 1,\n cols: 0,\n colSpan: 1,\n content: 0,\n contentEditable: 1,\n contextMenu: 1,\n controls: 0,\n controlsList: 1,\n coords: 0,\n crossOrigin: 1,\n dangerouslySetInnerHTML: 1,\n data: 0,\n dateTime: 1,\n default: 0,\n defaultChecked: 1,\n defaultValue: 1,\n defer: 0,\n dir: 0,\n disabled: 0,\n disablePictureInPicture: 1,\n disableRemotePlayback: 1,\n download: 0,\n draggable: 0,\n encType: 1,\n enterKeyHint: 1,\n for: 'htmlFor',\n form: 0,\n formMethod: 1,\n formAction: 1,\n formEncType: 1,\n formNoValidate: 1,\n formTarget: 1,\n frameBorder: 1,\n headers: 0,\n height: 0,\n hidden: 0,\n high: 0,\n href: 0,\n hrefLang: 1,\n htmlFor: 1,\n httpEquiv: 1,\n 'http-equiv': 'httpEquiv',\n icon: 0,\n id: 0,\n innerHTML: 1,\n inputMode: 1,\n integrity: 0,\n is: 0,\n itemID: 1,\n itemProp: 1,\n itemRef: 1,\n itemScope: 1,\n itemType: 1,\n keyParams: 1,\n keyType: 1,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: 0,\n low: 0,\n manifest: 0,\n marginWidth: 1,\n marginHeight: 1,\n max: 0,\n maxLength: 1,\n media: 0,\n mediaGroup: 1,\n method: 0,\n min: 0,\n minLength: 1,\n multiple: 0,\n muted: 0,\n name: 0,\n noModule: 1,\n nonce: 0,\n noValidate: 1,\n open: 0,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: 1,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 1,\n readOnly: 1,\n referrerPolicy: 1,\n rel: 0,\n required: 0,\n reversed: 0,\n role: 0,\n rows: 0,\n rowSpan: 1,\n sandbox: 0,\n scope: 0,\n scoped: 0,\n scrolling: 0,\n seamless: 0,\n selected: 0,\n shape: 0,\n size: 0,\n sizes: 0,\n span: 0,\n spellCheck: 1,\n src: 0,\n srcDoc: 1,\n srcLang: 1,\n srcSet: 1,\n start: 0,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 1,\n target: 0,\n title: 0,\n type: 0,\n useMap: 1,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n about: 0,\n accentHeight: 1,\n 'accent-height': 'accentHeight',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 1,\n 'alignment-baseline': 'alignmentBaseline',\n allowReorder: 1,\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 1,\n 'arabic-form': 'arabicForm',\n ascent: 0,\n attributeName: 1,\n attributeType: 1,\n autoReverse: 1,\n azimuth: 0,\n baseFrequency: 1,\n baselineShift: 1,\n 'baseline-shift': 'baselineShift',\n baseProfile: 1,\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 1,\n capHeight: 1,\n 'cap-height': 'capHeight',\n clip: 0,\n clipPath: 1,\n 'clip-path': 'clipPath',\n clipPathUnits: 1,\n clipRule: 1,\n 'clip-rule': 'clipRule',\n color: 0,\n colorInterpolation: 1,\n 'color-interpolation': 'colorInterpolation',\n colorInterpolationFilters: 1,\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorProfile: 1,\n 'color-profile': 'colorProfile',\n colorRendering: 1,\n 'color-rendering': 'colorRendering',\n contentScriptType: 1,\n contentStyleType: 1,\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n datatype: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 1,\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 1,\n 'dominant-baseline': 'dominantBaseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 1,\n elevation: 0,\n enableBackground: 1,\n 'enable-background': 'enableBackground',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 1,\n fill: 0,\n fillOpacity: 1,\n 'fill-opacity': 'fillOpacity',\n fillRule: 1,\n 'fill-rule': 'fillRule',\n filter: 0,\n filterRes: 1,\n filterUnits: 1,\n floodOpacity: 1,\n 'flood-opacity': 'floodOpacity',\n floodColor: 1,\n 'flood-color': 'floodColor',\n focusable: 0,\n fontFamily: 1,\n 'font-family': 'fontFamily',\n fontSize: 1,\n 'font-size': 'fontSize',\n fontSizeAdjust: 1,\n 'font-size-adjust': 'fontSizeAdjust',\n fontStretch: 1,\n 'font-stretch': 'fontStretch',\n fontStyle: 1,\n 'font-style': 'fontStyle',\n fontVariant: 1,\n 'font-variant': 'fontVariant',\n fontWeight: 1,\n 'font-weight': 'fontWeight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 1,\n 'glyph-name': 'glyphName',\n glyphOrientationHorizontal: 1,\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphOrientationVertical: 1,\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphRef: 1,\n gradientTransform: 1,\n gradientUnits: 1,\n hanging: 0,\n horizAdvX: 1,\n 'horiz-adv-x': 'horizAdvX',\n horizOriginX: 1,\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 0,\n imageRendering: 1,\n 'image-rendering': 'imageRendering',\n in2: 0,\n in: 0,\n inlist: 0,\n intercept: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n k: 0,\n kernelMatrix: 1,\n kernelUnitLength: 1,\n kerning: 0,\n keyPoints: 1,\n keySplines: 1,\n keyTimes: 1,\n lengthAdjust: 1,\n letterSpacing: 1,\n 'letter-spacing': 'letterSpacing',\n lightingColor: 1,\n 'lighting-color': 'lightingColor',\n limitingConeAngle: 1,\n local: 0,\n markerEnd: 1,\n 'marker-end': 'markerEnd',\n markerHeight: 1,\n markerMid: 1,\n 'marker-mid': 'markerMid',\n markerStart: 1,\n 'marker-start': 'markerStart',\n markerUnits: 1,\n markerWidth: 1,\n mask: 0,\n maskContentUnits: 1,\n maskUnits: 1,\n mathematical: 0,\n mode: 0,\n numOctaves: 1,\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 1,\n 'overline-position': 'overlinePosition',\n overlineThickness: 1,\n 'overline-thickness': 'overlineThickness',\n paintOrder: 1,\n 'paint-order': 'paintOrder',\n panose1: 0,\n 'panose-1': 'panose1',\n pathLength: 1,\n patternContentUnits: 1,\n patternTransform: 1,\n patternUnits: 1,\n pointerEvents: 1,\n 'pointer-events': 'pointerEvents',\n points: 0,\n pointsAtX: 1,\n pointsAtY: 1,\n pointsAtZ: 1,\n prefix: 0,\n preserveAlpha: 1,\n preserveAspectRatio: 1,\n primitiveUnits: 1,\n property: 0,\n r: 0,\n radius: 0,\n refX: 1,\n refY: 1,\n renderingIntent: 1,\n 'rendering-intent': 'renderingIntent',\n repeatCount: 1,\n repeatDur: 1,\n requiredExtensions: 1,\n requiredFeatures: 1,\n resource: 0,\n restart: 0,\n result: 0,\n results: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n security: 0,\n seed: 0,\n shapeRendering: 1,\n 'shape-rendering': 'shapeRendering',\n slope: 0,\n spacing: 0,\n specularConstant: 1,\n specularExponent: 1,\n speed: 0,\n spreadMethod: 1,\n startOffset: 1,\n stdDeviation: 1,\n stemh: 0,\n stemv: 0,\n stitchTiles: 1,\n stopColor: 1,\n 'stop-color': 'stopColor',\n stopOpacity: 1,\n 'stop-opacity': 'stopOpacity',\n strikethroughPosition: 1,\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughThickness: 1,\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 1,\n 'stroke-dasharray': 'strokeDasharray',\n strokeDashoffset: 1,\n 'stroke-dashoffset': 'strokeDashoffset',\n strokeLinecap: 1,\n 'stroke-linecap': 'strokeLinecap',\n strokeLinejoin: 1,\n 'stroke-linejoin': 'strokeLinejoin',\n strokeMiterlimit: 1,\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokeWidth: 1,\n 'stroke-width': 'strokeWidth',\n strokeOpacity: 1,\n 'stroke-opacity': 'strokeOpacity',\n suppressContentEditableWarning: 1,\n suppressHydrationWarning: 1,\n surfaceScale: 1,\n systemLanguage: 1,\n tableValues: 1,\n targetX: 1,\n targetY: 1,\n textAnchor: 1,\n 'text-anchor': 'textAnchor',\n textDecoration: 1,\n 'text-decoration': 'textDecoration',\n textLength: 1,\n textRendering: 1,\n 'text-rendering': 'textRendering',\n to: 0,\n transform: 0,\n typeof: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 1,\n 'underline-position': 'underlinePosition',\n underlineThickness: 1,\n 'underline-thickness': 'underlineThickness',\n unicode: 0,\n unicodeBidi: 1,\n 'unicode-bidi': 'unicodeBidi',\n unicodeRange: 1,\n 'unicode-range': 'unicodeRange',\n unitsPerEm: 1,\n 'units-per-em': 'unitsPerEm',\n unselectable: 0,\n vAlphabetic: 1,\n 'v-alphabetic': 'vAlphabetic',\n values: 0,\n vectorEffect: 1,\n 'vector-effect': 'vectorEffect',\n version: 0,\n vertAdvY: 1,\n 'vert-adv-y': 'vertAdvY',\n vertOriginX: 1,\n 'vert-origin-x': 'vertOriginX',\n vertOriginY: 1,\n 'vert-origin-y': 'vertOriginY',\n vHanging: 1,\n 'v-hanging': 'vHanging',\n vIdeographic: 1,\n 'v-ideographic': 'vIdeographic',\n viewBox: 1,\n viewTarget: 1,\n visibility: 0,\n vMathematical: 1,\n 'v-mathematical': 'vMathematical',\n vocab: 0,\n widths: 0,\n wordSpacing: 1,\n 'word-spacing': 'wordSpacing',\n writingMode: 1,\n 'writing-mode': 'writingMode',\n x1: 0,\n x2: 0,\n x: 0,\n xChannelSelector: 1,\n xHeight: 1,\n 'x-height': 'xHeight',\n xlinkActuate: 1,\n 'xlink:actuate': 'xlinkActuate',\n xlinkArcrole: 1,\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkHref: 1,\n 'xlink:href': 'xlinkHref',\n xlinkRole: 1,\n 'xlink:role': 'xlinkRole',\n xlinkShow: 1,\n 'xlink:show': 'xlinkShow',\n xlinkTitle: 1,\n 'xlink:title': 'xlinkTitle',\n xlinkType: 1,\n 'xlink:type': 'xlinkType',\n xmlBase: 1,\n 'xml:base': 'xmlBase',\n xmlLang: 1,\n 'xml:lang': 'xmlLang',\n xmlns: 0,\n 'xml:space': 'xmlSpace',\n xmlnsXlink: 1,\n 'xmlns:xlink': 'xmlnsXlink',\n xmlSpace: 1,\n y1: 0,\n y2: 0,\n y: 0,\n yChannelSelector: 1,\n z: 0,\n zoomAndPan: 1\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n attributeName = _ref2[1];\n\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function capitalize(token) {\n return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true);\n});\n\nvar _require = require('../lib/possibleStandardNamesOptimized'),\n CAMELCASE = _require.CAMELCASE,\n SAME = _require.SAME,\n possibleStandardNamesOptimized = _require.possibleStandardNames;\n\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n/**\n * Checks whether a property name is a custom attribute.\n *\n * @see {@link https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/HTMLDOMPropertyConfig.js#L23-L25}\n *\n * @param {string}\n * @return {boolean}\n */\n\nvar isCustomAttribute = RegExp.prototype.test.bind( // eslint-disable-next-line no-misleading-character-class\nnew RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'));\nvar possibleStandardNames = Object.keys(possibleStandardNamesOptimized).reduce(function (accumulator, standardName) {\n var propName = possibleStandardNamesOptimized[standardName];\n\n if (propName === SAME) {\n accumulator[standardName] = standardName;\n } else if (propName === CAMELCASE) {\n accumulator[standardName.toLowerCase()] = standardName;\n } else {\n accumulator[standardName] = propName;\n }\n\n return accumulator;\n}, {});\n\nexports.BOOLEAN = BOOLEAN;\nexports.BOOLEANISH_STRING = BOOLEANISH_STRING;\nexports.NUMERIC = NUMERIC;\nexports.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN;\nexports.POSITIVE_NUMERIC = POSITIVE_NUMERIC;\nexports.RESERVED = RESERVED;\nexports.STRING = STRING;\nexports.getPropertyInfo = getPropertyInfo;\nexports.isCustomAttribute = isCustomAttribute;\nexports.possibleStandardNames = possibleStandardNames;\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","\"use strict\";\nexports.__esModule = true;\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\nvar skipCamelCase = function (property) {\n return !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n};\nvar capitalize = function (match, character) {\n return character.toUpperCase();\n};\nvar trimHyphen = function (match, prefix) { return \"\".concat(prefix, \"-\"); };\nvar camelCase = function (property, options) {\n if (options === void 0) { options = {}; }\n if (skipCamelCase(property)) {\n return property;\n }\n property = property.toLowerCase();\n if (options.reactCompat) {\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n }\n else {\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\nfunction StyleToJS(style, options) {\n var output = {};\n if (!style || typeof style !== 'string') {\n return output;\n }\n (0, style_to_object_1[\"default\"])(style, function (property, value) {\n if (property && value) {\n output[(0, utilities_1.camelCase)(property, options)] = value;\n }\n });\n return output;\n}\nexports[\"default\"] = StyleToJS;\n","var React = require('react');\nvar styleToJS = require('style-to-js').default;\n\n/**\n * Swap key with value in an object.\n *\n * @param {object} obj - The object.\n * @param {Function} [override] - The override method.\n * @returns - The inverted object.\n */\nfunction invertObject(obj, override) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('First argument must be an object');\n }\n\n var key;\n var value;\n var isOverridePresent = typeof override === 'function';\n var overrides = {};\n var result = {};\n\n for (key in obj) {\n value = obj[key];\n\n if (isOverridePresent) {\n overrides = override(key, value);\n if (overrides && overrides.length === 2) {\n result[overrides[0]] = overrides[1];\n continue;\n }\n }\n\n if (typeof value === 'string') {\n result[value] = key;\n }\n }\n\n return result;\n}\n\n/**\n * Check if a given tag is a custom component.\n *\n * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js}\n *\n * @param {string} tagName - The name of the html tag.\n * @param {object} props - The props being passed to the element.\n * @returns - Whether tag is custom component.\n */\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return props && typeof props.is === 'string';\n }\n\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n default:\n return true;\n }\n}\n\nvar styleToJSOptions = { reactCompat: true };\n\n/**\n * Sets style prop.\n *\n * @param {null|undefined|string} style\n * @param {object} props\n */\nfunction setStyleProp(style, props) {\n if (style === null || style === undefined) {\n return;\n }\n try {\n props.style = styleToJS(style, styleToJSOptions);\n } catch (err) {\n props.style = {};\n }\n}\n\n/**\n * @constant {boolean}\n * @see {@link https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html}\n */\nvar PRESERVE_CUSTOM_ATTRIBUTES = React.version.split('.')[0] >= 16;\n\n// Taken from\n// https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/client/validateDOMNesting.js#L213\nvar elementsWithNoTextChildren = new Set([\n 'tr',\n 'tbody',\n 'thead',\n 'tfoot',\n 'colgroup',\n 'table',\n 'head',\n 'html',\n 'frameset'\n]);\n\n/**\n * Checks if the given node can contain text nodes\n *\n * @param {DomElement} node - Node.\n * @returns - Whether node can contain text nodes.\n */\nfunction canTextBeChildOfNode(node) {\n return !elementsWithNoTextChildren.has(node.name);\n}\n\nmodule.exports = {\n PRESERVE_CUSTOM_ATTRIBUTES: PRESERVE_CUSTOM_ATTRIBUTES,\n invertObject: invertObject,\n isCustomComponent: isCustomComponent,\n setStyleProp: setStyleProp,\n canTextBeChildOfNode: canTextBeChildOfNode,\n elementsWithNoTextChildren: elementsWithNoTextChildren\n};\n","var reactProperty = require('react-property');\nvar utilities = require('./utilities');\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param {object} [attributes={}] - HTML/SVG DOM attributes.\n * @returns - React props.\n */\nmodule.exports = function attributesToProps(attributes) {\n attributes = attributes || {};\n\n var valueOnlyInputs = {\n reset: true,\n submit: true\n };\n\n var attributeName;\n var attributeNameLowerCased;\n var attributeValue;\n var propName;\n var propertyInfo;\n var props = {};\n var inputIsValueOnly = attributes.type && valueOnlyInputs[attributes.type];\n\n for (attributeName in attributes) {\n attributeValue = attributes[attributeName];\n\n // ARIA (aria-*) or custom data (data-*) attribute\n if (reactProperty.isCustomAttribute(attributeName)) {\n props[attributeName] = attributeValue;\n continue;\n }\n\n // convert HTML/SVG attribute to React prop\n attributeNameLowerCased = attributeName.toLowerCase();\n propName = getPropName(attributeNameLowerCased);\n\n if (propName) {\n propertyInfo = reactProperty.getPropertyInfo(propName);\n\n // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`)\n // https://reactjs.org/docs/uncontrolled-components.html\n if (\n (propName === 'checked' || propName === 'value') &&\n !inputIsValueOnly\n ) {\n propName = getPropName('default' + attributeNameLowerCased);\n }\n\n props[propName] = attributeValue;\n\n switch (propertyInfo && propertyInfo.type) {\n case reactProperty.BOOLEAN:\n props[propName] = true;\n break;\n case reactProperty.OVERLOADED_BOOLEAN:\n if (attributeValue === '') {\n props[propName] = true;\n }\n break;\n }\n continue;\n }\n\n // preserve custom attribute if React >=16\n if (utilities.PRESERVE_CUSTOM_ATTRIBUTES) {\n props[attributeName] = attributeValue;\n }\n }\n\n // transform inline style to object\n utilities.setStyleProp(attributes.style, props);\n\n return props;\n};\n\n/**\n * Gets prop name from lowercased attribute name.\n *\n * @param {string} attributeName - Lowercased attribute name.\n * @returns - Prop name.\n */\nfunction getPropName(attributeName) {\n return reactProperty.possibleStandardNames[attributeName];\n}\n","var React = require('react');\nvar attributesToProps = require('./attributes-to-props');\nvar utilities = require('./utilities');\n\nvar setStyleProp = utilities.setStyleProp;\nvar canTextBeChildOfNode = utilities.canTextBeChildOfNode;\n\n/**\n * Converts DOM nodes to JSX element(s).\n *\n * @param {DomElement[]} nodes - DOM nodes.\n * @param {object} [options={}] - Options.\n * @param {Function} [options.replace] - Replacer.\n * @param {object} [options.library] - Library (React, Preact, etc.).\n * @returns - String or JSX element(s).\n */\nfunction domToReact(nodes, options) {\n options = options || {};\n\n var library = options.library || React;\n var cloneElement = library.cloneElement;\n var createElement = library.createElement;\n var isValidElement = library.isValidElement;\n\n var result = [];\n var node;\n var isWhitespace;\n var hasReplace = typeof options.replace === 'function';\n var replaceElement;\n var props;\n var children;\n var trim = options.trim;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n\n // replace with custom React element (if present)\n if (hasReplace) {\n replaceElement = options.replace(node);\n\n if (isValidElement(replaceElement)) {\n // set \"key\" prop for sibling elements\n // https://fb.me/react-warning-keys\n if (len > 1) {\n replaceElement = cloneElement(replaceElement, {\n key: replaceElement.key || i\n });\n }\n result.push(replaceElement);\n continue;\n }\n }\n\n if (node.type === 'text') {\n isWhitespace = !node.data.trim().length;\n\n if (isWhitespace && node.parent && !canTextBeChildOfNode(node.parent)) {\n // We have a whitespace node that can't be nested in its parent\n // so skip it\n continue;\n }\n\n if (trim && isWhitespace) {\n // Trim is enabled and we have a whitespace node\n // so skip it\n continue;\n }\n\n // We have a text node that's not whitespace and it can be nested\n // in its parent so add it to the results\n result.push(node.data);\n continue;\n }\n\n props = node.attribs;\n if (skipAttributesToProps(node)) {\n setStyleProp(props.style, props);\n } else if (props) {\n props = attributesToProps(props);\n }\n\n children = null;\n\n switch (node.type) {\n case 'script':\n case 'style':\n // prevent text in <script> or <style> from being escaped\n // https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml\n if (node.children[0]) {\n props.dangerouslySetInnerHTML = {\n __html: node.children[0].data\n };\n }\n break;\n\n case 'tag':\n // setting textarea value in children is an antipattern in React\n // https://reactjs.org/docs/forms.html#the-textarea-tag\n if (node.name === 'textarea' && node.children[0]) {\n props.defaultValue = node.children[0].data;\n } else if (node.children && node.children.length) {\n // continue recursion of creating React elements (if applicable)\n children = domToReact(node.children, options);\n }\n break;\n\n // skip all other cases (e.g., comment)\n default:\n continue;\n }\n\n // set \"key\" prop for sibling elements\n // https://fb.me/react-warning-keys\n if (len > 1) {\n props.key = i;\n }\n\n result.push(createElement(node.name, props, children));\n }\n\n return result.length === 1 ? result[0] : result;\n}\n\n/**\n * Determines whether DOM element attributes should be transformed to props.\n * Web Components should not have their attributes transformed except for `style`.\n *\n * @param {DomElement} node\n * @returns - Whether node attributes should be converted to props.\n */\nfunction skipAttributesToProps(node) {\n return (\n utilities.PRESERVE_CUSTOM_ATTRIBUTES &&\n node.type === 'tag' &&\n utilities.isCustomComponent(node.name, node.attribs)\n );\n}\n\nmodule.exports = domToReact;\n",null,null,null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n",null,null,null,null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n",null,null,null,null,null,null,null,null,null,"/**\n * Sets root parent to null.\n *\n * @param {Array<Comment|Element|ProcessingInstruction|Text>} nodes\n * @return {Array<Comment|Element|ProcessingInstruction|Text>}\n */\nfunction unsetRootParent(nodes) {\n for (var index = 0, len = nodes.length; index < len; index++) {\n var node = nodes[index];\n node.parent = null;\n }\n return nodes;\n}\n\nmodule.exports = {\n unsetRootParent: unsetRootParent\n};\n","var Parser = require('htmlparser2').Parser;\nvar DomHandler = require('domhandler').DomHandler;\n\nvar unsetRootParent = require('./utilities').unsetRootParent;\n\n/**\n * Parses HTML string to DOM nodes in Node.js.\n *\n * This is the same method as `require('htmlparser2').parseDOM`\n * https://github.com/fb55/htmlparser2/blob/v6.0.0/src/index.ts#L29-L41\n *\n * @param {string} html - HTML markup.\n * @param {DomHandlerOptions} [options] - Parser options (https://github.com/fb55/domhandler/tree/v4.0.0#readme).\n * @return {Array<Comment|Element|ProcessingInstruction|Text>} - DOM nodes.\n */\nfunction HTMLDOMParser(html, options) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string.');\n }\n\n if (html === '') {\n return [];\n }\n\n var handler = new DomHandler(undefined, options);\n new Parser(handler, options).end(html);\n return unsetRootParent(handler.dom);\n}\n\nmodule.exports = HTMLDOMParser;\n","/**\n * When running on Node.js, use the server parser.\n * When bundling for the browser, use the client parser.\n *\n * @see {@link https://github.com/substack/node-browserify#browser-field}\n */\nvar HTMLDOMParser = require('./lib/server/html-to-dom');\n\nmodule.exports = HTMLDOMParser;\nmodule.exports.default = HTMLDOMParser;\n","var domToReact = require('./lib/dom-to-react');\nvar attributesToProps = require('./lib/attributes-to-props');\nvar htmlToDOM = require('html-dom-parser');\n\n// support backwards compatibility for ES Module\nhtmlToDOM =\n /* istanbul ignore next */\n typeof htmlToDOM.default === 'function' ? htmlToDOM.default : htmlToDOM;\n\nvar domParserOptions = { lowerCaseAttributeNames: false };\n\n/**\n * Converts HTML string to React elements.\n *\n * @param {string} html - HTML string.\n * @param {object} [options] - Parser options.\n * @param {object} [options.htmlparser2] - htmlparser2 options.\n * @param {object} [options.library] - Library for React, Preact, etc.\n * @param {Function} [options.replace] - Replace method.\n * @returns {JSX.Element|JSX.Element[]|string} - React element(s), empty array, or string.\n */\nfunction HTMLReactParser(html, options) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n if (html === '') {\n return [];\n }\n options = options || {};\n return domToReact(\n htmlToDOM(html, options.htmlparser2 || domParserOptions),\n options\n );\n}\n\nHTMLReactParser.domToReact = domToReact;\nHTMLReactParser.htmlToDOM = htmlToDOM;\nHTMLReactParser.attributesToProps = attributesToProps;\nHTMLReactParser.Element = require('domhandler').Element;\n\n// support CommonJS and ES Modules\nmodule.exports = HTMLReactParser;\nmodule.exports.default = HTMLReactParser;\n","import HTMLReactParser from './index.js';\n\nexport var domToReact = HTMLReactParser.domToReact;\nexport var htmlToDOM = HTMLReactParser.htmlToDOM;\nexport var attributesToProps = HTMLReactParser.attributesToProps;\nexport var Element = HTMLReactParser.Element;\n\nexport default HTMLReactParser;\n","\"use strict\";\n\n/**\n * Copyright (c) 2019-present, GraphQL Foundation\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// A Function, which when given an Array of keys, returns a Promise of an Array\n// of values or Errors.\n// Optionally turn off batching or caching or provide a cache key function or a\n// custom cache instance.\n// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nvar DataLoader =\n/*#__PURE__*/\nfunction () {\n function DataLoader(batchLoadFn, options) {\n if (typeof batchLoadFn !== 'function') {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + (\"Array<key> and returns Promise<Array<value>>, but got: \" + batchLoadFn + \".\"));\n }\n\n this._batchLoadFn = batchLoadFn;\n this._maxBatchSize = getValidMaxBatchSize(options);\n this._batchScheduleFn = getValidBatchScheduleFn(options);\n this._cacheKeyFn = getValidCacheKeyFn(options);\n this._cacheMap = getValidCacheMap(options);\n this._batch = null;\n } // Private\n\n\n var _proto = DataLoader.prototype;\n\n /**\n * Loads a key, returning a `Promise` for the value represented by that key.\n */\n _proto.load = function load(key) {\n if (key === null || key === undefined) {\n throw new TypeError('The loader.load() function must be called with a value, ' + (\"but got: \" + String(key) + \".\"));\n }\n\n var batch = getCurrentBatch(this);\n var cacheMap = this._cacheMap;\n\n var cacheKey = this._cacheKeyFn(key); // If caching and there is a cache-hit, return cached Promise.\n\n\n if (cacheMap) {\n var cachedPromise = cacheMap.get(cacheKey);\n\n if (cachedPromise) {\n var cacheHits = batch.cacheHits || (batch.cacheHits = []);\n return new Promise(function (resolve) {\n cacheHits.push(function () {\n resolve(cachedPromise);\n });\n });\n }\n } // Otherwise, produce a new Promise for this key, and enqueue it to be\n // dispatched along with the current batch.\n\n\n batch.keys.push(key);\n var promise = new Promise(function (resolve, reject) {\n batch.callbacks.push({\n resolve: resolve,\n reject: reject\n });\n }); // If caching, cache this promise.\n\n if (cacheMap) {\n cacheMap.set(cacheKey, promise);\n }\n\n return promise;\n }\n /**\n * Loads multiple keys, promising an array of values:\n *\n * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n *\n * This is similar to the more verbose:\n *\n * var [ a, b ] = await Promise.all([\n * myLoader.load('a'),\n * myLoader.load('b')\n * ]);\n *\n * However it is different in the case where any load fails. Where\n * Promise.all() would reject, loadMany() always resolves, however each result\n * is either a value or an Error instance.\n *\n * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n * // c instanceof Error\n *\n */\n ;\n\n _proto.loadMany = function loadMany(keys) {\n if (!isArrayLike(keys)) {\n throw new TypeError('The loader.loadMany() function must be called with Array<key> ' + (\"but got: \" + keys + \".\"));\n } // Support ArrayLike by using only minimal property access\n\n\n var loadPromises = [];\n\n for (var i = 0; i < keys.length; i++) {\n loadPromises.push(this.load(keys[i])[\"catch\"](function (error) {\n return error;\n }));\n }\n\n return Promise.all(loadPromises);\n }\n /**\n * Clears the value at `key` from the cache, if it exists. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clear = function clear(key) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key);\n\n cacheMap[\"delete\"](cacheKey);\n }\n\n return this;\n }\n /**\n * Clears the entire cache. To be used when some event results in unknown\n * invalidations across this particular `DataLoader`. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clearAll = function clearAll() {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n cacheMap.clear();\n }\n\n return this;\n }\n /**\n * Adds the provided key and value to the cache. If the key already\n * exists, no change is made. Returns itself for method chaining.\n *\n * To prime the cache with an error at a key, provide an Error instance.\n */\n ;\n\n _proto.prime = function prime(key, value) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key); // Only add the key if it does not already exist.\n\n\n if (cacheMap.get(cacheKey) === undefined) {\n // Cache a rejected promise if the value is an Error, in order to match\n // the behavior of load(key).\n var promise;\n\n if (value instanceof Error) {\n promise = Promise.reject(value); // Since this is a case where an Error is intentionally being primed\n // for a given key, we want to disable unhandled promise rejection.\n\n promise[\"catch\"](function () {});\n } else {\n promise = Promise.resolve(value);\n }\n\n cacheMap.set(cacheKey, promise);\n }\n }\n\n return this;\n };\n\n return DataLoader;\n}(); // Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\n\n\nvar enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {\n if (!resolvedPromise) {\n resolvedPromise = Promise.resolve();\n }\n\n resolvedPromise.then(function () {\n process.nextTick(fn);\n });\n} : typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n} : function (fn) {\n setTimeout(fn);\n}; // Private: cached resolved Promise instance\n\nvar resolvedPromise; // Private: Describes a batch of requests\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch(loader) {\n // If there is an existing batch which has not yet dispatched and is within\n // the limit of the batch size, then return it.\n var existingBatch = loader._batch;\n\n if (existingBatch !== null && !existingBatch.hasDispatched && existingBatch.keys.length < loader._maxBatchSize && (!existingBatch.cacheHits || existingBatch.cacheHits.length < loader._maxBatchSize)) {\n return existingBatch;\n } // Otherwise, create a new batch for this loader.\n\n\n var newBatch = {\n hasDispatched: false,\n keys: [],\n callbacks: []\n }; // Store it on the loader so it may be reused.\n\n loader._batch = newBatch; // Then schedule a task to dispatch this batch of requests.\n\n loader._batchScheduleFn(function () {\n dispatchBatch(loader, newBatch);\n });\n\n return newBatch;\n}\n\nfunction dispatchBatch(loader, batch) {\n // Mark this batch as having been dispatched.\n batch.hasDispatched = true; // If there's nothing to load, resolve any cache hits and return early.\n\n if (batch.keys.length === 0) {\n resolveCacheHits(batch);\n return;\n } // Call the provided batchLoadFn for this loader with the batch's keys and\n // with the loader as the `this` context.\n\n\n var batchPromise = loader._batchLoadFn(batch.keys); // Assert the expected response from batchLoadFn\n\n\n if (!batchPromise || typeof batchPromise.then !== 'function') {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise: \" + String(batchPromise) + \".\")));\n } // Await the resolution of the call to batchLoadFn.\n\n\n batchPromise.then(function (values) {\n // Assert the expected resolution from batchLoadFn.\n if (!isArrayLike(values)) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise of an Array: \" + String(values) + \".\"));\n }\n\n if (values.length !== batch.keys.length) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + (\"\\n\\nKeys:\\n\" + String(batch.keys)) + (\"\\n\\nValues:\\n\" + String(values)));\n } // Resolve all cache hits in the same micro-task as freshly loaded values.\n\n\n resolveCacheHits(batch); // Step through values, resolving or rejecting each Promise in the batch.\n\n for (var i = 0; i < batch.callbacks.length; i++) {\n var value = values[i];\n\n if (value instanceof Error) {\n batch.callbacks[i].reject(value);\n } else {\n batch.callbacks[i].resolve(value);\n }\n }\n })[\"catch\"](function (error) {\n failedDispatch(loader, batch, error);\n });\n} // Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\n\n\nfunction failedDispatch(loader, batch, error) {\n // Cache hits are resolved, even though the batch failed.\n resolveCacheHits(batch);\n\n for (var i = 0; i < batch.keys.length; i++) {\n loader.clear(batch.keys[i]);\n batch.callbacks[i].reject(error);\n }\n} // Private: Resolves the Promises for any cache hits in this batch.\n\n\nfunction resolveCacheHits(batch) {\n if (batch.cacheHits) {\n for (var i = 0; i < batch.cacheHits.length; i++) {\n batch.cacheHits[i]();\n }\n }\n} // Private: given the DataLoader's options, produce a valid max batch size.\n\n\nfunction getValidMaxBatchSize(options) {\n var shouldBatch = !options || options.batch !== false;\n\n if (!shouldBatch) {\n return 1;\n }\n\n var maxBatchSize = options && options.maxBatchSize;\n\n if (maxBatchSize === undefined) {\n return Infinity;\n }\n\n if (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n throw new TypeError(\"maxBatchSize must be a positive number: \" + maxBatchSize);\n }\n\n return maxBatchSize;\n} // Private\n\n\nfunction getValidBatchScheduleFn(options) {\n var batchScheduleFn = options && options.batchScheduleFn;\n\n if (batchScheduleFn === undefined) {\n return enqueuePostPromiseJob;\n }\n\n if (typeof batchScheduleFn !== 'function') {\n throw new TypeError(\"batchScheduleFn must be a function: \" + batchScheduleFn);\n }\n\n return batchScheduleFn;\n} // Private: given the DataLoader's options, produce a cache key function.\n\n\nfunction getValidCacheKeyFn(options) {\n var cacheKeyFn = options && options.cacheKeyFn;\n\n if (cacheKeyFn === undefined) {\n return function (key) {\n return key;\n };\n }\n\n if (typeof cacheKeyFn !== 'function') {\n throw new TypeError(\"cacheKeyFn must be a function: \" + cacheKeyFn);\n }\n\n return cacheKeyFn;\n} // Private: given the DataLoader's options, produce a CacheMap to be used.\n\n\nfunction getValidCacheMap(options) {\n var shouldCache = !options || options.cache !== false;\n\n if (!shouldCache) {\n return null;\n }\n\n var cacheMap = options && options.cacheMap;\n\n if (cacheMap === undefined) {\n return new Map();\n }\n\n if (cacheMap !== null) {\n var cacheFunctions = ['get', 'set', 'delete', 'clear'];\n var missingFunctions = cacheFunctions.filter(function (fnName) {\n return cacheMap && typeof cacheMap[fnName] !== 'function';\n });\n\n if (missingFunctions.length !== 0) {\n throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n }\n }\n\n return cacheMap;\n} // Private\n\n\nfunction isArrayLike(x) {\n return typeof x === 'object' && x !== null && typeof x.length === 'number' && (x.length === 0 || x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1));\n}\n\nmodule.exports = DataLoader;","import DataLoader from 'dataloader';\nimport React, {\n createContext,\n PropsWithChildren,\n useMemo,\n useState,\n} from 'react';\nimport {\n cacheKeyFn,\n DataLoaderLoadParams,\n DataLoaderOptions,\n defaultLoaderFactory as defaultLoaderFactory,\n Language,\n libraryWebsite,\n MagicTranslateConfig,\n TranslateOptions,\n} from '@magic-translate/core';\n\nexport interface MagicTranslateProviderProps extends MagicTranslateConfig {\n /**\n * The API URL to use for the translate requests. This is only used for debugging purposes.\n * @ignore\n */\n _apiUrl?: string;\n\n /**\n * Set a data loader. This is for testing purposes only\n * @ignore\n */\n _loaderFactory?: (\n options?: DataLoaderOptions\n ) => (content: readonly DataLoaderLoadParams[]) => Promise<readonly string[]>;\n}\n\n/**\n * Type alias to make the language enum more flexible to also allow passing language strings\n * instead of just the enum.\n */\ntype Languages = `${Language}`;\n\nexport interface MagicTranslateContextValue extends TranslateOptions {\n dataLoader: DataLoader<DataLoaderLoadParams, string>;\n language: Languages;\n sourceLanguage?: Languages;\n setLanguage: (language: Languages) => void;\n apiUrl?: string;\n apiKey: string;\n}\n\nexport const MagicTranslateContext =\n createContext<MagicTranslateContextValue | null>(null);\n\nexport const MagicTranslateProvider: React.FunctionComponent<\n PropsWithChildren<MagicTranslateProviderProps>\n> = ({\n language: passedLanguage,\n sourceLanguage,\n debug,\n apiKey,\n children,\n _loaderFactory = defaultLoaderFactory,\n _apiUrl,\n formality,\n}) => {\n if (!apiKey) {\n throw new Error(`Missing API key. Please get one at ${libraryWebsite}`);\n }\n\n const [languageFromContext, setLanguage] = useState<null | Languages>(null);\n\n const language = useMemo(\n () => languageFromContext ?? passedLanguage,\n [passedLanguage, languageFromContext]\n );\n\n const value = useMemo(\n () => ({\n dataLoader: new DataLoader<DataLoaderLoadParams, string, string>(\n _loaderFactory({\n debug: !!debug,\n apiKey,\n lang: language,\n sourceLang: sourceLanguage,\n apiUrl: _apiUrl,\n formality,\n }),\n {\n cacheKeyFn: cacheKeyFn(apiKey, sourceLanguage, language),\n }\n ),\n language,\n sourceLanguage,\n apiKey,\n setLanguage,\n }),\n [_loaderFactory, language, sourceLanguage, debug, apiKey, _apiUrl]\n );\n\n return (\n <MagicTranslateContext.Provider value={value}>\n {children}\n </MagicTranslateContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { MagicTranslateContext } from '../context/MagicTranslateContext';\n\nexport function useMagicTranslate() {\n const value = useContext(MagicTranslateContext);\n\n if (value === null) {\n throw new Error(\n 'useMagicTranslate must be used within a MagicTranslateProvider'\n );\n }\n\n return value;\n}\n","import parse from 'html-react-parser';\nimport React, {\n PropsWithChildren,\n useCallback,\n useEffect,\n useState,\n useRef,\n} from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { TranslateOptions, libraryName } from '@magic-translate/core';\nimport { useMagicTranslate } from '../hooks/use-magic-translate';\n\nexport type TranslateProps = TranslateOptions;\n\nconst assertChildIsNotAReactComponent = (\n child:\n | React.ReactElement<unknown, string | React.JSXElementConstructor<unknown>>\n | React.ReactFragment\n | React.ReactPortal\n) => {\n if ('type' in child && typeof child.type === 'function') {\n let errorMsg =\n 'React components are not allowed inside `<T>...</T>` components.';\n if ('displayName' in child.type) {\n errorMsg += ` The component found inside the T component is ${\n (child.type as React.FunctionComponent).displayName\n }.`;\n }\n throw new Error(errorMsg);\n }\n};\n\nexport const Translate: React.FunctionComponent<\n PropsWithChildren<TranslateProps>\n> = ({ children, ...options }) => {\n const { dataLoader, language, sourceLanguage } = useMagicTranslate();\n const [translation, setTranslation] = useState<null | string>(null);\n const lastRequestId = useRef<number>(0);\n\n const translate = useCallback(\n (toTranslate: string) => {\n // make sure that we only ever use the response of the most resent request.\n const requestId = Math.random();\n lastRequestId.current = requestId;\n\n dataLoader.load({ text: toTranslate, ...options }).then((t) => {\n if (lastRequestId.current === requestId) {\n setTranslation(t);\n }\n });\n },\n [dataLoader]\n );\n\n useEffect(() => {\n // single child\n if (React.Children.count(children) === 0) {\n return;\n }\n\n if (React.Children.count(children) === 1) {\n if (!children) {\n return;\n }\n\n if (typeof children === 'string') {\n translate(children);\n return;\n }\n\n if (typeof children === 'number' || typeof children === 'boolean') {\n return;\n }\n\n assertChildIsNotAReactComponent(children);\n\n if ('type' in children && typeof children.type === 'string') {\n // single plain HTML element\n translate(renderToString(children));\n return;\n }\n\n /* istanbul ignore next */\n console.warn(\n `[${libraryName}]: Impossible state reached. If you see this message, please open an issue on GitHub. Offending value was a ${typeof children} with value: ${children}`\n );\n\n return;\n }\n\n if (React.Children.count(children) > 1) {\n React.Children.forEach(children, (child) => {\n // make sure all children are either primitives or plain HTML elements\n if (\n !child ||\n typeof child === 'string' ||\n typeof child === 'number' ||\n typeof child === 'boolean'\n ) {\n return;\n }\n\n assertChildIsNotAReactComponent(child);\n });\n\n translate(renderToString(<>{children}</>));\n }\n }, [children, language]);\n\n return <>{translation ? parse(translation) : children}</>;\n};\n\nexport const T = Translate;\n","import { useMagicTranslate } from './use-magic-translate';\nimport { useCallback, useMemo, useState } from 'react';\nimport { cacheKeyFn, DataLoaderLoadParams } from '@magic-translate/core';\n\nexport function useTranslate(): (\n text: string,\n params?: Omit<DataLoaderLoadParams, 'text'>\n) => string {\n const { dataLoader, apiKey, sourceLanguage } = useMagicTranslate();\n const [translations, setTranslations] = useState<Map<string, string>>(\n new Map<string, string>()\n );\n\n const cacheFn = useMemo(\n () => cacheKeyFn(apiKey, sourceLanguage, sourceLanguage),\n [apiKey, sourceLanguage, sourceLanguage]\n );\n\n const lookup = useCallback(\n (text: string, params: Omit<DataLoaderLoadParams, 'text'> = {}) =>\n translations.get(cacheFn({ text, ...params })),\n [translations]\n );\n\n const load = useCallback(\n (text: string, params: Omit<DataLoaderLoadParams, 'text'> = {}) => {\n if (lookup(text, params)) {\n return;\n }\n\n dataLoader.load({ text, ...params }).then((translation) => {\n setTranslations((cur) => {\n cur.set(cacheFn({ text, ...params }), translation);\n\n return new Map(cur);\n });\n });\n },\n [cacheFn, dataLoader, lookup]\n );\n\n return (text: string, params: Omit<DataLoaderLoadParams, 'text'> = {}) => {\n load(text, params);\n\n return lookup(text, params) ?? text;\n };\n}\n\nexport const useT = useTranslate;\n","import { useMagicTranslate } from './use-magic-translate';\nimport { Language } from '@magic-translate/core';\nimport { useMemo } from 'react';\n\nexport function useLanguageSwitcher(): {\n setLanguage: (language: `${Language}`) => void;\n currentLanguage: `${Language}`;\n} {\n const { setLanguage, language } = useMagicTranslate();\n\n return useMemo(\n () => ({ setLanguage, currentLanguage: language }),\n [setLanguage, language]\n );\n}\n"],"names":["t","Object","assign","e","n","r","arguments","length","a","prototype","hasOwnProperty","call","apply","this","Language","libraryName","libraryWebsite","removeUndefined","obj","keys","filter","k","reduce","acc","__assign","_a","AF","SQ","AM","AR","HY","AZ","BN","BS","BG","CA","ZH","ZH_TW","HR","CS","DA","FA_AF","NL","EN","ET","FA","TL","FI","FR","FR_CA","KA","DE","EL","GU","HT","HA","HE","HI","HU","IS","ID","GA","IT","JA","KN","KK","KO","LV","LT","MK","MS","ML","MT","MR","MN","NO","PS","PL","PT","PT_PT","PA","RO","RU","SR","SI","SK","SL","SO","ES","ES_MX","SW","SV","TA","TE","TH","TR","UK","UR","UZ","VI","CY","ErrorCode","defaultDataLoaderOptions","debug","apiUrl","lang","QUOTA_EXCEEDED_ERROR","resolvedPromise","cacheKeyFn","apiKey","sourceLanguage","language","params","entries","_b","sourceLang","sort","key","localeCompare","cur","concat","join","defaultLoaderFactory","globalOptions","content","Promise","o","c","u","next","i","throw","done","value","then","__awaiter","label","sent","trys","ops","return","Symbol","iterator","TypeError","pop","push","console","map","text","formality","body","items","options","fetch","method","useJson","JSON","stringify","URLSearchParams","traverse","data","prefix","Array","isArray","forEach","item","index","keyPrefix","append","headers","res","json","response","results","error","message","catch","DataLoader","batchLoadFn","_batchLoadFn","_maxBatchSize","batch","maxBatchSize","Infinity","_batchScheduleFn","batchScheduleFn","undefined","enqueuePostPromiseJob","_cacheKeyFn","_cacheMap","cache","cacheMap","Map","missingFunctions","fnName","_batch","_proto","load","String","loader","existingBatch","hasDispatched","cacheHits","newBatch","callbacks","batchPromise","failedDispatch","values","isArrayLike","resolveCacheHits","Error","reject","resolve","cacheKey","cachedPromise","get","promise","set","loadMany","loadPromises","all","clear","delete","clearAll","prime","process","nextTick","fn","setImmediate","setTimeout","x","dataloader","setupTranslate","_apiUrl","_loaderFactory","loaderOptions","setupT","FALLBACK_LANGUAGE","possibleStandardNamesOptimized","SAME","_slicedToArray","arr","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","CAMELCASE","possibleStandardNames","accept","acceptCharset","accessKey","action","allowFullScreen","alt","as","async","autoCapitalize","autoComplete","autoCorrect","autoFocus","autoPlay","autoSave","capture","cellPadding","cellSpacing","challenge","charSet","checked","children","cite","class","classID","className","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","dangerouslySetInnerHTML","dateTime","default","defaultChecked","defaultValue","defer","dir","disabled","disablePictureInPicture","disableRemotePlayback","download","draggable","encType","enterKeyHint","for","form","formMethod","formAction","formEncType","formNoValidate","formTarget","frameBorder","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","id","innerHTML","inputMode","integrity","is","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","kind","list","loop","low","manifest","marginWidth","marginHeight","max","maxLength","media","mediaGroup","min","minLength","multiple","muted","noModule","nonce","noValidate","open","optimum","pattern","placeholder","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcLang","srcSet","start","step","style","summary","tabIndex","target","title","type","useMap","width","wmode","wrap","about","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","datatype","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","property","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","result","rotate","rx","ry","scale","security","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeWidth","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","typeof","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewBox","viewTarget","visibility","vMathematical","vocab","widths","wordSpacing","writingMode","x1","x2","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","defineProperty","lib","PropertyInfoRecord","mustUseProperty","attributeNamespace","sanitizeURL","removeEmptyString","acceptsBooleans","propertyName","properties","_ref","_ref2","toLowerCase","CAMELIZE","capitalize","token","toUpperCase","replace","_require","require$$0","isCustomAttribute","RegExp","bind","accumulator","standardName","propName","BOOLEAN","BOOLEANISH_STRING","NUMERIC","OVERLOADED_BOOLEAN","POSITIVE_NUMERIC","RESERVED","STRING","getPropertyInfo","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","trim","str","parse","lineno","column","updatePosition","lines","match","lastIndexOf","position","line","node","Position","whitespace","source","msg","reason","filename","silent","re","m","exec","comments","rules","comment","pos","charAt","declaration","prop","val","ret","decl","decls","declarations","styleToObject","output","hasIterator","utilities","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","character","trimHyphen","camelCase","skipCamelCase","reactCompat","__importDefault","mod","__esModule","exports","style_to_object_1","utilities_1","require$$1","React","styleToJS","styleToJSOptions","PRESERVE_CUSTOM_ATTRIBUTES","split","elementsWithNoTextChildren","Set","invertObject","override","isOverridePresent","overrides","isCustomComponent","tagName","props","indexOf","setStyleProp","canTextBeChildOfNode","has","reactProperty","attributesToProps","attributes","attributeNameLowerCased","attributeValue","propertyInfo","inputIsValueOnly","reset","submit","getPropName","require$$2","skipAttributesToProps","attribs","domToReact_1","domToReact","nodes","isWhitespace","replaceElement","library","cloneElement","createElement","isValidElement","hasReplace","__html","parent","decodeDataHtml","Uint16Array","charCodeAt","decodeDataXml","decodeMap","replaceCodePoint","codePoint","fromCodePoint","fromCharCode","decode_data_html_js_1","htmlDecodeTree","decode_data_xml_js_1","xmlDecodeTree","decode_codepoint_js_1","decodeCodePoint","CharCodes","BinTrieFlags","decode_codepoint_js_2","getDecoder","decodeTree","strict","lastIdx","strIdx","NUM","resultIdx","excess","treeIdx","current","determineBranch","masked","VALUE_LENGTH","valueLength","SEMI","base","cp","To_LOWER_BIT","LOWER_X","ZERO","NINE","LOWER_A","LOWER_F","entity","substring","parsed","parseInt","nodeIdx","char","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","enumerable","htmlDecoder","xmlDecoder","decodeHTML","decodeHTMLStrict","decodeXML","State","QuoteType","decode_js_1","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","isNumber","Zero","Nine","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","Tokenizer","cbs","xmlMode","_c","decodeEntities","state","Text","buffer","sectionStart","baseState","isSpecial","running","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","currentSequence","write","chunk","finish","pause","resume","getIndex","getSectionStart","stateText","Lt","fastForwardTo","ontext","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","Number","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","oncdata","oncomment","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","onopentagname","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","onclosetag","AfterClosingTagName","stateAfterClosingTagName","onopentagend","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","onselfclosingtag","stateInAttributeName","Eq","onattribname","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","onattribend","NoValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","quote","onattribdata","Double","Single","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","ondeclaration","stateInProcessingInstruction","onprocessinginstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","Num","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","emitNamedEntity","allowLegacyEntity","Semi","entityStart","emitPartial","emitCodePoint","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","emitNumericEntity","stateInHexEntity","UpperF","LowerF","isHexDigit","cleanup","shouldContinue","handleTrailingData","onend","endIndex","onattribentity","ontextentity","Tokenizer_js_1","__importStar","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","Parser","startIndex","openTagStart","tagname","attribname","attribvalue","stack","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","onparserinit","getSlice","idx","isVoidElement","emitOpenTag","impliesClose","el","onopentag","endOpenTag","isImplied","_f","count","closeCurrentTag","recognizeSelfClosing","isOpenImplied","onattribute","getInstructionName","search","substr","oncommentend","recognizeCDATA","oncdatastart","oncdataend","_h","_g","_k","onreset","parseComplete","shiftBuffer","shift","onerror","parseChunk","Parser_1","ElementType","Doctype","CDATA","Tag","Style","Script","Comment","Directive","Root","isTag","elem","extendStatics","__extends","b","setPrototypeOf","__proto__","p","__","create","s","cloneNode","hasChildren","isDocument","isDirective","isComment","isCDATA","Element","Document","NodeWithChildren","ProcessingInstruction","Node","domelementtype_1","prev","configurable","recursive","DataNode","_super","_this","namespace","isText","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","__createBinding","desc","getOwnPropertyDescriptor","writable","__exportStar","DomHandler","node_js_1","defaultOpts","withStartIndices","withEndIndices","callback","elementCB","dom","root","tagStack","lastNode","parser","handleCallback","element","addNode","previousSibling","restoreDiff","encodeHtml","v","xmlReplacer","xmlCodeMap","encodeXML","lastIndex","getEscaper","regex","getCodePoint","codePointAt","escape","escapeUTF8","escapeAttribute","escapeText","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","regExp","nextChar","encode","encodeHTML","encodeNonAsciiHTML","EntityLevel","DecodingMode","EncodingMode","encode_js_1","decode","XML","opts","level","HTML","Strict","decodeStrict","Legacy","UTF8","Attribute","ASCII","escape_js_2","encode_js_2","decode_js_2","foreignNames","attributeNames","elementNames","__setModuleDefault","render","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","singleTag","renderNode","renderComment","renderCdata","foreignModeIntegrationPoints","foreignElements","tag","encodeEntities","emptyAttrs","formatAttributes","selfClosingTags","renderTag","renderText","domhandler_1","dom_serializer_1","getOuterHTML","getInnerHTML","getText","textContent","innerText","getChildren","getParent","traversal","getSiblings","siblings","unshift","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","removeElement","splice","manipulation","replacement","appendChild","sibling","currNext","prependChild","prepend","find","recurse","limit","nodes_1","querying","findOneChild","findOne","existsOne","some","findAll","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","attrib","combineFuncs","compileTest","funcs","legacy","testElement","getElements","getElementById","getElementsByTagName","getElementsByTagType","DocumentPosition","compareDocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","Math","DISCONNECTED","sharedParent","aSibling","bSibling","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","removeSubsets","ancestor","includes","uniqueSort","relative","stringify_js_1","legacy_js_1","feeds","getFeed","doc","feedRoot","getOneElement","isValidFeed","feed","entry","getMediaElements","addConditionally","link","description","pubDate","Date","updated","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","expression","require$$3","require$$4","require$$5","require$$6","require$$7","Parser_js_1","parseDocument","handler","parseDOM","createDomStream","cb","elementCb","domutils_1","parseFeed","DomUtils","unsetRootParent","HTMLDOMParser","html","htmlDomParserModule","htmlDomParser","htmlToDOM","domParserOptions","HTMLReactParser","htmlparser2","htmlReactParserModule","htmlReactParser","getValidMaxBatchSize","getValidBatchScheduleFn","getValidCacheKeyFn","getValidCacheMap","dispatchBatch","getCurrentBatch","MagicTranslateContext","createContext","useMagicTranslate","useContext","assertChildIsNotAReactComponent","errorMsg","displayName","Translate","__rest","dataLoader","useState","translation","setTranslation","lastRequestId","useRef","translate","useCallback","toTranslate","requestId","random","useEffect","Children","renderToString","warn","Fragment","T","useTranslate","translations","setTranslations","cacheFn","useMemo","lookup","useT","passedLanguage","languageFromContext","setLanguage","Provider","currentLanguage","utsLocale","fallback","country"],"mappings":"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,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY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"}
|
|
1
|
+
{"version":3,"file":"index.min.js","sources":["../node_modules/@magic-translate/core/src/constants.ts","../node_modules/@magic-translate/core/src/utils/remove-undefined.ts","../node_modules/@magic-translate/core/src/utils/object-to-url-search-params.ts","../node_modules/@magic-translate/core/src/domain/language.ts","../node_modules/@magic-translate/core/src/api/data-loader.ts","../node_modules/@magic-translate/core/node_modules/dataloader/index.js","../node_modules/@magic-translate/core/src/api/setup-translate.ts","../node_modules/@magic-translate/core/src/utils/uts-locale-to-language.ts","../node_modules/html-dom-parser/node_modules/domelementtype/dist/index.js","../node_modules/html-dom-parser/node_modules/domhandler/dist/node.js","../node_modules/html-dom-parser/node_modules/domhandler/dist/index.js","../node_modules/html-dom-parser/node_modules/entities/dist/internal/decode-shared.js","../node_modules/html-dom-parser/node_modules/entities/dist/generated/decode-data-html.js","../node_modules/html-dom-parser/node_modules/entities/dist/generated/decode-data-xml.js","../node_modules/html-dom-parser/node_modules/entities/dist/decode-codepoint.js","../node_modules/html-dom-parser/node_modules/entities/dist/internal/bin-trie-flags.js","../node_modules/html-dom-parser/node_modules/entities/dist/decode.js","../node_modules/html-dom-parser/node_modules/htmlparser2/dist/Tokenizer.js","../node_modules/html-dom-parser/node_modules/htmlparser2/dist/Parser.js","../node_modules/html-dom-parser/src/server/utilities.ts","../node_modules/html-dom-parser/src/server/html-to-dom.ts","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/inline-style-parser/index.js","../node_modules/style-to-object/src/index.ts","../node_modules/style-to-js/src/utilities.ts","../node_modules/style-to-js/src/index.ts","../node_modules/html-react-parser/src/utilities.ts","../node_modules/html-react-parser/src/attributes-to-props.ts","../node_modules/react-property/lib/index.js","../node_modules/domelementtype/dist/index.js","../node_modules/domhandler/dist/node.js","../node_modules/domhandler/dist/index.js","../node_modules/html-react-parser/src/dom-to-react.ts","../node_modules/html-react-parser/src/index.ts","../node_modules/html-dom-parser/lib/index.js","../node_modules/html-react-parser/esm/index.mjs","../node_modules/dataloader/index.js","../src/context/MagicTranslateContext.tsx","../src/hooks/use-magic-translate.tsx","../src/components/Translate.tsx","../src/hooks/use-translate.ts","../src/hooks/use-language-switcher.ts"],"sourcesContent":["export const libraryName = 'Magic Translate';\nexport const libraryWebsite = 'https://magictranslate.io';\n","export function removeUndefined<T>(obj: {\n [k: string]: T | undefined | null;\n}): {\n [k: string]: T;\n} {\n return Object.keys(obj)\n .filter((k) => obj[k] !== undefined)\n .reduce((acc, k) => ({ ...acc, [k]: obj[k] }), {});\n}\n","export function convertObjectToURLSearchParams(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj: Record<string, any>\n): URLSearchParams {\n const params = new URLSearchParams();\n\n const traverse = <T extends Record<string, T>>(\n data: Record<string, T>,\n prefix = ''\n ): void => {\n if (Array.isArray(data)) {\n data.forEach((item, index) => {\n const keyPrefix = prefix ? `${prefix}[${index}]` : `[${index}]`;\n traverse(item, keyPrefix);\n });\n } else if (typeof data === 'object' && data !== null) {\n Object.entries(data).forEach(([key, value]) => {\n const keyPrefix = prefix ? `${prefix}.${key}` : key;\n traverse(value, keyPrefix);\n });\n } else {\n params.append(prefix, data);\n }\n };\n\n traverse(obj);\n return params;\n}\n","export enum Language {\n AF = 'af',\n SQ = 'sq',\n AM = 'am',\n AR = 'ar',\n HY = 'hy',\n AZ = 'az',\n BN = 'bn',\n BS = 'bs',\n BG = 'bg',\n CA = 'ca',\n ZH = 'zh',\n ZH_TW = 'zh-TW',\n HR = 'hr',\n CS = 'cs',\n DA = 'da',\n FA_AF = 'fa-AF',\n NL = 'nl',\n EN = 'en',\n ET = 'et',\n FA = 'fa',\n TL = 'tl',\n FI = 'fi',\n FR = 'fr',\n FR_CA = 'fr-CA',\n KA = 'ka',\n DE = 'de',\n EL = 'el',\n GU = 'gu',\n HT = 'ht',\n HA = 'ha',\n HE = 'he',\n HI = 'hi',\n HU = 'hu',\n IS = 'is',\n ID = 'id',\n GA = 'ga',\n IT = 'it',\n JA = 'ja',\n KN = 'kn',\n KK = 'kk',\n KO = 'ko',\n LV = 'lv',\n LT = 'lt',\n MK = 'mk',\n MS = 'ms',\n ML = 'ml',\n MT = 'mt',\n MR = 'mr',\n MN = 'mn',\n NO = 'no',\n PS = 'ps',\n PL = 'pl',\n PT = 'pt',\n PT_PT = 'pt-PT',\n PA = 'pa',\n RO = 'ro',\n RU = 'ru',\n SR = 'sr',\n SI = 'si',\n SK = 'sk',\n SL = 'sl',\n SO = 'so',\n ES = 'es',\n ES_MX = 'es-MX',\n SW = 'sw',\n SV = 'sv',\n TA = 'ta',\n TE = 'te',\n TH = 'th',\n TR = 'tr',\n UK = 'uk',\n UR = 'ur',\n UZ = 'uz',\n VI = 'vi',\n CY = 'cy',\n}\n","import { libraryName } from '../constants';\nimport { Language } from '../domain/language';\nimport { removeUndefined } from '../utils/remove-undefined';\nimport { convertObjectToURLSearchParams } from '../utils/object-to-url-search-params';\n\nexport interface TranslateOptions {\n lang?: `${Language}`;\n formality?: 'formal' | 'informal';\n}\n\nexport interface DataLoaderLoadParams extends TranslateOptions {\n text: string;\n sourceLang?: `${Language}`;\n}\n\nexport interface DataLoaderOptions extends TranslateOptions {\n debug?: boolean;\n useJson?: boolean;\n apiUrl?: string;\n lang: `${Language}`;\n sourceLang?: `${Language}`;\n apiKey: string;\n}\n\nexport const defaultDataLoaderOptions: Omit<DataLoaderOptions, 'apiKey'> = {\n debug: false,\n apiUrl: 'https://api.magictranslate.io',\n lang: Language.DE,\n};\n\nenum ErrorCode {\n QUOTA_EXCEEDED_ERROR = 'QUOTA_EXCEEDED_ERROR',\n}\n\ntype TranslationResponse =\n TranslationSuccessResponse | TranslationErrorResponse;\n\ninterface TranslationSuccessResponse {\n results: string[];\n\n error: null | TranslationErrorResponse;\n}\n\ninterface TranslationErrorResponse {\n code: ErrorCode;\n message: string;\n}\nexport const cacheKeyFn =\n (apiKey: string, sourceLanguage?: `${Language}`, language?: `${Language}`) =>\n (params: DataLoaderLoadParams) =>\n Object.entries(\n removeUndefined({\n apiKey,\n language,\n sourceLanguage: params.sourceLang ?? sourceLanguage ?? 'auto',\n ...params,\n })\n )\n .sort(([key]) => key.localeCompare(key))\n .reduce((acc, cur) => `${acc};${cur.join('=')}`, '');\n\nexport const defaultLoaderFactory =\n (globalOptions: DataLoaderOptions) =>\n async (content: readonly DataLoaderLoadParams[]) => {\n if (globalOptions.debug) {\n console.debug(`[${libraryName}]: batch function called with: `, content);\n }\n\n if (globalOptions.lang === globalOptions.sourceLang) {\n return content.map((c) => c.text);\n }\n\n const { apiKey, lang, formality } = globalOptions;\n\n const body = removeUndefined({\n apiKey,\n lang,\n formality,\n items: content.map(({ text, sourceLang, lang, ...options }) => {\n return removeUndefined({\n text,\n lang,\n sourceLang,\n ...options,\n });\n }),\n });\n\n return fetch(\n `${globalOptions.apiUrl ?? defaultDataLoaderOptions.apiUrl}/v1/translate`,\n {\n method: 'POST',\n body: globalOptions.useJson\n ? JSON.stringify(body)\n : convertObjectToURLSearchParams(body),\n headers: {\n 'Content-Type': globalOptions.useJson\n ? 'application/json'\n : 'application/x-www-form-urlencoded',\n },\n }\n )\n .then((res) => res.json() as Promise<TranslationResponse>)\n .then((response) => {\n if ('results' in response) {\n return response.results;\n }\n\n if ('code' in response) {\n console.error(`[${libraryName}]: ${response.message}`);\n } else {\n // unexpected response payload\n console.error(\n `[${libraryName}]: Unexpected payload from magic translate server: ${JSON.stringify(\n response\n )}`\n );\n }\n\n // return unmodified input\n return content.map((c) => c.text);\n })\n .catch((e) => {\n console.error(\n `[${libraryName}]: Error while loading translations: `,\n e\n );\n return content.map((c) => c.text);\n });\n };\n","\"use strict\";\n\n/**\n * Copyright (c) 2019-present, GraphQL Foundation\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// A Function, which when given an Array of keys, returns a Promise of an Array\n// of values or Errors.\n// Optionally turn off batching or caching or provide a cache key function or a\n// custom cache instance.\n// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nvar DataLoader =\n/*#__PURE__*/\nfunction () {\n function DataLoader(batchLoadFn, options) {\n if (typeof batchLoadFn !== 'function') {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + (\"Array<key> and returns Promise<Array<value>>, but got: \" + batchLoadFn + \".\"));\n }\n\n this._batchLoadFn = batchLoadFn;\n this._maxBatchSize = getValidMaxBatchSize(options);\n this._batchScheduleFn = getValidBatchScheduleFn(options);\n this._cacheKeyFn = getValidCacheKeyFn(options);\n this._cacheMap = getValidCacheMap(options);\n this._batch = null;\n this.name = getValidName(options);\n } // Private\n\n\n var _proto = DataLoader.prototype;\n\n /**\n * Loads a key, returning a `Promise` for the value represented by that key.\n */\n _proto.load = function load(key) {\n if (key === null || key === undefined) {\n throw new TypeError('The loader.load() function must be called with a value, ' + (\"but got: \" + String(key) + \".\"));\n }\n\n var batch = getCurrentBatch(this);\n var cacheMap = this._cacheMap;\n var cacheKey; // If caching and there is a cache-hit, return cached Promise.\n\n if (cacheMap) {\n cacheKey = this._cacheKeyFn(key);\n var cachedPromise = cacheMap.get(cacheKey);\n\n if (cachedPromise) {\n var cacheHits = batch.cacheHits || (batch.cacheHits = []);\n return new Promise(function (resolve) {\n cacheHits.push(function () {\n resolve(cachedPromise);\n });\n });\n }\n } // Otherwise, produce a new Promise for this key, and enqueue it to be\n // dispatched along with the current batch.\n\n\n batch.keys.push(key);\n var promise = new Promise(function (resolve, reject) {\n batch.callbacks.push({\n resolve: resolve,\n reject: reject\n });\n }); // If caching, cache this promise.\n\n if (cacheMap) {\n cacheMap.set(cacheKey, promise);\n }\n\n return promise;\n }\n /**\n * Loads multiple keys, promising an array of values:\n *\n * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n *\n * This is similar to the more verbose:\n *\n * var [ a, b ] = await Promise.all([\n * myLoader.load('a'),\n * myLoader.load('b')\n * ]);\n *\n * However it is different in the case where any load fails. Where\n * Promise.all() would reject, loadMany() always resolves, however each result\n * is either a value or an Error instance.\n *\n * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n * // c instanceof Error\n *\n */\n ;\n\n _proto.loadMany = function loadMany(keys) {\n if (!isArrayLike(keys)) {\n throw new TypeError('The loader.loadMany() function must be called with Array<key> ' + (\"but got: \" + keys + \".\"));\n } // Support ArrayLike by using only minimal property access\n\n\n var loadPromises = [];\n\n for (var i = 0; i < keys.length; i++) {\n loadPromises.push(this.load(keys[i])[\"catch\"](function (error) {\n return error;\n }));\n }\n\n return Promise.all(loadPromises);\n }\n /**\n * Clears the value at `key` from the cache, if it exists. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clear = function clear(key) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key);\n\n cacheMap[\"delete\"](cacheKey);\n }\n\n return this;\n }\n /**\n * Clears the entire cache. To be used when some event results in unknown\n * invalidations across this particular `DataLoader`. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clearAll = function clearAll() {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n cacheMap.clear();\n }\n\n return this;\n }\n /**\n * Adds the provided key and value to the cache. If the key already\n * exists, no change is made. Returns itself for method chaining.\n *\n * To prime the cache with an error at a key, provide an Error instance.\n */\n ;\n\n _proto.prime = function prime(key, value) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key); // Only add the key if it does not already exist.\n\n\n if (cacheMap.get(cacheKey) === undefined) {\n // Cache a rejected promise if the value is an Error, in order to match\n // the behavior of load(key).\n var promise;\n\n if (value instanceof Error) {\n promise = Promise.reject(value); // Since this is a case where an Error is intentionally being primed\n // for a given key, we want to disable unhandled promise rejection.\n\n promise[\"catch\"](function () {});\n } else {\n promise = Promise.resolve(value);\n }\n\n cacheMap.set(cacheKey, promise);\n }\n }\n\n return this;\n }\n /**\n * The name given to this `DataLoader` instance. Useful for APM tools.\n *\n * Is `null` if not set in the constructor.\n */\n ;\n\n return DataLoader;\n}(); // Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\n\n\nvar enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {\n if (!resolvedPromise) {\n resolvedPromise = Promise.resolve();\n }\n\n resolvedPromise.then(function () {\n process.nextTick(fn);\n });\n} : typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n} : function (fn) {\n setTimeout(fn);\n}; // Private: cached resolved Promise instance\n\nvar resolvedPromise; // Private: Describes a batch of requests\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch(loader) {\n // If there is an existing batch which has not yet dispatched and is within\n // the limit of the batch size, then return it.\n var existingBatch = loader._batch;\n\n if (existingBatch !== null && !existingBatch.hasDispatched && existingBatch.keys.length < loader._maxBatchSize) {\n return existingBatch;\n } // Otherwise, create a new batch for this loader.\n\n\n var newBatch = {\n hasDispatched: false,\n keys: [],\n callbacks: []\n }; // Store it on the loader so it may be reused.\n\n loader._batch = newBatch; // Then schedule a task to dispatch this batch of requests.\n\n loader._batchScheduleFn(function () {\n dispatchBatch(loader, newBatch);\n });\n\n return newBatch;\n}\n\nfunction dispatchBatch(loader, batch) {\n // Mark this batch as having been dispatched.\n batch.hasDispatched = true; // If there's nothing to load, resolve any cache hits and return early.\n\n if (batch.keys.length === 0) {\n resolveCacheHits(batch);\n return;\n } // Call the provided batchLoadFn for this loader with the batch's keys and\n // with the loader as the `this` context.\n\n\n var batchPromise;\n\n try {\n batchPromise = loader._batchLoadFn(batch.keys);\n } catch (e) {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function ' + (\"errored synchronously: \" + String(e) + \".\")));\n } // Assert the expected response from batchLoadFn\n\n\n if (!batchPromise || typeof batchPromise.then !== 'function') {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise: \" + String(batchPromise) + \".\")));\n } // Await the resolution of the call to batchLoadFn.\n\n\n batchPromise.then(function (values) {\n // Assert the expected resolution from batchLoadFn.\n if (!isArrayLike(values)) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise of an Array: \" + String(values) + \".\"));\n }\n\n if (values.length !== batch.keys.length) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + (\"\\n\\nKeys:\\n\" + String(batch.keys)) + (\"\\n\\nValues:\\n\" + String(values)));\n } // Resolve all cache hits in the same micro-task as freshly loaded values.\n\n\n resolveCacheHits(batch); // Step through values, resolving or rejecting each Promise in the batch.\n\n for (var i = 0; i < batch.callbacks.length; i++) {\n var _value = values[i];\n\n if (_value instanceof Error) {\n batch.callbacks[i].reject(_value);\n } else {\n batch.callbacks[i].resolve(_value);\n }\n }\n })[\"catch\"](function (error) {\n failedDispatch(loader, batch, error);\n });\n} // Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\n\n\nfunction failedDispatch(loader, batch, error) {\n // Cache hits are resolved, even though the batch failed.\n resolveCacheHits(batch);\n\n for (var i = 0; i < batch.keys.length; i++) {\n loader.clear(batch.keys[i]);\n batch.callbacks[i].reject(error);\n }\n} // Private: Resolves the Promises for any cache hits in this batch.\n\n\nfunction resolveCacheHits(batch) {\n if (batch.cacheHits) {\n for (var i = 0; i < batch.cacheHits.length; i++) {\n batch.cacheHits[i]();\n }\n }\n} // Private: given the DataLoader's options, produce a valid max batch size.\n\n\nfunction getValidMaxBatchSize(options) {\n var shouldBatch = !options || options.batch !== false;\n\n if (!shouldBatch) {\n return 1;\n }\n\n var maxBatchSize = options && options.maxBatchSize;\n\n if (maxBatchSize === undefined) {\n return Infinity;\n }\n\n if (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n throw new TypeError(\"maxBatchSize must be a positive number: \" + maxBatchSize);\n }\n\n return maxBatchSize;\n} // Private\n\n\nfunction getValidBatchScheduleFn(options) {\n var batchScheduleFn = options && options.batchScheduleFn;\n\n if (batchScheduleFn === undefined) {\n return enqueuePostPromiseJob;\n }\n\n if (typeof batchScheduleFn !== 'function') {\n throw new TypeError(\"batchScheduleFn must be a function: \" + batchScheduleFn);\n }\n\n return batchScheduleFn;\n} // Private: given the DataLoader's options, produce a cache key function.\n\n\nfunction getValidCacheKeyFn(options) {\n var cacheKeyFn = options && options.cacheKeyFn;\n\n if (cacheKeyFn === undefined) {\n return function (key) {\n return key;\n };\n }\n\n if (typeof cacheKeyFn !== 'function') {\n throw new TypeError(\"cacheKeyFn must be a function: \" + cacheKeyFn);\n }\n\n return cacheKeyFn;\n} // Private: given the DataLoader's options, produce a CacheMap to be used.\n\n\nfunction getValidCacheMap(options) {\n var shouldCache = !options || options.cache !== false;\n\n if (!shouldCache) {\n return null;\n }\n\n var cacheMap = options && options.cacheMap;\n\n if (cacheMap === undefined) {\n return new Map();\n }\n\n if (cacheMap !== null) {\n var cacheFunctions = ['get', 'set', 'delete', 'clear'];\n var missingFunctions = cacheFunctions.filter(function (fnName) {\n return cacheMap && typeof cacheMap[fnName] !== 'function';\n });\n\n if (missingFunctions.length !== 0) {\n throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n }\n }\n\n return cacheMap;\n}\n\nfunction getValidName(options) {\n if (options && options.name) {\n return options.name;\n }\n\n return null;\n} // Private\n\n\nfunction isArrayLike(x) {\n return typeof x === 'object' && x !== null && typeof x.length === 'number' && (x.length === 0 || x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1));\n}\n\nmodule.exports = DataLoader;","import DataLoader from 'dataloader';\nimport {\n cacheKeyFn,\n DataLoaderLoadParams,\n defaultLoaderFactory,\n TranslateOptions,\n} from './data-loader';\nimport { Language } from '../domain/language';\nimport { MagicTranslateConfig } from '../domain/config';\n\nexport function setupTranslate({\n debug,\n apiKey,\n sourceLanguage,\n _apiUrl,\n formality,\n _loaderFactory,\n}: Omit<MagicTranslateConfig, 'language'>): (\n language: `${Language}`,\n text: string,\n options?: TranslateOptions\n) => Promise<string> {\n const loaderOptions = {\n debug: !!debug,\n apiKey: apiKey,\n lang: Language.EN, // not relevant, as language will always be overridden\n sourceLang: sourceLanguage,\n apiUrl: _apiUrl,\n formality: formality,\n };\n\n const loader = new DataLoader<DataLoaderLoadParams, string, string>(\n (_loaderFactory ?? defaultLoaderFactory)(loaderOptions),\n {\n cacheKeyFn: cacheKeyFn(apiKey, sourceLanguage),\n }\n );\n\n return (lang: `${Language}`, text: string, options?: TranslateOptions) =>\n loader.load({ text, ...options, lang });\n}\n\nexport const setupT = setupTranslate;\n","import { Language } from '../domain/language';\n\nconst FALLBACK_LANGUAGE = Language.EN;\n\nexport function utsLocaleToLanguage(\n utsLocale?: string,\n fallback?: `${Language}`\n): `${Language}` {\n if (!utsLocale) {\n return fallback ?? FALLBACK_LANGUAGE;\n }\n\n if (\n [Language.FA_AF, Language.FR_CA, Language.PT_PT, Language.ES_MX].includes(\n utsLocale as Language\n )\n ) {\n return utsLocale as Language;\n }\n\n const country = utsLocale.includes('-') ? utsLocale.split('-')[0] : utsLocale;\n\n const countries = Object.values(Language);\n if (countries.includes(country as Language)) {\n return country as Language;\n }\n\n if (fallback) {\n return fallback;\n }\n\n console.warn(\n `Language not found for UTS locale \"${utsLocale}\" and no fallback provided was provided. Falling back to \"${FALLBACK_LANGUAGE}\"`\n );\n\n return FALLBACK_LANGUAGE;\n}\n","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n * @param element Element to test\n * @param element.type Node type discriminator to check.\n */\nexport function isTag(element) {\n return (element.type === ElementType.Tag ||\n element.type === ElementType.Script ||\n element.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\n// eslint-disable-next-line prefer-destructuring\nexport const Root = ElementType.Root;\n/** Type for Text */\n// eslint-disable-next-line prefer-destructuring\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\n// eslint-disable-next-line prefer-destructuring\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\n// eslint-disable-next-line prefer-destructuring\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\n// eslint-disable-next-line prefer-destructuring\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\n// eslint-disable-next-line prefer-destructuring\nexport const Style = ElementType.Style;\n/** Type for Any tag */\n// eslint-disable-next-line prefer-destructuring\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\n// eslint-disable-next-line prefer-destructuring\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\n// eslint-disable-next-line prefer-destructuring\nexport const Doctype = ElementType.Doctype;\n","import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n /** Parent of the node */\n parent = null;\n /** Previous sibling */\n prev = null;\n /** Next sibling */\n next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n endIndex = null;\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(previous) {\n this.prev = previous;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n data;\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n type = ElementType.Text;\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n type = ElementType.Comment;\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n type = ElementType.Directive;\n name;\n constructor(name, data) {\n super(data);\n this.name = name;\n }\n get nodeType() {\n return 1;\n }\n /** If this is a doctype, the document type name (parse5 only). */\n \"x-name\";\n /** If this is a doctype, the document type public identifier (parse5 only). */\n \"x-publicId\";\n /** If this is a doctype, the document type system identifier (parse5 only). */\n \"x-systemId\";\n}\n/**\n * A node that can have children.\n */\nexport class NodeWithChildren extends Node {\n children;\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n return this.children[0] ?? null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\n/**\n * CDATA nodes.\n */\nexport class CDATA extends NodeWithChildren {\n type = ElementType.CDATA;\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n type = ElementType.Root;\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n name;\n attribs;\n type;\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n * @param type Node type used for the new node instance.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => ({\n name,\n value: this.attribs[name],\n namespace: this[\"x-attribsNamespace\"]?.[name],\n prefix: this[\"x-attribsPrefix\"]?.[name],\n }));\n }\n /** Element namespace (parse5 only). */\n namespace;\n /** Element attribute namespaces (parse5 only). */\n \"x-attribsNamespace\";\n /** Element attribute namespace-related prefixes (parse5 only). */\n \"x-attribsPrefix\";\n}\n/**\n * Checks if `node` is an element node.\n * @param node Node to check.\n * @returns `true` if the node is an element node.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * Checks if `node` is a CDATA node.\n * @param node Node to check.\n * @returns `true` if the node is a CDATA node.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * Checks if `node` is a text node.\n * @param node Node to check.\n * @returns `true` if the node is a text node.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * Checks if `node` is a comment node.\n * @param node Node to check.\n * @returns `true` if the node is a comment node.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * Checks if `node` is a directive node.\n * @param node Node to check.\n * @returns `true` if the node is a directive node.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * Checks if `node` is a document node.\n * @param node Node to check.\n * @returns `true` if the node is a document node.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * Checks if `node` has children.\n * @param node Node to check.\n * @returns `true` if the node has children.\n */\nexport function hasChildren(node) {\n return Object.hasOwn(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n * @param node Node to clone.\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n for (const child of children) {\n child.parent = clone;\n }\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n for (const child of children) {\n child.parent = clone;\n }\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n for (const child of children) {\n child.parent = clone;\n }\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\n/**\n * Clone a list of child nodes.\n * @param childs The child nodes to clone.\n * @returns A list of cloned child nodes.\n */\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let index = 1; index < children.length; index++) {\n children[index].prev = children[index - 1];\n children[index - 1].next = children[index];\n }\n return children;\n}\n","import { ElementType } from \"domelementtype\";\nimport { CDATA, Comment, Document, Element, ProcessingInstruction, Text, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOptions = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\n/**\n * Event-based handler that builds a DOM tree from parser callbacks.\n */\nexport class DomHandler {\n /** The elements of the DOM */\n dom = [];\n /** The root element for the DOM */\n root = new Document(this.dom);\n /** Called once parsing has completed. */\n callback;\n /** Settings for the handler. */\n options;\n /** Callback whenever a tag is closed. */\n elementCB;\n /** Indicated whether parsing has been completed. */\n done = false;\n /** Stack of open tags. */\n tagStack = [this.root];\n /** A data node that is still being written to. */\n lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n parser = null;\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOptions;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback ?? null;\n this.options = options ?? defaultOptions;\n this.elementCB = elementCB ?? null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const element = this.tagStack.pop();\n if (this.options.withEndIndices && this.parser) {\n element.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(element);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices && this.parser) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices && this.parser) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices && this.parser) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n","/**\n * Shared base64 decode helper for generated decode data.\n * Assumes global atob is available.\n * @param input Input string to encode or decode.\n */\nexport function decodeBase64(input) {\n const binary = atob(input);\n const evenLength = binary.length & ~1; // Round down to even length\n const out = new Uint16Array(evenLength / 2);\n for (let index = 0, outIndex = 0; index < evenLength; index += 2) {\n const lo = binary.charCodeAt(index);\n const hi = binary.charCodeAt(index + 1);\n out[outIndex++] = lo | (hi << 8);\n }\n return out;\n}\n//# sourceMappingURL=decode-shared.js.map","// Generated using scripts/write-decode-map.ts\nimport { decodeBase64 } from \"../internal/decode-shared.js\";\n/** Packed HTML decode trie data. */\nexport const htmlDecodeTree = /* #__PURE__ */ decodeBase64(\"QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg\");\n//# sourceMappingURL=decode-data-html.js.map","// Generated using scripts/write-decode-map.ts\nimport { decodeBase64 } from \"../internal/decode-shared.js\";\n/** Packed XML decode trie data. */\nexport const xmlDecodeTree = /* #__PURE__ */ decodeBase64(\"AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg\");\n//# sourceMappingURL=decode-data-xml.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nconst decodeMap = new Map([\n [0, 65_533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n * @param codePoint Unicode code point to convert.\n */\nexport function replaceCodePoint(codePoint) {\n if ((codePoint >= 0xd8_00 && codePoint <= 0xdf_ff) ||\n codePoint > 0x10_ff_ff) {\n return 0xff_fd;\n }\n return decodeMap.get(codePoint) ?? codePoint;\n}\n//# sourceMappingURL=decode-codepoint.js.map","/**\n * Bit flags & masks for the binary trie encoding used for entity decoding.\n *\n * Bit layout (16 bits total):\n * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value)\n * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';').\n * If valueLength==0: compact run flag.\n * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run)\n * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char\n */\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"FLAG13\"] = 8192] = \"FLAG13\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 8064] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\n//# sourceMappingURL=bin-trie-flags.js.map","import { replaceCodePoint } from \"./decode-codepoint.js\";\nimport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { BinTrieFlags } from \"./internal/bin-trie-flags.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 0b10_0000;\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n * @param code Code point to decode.\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\n/**\n * Decoding mode for named entities.\n */\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n decodeTree;\n emitCodePoint;\n errors;\n constructor(\n /** The tree used to decode entities. */\n // biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n }\n /** The current state of the decoder. */\n state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n result = 0;\n /** The current index in the decode tree. */\n treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n excess = 1;\n /** The mode in which the decoder is operating. */\n decodeMode = DecodingMode.Strict;\n /** The number of characters that have been consumed in the current run. */\n runConsumed = 0;\n /**\n * Resets the instance to make it reusable.\n * @param decodeMode Entity decoding mode to use.\n */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n this.runConsumed = 0;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(input, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (input.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(input, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(input, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(input, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(input, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(input, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(input, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(input, offset) {\n if (offset >= input.length) {\n return -1;\n }\n if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(input, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(input, offset);\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(input, offset) {\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n // Convert hex digit to value (0-15); 'a'/'A' -> 10.\n const digit = char <= CharCodes.NINE\n ? char - CharCodes.ZERO\n : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10;\n this.result = this.result * 16 + digit;\n this.consumed++;\n offset++;\n }\n else {\n return this.emitNumericEntity(char, 3);\n }\n }\n return -1; // Incomplete entity\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(input, offset) {\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char)) {\n this.result = this.result * 10 + (char - CharCodes.ZERO);\n this.consumed++;\n offset++;\n }\n else {\n return this.emitNumericEntity(char, 2);\n }\n }\n return -1; // Incomplete entity\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(input, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The length is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n while (offset < input.length) {\n // Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set.\n if (valueLength === 0 && (current & BinTrieFlags.FLAG13) !== 0) {\n const runLength = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */\n // If we are starting a run, check the first char.\n if (this.runConsumed === 0) {\n const firstChar = current & BinTrieFlags.JUMP_TABLE;\n if (input.charCodeAt(offset) !== firstChar) {\n return this.result === 0\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n offset++;\n this.excess++;\n this.runConsumed++;\n }\n // Check remaining characters in the run.\n while (this.runConsumed < runLength) {\n if (offset >= input.length) {\n return -1;\n }\n const charIndexInPacked = this.runConsumed - 1;\n const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)];\n const expectedChar = charIndexInPacked % 2 === 0\n ? packedWord & 0xff\n : (packedWord >> 8) & 0xff;\n if (input.charCodeAt(offset) !== expectedChar) {\n this.runConsumed = 0;\n return this.result === 0\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n offset++;\n this.excess++;\n this.runConsumed++;\n }\n this.runConsumed = 0;\n this.treeIndex += 1 + (runLength >> 1);\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n }\n if (offset >= input.length)\n break;\n const char = input.charCodeAt(offset);\n /*\n * Implicit semicolon handling for nodes that require a semicolon but\n * don't have an explicit ';' branch stored in the trie. If we have\n * a value on the current node, it requires a semicolon, and the\n * current input character is a semicolon, emit the entity using the\n * current node (without descending further).\n */\n if (char === CharCodes.SEMI &&\n valueLength !== 0 &&\n (current & BinTrieFlags.FLAG13) !== 0) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict &&\n (current & BinTrieFlags.FLAG13) === 0) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n // Increment offset & excess for next iteration\n offset++;\n this.excess++;\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n this.errors?.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] &\n ~(BinTrieFlags.VALUE_LENGTH | BinTrieFlags.FLAG13)\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n * @returns The number of characters consumed.\n */\n end() {\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let returnValue = \"\";\n const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += String.fromCodePoint(data)));\n return function decodeWithTrie(input, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n returnValue += input.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const length = decoder.write(input, \n // Skip the \"&\"\n offset + 1);\n if (length < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + length;\n // If `length` is 0, skip the current `&` and continue.\n offset = length === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = returnValue + input.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n returnValue = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIndex Index immediately after the current node header.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIndex, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIndex + value] - 1;\n }\n // Case 3: Multiple branches encoded in packed dictionary (two keys per uint16)\n const packedKeySlots = (branchCount + 1) >> 1;\n /*\n * Treat packed keys as a virtual sorted array of length `branchCount`.\n * Key(i) = low byte for even i, high byte for odd i in slot i>>1.\n */\n let lo = 0;\n let hi = branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const slot = mid >> 1;\n const packed = decodeTree[nodeIndex + slot];\n const midKey = (packed >> ((mid & 1) * 8)) & 0xff;\n if (midKey < char) {\n lo = mid + 1;\n }\n else if (midKey > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[nodeIndex + packedKeySlots + mid];\n }\n }\n return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute) {\n return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString) {\n return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString) {\n return xmlDecoder(xmlString, DecodingMode.Strict);\n}\nexport { replaceCodePoint } from \"./decode-codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\n//# sourceMappingURL=decode.js.map","import { DecodingMode, EntityDecoder, htmlDecodeTree, xmlDecodeTree, } from \"entities/decode\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"DeclarationSequence\"] = 20] = \"DeclarationSequence\";\n State[State[\"InSpecialComment\"] = 21] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 22] = \"InCommentLike\";\n // Special tags\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"InPlainText\"] = 25] = \"InPlainText\";\n State[State[\"InEntity\"] = 26] = \"InEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\n/**\n * Quote style used for parsed attributes.\n */\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Empty: new Uint8Array(0),\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]), // CDATA[\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]), // ]]>\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x21, 0x3e]), // `--!>`\n Doctype: new Uint8Array([0x64, 0x6f, 0x63, 0x74, 0x79, 0x70, 0x65]), // `doctype`\n IframeEnd: new Uint8Array([0x3c, 0x2f, 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65]), // `</iframe`\n NoembedEnd: new Uint8Array([\n 0x3c, 0x2f, 0x6e, 0x6f, 0x65, 0x6d, 0x62, 0x65, 0x64,\n ]), // `</noembed`\n NoframesEnd: new Uint8Array([\n 0x3c, 0x2f, 0x6e, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73,\n ]), // `</noframes`\n Plaintext: new Uint8Array([\n 0x3c, 0x2f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74,\n ]), // `</plaintext`\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]), // `</script`\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]), // `</style`\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n TextareaEnd: new Uint8Array([\n 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61,\n ]), // `</textarea`\n XmpEnd: new Uint8Array([0x3c, 0x2f, 0x78, 0x6d, 0x70]), // `</xmp`\n};\n/**\n * Maps the first lowercase character of an HTML tag name to the sequence\n * used for special-tag detection. All sequences share a common layout\n * where index 2 is the first tag-name character, so matching always\n * continues from offset 3.\n */\nconst specialStartSequences = new Map([\n [Sequences.IframeEnd[2], Sequences.IframeEnd],\n [Sequences.NoembedEnd[2], Sequences.NoembedEnd],\n [Sequences.Plaintext[2], Sequences.Plaintext],\n [Sequences.ScriptEnd[2], Sequences.ScriptEnd],\n [Sequences.TitleEnd[2], Sequences.TitleEnd],\n [Sequences.XmpEnd[2], Sequences.XmpEnd],\n]);\n/**\n * Tokenizer implementation used by `Parser`.\n */\nexport default class Tokenizer {\n cbs;\n /** The current state the tokenizer is in. */\n state = State.Text;\n /** The read buffer. */\n buffer = \"\";\n /** The beginning of the section that is currently being read. */\n sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n index = 0;\n /** The start of the last entity. */\n entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n running = true;\n /** The offset of the current buffer. */\n offset = 0;\n xmlMode;\n decodeEntities;\n recognizeSelfClosing;\n entityDecoder;\n constructor({ xmlMode = false, decodeEntities = true, recognizeSelfClosing = xmlMode, }, cbs) {\n this.cbs = cbs;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.recognizeSelfClosing = recognizeSelfClosing;\n this.entityDecoder = new EntityDecoder(xmlMode ? xmlDecodeTree : htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));\n }\n reset() {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.isSpecial = false;\n this.currentSequence = Sequences.Empty;\n this.sequenceIndex = 0;\n this.running = true;\n this.offset = 0;\n }\n write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n currentSequence = Sequences.Empty;\n sequenceIndex = 0;\n enterTagBody() {\n if (this.currentSequence === Sequences.Plaintext) {\n this.currentSequence = Sequences.Empty;\n this.state = State.InPlainText;\n }\n else if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n }\n /**\n * Match the opening tag name against an HTML text-only tag sequence.\n *\n * Some tags share an initial prefix (`script`/`style`, `title`/`textarea`,\n * `noembed`/`noframes`), so we may switch to an alternate sequence at the\n * first distinguishing byte. On a successful full match we fall back to\n * the normal tag-name state; a later `>` will enter raw-text, RCDATA, or\n * plaintext mode based on `currentSequence` / `isSpecial`.\n * @param c Current character code point.\n */\n stateSpecialStartSequence(c) {\n const lower = c | 0x20;\n // Still matching — check for an alternate sequence at branch points.\n if (this.sequenceIndex < this.currentSequence.length) {\n if (lower === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex++;\n return;\n }\n if (this.sequenceIndex === 3) {\n if (this.currentSequence === Sequences.ScriptEnd &&\n lower === Sequences.StyleEnd[3]) {\n this.currentSequence = Sequences.StyleEnd;\n this.sequenceIndex = 4;\n return;\n }\n if (this.currentSequence === Sequences.TitleEnd &&\n lower === Sequences.TextareaEnd[3]) {\n this.currentSequence = Sequences.TextareaEnd;\n this.sequenceIndex = 4;\n return;\n }\n }\n else if (this.sequenceIndex === 4 &&\n this.currentSequence === Sequences.NoembedEnd &&\n lower === Sequences.NoframesEnd[4]) {\n this.currentSequence = Sequences.NoframesEnd;\n this.sequenceIndex = 5;\n return;\n }\n }\n else if (isEndOfTagSection(c)) {\n // Full match on a valid tag boundary — keep the sequence.\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n return;\n }\n // No match — abandon special-tag detection.\n this.isSpecial = false;\n this.currentSequence = Sequences.Empty;\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n if (this.xmlMode) {\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n else {\n this.state = State.InSpecialComment;\n this.stateInSpecialComment(c); // Reconsume the character\n }\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n * @param c Current character code point.\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n }\n /**\n * Emit a comment token and return to the text state.\n * @param offset Number of characters in the end sequence that have already been matched.\n */\n emitComment(offset) {\n this.cbs.oncomment(this.sectionStart, this.index, offset);\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n * @param c Current character code point.\n */\n stateInCommentLike(c) {\n if (!this.xmlMode &&\n this.currentSequence === Sequences.CommentEnd &&\n this.sequenceIndex <= 1 &&\n /*\n * We're still at the very start of the comment: the only\n * characters consumed since `<!--` are the dashes that\n * advanced sequenceIndex (0 for `<!-->`, 1 for `<!--->`).\n */\n this.index === this.sectionStart + this.sequenceIndex &&\n c === CharCodes.Gt) {\n // Abruptly closed empty HTML comment.\n this.emitComment(this.sequenceIndex);\n }\n else if (this.currentSequence === Sequences.CommentEnd &&\n this.sequenceIndex === 2 &&\n c === CharCodes.Gt) {\n // `!` is optional here, so the same sequence also accepts `-->`.\n this.emitComment(2);\n }\n else if (this.currentSequence === Sequences.CommentEnd &&\n this.sequenceIndex === this.currentSequence.length - 1 &&\n c !== CharCodes.Gt) {\n this.sequenceIndex = Number(c === CharCodes.Dash);\n }\n else if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 3);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n * @param c Current character code point.\n */\n isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n /**\n * Scan raw-text / RCDATA content for the matching end tag.\n *\n * For RCDATA tags (`<title>`, `<textarea>`) entities are decoded inline.\n * For raw-text tags (`<script>`, `<style>`, etc.) we fast-forward to `<`.\n * @param c Current character code point.\n */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (isEndOfTagSection(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd ||\n this.currentSequence === Sequences.TextareaEnd) {\n // RCDATA tags have to parse entities while still looking for their end tag.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of RCDATA tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n if (this.xmlMode) {\n this.state = State.InProcessingInstruction;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n else if (this.isTagStartChar(c)) {\n this.sectionStart = this.index;\n const special = this.xmlMode || this.cbs.isInForeignContext?.()\n ? undefined\n : specialStartSequences.get(c | 0x20);\n if (special === undefined) {\n this.state = State.InTagName;\n }\n else {\n this.isSpecial = true;\n this.currentSequence = special;\n this.sequenceIndex = 3;\n this.state = State.SpecialStartSequence;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n if (this.xmlMode) {\n // Ignore\n }\n else {\n this.state = State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n if (!this.xmlMode) {\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttributeName(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n this.enterTagBody();\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n /**\n * Handle `/` before `>` in an opening tag.\n *\n * In HTML mode, text-only tags ignore the self-closing flag and still enter\n * their raw-text/RCDATA/plaintext state unless self-closing tags are being\n * recognized. In XML mode, or for ordinary tags, the tokenizer returns to\n * regular text parsing after emitting the self-closing callback.\n * @param c Current character code point.\n */\n stateInSelfClosingTag(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.sectionStart = this.index + 1;\n if (!this.recognizeSelfClosing) {\n this.enterTagBody();\n return;\n }\n this.state = State.Text;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n this.currentSequence = Sequences.Empty;\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = this.index;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index + 1);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n /**\n * Distinguish between CDATA, declarations, HTML comments, and HTML bogus\n * comments after `<!`.\n *\n * In HTML mode, only real comments and doctypes stay on declaration paths;\n * everything else becomes a bogus comment terminated by the next `>`.\n * @param c Current character code point.\n */\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else if (this.xmlMode) {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n else if ((c | 0x20) === Sequences.Doctype[0]) {\n this.state = State.DeclarationSequence;\n this.currentSequence = Sequences.Doctype;\n this.sequenceIndex = 1;\n }\n else if (c === CharCodes.Gt) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Dash) {\n this.state = State.BeforeComment;\n }\n else {\n this.state = State.InSpecialComment;\n }\n }\n /**\n * Continue matching `doctype` after `<!d`.\n *\n * A full `doctype` match stays on the declaration path; any other name falls\n * back to an HTML bogus comment, which matches browser behavior for\n * non-doctype `<!...>` constructs.\n * @param c Current character code point.\n */\n stateDeclarationSequence(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n this.state = State.InDeclaration;\n this.stateInDeclaration(c);\n }\n else if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (c === CharCodes.Gt) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InSpecialComment;\n }\n }\n stateInDeclaration(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n /**\n * XML processing instructions (`<?...?>`).\n *\n * In HTML mode `<?` is routed to `InSpecialComment` instead, so this\n * state is only reachable in XML mode.\n * @param c Current character code point.\n */\n stateInProcessingInstruction(c) {\n if (c === CharCodes.Questionmark) {\n // Remember that we just consumed `?`, so the next `>` closes the PI.\n this.sequenceIndex = 1;\n }\n else if (c === CharCodes.Gt && this.sequenceIndex === 1) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index - 1);\n this.sequenceIndex = 0;\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n else {\n // Keep scanning for the next `?`, which can start a closing `?>`.\n this.sequenceIndex = Number(this.fastForwardTo(CharCodes.Questionmark));\n }\n }\n stateBeforeComment(c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n else if (this.xmlMode) {\n this.state = State.InDeclaration;\n }\n else if (c === CharCodes.Gt) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InSpecialComment;\n }\n }\n stateInSpecialComment(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n startEntity() {\n this.baseState = this.state;\n this.state = State.InEntity;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(this.xmlMode\n ? DecodingMode.Strict\n : this.baseState === State.Text ||\n this.baseState === State.InSpecialTag\n ? DecodingMode.Legacy\n : DecodingMode.Attribute);\n }\n stateInEntity() {\n const indexInBuffer = this.index - this.offset;\n const length = this.entityDecoder.write(this.buffer, indexInBuffer);\n // If `length` is positive, we are done with the entity.\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index -= 1;\n }\n }\n else {\n if (indexInBuffer < this.buffer.length &&\n this.buffer.charCodeAt(indexInBuffer) === CharCodes.Amp) {\n this.state = this.baseState;\n this.index -= 1;\n return;\n }\n // Mark buffer as consumed.\n this.index = this.offset + this.buffer.length - 1;\n }\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n this.state === State.InPlainText ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.InPlainText: {\n // Skip to end of buffer; cleanup() emits the text.\n this.index = this.buffer.length + this.offset - 1;\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.DeclarationSequence: {\n this.stateDeclarationSequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InEntity: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n finish() {\n if (this.state === State.InEntity) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n handleTrailingCommentLikeData(endIndex) {\n if (this.state !== State.InCommentLike) {\n return false;\n }\n if (this.currentSequence === Sequences.CdataEnd) {\n if (this.xmlMode) {\n if (this.sectionStart < endIndex) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n }\n else {\n /* In HTML mode, unclosed CDATA is a bogus comment. */\n const cdataStart = this.sectionStart - Sequences.Cdata.length - 1;\n this.cbs.oncomment(cdataStart, endIndex, 0);\n }\n }\n else {\n const offset = this.xmlMode\n ? 0\n : Math.min(this.sequenceIndex, Sequences.CommentEnd.length - 1);\n this.cbs.oncomment(this.sectionStart, endIndex, offset);\n }\n return true;\n }\n handleTrailingMarkupDeclaration(endIndex) {\n if (this.xmlMode) {\n switch (this.state) {\n case State.InSpecialComment:\n case State.BeforeComment:\n case State.CDATASequence:\n case State.DeclarationSequence:\n case State.InDeclaration: {\n this.cbs.ontext(this.sectionStart, endIndex);\n return true;\n }\n default: {\n return false;\n }\n }\n }\n switch (this.state) {\n case State.BeforeDeclaration:\n case State.InSpecialComment:\n case State.BeforeComment:\n case State.CDATASequence: {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n return true;\n }\n case State.DeclarationSequence: {\n if (this.sequenceIndex !== Sequences.Doctype.length) {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n return true;\n }\n case State.InDeclaration: {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n if (this.handleTrailingCommentLikeData(endIndex) ||\n this.handleTrailingMarkupDeclaration(endIndex)) {\n return;\n }\n // If there is no remaining data, we are done.\n if (this.sectionStart >= endIndex) {\n return;\n }\n switch (this.state) {\n case State.InTagName:\n case State.BeforeAttributeName:\n case State.BeforeAttributeValue:\n case State.AfterAttributeName:\n case State.InAttributeName:\n case State.InAttributeValueSq:\n case State.InAttributeValueDq:\n case State.InAttributeValueNq:\n case State.InClosingTagName: {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n break;\n }\n default: {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n }\n emitCodePoint(cp, consumed) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.onattribentity(cp);\n }\n else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.ontextentity(cp, this.sectionStart);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map","const { fromCodePoint } = String;\nimport Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst headingTags = new Set([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"a\", new Set([\"a\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", headingTags],\n [\"h2\", headingTags],\n [\"h3\", headingTags],\n [\"h4\", headingTags],\n [\"h5\", headingTags],\n [\"h6\", headingTags],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nconst DOCUMENT_TYPE = \"doctype\";\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\n/**\n * Elements that can be used to integrate HTML content within foreign namespaces (e.g., SVG or MathML).\n *\n * Entries must use the SVG-adjusted casing (e.g. \"foreignObject\" not\n * \"foreignobject\") since they are compared against adjusted tag names.\n */\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nconst svgTagNameAdjustments = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nvar ForeignContext;\n(function (ForeignContext) {\n ForeignContext[ForeignContext[\"None\"] = 0] = \"None\";\n ForeignContext[ForeignContext[\"Svg\"] = 1] = \"Svg\";\n ForeignContext[ForeignContext[\"MathML\"] = 2] = \"MathML\";\n})(ForeignContext || (ForeignContext = {}));\nconst reNameEnd = /\\s|\\//;\n/**\n * Incremental parser implementation.\n */\nexport class Parser {\n options;\n /** The start index of the last event. */\n startIndex = 0;\n /** The end index of the last event. */\n endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n openTagStart = 0;\n tagname = \"\";\n attribname = \"\";\n attribvalue = \"\";\n attribs = null;\n stack = [];\n foreignContext;\n cbs;\n lowerCaseTagNames;\n lowerCaseAttributeNames;\n recognizeSelfClosing;\n /** We are parsing HTML. Inverse of the `xmlMode` option. */\n htmlMode;\n tokenizer;\n buffers = [];\n bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n ended = false;\n constructor(cbs, options = {}) {\n this.options = options;\n this.cbs = cbs ?? {};\n this.htmlMode = !this.options.xmlMode;\n this.lowerCaseTagNames = options.lowerCaseTags ?? this.htmlMode;\n this.lowerCaseAttributeNames =\n options.lowerCaseAttributeNames ?? this.htmlMode;\n this.recognizeSelfClosing =\n options.recognizeSelfClosing ?? !this.htmlMode;\n this.tokenizer = new (options.Tokenizer ?? Tokenizer)(this.options, this);\n this.foreignContext = [ForeignContext.None];\n this.cbs.onparserinit?.(this);\n }\n // Tokenizer event handlers\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n ontext(start, endIndex) {\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n this.cbs.ontext?.(data);\n this.startIndex = endIndex;\n }\n /**\n * @param cp Current Unicode code point.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n ontextentity(cp, endIndex) {\n this.endIndex = endIndex - 1;\n this.cbs.ontext?.(fromCodePoint(cp));\n this.startIndex = endIndex;\n }\n /** @internal */\n isInForeignContext() {\n return this.foreignContext[0] !== ForeignContext.None;\n }\n /**\n * Checks if the current tag is a void element. Override this if you want\n * to specify your own additional void elements.\n * @param name Name of the pseudo selector.\n */\n isVoidElement(name) {\n return this.htmlMode && voidElements.has(name);\n }\n /**\n * Read a tag name from the buffer.\n *\n * When `lowerCaseTagNames` is enabled (the default in HTML mode), the name\n * is lowercased and may be adjusted for SVG casing or the `image` → `img`\n * alias.\n * @param start Start index of the tag name in the buffer.\n * @param endIndex End index of the tag name in the buffer.\n */\n readTagName(start, endIndex) {\n const name = this.lowerCaseTagNames\n ? this.getSlice(start, endIndex).toLowerCase()\n : this.getSlice(start, endIndex);\n if (!(this.lowerCaseTagNames && this.htmlMode)) {\n return name;\n }\n if (this.foreignContext[0] === ForeignContext.Svg) {\n return svgTagNameAdjustments.get(name) ?? name;\n }\n /*\n * Closing tags for SVG elements inside HTML integration points\n * (e.g. </foreignObject> while inside its own content) need case\n * adjustment so the name matches what was pushed to the stack.\n * `foreignContext.length > 1` means a foreign ancestor exists —\n * the base [None] entry plus at least one pushed context.\n */\n if (this.foreignContext.length > 1) {\n const adjusted = svgTagNameAdjustments.get(name);\n if (adjusted !== undefined && this.stack.includes(adjusted)) {\n return adjusted;\n }\n }\n if (!this.isInForeignContext()) {\n return name === \"image\" ? \"img\" : name;\n }\n return name;\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n this.emitOpenTag(this.readTagName(start, endIndex));\n }\n emitOpenTag(name) {\n this.openTagStart = this.startIndex;\n this.tagname = name;\n /*\n * The spec ignores a second <form> when one is already open.\n * Setting tagname to \"\" suppresses all downstream effects: attribs\n * stays null so endOpenTag is a no-op, and closeCurrentTag can't\n * match \"\" on the stack.\n */\n if (this.htmlMode && name === \"form\" && this.stack.includes(\"form\")) {\n this.tagname = \"\";\n return;\n }\n const impliesClose = this.htmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n this.popElement(true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.unshift(name);\n if (this.htmlMode) {\n if (name === \"svg\") {\n this.foreignContext.unshift(ForeignContext.Svg);\n }\n else if (name === \"math\") {\n this.foreignContext.unshift(ForeignContext.MathML);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.unshift(ForeignContext.None);\n }\n }\n }\n this.cbs.onopentagname?.(name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n this.cbs.onopentag?.(this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n }\n /**\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onclosetag(start, endIndex) {\n this.endIndex = endIndex;\n const name = this.readTagName(start, endIndex);\n if (!this.isVoidElement(name)) {\n const pos = this.stack.indexOf(name);\n if (pos !== -1) {\n for (let index = 0; index < pos; index++) {\n this.popElement(true);\n }\n this.popElement(false);\n }\n else if (this.htmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (this.htmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n this.cbs.onopentagname?.(\"br\");\n this.cbs.onopentag?.(\"br\", {}, true);\n this.cbs.onclosetag?.(\"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /**\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.recognizeSelfClosing || this.isInForeignContext()) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n /**\n * Pop the top element off the stack, emit a close event, and maintain\n * the foreign context stack.\n * @param implied Whether this close is implied (not from an explicit end tag).\n */\n popElement(implied) {\n // biome-ignore lint/style/noNonNullAssertion: The element is guaranteed to exist.\n const element = this.stack.shift();\n if (this.htmlMode &&\n (foreignContextElements.has(element) ||\n htmlIntegrationElements.has(element))) {\n this.foreignContext.shift();\n }\n this.cbs.onclosetag?.(element, implied);\n }\n closeCurrentTag(isOpenImplied) {\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[0] === name) {\n this.popElement(!isOpenImplied);\n }\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /**\n * @param cp Current Unicode code point.\n * @internal\n */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /**\n * @param quote Quote type used for the current attribute.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onattribend(quote, endIndex) {\n this.endIndex = endIndex;\n this.cbs.onattribute?.(this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs && !Object.hasOwn(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n /*\n * In HTML mode, ondeclaration is only reached for DOCTYPE\n * (the tokenizer routes everything else to bogus comments).\n */\n const name = this.htmlMode\n ? this.lowerCaseTagNames\n ? DOCUMENT_TYPE\n : value.slice(0, DOCUMENT_TYPE.length)\n : this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @internal\n */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @param offset Offset applied when computing parser indices.\n * @internal\n */\n oncomment(start, endIndex, offset) {\n this.endIndex = endIndex;\n this.cbs.oncomment?.(this.getSlice(start, endIndex - offset));\n this.cbs.oncommentend?.();\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /**\n * @param start Start index for the current parser event.\n * @param endIndex End index for the current parser event.\n * @param offset Offset applied when computing parser indices.\n * @internal\n */\n oncdata(start, endIndex, offset) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (!this.htmlMode || this.options.recognizeCDATA) {\n this.cbs.oncdatastart?.();\n this.cbs.ontext?.(value);\n this.cbs.oncdataend?.();\n }\n else if (this.isInForeignContext()) {\n this.cbs.ontext?.(value);\n }\n else {\n this.cbs.oncomment?.(`[CDATA[${value}]]`);\n this.cbs.oncommentend?.();\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = 0; index < this.stack.length; index++) {\n this.cbs.onclosetag(this.stack[index], true);\n }\n }\n this.cbs.onend?.();\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n this.cbs.onreset?.();\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n this.cbs.onparserinit?.(this);\n this.buffers.length = 0;\n this.foreignContext.length = 0;\n this.foreignContext.unshift(ForeignContext.None);\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n if (start === end) {\n return \"\";\n }\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n if (this.ended) {\n this.cbs.onerror?.(new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n * @param chunk Optional final chunk to parse.\n */\n end(chunk) {\n if (this.ended) {\n this.cbs.onerror?.(new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n}\n//# sourceMappingURL=Parser.js.map","import type { ChildNode } from 'domhandler';\n\nimport type { DOMNode } from '../types';\n\n/**\n * Sets root parent to null.\n *\n * @param nodes - Nodes.\n * @returns - Nodes.\n */\nexport function unsetRootParent(nodes: ChildNode[]): DOMNode[] {\n let index = 0;\n const nodesLength = nodes.length;\n\n for (; index < nodesLength; index++) {\n const node = nodes[index];\n node.parent = null;\n }\n\n return nodes as DOMNode[];\n}\n","import { DomHandler } from 'domhandler';\nimport { Parser } from 'htmlparser2';\n\nimport type { HTMLDOMParserOptions } from '../types';\nimport { unsetRootParent } from './utilities';\n\n/**\n * Parses HTML string to DOM nodes in Node.js.\n *\n * This is the same method as `require('htmlparser2').parseDOM`\n *\n * @see https://github.com/fb55/htmlparser2/blob/v9.0.0/src/index.ts#L44-L46\n * @see https://github.com/fb55/domhandler/tree/v5.0.3#readme\n *\n * @param html - HTML markup.\n * @param options - Parser options.\n * @returns - DOM nodes.\n */\nexport default function HTMLDOMParser(\n html: string,\n options?: HTMLDOMParserOptions,\n) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string.');\n }\n\n if (!html) {\n return [];\n }\n\n const handler = new DomHandler(undefined, options);\n new Parser(handler, options).end(html);\n return unsetRootParent(handler.dom);\n}\n","// An attribute in which the DOM/SVG standard name is the same as the React prop name (e.g., 'accept').\nvar SAME = 0;\nexports.SAME = SAME;\n\n// An attribute in which the React prop name is the camelcased version of the DOM/SVG standard name (e.g., 'acceptCharset').\nvar CAMELCASE = 1;\nexports.CAMELCASE = CAMELCASE;\n\nexports.possibleStandardNames = {\n accept: 0,\n acceptCharset: 1,\n 'accept-charset': 'acceptCharset',\n accessKey: 1,\n action: 0,\n allowFullScreen: 1,\n alt: 0,\n as: 0,\n async: 0,\n autoCapitalize: 1,\n autoComplete: 1,\n autoCorrect: 1,\n autoFocus: 1,\n autoPlay: 1,\n autoSave: 1,\n capture: 0,\n cellPadding: 1,\n cellSpacing: 1,\n challenge: 0,\n charSet: 1,\n checked: 0,\n children: 0,\n cite: 0,\n class: 'className',\n classID: 1,\n className: 1,\n cols: 0,\n colSpan: 1,\n content: 0,\n contentEditable: 1,\n contextMenu: 1,\n controls: 0,\n controlsList: 1,\n coords: 0,\n crossOrigin: 1,\n dangerouslySetInnerHTML: 1,\n data: 0,\n dateTime: 1,\n default: 0,\n defaultChecked: 1,\n defaultValue: 1,\n defer: 0,\n dir: 0,\n disabled: 0,\n disablePictureInPicture: 1,\n disableRemotePlayback: 1,\n download: 0,\n draggable: 0,\n encType: 1,\n enterKeyHint: 1,\n for: 'htmlFor',\n form: 0,\n formMethod: 1,\n formAction: 1,\n formEncType: 1,\n formNoValidate: 1,\n formTarget: 1,\n frameBorder: 1,\n headers: 0,\n height: 0,\n hidden: 0,\n high: 0,\n href: 0,\n hrefLang: 1,\n htmlFor: 1,\n httpEquiv: 1,\n 'http-equiv': 'httpEquiv',\n icon: 0,\n id: 0,\n innerHTML: 1,\n inputMode: 1,\n integrity: 0,\n is: 0,\n itemID: 1,\n itemProp: 1,\n itemRef: 1,\n itemScope: 1,\n itemType: 1,\n keyParams: 1,\n keyType: 1,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: 0,\n low: 0,\n manifest: 0,\n marginWidth: 1,\n marginHeight: 1,\n max: 0,\n maxLength: 1,\n media: 0,\n mediaGroup: 1,\n method: 0,\n min: 0,\n minLength: 1,\n multiple: 0,\n muted: 0,\n name: 0,\n noModule: 1,\n nonce: 0,\n noValidate: 1,\n open: 0,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: 1,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 1,\n readOnly: 1,\n referrerPolicy: 1,\n rel: 0,\n required: 0,\n reversed: 0,\n role: 0,\n rows: 0,\n rowSpan: 1,\n sandbox: 0,\n scope: 0,\n scoped: 0,\n scrolling: 0,\n seamless: 0,\n selected: 0,\n shape: 0,\n size: 0,\n sizes: 0,\n span: 0,\n spellCheck: 1,\n src: 0,\n srcDoc: 1,\n srcLang: 1,\n srcSet: 1,\n start: 0,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 1,\n target: 0,\n title: 0,\n type: 0,\n useMap: 1,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n about: 0,\n accentHeight: 1,\n 'accent-height': 'accentHeight',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 1,\n 'alignment-baseline': 'alignmentBaseline',\n allowReorder: 1,\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 1,\n 'arabic-form': 'arabicForm',\n ascent: 0,\n attributeName: 1,\n attributeType: 1,\n autoReverse: 1,\n azimuth: 0,\n baseFrequency: 1,\n baselineShift: 1,\n 'baseline-shift': 'baselineShift',\n baseProfile: 1,\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 1,\n capHeight: 1,\n 'cap-height': 'capHeight',\n clip: 0,\n clipPath: 1,\n 'clip-path': 'clipPath',\n clipPathUnits: 1,\n clipRule: 1,\n 'clip-rule': 'clipRule',\n color: 0,\n colorInterpolation: 1,\n 'color-interpolation': 'colorInterpolation',\n colorInterpolationFilters: 1,\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorProfile: 1,\n 'color-profile': 'colorProfile',\n colorRendering: 1,\n 'color-rendering': 'colorRendering',\n contentScriptType: 1,\n contentStyleType: 1,\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n datatype: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 1,\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 1,\n 'dominant-baseline': 'dominantBaseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 1,\n elevation: 0,\n enableBackground: 1,\n 'enable-background': 'enableBackground',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 1,\n fill: 0,\n fillOpacity: 1,\n 'fill-opacity': 'fillOpacity',\n fillRule: 1,\n 'fill-rule': 'fillRule',\n filter: 0,\n filterRes: 1,\n filterUnits: 1,\n floodOpacity: 1,\n 'flood-opacity': 'floodOpacity',\n floodColor: 1,\n 'flood-color': 'floodColor',\n focusable: 0,\n fontFamily: 1,\n 'font-family': 'fontFamily',\n fontSize: 1,\n 'font-size': 'fontSize',\n fontSizeAdjust: 1,\n 'font-size-adjust': 'fontSizeAdjust',\n fontStretch: 1,\n 'font-stretch': 'fontStretch',\n fontStyle: 1,\n 'font-style': 'fontStyle',\n fontVariant: 1,\n 'font-variant': 'fontVariant',\n fontWeight: 1,\n 'font-weight': 'fontWeight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 1,\n 'glyph-name': 'glyphName',\n glyphOrientationHorizontal: 1,\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphOrientationVertical: 1,\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphRef: 1,\n gradientTransform: 1,\n gradientUnits: 1,\n hanging: 0,\n horizAdvX: 1,\n 'horiz-adv-x': 'horizAdvX',\n horizOriginX: 1,\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 0,\n imageRendering: 1,\n 'image-rendering': 'imageRendering',\n in2: 0,\n in: 0,\n inlist: 0,\n intercept: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n k: 0,\n kernelMatrix: 1,\n kernelUnitLength: 1,\n kerning: 0,\n keyPoints: 1,\n keySplines: 1,\n keyTimes: 1,\n lengthAdjust: 1,\n letterSpacing: 1,\n 'letter-spacing': 'letterSpacing',\n lightingColor: 1,\n 'lighting-color': 'lightingColor',\n limitingConeAngle: 1,\n local: 0,\n markerEnd: 1,\n 'marker-end': 'markerEnd',\n markerHeight: 1,\n markerMid: 1,\n 'marker-mid': 'markerMid',\n markerStart: 1,\n 'marker-start': 'markerStart',\n markerUnits: 1,\n markerWidth: 1,\n mask: 0,\n maskContentUnits: 1,\n maskUnits: 1,\n mathematical: 0,\n mode: 0,\n numOctaves: 1,\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 1,\n 'overline-position': 'overlinePosition',\n overlineThickness: 1,\n 'overline-thickness': 'overlineThickness',\n paintOrder: 1,\n 'paint-order': 'paintOrder',\n panose1: 0,\n 'panose-1': 'panose1',\n pathLength: 1,\n patternContentUnits: 1,\n patternTransform: 1,\n patternUnits: 1,\n pointerEvents: 1,\n 'pointer-events': 'pointerEvents',\n points: 0,\n pointsAtX: 1,\n pointsAtY: 1,\n pointsAtZ: 1,\n prefix: 0,\n preserveAlpha: 1,\n preserveAspectRatio: 1,\n primitiveUnits: 1,\n property: 0,\n r: 0,\n radius: 0,\n refX: 1,\n refY: 1,\n renderingIntent: 1,\n 'rendering-intent': 'renderingIntent',\n repeatCount: 1,\n repeatDur: 1,\n requiredExtensions: 1,\n requiredFeatures: 1,\n resource: 0,\n restart: 0,\n result: 0,\n results: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n security: 0,\n seed: 0,\n shapeRendering: 1,\n 'shape-rendering': 'shapeRendering',\n slope: 0,\n spacing: 0,\n specularConstant: 1,\n specularExponent: 1,\n speed: 0,\n spreadMethod: 1,\n startOffset: 1,\n stdDeviation: 1,\n stemh: 0,\n stemv: 0,\n stitchTiles: 1,\n stopColor: 1,\n 'stop-color': 'stopColor',\n stopOpacity: 1,\n 'stop-opacity': 'stopOpacity',\n strikethroughPosition: 1,\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughThickness: 1,\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 1,\n 'stroke-dasharray': 'strokeDasharray',\n strokeDashoffset: 1,\n 'stroke-dashoffset': 'strokeDashoffset',\n strokeLinecap: 1,\n 'stroke-linecap': 'strokeLinecap',\n strokeLinejoin: 1,\n 'stroke-linejoin': 'strokeLinejoin',\n strokeMiterlimit: 1,\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokeWidth: 1,\n 'stroke-width': 'strokeWidth',\n strokeOpacity: 1,\n 'stroke-opacity': 'strokeOpacity',\n suppressContentEditableWarning: 1,\n suppressHydrationWarning: 1,\n surfaceScale: 1,\n systemLanguage: 1,\n tableValues: 1,\n targetX: 1,\n targetY: 1,\n textAnchor: 1,\n 'text-anchor': 'textAnchor',\n textDecoration: 1,\n 'text-decoration': 'textDecoration',\n textLength: 1,\n textRendering: 1,\n 'text-rendering': 'textRendering',\n to: 0,\n transform: 0,\n typeof: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 1,\n 'underline-position': 'underlinePosition',\n underlineThickness: 1,\n 'underline-thickness': 'underlineThickness',\n unicode: 0,\n unicodeBidi: 1,\n 'unicode-bidi': 'unicodeBidi',\n unicodeRange: 1,\n 'unicode-range': 'unicodeRange',\n unitsPerEm: 1,\n 'units-per-em': 'unitsPerEm',\n unselectable: 0,\n vAlphabetic: 1,\n 'v-alphabetic': 'vAlphabetic',\n values: 0,\n vectorEffect: 1,\n 'vector-effect': 'vectorEffect',\n version: 0,\n vertAdvY: 1,\n 'vert-adv-y': 'vertAdvY',\n vertOriginX: 1,\n 'vert-origin-x': 'vertOriginX',\n vertOriginY: 1,\n 'vert-origin-y': 'vertOriginY',\n vHanging: 1,\n 'v-hanging': 'vHanging',\n vIdeographic: 1,\n 'v-ideographic': 'vIdeographic',\n viewBox: 1,\n viewTarget: 1,\n visibility: 0,\n vMathematical: 1,\n 'v-mathematical': 'vMathematical',\n vocab: 0,\n widths: 0,\n wordSpacing: 1,\n 'word-spacing': 'wordSpacing',\n writingMode: 1,\n 'writing-mode': 'writingMode',\n x1: 0,\n x2: 0,\n x: 0,\n xChannelSelector: 1,\n xHeight: 1,\n 'x-height': 'xHeight',\n xlinkActuate: 1,\n 'xlink:actuate': 'xlinkActuate',\n xlinkArcrole: 1,\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkHref: 1,\n 'xlink:href': 'xlinkHref',\n xlinkRole: 1,\n 'xlink:role': 'xlinkRole',\n xlinkShow: 1,\n 'xlink:show': 'xlinkShow',\n xlinkTitle: 1,\n 'xlink:title': 'xlinkTitle',\n xlinkType: 1,\n 'xlink:type': 'xlinkType',\n xmlBase: 1,\n 'xml:base': 'xmlBase',\n xmlLang: 1,\n 'xml:lang': 'xmlLang',\n xmlns: 0,\n 'xml:space': 'xmlSpace',\n xmlnsXlink: 1,\n 'xmlns:xlink': 'xmlnsXlink',\n xmlSpace: 1,\n y1: 0,\n y2: 0,\n y: 0,\n yChannelSelector: 1,\n z: 0,\n zoomAndPan: 1\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX =\n /^((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|url\\((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|[^)]*)\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),\n value: val\n ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n","import type { Declaration } from 'inline-style-parser';\nimport parse from 'inline-style-parser';\n\nexport { Declaration };\n\nexport type StyleObject = Record<string, string>;\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject ?? {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n","const CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nconst HYPHEN_REGEX = /-([a-z])/g;\nconst NO_HYPHEN_REGEX = /^[^-]+$/;\nconst VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nconst MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n\n/**\n * Checks whether to skip camelCase.\n */\nconst skipCamelCase = (property: string) =>\n !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n\n/**\n * Replacer that capitalizes first character.\n */\nconst capitalize = (match: string, character: string) =>\n character.toUpperCase();\n\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nconst trimHyphen = (match: string, prefix: string) => `${prefix}-`;\n\n/**\n * CamelCase options.\n */\nexport interface CamelCaseOptions {\n reactCompat?: boolean;\n}\n\n/**\n * CamelCases a CSS property.\n */\nexport const camelCase = (property: string, options: CamelCaseOptions = {}) => {\n if (skipCamelCase(property)) {\n return property;\n }\n\n property = property.toLowerCase();\n\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n } else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n\n return property.replace(HYPHEN_REGEX, capitalize);\n};\n","import StyleToObject from 'style-to-object';\n\nimport { camelCase, CamelCaseOptions } from './utilities';\n\ntype StyleObject = Record<string, string>;\n\ntype StyleToJSOptions = CamelCaseOptions;\n\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nexport default function StyleToJS(\n style: string,\n options?: StyleToJSOptions,\n): StyleObject {\n const output: StyleObject = {};\n\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n StyleToObject(style, (property, value) => {\n // skip CSS comment\n if (property && value) {\n output[camelCase(property, options)] = value;\n }\n });\n\n return output;\n}\n","import type { Element } from 'html-dom-parser';\nimport { version } from 'react';\nimport StyleToJS from 'style-to-js';\n\nimport type { Props } from './attributes-to-props';\n\nconst RESERVED_SVG_MATHML_ELEMENTS = new Set([\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n] as const);\n\ntype ReservedSvgMathmlElements =\n typeof RESERVED_SVG_MATHML_ELEMENTS extends Set<infer T> ? T : never;\n\n/**\n * Check if a tag is a custom component.\n *\n * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js}\n *\n * @param tagName - Tag name.\n * @param props - Props passed to the element.\n * @returns - Whether the tag is custom component.\n */\nexport function isCustomComponent(\n tagName: string,\n props?: Record<PropertyKey, string>,\n): boolean {\n if (!tagName.includes('-')) {\n return Boolean(props && typeof props.is === 'string');\n }\n\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n if (RESERVED_SVG_MATHML_ELEMENTS.has(tagName as ReservedSvgMathmlElements)) {\n return false;\n }\n\n return true;\n}\n\nconst styleOptions = {\n reactCompat: true,\n} as const;\n\n/**\n * Sets style prop.\n *\n * @param style - Inline style.\n * @param props - Props object.\n */\nexport function setStyleProp(style: string, props: Props): void {\n if (typeof style !== 'string') {\n return;\n }\n\n if (!style.trim()) {\n props.style = {};\n return;\n }\n\n try {\n props.style = StyleToJS(style, styleOptions);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n props.style = {};\n }\n}\n\n/**\n * @see https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html\n */\nexport const PRESERVE_CUSTOM_ATTRIBUTES = Number(version.split('.')[0]) >= 16;\n\n/**\n * @see https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/client/validateDOMNesting.js#L213\n */\nexport const ELEMENTS_WITH_NO_TEXT_CHILDREN = new Set([\n 'tr',\n 'tbody',\n 'thead',\n 'tfoot',\n 'colgroup',\n 'table',\n 'head',\n 'html',\n 'frameset',\n] as const);\n\ntype ElementsWithNoTextChildren =\n typeof ELEMENTS_WITH_NO_TEXT_CHILDREN extends Set<infer T> ? T : never;\n\n/**\n * Checks if the given node can contain text nodes\n *\n * @param node - Element node.\n * @returns - Whether the node can contain text nodes.\n */\nexport const canTextBeChildOfNode = (node: Element) =>\n !ELEMENTS_WITH_NO_TEXT_CHILDREN.has(node.name as ElementsWithNoTextChildren);\n\n/**\n * Returns the first argument as is.\n *\n * @param arg - The argument to be returned.\n * @returns - The input argument `arg`.\n */\nexport const returnFirstArg = <T>(arg: T): T => arg;\n","import {\n BOOLEAN,\n getPropertyInfo,\n isCustomAttribute,\n OVERLOADED_BOOLEAN,\n possibleStandardNames,\n} from 'react-property';\n\nimport { PRESERVE_CUSTOM_ATTRIBUTES, setStyleProp } from './utilities';\n\n// https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components\n// https://developer.mozilla.org/docs/Web/HTML/Attributes\nconst UNCONTROLLED_COMPONENT_ATTRIBUTES = ['checked', 'value'] as const;\nconst UNCONTROLLED_COMPONENT_NAMES = ['input', 'select', 'textarea'] as const;\n\ntype UncontrolledComponentAttributes =\n (typeof UNCONTROLLED_COMPONENT_ATTRIBUTES)[number];\n\ntype UncontrolledComponentNames = (typeof UNCONTROLLED_COMPONENT_NAMES)[number];\n\nconst valueOnlyInputs = {\n reset: true,\n submit: true,\n} as const;\n\nexport type ValueOnlyInputsKeys = keyof typeof valueOnlyInputs;\n\nexport type Attributes = Record<PropertyKey, string>;\n\nexport type Props = Record<PropertyKey, string | boolean> & {\n dangerouslySetInnerHTML?: {\n __html: string;\n };\n key?: string | number;\n style?: Record<PropertyKey, string>;\n};\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param attributes - HTML/SVG DOM attributes.\n * @param nodeName - DOM node name.\n * @returns - React props.\n */\nexport default function attributesToProps(\n attributes: Attributes = {},\n nodeName?: string,\n): Props {\n const props: Props = {};\n\n const isInputValueOnly = Boolean(\n attributes.type && valueOnlyInputs[attributes.type as ValueOnlyInputsKeys],\n );\n\n for (const attributeName in attributes) {\n const attributeValue = attributes[attributeName];\n\n // ARIA (aria-*) or custom data (data-*) attribute\n if (isCustomAttribute(attributeName)) {\n props[attributeName] = attributeValue;\n continue;\n }\n\n // convert HTML/SVG attribute to React prop\n const attributeNameLowerCased = attributeName.toLowerCase();\n let propName = getPropName(attributeNameLowerCased);\n\n if (propName) {\n const propertyInfo = getPropertyInfo(propName) as\n { type: number } | undefined;\n\n // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`)\n if (\n UNCONTROLLED_COMPONENT_ATTRIBUTES.includes(\n propName as UncontrolledComponentAttributes,\n ) &&\n UNCONTROLLED_COMPONENT_NAMES.includes(\n nodeName as UncontrolledComponentNames,\n ) &&\n !isInputValueOnly\n ) {\n propName = getPropName('default' + attributeNameLowerCased);\n }\n\n props[propName] = attributeValue;\n\n switch (propertyInfo?.type) {\n case BOOLEAN:\n props[propName] = true;\n break;\n case OVERLOADED_BOOLEAN:\n if (attributeValue === '') {\n props[propName] = true;\n }\n break;\n }\n continue;\n }\n\n // preserve custom attribute if React >=16\n if (PRESERVE_CUSTOM_ATTRIBUTES) {\n props[attributeName] = attributeValue;\n }\n }\n\n // transform inline style to object\n setStyleProp(attributes.style, props);\n\n return props;\n}\n\n/**\n * Gets prop name from lowercased attribute name.\n *\n * @param attributeName - Lowercased attribute name.\n * @returns - Prop name.\n */\nfunction getPropName(attributeName: string): string {\n return possibleStandardNames[attributeName];\n}\n","'use strict';\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nconst RESERVED = 0;\n\n// A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\nconst STRING = 1;\n\n// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nconst BOOLEANISH_STRING = 2;\n\n// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nconst BOOLEAN = 3;\n\n// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nconst OVERLOADED_BOOLEAN = 4;\n\n// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nconst NUMERIC = 5;\n\n// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nconst POSITIVE_NUMERIC = 6;\n\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(\n name,\n type,\n mustUseProperty,\n attributeName,\n attributeNamespace,\n sanitizeURL,\n removeEmptyString,\n) {\n this.acceptsBooleans =\n type === BOOLEANISH_STRING ||\n type === BOOLEAN ||\n type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n}\n\n// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nconst properties = {};\n\n// These props are reserved by React. They shouldn't be written to the DOM.\nconst reservedProps = [\n 'children',\n 'dangerouslySetInnerHTML',\n // TODO: This prevents the assignment of defaultValue to regular\n // elements (not just inputs). Now that ReactDOMInput assigns to the\n // defaultValue property -- do we need this?\n 'defaultValue',\n 'defaultChecked',\n 'innerHTML',\n 'suppressContentEditableWarning',\n 'suppressHydrationWarning',\n 'style',\n];\n\nreservedProps.forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n RESERVED,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[\n ['acceptCharset', 'accept-charset'],\n ['className', 'class'],\n ['htmlFor', 'for'],\n ['httpEquiv', 'http-equiv'],\n].forEach(([name, attributeName]) => {\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEANISH_STRING,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n[\n 'autoReverse',\n 'externalResourcesRequired',\n 'focusable',\n 'preserveAlpha',\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEANISH_STRING,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML boolean attributes.\n[\n 'allowFullScreen',\n 'async',\n // Note: there is a special case that prevents it from being written to the DOM\n // on the client side because the browsers are inconsistent. Instead we call focus().\n 'autoFocus',\n 'autoPlay',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'disablePictureInPicture',\n 'disableRemotePlayback',\n 'formNoValidate',\n 'hidden',\n 'loop',\n 'noModule',\n 'noValidate',\n 'open',\n 'playsInline',\n 'readOnly',\n 'required',\n 'reversed',\n 'scoped',\n 'seamless',\n // Microdata\n 'itemScope',\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEAN,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n[\n 'checked',\n // Note: `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`. We have special logic for handling this.\n 'multiple',\n 'muted',\n 'selected',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEAN,\n true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n[\n 'capture',\n 'download',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n OVERLOADED_BOOLEAN,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that must be positive numbers.\n[\n 'cols',\n 'rows',\n 'size',\n 'span',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n POSITIVE_NUMERIC,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that must be numbers.\n['rowSpan', 'start'].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n NUMERIC,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\nconst CAMELIZE = /[\\-\\:]([a-z])/g;\nconst capitalize = token => token[1].toUpperCase();\n\n// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n[\n 'accent-height',\n 'alignment-baseline',\n 'arabic-form',\n 'baseline-shift',\n 'cap-height',\n 'clip-path',\n 'clip-rule',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'dominant-baseline',\n 'enable-background',\n 'fill-opacity',\n 'fill-rule',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'glyph-name',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'horiz-adv-x',\n 'horiz-origin-x',\n 'image-rendering',\n 'letter-spacing',\n 'lighting-color',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'overline-position',\n 'overline-thickness',\n 'paint-order',\n 'panose-1',\n 'pointer-events',\n 'rendering-intent',\n 'shape-rendering',\n 'stop-color',\n 'stop-opacity',\n 'strikethrough-position',\n 'strikethrough-thickness',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'underline-position',\n 'underline-thickness',\n 'unicode-bidi',\n 'unicode-range',\n 'units-per-em',\n 'v-alphabetic',\n 'v-hanging',\n 'v-ideographic',\n 'v-mathematical',\n 'vector-effect',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'word-spacing',\n 'writing-mode',\n 'xmlns:xlink',\n 'x-height',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// String SVG attributes with the xlink namespace.\n[\n 'xlink:actuate',\n 'xlink:arcrole',\n 'xlink:role',\n 'xlink:show',\n 'xlink:title',\n 'xlink:type',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n 'http://www.w3.org/1999/xlink',\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// String SVG attributes with the xml namespace.\n[\n 'xml:base',\n 'xml:lang',\n 'xml:space',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n 'http://www.w3.org/XML/1998/namespace',\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex', 'crossOrigin'].forEach(attributeName => {\n properties[attributeName] = new PropertyInfoRecord(\n attributeName,\n STRING,\n false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\nconst xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord(\n 'xlinkHref',\n STRING,\n false, // mustUseProperty\n 'xlink:href',\n 'http://www.w3.org/1999/xlink',\n true, // sanitizeURL\n false, // removeEmptyString\n);\n\n['src', 'href', 'action', 'formAction'].forEach(attributeName => {\n properties[attributeName] = new PropertyInfoRecord(\n attributeName,\n STRING,\n false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true, // removeEmptyString\n );\n});\n\n// \nconst {\n CAMELCASE,\n SAME,\n possibleStandardNames: possibleStandardNamesOptimized\n} = require('../lib/possibleStandardNamesOptimized');\n\nconst ATTRIBUTE_NAME_START_CHAR =\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n\nconst ATTRIBUTE_NAME_CHAR =\n ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\n/**\n * Checks whether a property name is a custom attribute.\n *\n * @see https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/HTMLDOMPropertyConfig.js#L23-L25\n *\n * @type {(attribute: string) => boolean}\n */\nconst isCustomAttribute =\n RegExp.prototype.test.bind(\n // eslint-disable-next-line no-misleading-character-class\n new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$')\n );\n\n/**\n * @type {Record<string, string>}\n */\nconst possibleStandardNames = Object.keys(\n possibleStandardNamesOptimized\n).reduce((accumulator, standardName) => {\n const propName = possibleStandardNamesOptimized[standardName];\n if (propName === SAME) {\n accumulator[standardName] = standardName;\n } else if (propName === CAMELCASE) {\n accumulator[standardName.toLowerCase()] = standardName;\n } else {\n accumulator[standardName] = propName;\n }\n return accumulator;\n}, {});\n\nexports.BOOLEAN = BOOLEAN;\nexports.BOOLEANISH_STRING = BOOLEANISH_STRING;\nexports.NUMERIC = NUMERIC;\nexports.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN;\nexports.POSITIVE_NUMERIC = POSITIVE_NUMERIC;\nexports.RESERVED = RESERVED;\nexports.STRING = STRING;\nexports.getPropertyInfo = getPropertyInfo;\nexports.isCustomAttribute = isCustomAttribute;\nexports.possibleStandardNames = possibleStandardNames;\n","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n * @param element Element to test\n * @param element.type Node type discriminator to check.\n */\nexport function isTag(element) {\n return (element.type === ElementType.Tag ||\n element.type === ElementType.Script ||\n element.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\n// eslint-disable-next-line prefer-destructuring\nexport const Root = ElementType.Root;\n/** Type for Text */\n// eslint-disable-next-line prefer-destructuring\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\n// eslint-disable-next-line prefer-destructuring\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\n// eslint-disable-next-line prefer-destructuring\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\n// eslint-disable-next-line prefer-destructuring\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\n// eslint-disable-next-line prefer-destructuring\nexport const Style = ElementType.Style;\n/** Type for Any tag */\n// eslint-disable-next-line prefer-destructuring\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\n// eslint-disable-next-line prefer-destructuring\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\n// eslint-disable-next-line prefer-destructuring\nexport const Doctype = ElementType.Doctype;\n","import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n /** Parent of the node */\n parent = null;\n /** Previous sibling */\n prev = null;\n /** Next sibling */\n next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n endIndex = null;\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(previous) {\n this.prev = previous;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n data;\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n type = ElementType.Text;\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n type = ElementType.Comment;\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n type = ElementType.Directive;\n name;\n constructor(name, data) {\n super(data);\n this.name = name;\n }\n get nodeType() {\n return 1;\n }\n /** If this is a doctype, the document type name (parse5 only). */\n \"x-name\";\n /** If this is a doctype, the document type public identifier (parse5 only). */\n \"x-publicId\";\n /** If this is a doctype, the document type system identifier (parse5 only). */\n \"x-systemId\";\n}\n/**\n * A node that can have children.\n */\nexport class NodeWithChildren extends Node {\n children;\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n return this.children[0] ?? null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\n/**\n * CDATA nodes.\n */\nexport class CDATA extends NodeWithChildren {\n type = ElementType.CDATA;\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n type = ElementType.Root;\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n name;\n attribs;\n type;\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n * @param type Node type used for the new node instance.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => ({\n name,\n value: this.attribs[name],\n namespace: this[\"x-attribsNamespace\"]?.[name],\n prefix: this[\"x-attribsPrefix\"]?.[name],\n }));\n }\n /** Element namespace (parse5 only). */\n namespace;\n /** Element attribute namespaces (parse5 only). */\n \"x-attribsNamespace\";\n /** Element attribute namespace-related prefixes (parse5 only). */\n \"x-attribsPrefix\";\n}\n/**\n * Checks if `node` is an element node.\n * @param node Node to check.\n * @returns `true` if the node is an element node.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * Checks if `node` is a CDATA node.\n * @param node Node to check.\n * @returns `true` if the node is a CDATA node.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * Checks if `node` is a text node.\n * @param node Node to check.\n * @returns `true` if the node is a text node.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * Checks if `node` is a comment node.\n * @param node Node to check.\n * @returns `true` if the node is a comment node.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * Checks if `node` is a directive node.\n * @param node Node to check.\n * @returns `true` if the node is a directive node.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * Checks if `node` is a document node.\n * @param node Node to check.\n * @returns `true` if the node is a document node.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * Checks if `node` has children.\n * @param node Node to check.\n * @returns `true` if the node has children.\n */\nexport function hasChildren(node) {\n return Object.hasOwn(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n * @param node Node to clone.\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n for (const child of children) {\n child.parent = clone;\n }\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n for (const child of children) {\n child.parent = clone;\n }\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n for (const child of children) {\n child.parent = clone;\n }\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\n/**\n * Clone a list of child nodes.\n * @param childs The child nodes to clone.\n * @returns A list of cloned child nodes.\n */\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let index = 1; index < children.length; index++) {\n children[index].prev = children[index - 1];\n children[index - 1].next = children[index];\n }\n return children;\n}\n","import { ElementType } from \"domelementtype\";\nimport { CDATA, Comment, Document, Element, ProcessingInstruction, Text, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOptions = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\n/**\n * Event-based handler that builds a DOM tree from parser callbacks.\n */\nexport class DomHandler {\n /** The elements of the DOM */\n dom = [];\n /** The root element for the DOM */\n root = new Document(this.dom);\n /** Called once parsing has completed. */\n callback;\n /** Settings for the handler. */\n options;\n /** Callback whenever a tag is closed. */\n elementCB;\n /** Indicated whether parsing has been completed. */\n done = false;\n /** Stack of open tags. */\n tagStack = [this.root];\n /** A data node that is still being written to. */\n lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n parser = null;\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOptions;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback ?? null;\n this.options = options ?? defaultOptions;\n this.elementCB = elementCB ?? null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const element = this.tagStack.pop();\n if (this.options.withEndIndices && this.parser) {\n element.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(element);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices && this.parser) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices && this.parser) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices && this.parser) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n","/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport { Element as DomHandlerElement } from 'domhandler';\nimport type { DOMNode, Element, Text } from 'html-dom-parser';\nimport type { JSX } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\n\nimport type { Props } from './attributes-to-props';\nimport attributesToProps from './attributes-to-props';\nimport type { HTMLReactParserOptions } from './types';\nimport {\n canTextBeChildOfNode,\n isCustomComponent,\n PRESERVE_CUSTOM_ATTRIBUTES,\n returnFirstArg,\n setStyleProp,\n} from './utilities';\n\nconst React = {\n cloneElement,\n createElement,\n isValidElement,\n} as const;\n\n/**\n * Converts DOM nodes to JSX element(s).\n *\n * @param nodes - DOM nodes.\n * @param options - Options.\n * @returns - String or JSX element(s).\n */\nexport default function domToReact(\n nodes: DOMNode[],\n options: HTMLReactParserOptions = {},\n): string | JSX.Element | JSX.Element[] {\n const reactElements: JSX.Element[] = [];\n\n const hasReplace = typeof options.replace === 'function';\n const transform = options.transform ?? returnFirstArg;\n const { cloneElement, createElement, isValidElement } =\n options.library ?? React;\n\n const nodesLength = nodes.length;\n\n normalizeDOMNodes(nodes);\n\n for (let index = 0; index < nodesLength; index++) {\n const node = nodes[index];\n\n // replace with custom React element (if present)\n if (hasReplace) {\n let replaceElement = options.replace?.(node, index) as JSX.Element;\n\n if (isValidElement(replaceElement)) {\n // set \"key\" prop for sibling elements\n // https://react.dev/learn/rendering-lists#rules-of-keys\n if (nodesLength > 1) {\n replaceElement = cloneElement(replaceElement, {\n key: replaceElement.key ?? index,\n });\n }\n\n reactElements.push(\n transform(replaceElement, node, index) as JSX.Element,\n );\n\n continue;\n }\n }\n\n if (node.type === 'text') {\n const isWhitespace = !node.data.trim().length;\n\n // We have a whitespace node that can't be nested in its parent\n // so skip it\n if (\n isWhitespace &&\n node.parent &&\n !canTextBeChildOfNode(node.parent as Element)\n ) {\n continue;\n }\n\n // Trim is enabled and we have a whitespace node\n // so skip it\n if (options.trim && isWhitespace) {\n continue;\n }\n\n // We have a text node that's not whitespace and it can be nested\n // in its parent so add it to the results\n reactElements.push(transform(node.data, node, index) as JSX.Element);\n continue;\n }\n\n const element = node as Element;\n let props: Props = {};\n\n if (skipAttributesToProps(element)) {\n setStyleProp(element.attribs.style, element.attribs);\n props = element.attribs;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n } else if (element.attribs) {\n props = attributesToProps(element.attribs, element.name);\n }\n\n let children: ReturnType<typeof domToReact> | undefined;\n\n switch (node.type) {\n case 'script':\n case 'style':\n // prevent text in <script> or <style> from being escaped\n // https://react.dev/reference/react-dom/components/common#dangerously-setting-the-inner-html\n if (node.children[0]) {\n props.dangerouslySetInnerHTML = {\n __html: (node.children[0] as Text).data,\n };\n }\n break;\n\n case 'tag':\n // setting textarea value in children is an antipattern in React\n // https://react.dev/reference/react-dom/components/textarea#caveats\n if (node.name === 'textarea' && node.children[0]) {\n props.defaultValue = (node.children[0] as Text).data;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n } else if (node.children?.length) {\n // continue recursion of creating React elements (if applicable)\n children = domToReact(node.children as Text[], options);\n }\n break;\n\n // skip all other cases (e.g., comment)\n default:\n continue;\n }\n\n // set \"key\" prop for sibling elements\n // https://react.dev/learn/rendering-lists#rules-of-keys\n if (nodesLength > 1) {\n props.key = index;\n }\n\n reactElements.push(\n transform(\n createElement(node.name, props, children),\n node,\n index,\n ) as JSX.Element,\n );\n }\n\n return reactElements.length === 1 ? reactElements[0] : reactElements;\n}\n\nfunction normalizeDOMNodes(nodes: DOMNode[]): void {\n for (const node of nodes) {\n if (\n node.type === 'tag' ||\n node.type === 'script' ||\n node.type === 'style'\n ) {\n Object.setPrototypeOf(node, DomHandlerElement.prototype);\n normalizeDOMNodes(node.children as DOMNode[]);\n }\n }\n}\n\n/**\n * Determines whether DOM element attributes should be transformed to props.\n * Web Components should not have their attributes transformed except for `style`.\n *\n * @param node - Element node.\n * @returns - Whether the node attributes should be converted to props.\n */\nfunction skipAttributesToProps(node: Element): boolean {\n return (\n PRESERVE_CUSTOM_ATTRIBUTES &&\n node.type === 'tag' &&\n isCustomComponent(node.name, node.attribs)\n );\n}\n","import htmlToDOM from 'html-dom-parser';\n\nimport attributesToProps from './attributes-to-props';\nimport domToReact from './dom-to-react';\nimport type { HTMLReactParserOptions } from './types';\n\nexport { Comment, Element, ProcessingInstruction, Text } from 'domhandler';\nexport type { DOMNode } from 'html-dom-parser';\n\nexport type { HTMLReactParserOptions };\nexport { attributesToProps, domToReact, htmlToDOM };\n\nconst domParserOptions = { lowerCaseAttributeNames: false } as const;\n\n/**\n * Converts HTML string to React elements.\n *\n * @param html - HTML string.\n * @param options - Parser options.\n * @returns - React element(s), empty array, or string.\n */\nexport default function HTMLReactParser(\n html: string,\n options?: HTMLReactParserOptions,\n): ReturnType<typeof domToReact> {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!html) {\n return [];\n }\n\n const htmlToDOMOptions = {\n ...(options?.htmlparser2 ?? domParserOptions),\n trustedTypePolicy: options?.trustedTypePolicy,\n };\n\n return domToReact(htmlToDOM(html, htmlToDOMOptions), options);\n}\n","Object.defineProperties(exports, {\n\t__esModule: { value: true },\n\t[Symbol.toStringTag]: { value: \"Module\" }\n});\nconst require_html_to_dom = require(\"./server/html-to-dom.js\");\nexports.default = require_html_to_dom.default;\n","import HTMLReactParser from '../lib/index.js';\n\nexport {\n attributesToProps,\n Comment,\n domToReact,\n Element,\n htmlToDOM,\n ProcessingInstruction,\n Text,\n} from '../lib/index.js';\n\nexport default HTMLReactParser.default || HTMLReactParser;\n","\"use strict\";\n\n/**\n * Copyright (c) 2019-present, GraphQL Foundation\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n// A Function, which when given an Array of keys, returns a Promise of an Array\n// of values or Errors.\n// Optionally turn off batching or caching or provide a cache key function or a\n// custom cache instance.\n// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nvar DataLoader =\n/*#__PURE__*/\nfunction () {\n function DataLoader(batchLoadFn, options) {\n if (typeof batchLoadFn !== 'function') {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + (\"Array<key> and returns Promise<Array<value>>, but got: \" + batchLoadFn + \".\"));\n }\n\n this._batchLoadFn = batchLoadFn;\n this._maxBatchSize = getValidMaxBatchSize(options);\n this._batchScheduleFn = getValidBatchScheduleFn(options);\n this._cacheKeyFn = getValidCacheKeyFn(options);\n this._cacheMap = getValidCacheMap(options);\n this._batch = null;\n this.name = getValidName(options);\n } // Private\n\n\n var _proto = DataLoader.prototype;\n\n /**\n * Loads a key, returning a `Promise` for the value represented by that key.\n */\n _proto.load = function load(key) {\n if (key === null || key === undefined) {\n throw new TypeError('The loader.load() function must be called with a value, ' + (\"but got: \" + String(key) + \".\"));\n }\n\n var batch = getCurrentBatch(this);\n var cacheMap = this._cacheMap;\n var cacheKey; // If caching and there is a cache-hit, return cached Promise.\n\n if (cacheMap) {\n cacheKey = this._cacheKeyFn(key);\n var cachedPromise = cacheMap.get(cacheKey);\n\n if (cachedPromise) {\n var cacheHits = batch.cacheHits || (batch.cacheHits = []);\n return new Promise(function (resolve) {\n cacheHits.push(function () {\n resolve(cachedPromise);\n });\n });\n }\n } // Otherwise, produce a new Promise for this key, and enqueue it to be\n // dispatched along with the current batch.\n\n\n batch.keys.push(key);\n var promise = new Promise(function (resolve, reject) {\n batch.callbacks.push({\n resolve: resolve,\n reject: reject\n });\n }); // If caching, cache this promise.\n\n if (cacheMap) {\n cacheMap.set(cacheKey, promise);\n }\n\n return promise;\n }\n /**\n * Loads multiple keys, promising an array of values:\n *\n * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n *\n * This is similar to the more verbose:\n *\n * var [ a, b ] = await Promise.all([\n * myLoader.load('a'),\n * myLoader.load('b')\n * ]);\n *\n * However it is different in the case where any load fails. Where\n * Promise.all() would reject, loadMany() always resolves, however each result\n * is either a value or an Error instance.\n *\n * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n * // c instanceof Error\n *\n */\n ;\n\n _proto.loadMany = function loadMany(keys) {\n if (!isArrayLike(keys)) {\n throw new TypeError('The loader.loadMany() function must be called with Array<key> ' + (\"but got: \" + keys + \".\"));\n } // Support ArrayLike by using only minimal property access\n\n\n var loadPromises = [];\n\n for (var i = 0; i < keys.length; i++) {\n loadPromises.push(this.load(keys[i])[\"catch\"](function (error) {\n return error;\n }));\n }\n\n return Promise.all(loadPromises);\n }\n /**\n * Clears the value at `key` from the cache, if it exists. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clear = function clear(key) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key);\n\n cacheMap[\"delete\"](cacheKey);\n }\n\n return this;\n }\n /**\n * Clears the entire cache. To be used when some event results in unknown\n * invalidations across this particular `DataLoader`. Returns itself for\n * method chaining.\n */\n ;\n\n _proto.clearAll = function clearAll() {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n cacheMap.clear();\n }\n\n return this;\n }\n /**\n * Adds the provided key and value to the cache. If the key already\n * exists, no change is made. Returns itself for method chaining.\n *\n * To prime the cache with an error at a key, provide an Error instance.\n */\n ;\n\n _proto.prime = function prime(key, value) {\n var cacheMap = this._cacheMap;\n\n if (cacheMap) {\n var cacheKey = this._cacheKeyFn(key); // Only add the key if it does not already exist.\n\n\n if (cacheMap.get(cacheKey) === undefined) {\n // Cache a rejected promise if the value is an Error, in order to match\n // the behavior of load(key).\n var promise;\n\n if (value instanceof Error) {\n promise = Promise.reject(value); // Since this is a case where an Error is intentionally being primed\n // for a given key, we want to disable unhandled promise rejection.\n\n promise[\"catch\"](function () {});\n } else {\n promise = Promise.resolve(value);\n }\n\n cacheMap.set(cacheKey, promise);\n }\n }\n\n return this;\n }\n /**\n * The name given to this `DataLoader` instance. Useful for APM tools.\n *\n * Is `null` if not set in the constructor.\n */\n ;\n\n return DataLoader;\n}(); // Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\n\n\nvar enqueuePostPromiseJob = typeof process === 'object' && typeof process.nextTick === 'function' ? function (fn) {\n if (!resolvedPromise) {\n resolvedPromise = Promise.resolve();\n }\n\n resolvedPromise.then(function () {\n process.nextTick(fn);\n });\n} : typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n} : function (fn) {\n setTimeout(fn);\n}; // Private: cached resolved Promise instance\n\nvar resolvedPromise; // Private: Describes a batch of requests\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch(loader) {\n // If there is an existing batch which has not yet dispatched and is within\n // the limit of the batch size, then return it.\n var existingBatch = loader._batch;\n\n if (existingBatch !== null && !existingBatch.hasDispatched && existingBatch.keys.length < loader._maxBatchSize) {\n return existingBatch;\n } // Otherwise, create a new batch for this loader.\n\n\n var newBatch = {\n hasDispatched: false,\n keys: [],\n callbacks: []\n }; // Store it on the loader so it may be reused.\n\n loader._batch = newBatch; // Then schedule a task to dispatch this batch of requests.\n\n loader._batchScheduleFn(function () {\n dispatchBatch(loader, newBatch);\n });\n\n return newBatch;\n}\n\nfunction dispatchBatch(loader, batch) {\n // Mark this batch as having been dispatched.\n batch.hasDispatched = true; // If there's nothing to load, resolve any cache hits and return early.\n\n if (batch.keys.length === 0) {\n resolveCacheHits(batch);\n return;\n } // Call the provided batchLoadFn for this loader with the batch's keys and\n // with the loader as the `this` context.\n\n\n var batchPromise;\n\n try {\n batchPromise = loader._batchLoadFn(batch.keys);\n } catch (e) {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function ' + (\"errored synchronously: \" + String(e) + \".\")));\n } // Assert the expected response from batchLoadFn\n\n\n if (!batchPromise || typeof batchPromise.then !== 'function') {\n return failedDispatch(loader, batch, new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise: \" + String(batchPromise) + \".\")));\n } // Await the resolution of the call to batchLoadFn.\n\n\n batchPromise.then(function (values) {\n // Assert the expected resolution from batchLoadFn.\n if (!isArrayLike(values)) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + (\"not return a Promise of an Array: \" + String(values) + \".\"));\n }\n\n if (values.length !== batch.keys.length) {\n throw new TypeError('DataLoader must be constructed with a function which accepts ' + 'Array<key> and returns Promise<Array<value>>, but the function did ' + 'not return a Promise of an Array of the same length as the Array ' + 'of keys.' + (\"\\n\\nKeys:\\n\" + String(batch.keys)) + (\"\\n\\nValues:\\n\" + String(values)));\n } // Resolve all cache hits in the same micro-task as freshly loaded values.\n\n\n resolveCacheHits(batch); // Step through values, resolving or rejecting each Promise in the batch.\n\n for (var i = 0; i < batch.callbacks.length; i++) {\n var _value = values[i];\n\n if (_value instanceof Error) {\n batch.callbacks[i].reject(_value);\n } else {\n batch.callbacks[i].resolve(_value);\n }\n }\n })[\"catch\"](function (error) {\n failedDispatch(loader, batch, error);\n });\n} // Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\n\n\nfunction failedDispatch(loader, batch, error) {\n // Cache hits are resolved, even though the batch failed.\n resolveCacheHits(batch);\n\n for (var i = 0; i < batch.keys.length; i++) {\n loader.clear(batch.keys[i]);\n batch.callbacks[i].reject(error);\n }\n} // Private: Resolves the Promises for any cache hits in this batch.\n\n\nfunction resolveCacheHits(batch) {\n if (batch.cacheHits) {\n for (var i = 0; i < batch.cacheHits.length; i++) {\n batch.cacheHits[i]();\n }\n }\n} // Private: given the DataLoader's options, produce a valid max batch size.\n\n\nfunction getValidMaxBatchSize(options) {\n var shouldBatch = !options || options.batch !== false;\n\n if (!shouldBatch) {\n return 1;\n }\n\n var maxBatchSize = options && options.maxBatchSize;\n\n if (maxBatchSize === undefined) {\n return Infinity;\n }\n\n if (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n throw new TypeError(\"maxBatchSize must be a positive number: \" + maxBatchSize);\n }\n\n return maxBatchSize;\n} // Private\n\n\nfunction getValidBatchScheduleFn(options) {\n var batchScheduleFn = options && options.batchScheduleFn;\n\n if (batchScheduleFn === undefined) {\n return enqueuePostPromiseJob;\n }\n\n if (typeof batchScheduleFn !== 'function') {\n throw new TypeError(\"batchScheduleFn must be a function: \" + batchScheduleFn);\n }\n\n return batchScheduleFn;\n} // Private: given the DataLoader's options, produce a cache key function.\n\n\nfunction getValidCacheKeyFn(options) {\n var cacheKeyFn = options && options.cacheKeyFn;\n\n if (cacheKeyFn === undefined) {\n return function (key) {\n return key;\n };\n }\n\n if (typeof cacheKeyFn !== 'function') {\n throw new TypeError(\"cacheKeyFn must be a function: \" + cacheKeyFn);\n }\n\n return cacheKeyFn;\n} // Private: given the DataLoader's options, produce a CacheMap to be used.\n\n\nfunction getValidCacheMap(options) {\n var shouldCache = !options || options.cache !== false;\n\n if (!shouldCache) {\n return null;\n }\n\n var cacheMap = options && options.cacheMap;\n\n if (cacheMap === undefined) {\n return new Map();\n }\n\n if (cacheMap !== null) {\n var cacheFunctions = ['get', 'set', 'delete', 'clear'];\n var missingFunctions = cacheFunctions.filter(function (fnName) {\n return cacheMap && typeof cacheMap[fnName] !== 'function';\n });\n\n if (missingFunctions.length !== 0) {\n throw new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n }\n }\n\n return cacheMap;\n}\n\nfunction getValidName(options) {\n if (options && options.name) {\n return options.name;\n }\n\n return null;\n} // Private\n\n\nfunction isArrayLike(x) {\n return typeof x === 'object' && x !== null && typeof x.length === 'number' && (x.length === 0 || x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1));\n}\n\nmodule.exports = DataLoader;","import DataLoader from 'dataloader';\nimport React, {\n createContext,\n PropsWithChildren,\n useMemo,\n useState,\n} from 'react';\nimport {\n cacheKeyFn,\n DataLoaderLoadParams,\n DataLoaderOptions,\n defaultLoaderFactory as defaultLoaderFactory,\n Language,\n libraryWebsite,\n MagicTranslateConfig,\n TranslateOptions,\n} from '@magic-translate/core';\n\nexport interface MagicTranslateProviderProps extends MagicTranslateConfig {\n /**\n * The API URL to use for the translate requests. This is only used for debugging purposes.\n * @ignore\n */\n _apiUrl?: string;\n\n /**\n * Set a data loader. This is for testing purposes only\n * @ignore\n */\n _loaderFactory?: (\n options?: DataLoaderOptions\n ) => (content: readonly DataLoaderLoadParams[]) => Promise<readonly string[]>;\n}\n\n/**\n * Type alias to make the language enum more flexible to also allow passing language strings\n * instead of just the enum.\n */\ntype Languages = `${Language}`;\n\nexport interface MagicTranslateContextValue extends TranslateOptions {\n dataLoader: DataLoader<DataLoaderLoadParams, string>;\n language: Languages;\n sourceLanguage?: Languages;\n setLanguage: (language: Languages) => void;\n apiUrl?: string;\n apiKey: string;\n}\n\nexport const MagicTranslateContext =\n createContext<MagicTranslateContextValue | null>(null);\n\nexport const MagicTranslateProvider: React.FunctionComponent<\n PropsWithChildren<MagicTranslateProviderProps>\n> = ({\n language: passedLanguage,\n sourceLanguage,\n debug,\n apiKey,\n children,\n _loaderFactory = defaultLoaderFactory,\n _apiUrl,\n formality,\n}) => {\n if (!apiKey) {\n throw new Error(`Missing API key. Please get one at ${libraryWebsite}`);\n }\n\n const [languageFromContext, setLanguage] = useState<null | Languages>(null);\n\n const language = useMemo(\n () => languageFromContext ?? passedLanguage,\n [passedLanguage, languageFromContext]\n );\n\n const value = useMemo(\n () => ({\n dataLoader: new DataLoader<DataLoaderLoadParams, string, string>(\n _loaderFactory({\n debug: !!debug,\n apiKey,\n lang: language,\n sourceLang: sourceLanguage,\n apiUrl: _apiUrl,\n formality,\n }),\n {\n cacheKeyFn: cacheKeyFn(apiKey, sourceLanguage, language),\n }\n ),\n language,\n sourceLanguage,\n apiKey,\n setLanguage,\n }),\n [\n _loaderFactory,\n language,\n sourceLanguage,\n debug,\n apiKey,\n _apiUrl,\n formality,\n ]\n );\n\n return (\n <MagicTranslateContext.Provider value={value}>\n {children}\n </MagicTranslateContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { MagicTranslateContext } from '../context/MagicTranslateContext';\n\nexport function useMagicTranslate() {\n const value = useContext(MagicTranslateContext);\n\n if (value === null) {\n throw new Error(\n 'useMagicTranslate must be used within a MagicTranslateProvider'\n );\n }\n\n return value;\n}\n","import parse from 'html-react-parser';\nimport React, {\n PropsWithChildren,\n useCallback,\n useEffect,\n useState,\n useRef,\n} from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { TranslateOptions, libraryName } from '@magic-translate/core';\nimport { useMagicTranslate } from '../hooks/use-magic-translate';\n\nexport type TranslateProps = TranslateOptions;\n\n// `React.ReactFragment` was removed in @types/react 19, where a fragment is\n// just an `Iterable<ReactNode>`. Everything this assertion cares about is a\n// child that is not a primitive, so derive that from `ReactNode` directly.\ntype NonPrimitiveChild = Exclude<\n React.ReactNode,\n string | number | bigint | boolean | null | undefined\n>;\n\nconst assertChildIsNotAReactComponent = (child: NonPrimitiveChild) => {\n if ('type' in child && typeof child.type === 'function') {\n let errorMsg =\n 'React components are not allowed inside `<T>...</T>` components.';\n if ('displayName' in child.type) {\n errorMsg += ` The component found inside the T component is ${\n (child.type as React.FunctionComponent).displayName\n }.`;\n }\n throw new Error(errorMsg);\n }\n};\n\nexport const Translate: React.FunctionComponent<\n PropsWithChildren<TranslateProps>\n> = ({ children, lang, formality }) => {\n const { dataLoader, language } = useMagicTranslate();\n const [translation, setTranslation] = useState<null | string>(null);\n const lastRequestId = useRef<number>(0);\n\n // `lang` and `formality` are destructured rather than kept as a rest object\n // so that they can be depended on by value: a rest object is a fresh\n // reference on every render and would rebuild `translate` each time.\n const translate = useCallback(\n (toTranslate: string) => {\n // make sure that we only ever use the response of the most resent request.\n const requestId = Math.random();\n lastRequestId.current = requestId;\n\n dataLoader.load({ text: toTranslate, lang, formality }).then((t) => {\n if (lastRequestId.current === requestId) {\n setTranslation(t);\n }\n });\n },\n [dataLoader, lang, formality]\n );\n\n useEffect(() => {\n // single child\n if (React.Children.count(children) === 0) {\n return;\n }\n\n if (React.Children.count(children) === 1) {\n if (!children) {\n return;\n }\n\n if (typeof children === 'string') {\n translate(children);\n return;\n }\n\n if (\n typeof children === 'number' ||\n typeof children === 'boolean' ||\n typeof children === 'bigint'\n ) {\n return;\n }\n\n assertChildIsNotAReactComponent(children);\n\n if ('type' in children && typeof children.type === 'string') {\n // single plain HTML element\n translate(renderToString(children));\n return;\n }\n\n /* istanbul ignore next */\n console.warn(\n `[${libraryName}]: Impossible state reached. If you see this message, please open an issue on GitHub. Offending value was a ${typeof children} with value: ${children}`\n );\n\n return;\n }\n\n if (React.Children.count(children) > 1) {\n React.Children.forEach(children, (child) => {\n // make sure all children are either primitives or plain HTML elements\n if (\n !child ||\n typeof child === 'string' ||\n typeof child === 'number' ||\n typeof child === 'boolean' ||\n typeof child === 'bigint'\n ) {\n return;\n }\n\n assertChildIsNotAReactComponent(child);\n });\n\n translate(renderToString(<>{children}</>));\n }\n // `language` is not read here, but a language switch has to re-translate\n // the children, so it stays an explicit trigger.\n }, [children, language, translate]);\n\n return <>{translation ? parse(translation) : children}</>;\n};\n\nexport const T = Translate;\n","import { useMagicTranslate } from './use-magic-translate';\nimport { useCallback, useMemo, useState } from 'react';\nimport { cacheKeyFn, DataLoaderLoadParams } from '@magic-translate/core';\n\nexport function useTranslate(): (\n text: string,\n params?: Omit<DataLoaderLoadParams, 'text'>\n) => string {\n const { dataLoader, apiKey, language, sourceLanguage } = useMagicTranslate();\n const [translations, setTranslations] = useState<Map<string, string>>(\n new Map<string, string>()\n );\n\n const cacheFn = useMemo(\n () => cacheKeyFn(apiKey, sourceLanguage, language),\n [apiKey, sourceLanguage, language]\n );\n\n const lookup = useCallback(\n (text: string, params: Omit<DataLoaderLoadParams, 'text'> = {}) =>\n translations.get(cacheFn({ text, ...params })),\n [translations, cacheFn]\n );\n\n const load = useCallback(\n (text: string, params: Omit<DataLoaderLoadParams, 'text'> = {}) => {\n if (lookup(text, params)) {\n return;\n }\n\n dataLoader.load({ text, ...params }).then((translation) => {\n setTranslations((cur) => {\n cur.set(cacheFn({ text, ...params }), translation);\n\n return new Map(cur);\n });\n });\n },\n [cacheFn, dataLoader, lookup]\n );\n\n return (text: string, params: Omit<DataLoaderLoadParams, 'text'> = {}) => {\n load(text, params);\n\n return lookup(text, params) ?? text;\n };\n}\n\nexport const useT = useTranslate;\n","import { useMagicTranslate } from './use-magic-translate';\nimport { Language } from '@magic-translate/core';\nimport { useMemo } from 'react';\n\nexport function useLanguageSwitcher(): {\n setLanguage: (language: `${Language}`) => void;\n currentLanguage: `${Language}`;\n} {\n const { setLanguage, language } = useMagicTranslate();\n\n return useMemo(\n () => ({ setLanguage, currentLanguage: language }),\n [setLanguage, language]\n );\n}\n"],"names":["libraryName","libraryWebsite","removeUndefined","obj","Object","keys","filter","k","reduce","acc","convertObjectToURLSearchParams","params","URLSearchParams","traverse","data","prefix","Array","isArray","forEach","item","index","entries","key","value","append","Language","AF","SQ","AM","AR","HY","AZ","BN","BS","BG","CA","ZH","ZH_TW","HR","CS","DA","FA_AF","NL","EN","ET","FA","TL","FI","FR","FR_CA","KA","DE","EL","GU","HT","HA","HE","HI","HU","IS","ID","GA","IT","JA","KN","KK","KO","LV","LT","MK","MS","ML","MT","MR","MN","NO","PS","PL","PT","PT_PT","PA","RO","RU","SR","SI","SK","SL","SO","ES","ES_MX","SW","SV","TA","TE","TH","TR","UK","UR","UZ","VI","CY","defaultDataLoaderOptions","debug","apiUrl","lang","ErrorCode","QUOTA_EXCEEDED_ERROR","cacheKeyFn","apiKey","sourceLanguage","language","sourceLang","sort","localeCompare","cur","join","defaultLoaderFactory","globalOptions","async","console","content","map","c","text","formality","body","items","options","fetch","method","useJson","JSON","stringify","headers","then","res","json","response","results","error","message","catch","e","resolvedPromise","DataLoader","batchLoadFn","TypeError","this","_batchLoadFn","_maxBatchSize","batch","maxBatchSize","Infinity","_batchScheduleFn","batchScheduleFn","enqueuePostPromiseJob","_cacheKeyFn","_cacheMap","cache","cacheMap","Map","missingFunctions","fnName","length","_batch","name","_proto","prototype","load","String","cacheKey","loader","existingBatch","hasDispatched","newBatch","callbacks","batchPromise","failedDispatch","values","isArrayLike","resolveCacheHits","i","_value","Error","reject","resolve","cachedPromise","get","cacheHits","Promise","push","promise","set","loadMany","loadPromises","all","clear","delete","clearAll","prime","process","nextTick","fn","setImmediate","setTimeout","x","hasOwnProperty","call","dataloader","setupTranslate","_apiUrl","_loaderFactory","loaderOptions","setupT","FALLBACK_LANGUAGE","ElementType","Root","Text","Directive","Comment","Script","Style","Tag","CDATA","Doctype","element","type","Node","parent","prev","next","startIndex","endIndex","parentNode","previousSibling","previous","nextSibling","cloneNode","recursive","DataNode","constructor","super","nodeValue","nodeType","ProcessingInstruction","NodeWithChildren","children","firstChild","lastChild","childNodes","Document","Element","attribs","tagName","attributes","namespace","isTag","node","isTagRaw","isCDATA","isText","isComment","isDirective","isDocument","result","cloneChildren","clone","child","instruction","sourceCodeLocation","childs","defaultOptions","withStartIndices","withEndIndices","xmlMode","DomHandler","dom","root","callback","elementCB","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","onclosetag","pop","onopentag","addNode","ontext","oncomment","oncommentend","oncdatastart","oncdataend","onprocessinginstruction","input","binary","atob","evenLength","out","Uint16Array","outIndex","lo","charCodeAt","hi","htmlDecodeTree","require$$0","decodeBase64","xmlDecodeTree","decodeMap","codePoint","BinTrieFlags","CharCodes","isNumber","code","ZERO","NINE","isHexadecimalCharacter","UPPER_A","UPPER_F","LOWER_A","LOWER_F","isEntityInAttributeInvalidEnd","EQUALS","UPPER_Z","LOWER_Z","isAsciiAlphaNumeric","EntityDecoderState","DecodingMode","determineBranch","decodeTree","current","nodeIndex","char","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","packedKeySlots","mid","midKey","emitCodePoint","errors","state","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","runConsumed","startEntity","write","offset","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","emitNumericEntity","digit","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","replaceCodePoint","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","FLAG13","runLength","firstChar","emitNotTerminatedNamedEntity","charIndexInPacked","packedWord","expectedChar","emitNamedEntityData","Math","max","Attribute","end","State","QuoteType","isWhitespace","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","Sequences","Empty","Uint8Array","Cdata","CdataEnd","CommentEnd","IframeEnd","NoembedEnd","NoframesEnd","Plaintext","ScriptEnd","StyleEnd","TitleEnd","TextareaEnd","XmpEnd","specialStartSequences","cbs","buffer","sectionStart","entityStart","baseState","isSpecial","running","decodeEntities","recognizeSelfClosing","entityDecoder","EntityDecoder","cp","reset","currentSequence","sequenceIndex","chunk","parse","finish","pause","resume","stateText","Lt","fastForwardTo","BeforeTagName","Amp","enterTagBody","InPlainText","InSpecialTag","stateSpecialStartSequence","lower","InTagName","stateInTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","InSpecialComment","stateInSpecialComment","emitComment","stateInCommentLike","Number","Dash","oncdata","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","special","isInForeignContext","SpecialStartSequence","BeforeClosingTagName","onopentagname","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","AfterClosingTagName","stateAfterClosingTagName","onopentagend","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","onselfclosingtag","stateInAttributeName","Eq","onattribname","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","onattribend","NoValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","quote","onattribdata","Double","Single","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","BeforeComment","DeclarationSequence","stateDeclarationSequence","ondeclaration","stateInProcessingInstruction","stateBeforeComment","InEntity","Legacy","stateInEntity","indexInBuffer","cleanup","shouldContinue","handleTrailingData","handleTrailingCommentLikeData","cdataStart","min","handleTrailingMarkupDeclaration","onattribentity","ontextentity","fromCodePoint","formTags","Set","pTag","headingTags","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","svgTagNameAdjustments","ForeignContext","reNameEnd","openTagStart","tagname","attribname","attribvalue","stack","foreignContext","lowerCaseTagNames","lowerCaseAttributeNames","htmlMode","tokenizer","buffers","bufferOffset","writeIndex","ended","lowerCaseTags","Tokenizer","None","start","getSlice","isVoidElement","has","readTagName","toLowerCase","Svg","adjusted","includes","emitOpenTag","impliesClose","popElement","unshift","MathML","endOpenTag","isImplied","pos","indexOf","closeCurrentTag","implied","shift","isOpenImplied","onattribute","hasOwn","getInstructionName","search","substr","slice","recognizeCDATA","parseComplete","shiftBuffer","nodes","nodesLength","html","handler","Parser","unsetRootParent","possibleStandardNamesOptimized","SAME","CAMELCASE","possibleStandardNames","accept","acceptCharset","accessKey","action","allowFullScreen","alt","as","autoCapitalize","autoComplete","autoCorrect","autoFocus","autoPlay","autoSave","capture","cellPadding","cellSpacing","challenge","charSet","checked","cite","class","classID","className","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","dangerouslySetInnerHTML","dateTime","default","defaultChecked","defaultValue","defer","dir","disabled","disablePictureInPicture","disableRemotePlayback","download","draggable","encType","enterKeyHint","for","form","formMethod","formAction","formEncType","formNoValidate","formTarget","frameBorder","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","id","innerHTML","inputMode","integrity","is","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","kind","label","list","loop","low","manifest","marginWidth","marginHeight","maxLength","media","mediaGroup","minLength","multiple","muted","noModule","nonce","noValidate","open","optimum","pattern","placeholder","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcLang","srcSet","step","style","summary","tabIndex","target","title","useMap","width","wmode","wrap","about","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","datatype","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","property","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","rotate","rx","ry","scale","security","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeWidth","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","typeof","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewBox","viewTarget","visibility","vMathematical","vocab","widths","wordSpacing","writingMode","x1","x2","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","lineno","column","updatePosition","str","lines","match","lastIndexOf","position","line","Position","whitespace","source","msg","err","reason","filename","silent","re","m","exec","comments","rules","comment","charAt","declaration","prop","val","ret","replace","trim","decl","decls","declarations","iterator","styleObject","inline_style_parser","hasIterator","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","MS_VENDOR_PREFIX_REGEX","capitalize","character","toUpperCase","trimHyphen","camelCase","test","skipCamelCase","reactCompat","output","style_to_object","exports","isCustomComponent","props","Boolean","RESERVED_SVG_MATHML_ELEMENTS","setStyleProp","style_to_js_1","styleOptions","react_1","__importDefault","require$$1","PRESERVE_CUSTOM_ATTRIBUTES","split","ELEMENTS_WITH_NO_TEXT_CHILDREN","canTextBeChildOfNode","returnFirstArg","arg","attributesToProps_1","nodeName","isInputValueOnly","valueOnlyInputs","attributeValue","react_property_1","isCustomAttribute","attributeNameLowerCased","propName","getPropName","propertyInfo","UNCONTROLLED_COMPONENT_ATTRIBUTES","UNCONTROLLED_COMPONENT_NAMES","BOOLEAN","OVERLOADED_BOOLEAN","utilities_1","PropertyInfoRecord","mustUseProperty","attributeNamespace","sanitizeURL","removeEmptyString","acceptsBooleans","propertyName","properties","CAMELIZE","token","RegExp","bind","accumulator","standardName","lib","BOOLEANISH_STRING","NUMERIC","POSITIVE_NUMERIC","RESERVED","STRING","getPropertyInfo","submit","undefined","domToReact_1","domToReact","reactElements","hasReplace","_a","cloneElement","createElement","isValidElement","_b","library","React","normalizeDOMNodes","replaceElement","_c","_d","skipAttributesToProps","attributes_to_props_1","__html","_e","domhandler_1","require$$2","require$$3","setPrototypeOf","htmlToDOMOptions","assign","htmlparser2","domParserOptions","trustedTypePolicy","dom_to_react_1","html_dom_parser_1","defineProperties","__esModule","Symbol","toStringTag","require_html_to_dom","htmlToDOM","attributesToProps","defineProperty","enumerable","HTMLReactParser","shouldBatch","getValidMaxBatchSize","getValidBatchScheduleFn","getValidCacheKeyFn","shouldCache","getValidCacheMap","getValidName","dispatchBatch","getCurrentBatch","MagicTranslateContext","createContext","useMagicTranslate","useContext","assertChildIsNotAReactComponent","errorMsg","displayName","Translate","dataLoader","translation","setTranslation","useState","lastRequestId","useRef","translate","useCallback","toTranslate","requestId","random","t","useEffect","Children","count","renderToString","warn","Fragment","T","useTranslate","translations","setTranslations","cacheFn","useMemo","lookup","useT","passedLanguage","languageFromContext","setLanguage","Provider","currentLanguage","utsLocale","fallback","country"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]}
|