`. It will be replaced by the expression anyway.\n htmlString = htmlString.slice(0, -1 * attributePreMatch[0].length);\n skipTokenChars = attributePostMatch[0].length;\n } else {\n skipTokenChars = 0;\n }\n\n const binding = {\n attributeName,\n attributeValuePre,\n attributeValuePost,\n expressionIndex: i\n };\n\n bindings.push(binding);\n\n if (!withinTag && !withinAttribute) {\n // Add a placeholder text node, so we can find it later. Note we only support one dynamic child text node\n htmlString += ' ';\n }\n }\n\n const template = parseTemplate(htmlString);\n\n return {\n template,\n elementsToBindings\n }\n}\n\nfunction applyBindings (bindings, element, instanceBindings) {\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n\n const targetNode = binding.attributeName\n ? element // attribute binding, just use the element itself\n : element.firstChild; // not an attribute binding, so has a placeholder text node\n\n const instanceBinding = {\n binding,\n targetNode,\n targetParentNode: undefined,\n currentExpression: undefined\n };\n\n instanceBindings.push(instanceBinding);\n }\n}\n\nfunction traverseAndSetupBindings (rootElement, elementsToBindings) {\n const instanceBindings = [];\n\n let topLevelBindings;\n if (elementsToBindings.size === 1 && (topLevelBindings = elementsToBindings.get(0))) {\n // Optimization for the common case where there's only one element and one binding\n // Skip creating a TreeWalker entirely and just handle the root DOM element\n applyBindings(topLevelBindings, rootElement, instanceBindings);\n } else {\n // traverse dom\n const treeWalker = document.createTreeWalker(rootElement, NodeFilter.SHOW_ELEMENT);\n\n let element = rootElement;\n let elementIndex = -1;\n do {\n const bindings = elementsToBindings.get(++elementIndex);\n if (bindings) {\n applyBindings(bindings, element, instanceBindings);\n }\n } while ((element = treeWalker.nextNode()))\n }\n\n return instanceBindings\n}\n\nfunction parseHtml (tokens) {\n // All templates and bound expressions are unique per tokens array\n const { template, elementsToBindings } = getFromMap(parseCache, tokens, () => parse(tokens));\n\n // When we parseHtml, we always return a fresh DOM instance ready to be updated\n const dom = template.cloneNode(true).content.firstElementChild;\n const instanceBindings = traverseAndSetupBindings(dom, elementsToBindings);\n\n return function updateDomInstance (expressions) {\n patch(expressions, instanceBindings);\n return dom\n }\n}\n\nfunction createFramework (state) {\n const domInstances = getFromMap(domInstancesCache, state, () => new Map());\n let domInstanceCacheKey = unkeyedSymbol;\n\n function html (tokens, ...expressions) {\n // Each unique lexical usage of map() is considered unique due to the html`` tagged template call it makes,\n // which has lexically unique tokens. The unkeyed symbol is just used for html`` usage outside of a map().\n const domInstancesForTokens = getFromMap(domInstances, tokens, () => new Map());\n const updateDomInstance = getFromMap(domInstancesForTokens, domInstanceCacheKey, () => parseHtml(tokens));\n\n return updateDomInstance(expressions) // update with expressions\n }\n\n function map (array, callback, keyFunction) {\n return array.map((item, index) => {\n const originalCacheKey = domInstanceCacheKey;\n domInstanceCacheKey = keyFunction(item);\n try {\n return callback(item, index)\n } finally {\n domInstanceCacheKey = originalCacheKey;\n }\n })\n }\n\n return { map, html }\n}\n\nfunction render (container, state, helpers, events, actions, refs, abortSignal, actionContext, firstRender) {\n const { labelWithSkin, titleForEmoji, unicodeWithSkin } = helpers;\n const { html, map } = createFramework(state);\n\n function emojiList (emojis, searchMode, prefix) {\n return map(emojis, (emoji, i) => {\n return html`
${\n emoji.unicode\n ? unicodeWithSkin(emoji, state.currentSkinTone)\n : ''\n } `\n // It's important for the cache key to be unique based on the prefix, because the framework caches based on the\n // unique tokens + cache key, and the same emoji may be used in the tab as well as in the fav bar\n }, emoji => `${prefix}-${emoji.id}`)\n }\n\n const section = () => {\n return html`
${state.i18n.searchLabel} ${state.i18n.searchDescription}
${state.skinToneButtonText || ''}
${state.i18n.skinToneDescription} ${\n map(state.skinTones, (skinTone, i) => {\n return html`
${skinTone}
`\n }, skinTone => skinTone)\n }
${\n map(state.groups, (group) => {\n return html`
${group.emoji}
`\n }, group => group.id)\n }
${state.message || ''}
${\n map(state.currentEmojisWithCategories, (emojiWithCategory, i) => {\n return html`
`\n }, emojiWithCategory => emojiWithCategory.category)\n }
${\n emojiList(state.currentFavorites, /* searchMode */ false, /* prefix */ 'fav')\n }
😀 `\n };\n\n const rootDom = section();\n\n // helper for traversing the dom, finding elements by an attribute, and getting the attribute value\n const forElementWithAttribute = (attributeName, callback) => {\n for (const element of container.querySelectorAll(`[${attributeName}]`)) {\n callback(element, element.getAttribute(attributeName));\n }\n };\n\n if (firstRender) { // not a re-render\n container.appendChild(rootDom);\n\n // we only bind events/refs once - there is no need to find them again given this component structure\n\n // bind events\n for (const eventName of ['click', 'focusout', 'input', 'keydown', 'keyup']) {\n forElementWithAttribute(`data-on-${eventName}`, (element, listenerName) => {\n element.addEventListener(eventName, events[listenerName]);\n });\n }\n\n // find refs\n forElementWithAttribute('data-ref', (element, ref) => {\n refs[ref] = element;\n });\n\n // destroy/abort logic\n abortSignal.addEventListener('abort', () => {\n container.removeChild(rootDom);\n });\n }\n\n // set up actions - these are re-bound on every render\n forElementWithAttribute('data-action', (element, action) => {\n let boundActions = actionContext.get(action);\n if (!boundActions) {\n actionContext.set(action, (boundActions = new WeakSet()));\n }\n\n // avoid applying the same action to the same element multiple times\n if (!boundActions.has(element)) {\n boundActions.add(element);\n actions[action](element);\n }\n });\n}\n\n/* istanbul ignore next */\nconst qM = typeof queueMicrotask === 'function' ? queueMicrotask : callback => Promise.resolve().then(callback);\n\nfunction createState (abortSignal) {\n let destroyed = false;\n let currentObserver;\n\n const propsToObservers = new Map();\n const dirtyObservers = new Set();\n\n let queued;\n\n const flush = () => {\n if (destroyed) {\n return\n }\n const observersToRun = [...dirtyObservers];\n dirtyObservers.clear(); // clear before running to force any new updates to run in another tick of the loop\n try {\n for (const observer of observersToRun) {\n observer();\n }\n } finally {\n queued = false;\n if (dirtyObservers.size) { // new updates, queue another one\n queued = true;\n qM(flush);\n }\n }\n };\n\n const state = new Proxy({}, {\n get (target, prop) {\n if (currentObserver) {\n let observers = propsToObservers.get(prop);\n if (!observers) {\n observers = new Set();\n propsToObservers.set(prop, observers);\n }\n observers.add(currentObserver);\n }\n return target[prop]\n },\n set (target, prop, newValue) {\n if (target[prop] !== newValue) {\n target[prop] = newValue;\n const observers = propsToObservers.get(prop);\n if (observers) {\n for (const observer of observers) {\n dirtyObservers.add(observer);\n }\n if (!queued) {\n queued = true;\n qM(flush);\n }\n }\n }\n return true\n }\n });\n\n const createEffect = (callback) => {\n const runnable = () => {\n const oldObserver = currentObserver;\n currentObserver = runnable;\n try {\n return callback()\n } finally {\n currentObserver = oldObserver;\n }\n };\n return runnable()\n };\n\n // destroy logic\n abortSignal.addEventListener('abort', () => {\n destroyed = true;\n });\n\n return {\n state,\n createEffect\n }\n}\n\n// Compare two arrays, with a function called on each item in the two arrays that returns true if the items are equal\nfunction arraysAreEqualByFunction (left, right, areEqualFunc) {\n if (left.length !== right.length) {\n return false\n }\n for (let i = 0; i < left.length; i++) {\n if (!areEqualFunc(left[i], right[i])) {\n return false\n }\n }\n return true\n}\n\nconst intersectionObserverCache = new WeakMap();\n\nfunction intersectionObserverAction (node, abortSignal, listener) {\n /* istanbul ignore else */\n {\n // The scroll root is always `.tabpanel`\n const root = node.closest('.tabpanel');\n\n let observer = intersectionObserverCache.get(root);\n if (!observer) {\n // TODO: replace this with the contentvisibilityautostatechange event when all supported browsers support it.\n // For now we use IntersectionObserver because it has better cross-browser support, and it would be bad for\n // old Safari versions if they eagerly downloaded all custom emoji all at once.\n observer = new IntersectionObserver(listener, {\n root,\n // trigger if we are 1/2 scroll container height away so that the images load a bit quicker while scrolling\n rootMargin: '50% 0px 50% 0px',\n // trigger if any part of the emoji grid is intersecting\n threshold: 0\n });\n\n // avoid creating a new IntersectionObserver for every category; just use one for the whole root\n intersectionObserverCache.set(root, observer);\n\n // assume that the abortSignal is always the same for this root node; just add one event listener\n abortSignal.addEventListener('abort', () => {\n observer.disconnect();\n });\n }\n\n observer.observe(node);\n }\n}\n\n/* eslint-disable prefer-const,no-labels,no-inner-declarations */\n\n// constants\nconst EMPTY_ARRAY = [];\n\nconst { assign } = Object;\n\nfunction createRoot (shadowRoot, props) {\n const refs = {};\n const abortController = new AbortController();\n const abortSignal = abortController.signal;\n const { state, createEffect } = createState(abortSignal);\n const actionContext = new Map();\n\n // initial state\n assign(state, {\n skinToneEmoji: undefined,\n i18n: undefined,\n database: undefined,\n customEmoji: undefined,\n customCategorySorting: undefined,\n emojiVersion: undefined\n });\n\n // public props\n assign(state, props);\n\n // private props\n assign(state, {\n initialLoad: true,\n currentEmojis: [],\n currentEmojisWithCategories: [],\n rawSearchText: '',\n searchText: '',\n searchMode: false,\n activeSearchItem: -1,\n message: undefined,\n skinTonePickerExpanded: false,\n skinTonePickerExpandedAfterAnimation: false,\n currentSkinTone: 0,\n activeSkinTone: 0,\n skinToneButtonText: undefined,\n pickerStyle: undefined,\n skinToneButtonLabel: '',\n skinTones: [],\n currentFavorites: [],\n defaultFavoriteEmojis: undefined,\n numColumns: DEFAULT_NUM_COLUMNS,\n isRtl: false,\n currentGroupIndex: 0,\n groups: groups,\n databaseLoaded: false,\n activeSearchItemId: undefined\n });\n\n //\n // Update the current group based on the currentGroupIndex\n //\n createEffect(() => {\n if (state.currentGroup !== state.groups[state.currentGroupIndex]) {\n state.currentGroup = state.groups[state.currentGroupIndex];\n }\n });\n\n //\n // Utils/helpers\n //\n\n const focus = id => {\n shadowRoot.getElementById(id).focus();\n };\n\n const emojiToDomNode = emoji => shadowRoot.getElementById(`emo-${emoji.id}`);\n\n // fire a custom event that crosses the shadow boundary\n const fireEvent = (name, detail) => {\n refs.rootElement.dispatchEvent(new CustomEvent(name, {\n detail,\n bubbles: true,\n composed: true\n }));\n };\n\n //\n // Comparison utils\n //\n\n const compareEmojiArrays = (a, b) => a.id === b.id;\n\n const compareCurrentEmojisWithCategories = (a, b) => {\n const { category: aCategory, emojis: aEmojis } = a;\n const { category: bCategory, emojis: bEmojis } = b;\n\n if (aCategory !== bCategory) {\n return false\n }\n\n return arraysAreEqualByFunction(aEmojis, bEmojis, compareEmojiArrays)\n };\n\n //\n // Update utils to avoid excessive re-renders\n //\n\n // avoid excessive re-renders by checking the value before setting\n const updateCurrentEmojis = (newEmojis) => {\n if (!arraysAreEqualByFunction(state.currentEmojis, newEmojis, compareEmojiArrays)) {\n state.currentEmojis = newEmojis;\n }\n };\n\n // avoid excessive re-renders\n const updateSearchMode = (newSearchMode) => {\n if (state.searchMode !== newSearchMode) {\n state.searchMode = newSearchMode;\n }\n };\n\n // avoid excessive re-renders\n const updateCurrentEmojisWithCategories = (newEmojisWithCategories) => {\n if (!arraysAreEqualByFunction(state.currentEmojisWithCategories, newEmojisWithCategories, compareCurrentEmojisWithCategories)) {\n state.currentEmojisWithCategories = newEmojisWithCategories;\n }\n };\n\n // Helpers used by PickerTemplate\n\n const unicodeWithSkin = (emoji, currentSkinTone) => (\n (currentSkinTone && emoji.skins && emoji.skins[currentSkinTone]) || emoji.unicode\n );\n\n const labelWithSkin = (emoji, currentSkinTone) => (\n uniq([\n (emoji.name || unicodeWithSkin(emoji, currentSkinTone)),\n emoji.annotation,\n ...(emoji.shortcodes || EMPTY_ARRAY)\n ].filter(Boolean)).join(', ')\n );\n\n const titleForEmoji = (emoji) => (\n emoji.annotation || (emoji.shortcodes || EMPTY_ARRAY).join(', ')\n );\n\n const helpers = {\n labelWithSkin, titleForEmoji, unicodeWithSkin\n };\n const events = {\n onClickSkinToneButton,\n onEmojiClick,\n onNavClick,\n onNavKeydown,\n onSearchKeydown,\n onSkinToneOptionsClick,\n onSkinToneOptionsFocusOut,\n onSkinToneOptionsKeydown,\n onSkinToneOptionsKeyup,\n onSearchInput\n };\n const actions = {\n calculateEmojiGridStyle,\n updateOnIntersection\n };\n\n let firstRender = true;\n createEffect(() => {\n render(shadowRoot, state, helpers, events, actions, refs, abortSignal, actionContext, firstRender);\n firstRender = false;\n });\n\n //\n // Determine the emoji support level (in requestIdleCallback)\n //\n\n // mount logic\n if (!state.emojiVersion) {\n detectEmojiSupportLevel().then(level => {\n // Can't actually test emoji support in Jest/Vitest/JSDom, emoji never render in color in Cairo\n /* istanbul ignore next */\n if (!level) {\n state.message = state.i18n.emojiUnsupportedMessage;\n }\n });\n }\n\n //\n // Set or update the database object\n //\n\n createEffect(() => {\n // show a Loading message if it takes a long time, or show an error if there's a network/IDB error\n async function handleDatabaseLoading () {\n let showingLoadingMessage = false;\n const timeoutHandle = setTimeout(() => {\n showingLoadingMessage = true;\n state.message = state.i18n.loadingMessage;\n }, TIMEOUT_BEFORE_LOADING_MESSAGE);\n try {\n await state.database.ready();\n state.databaseLoaded = true; // eslint-disable-line no-unused-vars\n } catch (err) {\n console.error(err);\n state.message = state.i18n.networkErrorMessage;\n } finally {\n clearTimeout(timeoutHandle);\n if (showingLoadingMessage) { // Seems safer than checking the i18n string, which may change\n showingLoadingMessage = false;\n state.message = ''; // eslint-disable-line no-unused-vars\n }\n }\n }\n\n if (state.database) {\n /* no await */\n handleDatabaseLoading();\n }\n });\n\n //\n // Global styles for the entire picker\n //\n\n createEffect(() => {\n state.pickerStyle = `\n --num-groups: ${state.groups.length}; \n --indicator-opacity: ${state.searchMode ? 0 : 1}; \n --num-skintones: ${NUM_SKIN_TONES};`;\n });\n\n //\n // Set or update the customEmoji\n //\n\n createEffect(() => {\n if (state.customEmoji && state.database) {\n updateCustomEmoji(); // re-run whenever customEmoji change\n }\n });\n\n createEffect(() => {\n if (state.customEmoji && state.customEmoji.length) {\n if (state.groups !== allGroups) { // don't update unnecessarily\n state.groups = allGroups;\n }\n } else if (state.groups !== groups) {\n if (state.currentGroupIndex) {\n // If the current group is anything other than \"custom\" (which is first), decrement.\n // This fixes the odd case where you set customEmoji, then pick a category, then unset customEmoji\n state.currentGroupIndex--;\n }\n state.groups = groups;\n }\n });\n\n //\n // Set or update the preferred skin tone\n //\n\n createEffect(() => {\n async function updatePreferredSkinTone () {\n if (state.databaseLoaded) {\n state.currentSkinTone = await state.database.getPreferredSkinTone();\n }\n }\n\n /* no await */ updatePreferredSkinTone();\n });\n\n createEffect(() => {\n state.skinTones = Array(NUM_SKIN_TONES).fill().map((_, i) => applySkinTone(state.skinToneEmoji, i));\n });\n\n createEffect(() => {\n state.skinToneButtonText = state.skinTones[state.currentSkinTone];\n });\n\n createEffect(() => {\n state.skinToneButtonLabel = state.i18n.skinToneLabel.replace('{skinTone}', state.i18n.skinTones[state.currentSkinTone]);\n });\n\n //\n // Set or update the favorites emojis\n //\n\n createEffect(() => {\n async function updateDefaultFavoriteEmojis () {\n const { database } = state;\n const favs = (await Promise.all(MOST_COMMONLY_USED_EMOJI.map(unicode => (\n database.getEmojiByUnicodeOrName(unicode)\n )))).filter(Boolean); // filter because in Jest/Vitest tests we don't have all the emoji in the DB\n state.defaultFavoriteEmojis = favs;\n }\n\n if (state.databaseLoaded) {\n /* no await */ updateDefaultFavoriteEmojis();\n }\n });\n\n function updateCustomEmoji () {\n // Certain effects have an implicit dependency on customEmoji since it affects the database\n // Getting it here on the state ensures this effect re-runs when customEmoji change.\n const { customEmoji, database } = state;\n const databaseCustomEmoji = customEmoji || EMPTY_ARRAY;\n if (database.customEmoji !== databaseCustomEmoji) {\n // Avoid setting this if the customEmoji have _not_ changed, because the setter triggers a re-computation of the\n // `customEmojiIndex`. Note we don't bother with deep object changes.\n database.customEmoji = databaseCustomEmoji;\n }\n }\n\n createEffect(() => {\n async function updateFavorites () {\n updateCustomEmoji(); // re-run whenever customEmoji change\n const { database, defaultFavoriteEmojis, numColumns } = state;\n const dbFavorites = await database.getTopFavoriteEmoji(numColumns);\n const favorites = await summarizeEmojis(uniqBy([\n ...dbFavorites,\n ...defaultFavoriteEmojis\n ], _ => (_.unicode || _.name)).slice(0, numColumns));\n state.currentFavorites = favorites;\n }\n\n if (state.databaseLoaded && state.defaultFavoriteEmojis) {\n /* no await */ updateFavorites();\n }\n });\n\n //\n // Re-run whenever the emoji grid changes size, and re-calc style/layout-related state variables:\n // 1) Re-calculate the --num-columns var because it may have changed\n // 2) Re-calculate whether we're in RTL mode or not.\n //\n // The benefit of doing this in one place is to align with rAF/ResizeObserver\n // and do all the calculations in one go. RTL vs LTR is not strictly layout-related,\n // but since we're already reading the style here, and since it's already aligned with\n // the rAF loop, this is the most appropriate place to do it perf-wise.\n //\n\n function calculateEmojiGridStyle (node) {\n resizeObserverAction(node, abortSignal, () => {\n /* istanbul ignore next */\n { // jsdom throws errors for this kind of fancy stuff\n // read all the style/layout calculations we need to make\n const style = getComputedStyle(refs.rootElement);\n const newNumColumns = parseInt(style.getPropertyValue('--num-columns'), 10);\n const newIsRtl = style.getPropertyValue('direction') === 'rtl';\n\n // write to state variables\n state.numColumns = newNumColumns;\n state.isRtl = newIsRtl;\n }\n });\n }\n\n // Re-run whenever the custom emoji in a category are shown/hidden. This is an optimization that simulates\n // what we'd get from `
` but without rendering an `
`.\n function updateOnIntersection (node) {\n intersectionObserverAction(node, abortSignal, (entries) => {\n for (const { target, isIntersecting } of entries) {\n target.classList.toggle('onscreen', isIntersecting);\n }\n });\n }\n\n //\n // Set or update the currentEmojis. Check for invalid ZWJ renderings\n // (i.e. double emoji).\n //\n\n createEffect(() => {\n async function updateEmojis () {\n const { searchText, currentGroup, databaseLoaded, customEmoji } = state;\n if (!databaseLoaded) {\n state.currentEmojis = [];\n state.searchMode = false;\n } else if (searchText.length >= MIN_SEARCH_TEXT_LENGTH) {\n const newEmojis = await getEmojisBySearchQuery(searchText);\n if (state.searchText === searchText) { // if the situation changes asynchronously, do not update\n updateCurrentEmojis(newEmojis);\n updateSearchMode(true);\n }\n } else { // database is loaded and we're not in search mode, so we're in normal category mode\n const { id: currentGroupId } = currentGroup;\n // avoid race condition where currentGroupId is -1 and customEmoji is undefined/empty\n if (currentGroupId !== -1 || (customEmoji && customEmoji.length)) {\n const newEmojis = await getEmojisByGroup(currentGroupId);\n if (state.currentGroup.id === currentGroupId) { // if the situation changes asynchronously, do not update\n updateCurrentEmojis(newEmojis);\n updateSearchMode(false);\n }\n }\n }\n }\n\n /* no await */ updateEmojis();\n });\n\n const resetScrollTopInRaf = () => {\n rAF(() => resetScrollTopIfPossible(refs.tabpanelElement));\n };\n\n // Some emojis have their ligatures rendered as two or more consecutive emojis\n // We want to treat these the same as unsupported emojis, so we compare their\n // widths against the baseline widths and remove them as necessary\n createEffect(() => {\n const { currentEmojis, emojiVersion } = state;\n const zwjEmojisToCheck = currentEmojis\n .filter(emoji => emoji.unicode) // filter custom emoji\n .filter(emoji => hasZwj(emoji) && !supportedZwjEmojis.has(emoji.unicode));\n if (!emojiVersion && zwjEmojisToCheck.length) {\n // render now, check their length later\n updateCurrentEmojis(currentEmojis);\n rAF(() => checkZwjSupportAndUpdate(zwjEmojisToCheck));\n } else {\n const newEmojis = emojiVersion ? currentEmojis : currentEmojis.filter(isZwjSupported);\n updateCurrentEmojis(newEmojis);\n // Reset scroll top to 0 when emojis change\n resetScrollTopInRaf();\n }\n });\n\n function checkZwjSupportAndUpdate (zwjEmojisToCheck) {\n const allSupported = checkZwjSupport(zwjEmojisToCheck, refs.baselineEmoji, emojiToDomNode);\n if (allSupported) {\n // Even if all emoji are supported, we still need to reset the scroll top to 0 when emojis change\n resetScrollTopInRaf();\n } else {\n // Force update. We only do this if there are any unsupported ZWJ characters since otherwise,\n // for browsers that support all emoji, it would be an unnecessary extra re-render.\n state.currentEmojis = [...state.currentEmojis];\n }\n }\n\n function isZwjSupported (emoji) {\n return !emoji.unicode || !hasZwj(emoji) || supportedZwjEmojis.get(emoji.unicode)\n }\n\n async function filterEmojisByVersion (emojis) {\n const emojiSupportLevel = state.emojiVersion || await detectEmojiSupportLevel();\n // !version corresponds to custom emoji\n return emojis.filter(({ version }) => !version || version <= emojiSupportLevel)\n }\n\n async function summarizeEmojis (emojis) {\n return summarizeEmojisForUI(emojis, state.emojiVersion || await detectEmojiSupportLevel())\n }\n\n async function getEmojisByGroup (group) {\n // -1 is custom emoji\n const emoji = group === -1 ? state.customEmoji : await state.database.getEmojiByGroup(group);\n return summarizeEmojis(await filterEmojisByVersion(emoji))\n }\n\n async function getEmojisBySearchQuery (query) {\n return summarizeEmojis(await filterEmojisByVersion(await state.database.getEmojiBySearchQuery(query)))\n }\n\n createEffect(() => {\n });\n\n //\n // Derive currentEmojisWithCategories from currentEmojis. This is always done even if there\n // are no categories, because it's just easier to code the HTML this way.\n //\n\n createEffect(() => {\n function calculateCurrentEmojisWithCategories () {\n const { searchMode, currentEmojis } = state;\n if (searchMode) {\n return [\n {\n category: '',\n emojis: currentEmojis\n }\n ]\n }\n const categoriesToEmoji = new Map();\n for (const emoji of currentEmojis) {\n const category = emoji.category || '';\n let emojis = categoriesToEmoji.get(category);\n if (!emojis) {\n emojis = [];\n categoriesToEmoji.set(category, emojis);\n }\n emojis.push(emoji);\n }\n return [...categoriesToEmoji.entries()]\n .map(([category, emojis]) => ({ category, emojis }))\n .sort((a, b) => state.customCategorySorting(a.category, b.category))\n }\n\n const newEmojisWithCategories = calculateCurrentEmojisWithCategories();\n updateCurrentEmojisWithCategories(newEmojisWithCategories);\n });\n\n //\n // Handle active search item (i.e. pressing up or down while searching)\n //\n\n createEffect(() => {\n state.activeSearchItemId = state.activeSearchItem !== -1 && state.currentEmojis[state.activeSearchItem].id;\n });\n\n //\n // Handle user input on the search input\n //\n\n createEffect(() => {\n const { rawSearchText } = state;\n rIC(() => {\n state.searchText = (rawSearchText || '').trim(); // defer to avoid input delays, plus we can trim here\n state.activeSearchItem = -1;\n });\n });\n\n function onSearchKeydown (event) {\n if (!state.searchMode || !state.currentEmojis.length) {\n return\n }\n\n const goToNextOrPrevious = (previous) => {\n halt(event);\n state.activeSearchItem = incrementOrDecrement(previous, state.activeSearchItem, state.currentEmojis);\n };\n\n switch (event.key) {\n case 'ArrowDown':\n return goToNextOrPrevious(false)\n case 'ArrowUp':\n return goToNextOrPrevious(true)\n case 'Enter':\n if (state.activeSearchItem === -1) {\n // focus the first option in the list since the list must be non-empty at this point (it's verified above)\n state.activeSearchItem = 0;\n } else { // there is already an active search item\n halt(event);\n return clickEmoji(state.currentEmojis[state.activeSearchItem].id)\n }\n }\n }\n\n //\n // Handle user input on nav\n //\n\n function onNavClick (event) {\n const { target } = event;\n const closestTarget = target.closest('.nav-button');\n /* istanbul ignore if */\n if (!closestTarget) {\n return // This should never happen, but makes me nervous not to have it\n }\n const groupId = parseInt(closestTarget.dataset.groupId, 10);\n refs.searchElement.value = ''; // clear search box input\n state.rawSearchText = '';\n state.searchText = '';\n state.activeSearchItem = -1;\n state.currentGroupIndex = state.groups.findIndex(_ => _.id === groupId);\n }\n\n function onNavKeydown (event) {\n const { target, key } = event;\n\n const doFocus = el => {\n if (el) {\n halt(event);\n el.focus();\n }\n };\n\n switch (key) {\n case 'ArrowLeft':\n return doFocus(target.previousElementSibling)\n case 'ArrowRight':\n return doFocus(target.nextElementSibling)\n case 'Home':\n return doFocus(target.parentElement.firstElementChild)\n case 'End':\n return doFocus(target.parentElement.lastElementChild)\n }\n }\n\n //\n // Handle user input on an emoji\n //\n\n async function clickEmoji (unicodeOrName) {\n const emoji = await state.database.getEmojiByUnicodeOrName(unicodeOrName);\n const emojiSummary = [...state.currentEmojis, ...state.currentFavorites]\n .find(_ => (_.id === unicodeOrName));\n const skinTonedUnicode = emojiSummary.unicode && unicodeWithSkin(emojiSummary, state.currentSkinTone);\n await state.database.incrementFavoriteEmojiCount(unicodeOrName);\n fireEvent('emoji-click', {\n emoji,\n skinTone: state.currentSkinTone,\n ...(skinTonedUnicode && { unicode: skinTonedUnicode }),\n ...(emojiSummary.name && { name: emojiSummary.name })\n });\n }\n\n async function onEmojiClick (event) {\n const { target } = event;\n /* istanbul ignore if */\n if (!target.classList.contains('emoji')) {\n // This should never happen, but makes me nervous not to have it\n return\n }\n halt(event);\n const id = target.id.substring(4); // replace 'emo-' or 'fav-' prefix\n\n /* no await */ clickEmoji(id);\n }\n\n //\n // Handle user input on the skintone picker\n //\n\n function changeSkinTone (skinTone) {\n state.currentSkinTone = skinTone;\n state.skinTonePickerExpanded = false;\n focus('skintone-button');\n fireEvent('skin-tone-change', { skinTone });\n /* no await */ state.database.setPreferredSkinTone(skinTone);\n }\n\n function onSkinToneOptionsClick (event) {\n const { target: { id } } = event;\n const match = id && id.match(/^skintone-(\\d)/); // skintone option format\n /* istanbul ignore if */\n if (!match) { // not a skintone option\n return // This should never happen, but makes me nervous not to have it\n }\n halt(event);\n const skinTone = parseInt(match[1], 10); // remove 'skintone-' prefix\n changeSkinTone(skinTone);\n }\n\n function onClickSkinToneButton (event) {\n state.skinTonePickerExpanded = !state.skinTonePickerExpanded;\n state.activeSkinTone = state.currentSkinTone;\n // this should always be true, since the button is obscured by the listbox, so this `if` is just to be sure\n if (state.skinTonePickerExpanded) {\n halt(event);\n rAF(() => focus('skintone-list'));\n }\n }\n\n // To make the animation nicer, change the z-index of the skintone picker button\n // *after* the animation has played. This makes it appear that the picker box\n // is expanding \"below\" the button\n createEffect(() => {\n if (state.skinTonePickerExpanded) {\n refs.skinToneDropdown.addEventListener('transitionend', () => {\n state.skinTonePickerExpandedAfterAnimation = true; // eslint-disable-line no-unused-vars\n }, { once: true });\n } else {\n state.skinTonePickerExpandedAfterAnimation = false; // eslint-disable-line no-unused-vars\n }\n });\n\n function onSkinToneOptionsKeydown (event) {\n // this should never happen, but makes me nervous not to have it\n /* istanbul ignore if */\n if (!state.skinTonePickerExpanded) {\n return\n }\n const changeActiveSkinTone = async nextSkinTone => {\n halt(event);\n state.activeSkinTone = nextSkinTone;\n };\n\n switch (event.key) {\n case 'ArrowUp':\n return changeActiveSkinTone(incrementOrDecrement(true, state.activeSkinTone, state.skinTones))\n case 'ArrowDown':\n return changeActiveSkinTone(incrementOrDecrement(false, state.activeSkinTone, state.skinTones))\n case 'Home':\n return changeActiveSkinTone(0)\n case 'End':\n return changeActiveSkinTone(state.skinTones.length - 1)\n case 'Enter':\n // enter on keydown, space on keyup. this is just how browsers work for buttons\n // https://lists.w3.org/Archives/Public/w3c-wai-ig/2019JanMar/0086.html\n halt(event);\n return changeSkinTone(state.activeSkinTone)\n case 'Escape':\n halt(event);\n state.skinTonePickerExpanded = false;\n return focus('skintone-button')\n }\n }\n\n function onSkinToneOptionsKeyup (event) {\n // this should never happen, but makes me nervous not to have it\n /* istanbul ignore if */\n if (!state.skinTonePickerExpanded) {\n return\n }\n switch (event.key) {\n case ' ':\n // enter on keydown, space on keyup. this is just how browsers work for buttons\n // https://lists.w3.org/Archives/Public/w3c-wai-ig/2019JanMar/0086.html\n halt(event);\n return changeSkinTone(state.activeSkinTone)\n }\n }\n\n async function onSkinToneOptionsFocusOut (event) {\n // On blur outside of the skintone listbox, collapse the skintone picker.\n const { relatedTarget } = event;\n // The `else` should never happen, but makes me nervous not to have it\n /* istanbul ignore else */\n if (!relatedTarget || relatedTarget.id !== 'skintone-list') {\n state.skinTonePickerExpanded = false;\n }\n }\n\n function onSearchInput (event) {\n state.rawSearchText = event.target.value;\n }\n\n return {\n $set (newState) {\n assign(state, newState);\n },\n $destroy () {\n abortController.abort();\n }\n }\n}\n\nconst DEFAULT_DATA_SOURCE = 'https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json';\nconst DEFAULT_LOCALE = 'en';\n\nvar enI18n = {\n categoriesLabel: 'Categories',\n emojiUnsupportedMessage: 'Your browser does not support color emoji.',\n favoritesLabel: 'Favorites',\n loadingMessage: 'Loading…',\n networkErrorMessage: 'Could not load emoji.',\n regionLabel: 'Emoji picker',\n searchDescription: 'When search results are available, press up or down to select and enter to choose.',\n searchLabel: 'Search',\n searchResultsLabel: 'Search results',\n skinToneDescription: 'When expanded, press up or down to select and enter to choose.',\n skinToneLabel: 'Choose a skin tone (currently {skinTone})',\n skinTonesLabel: 'Skin tones',\n skinTones: [\n 'Default',\n 'Light',\n 'Medium-Light',\n 'Medium',\n 'Medium-Dark',\n 'Dark'\n ],\n categories: {\n custom: 'Custom',\n 'smileys-emotion': 'Smileys and emoticons',\n 'people-body': 'People and body',\n 'animals-nature': 'Animals and nature',\n 'food-drink': 'Food and drink',\n 'travel-places': 'Travel and places',\n activities: 'Activities',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags'\n }\n};\n\nvar baseStyles = \":host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--border-radius:0;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){color-scheme:light;--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.emoji-menu.visibility-auto{content-visibility:auto;contain-intrinsic-size:calc(var(--num-columns)*var(--total-emoji-size)) calc(var(--num-rows)*var(--total-emoji-size))}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;height:var(--total-emoji-size);width:var(--total-emoji-size);line-height:1;overflow:hidden;font-family:var(--emoji-font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.onscreen .custom-emoji::after{content:\\\"\\\";width:var(--emoji-size);height:var(--emoji-size);background-repeat:no-repeat;background-position:center center;background-size:contain;background-image:var(--custom-emoji-background)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{overflow-y:auto;scrollbar-gutter:stable;display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}\";\n\nconst PROPS = [\n 'customEmoji',\n 'customCategorySorting',\n 'database',\n 'dataSource',\n 'i18n',\n 'locale',\n 'skinToneEmoji',\n 'emojiVersion'\n];\n\n// Styles injected ourselves, so we can declare the FONT_FAMILY variable in one place\nconst EXTRA_STYLES = `:host{--emoji-font-family:${FONT_FAMILY}}`;\n\nclass PickerElement extends HTMLElement {\n constructor (props) {\n super();\n this.attachShadow({ mode: 'open' });\n const style = document.createElement('style');\n style.textContent = baseStyles + EXTRA_STYLES;\n this.shadowRoot.appendChild(style);\n this._ctx = {\n // Set defaults\n locale: DEFAULT_LOCALE,\n dataSource: DEFAULT_DATA_SOURCE,\n skinToneEmoji: DEFAULT_SKIN_TONE_EMOJI,\n customCategorySorting: DEFAULT_CATEGORY_SORTING,\n customEmoji: null,\n i18n: enI18n,\n emojiVersion: null,\n ...props\n };\n // Handle properties set before the element was upgraded\n for (const prop of PROPS) {\n if (prop !== 'database' && Object.prototype.hasOwnProperty.call(this, prop)) {\n this._ctx[prop] = this[prop];\n delete this[prop];\n }\n }\n this._dbFlush(); // wait for a flush before creating the db, in case the user calls e.g. a setter or setAttribute\n }\n\n connectedCallback () {\n // The _cmp may be defined if the component was immediately disconnected and then reconnected. In that case,\n // do nothing (preserve the state)\n if (!this._cmp) {\n this._cmp = createRoot(this.shadowRoot, this._ctx);\n }\n }\n\n disconnectedCallback () {\n // Check in a microtask if the element is still connected. If so, treat this as a \"move\" rather than a disconnect\n // Inspired by Vue: https://vuejs.org/guide/extras/web-components.html#building-custom-elements-with-vue\n qM(() => {\n // this._cmp may be defined if connect-disconnect-connect-disconnect occurs synchronously\n if (!this.isConnected && this._cmp) {\n this._cmp.$destroy();\n this._cmp = undefined;\n\n const { database } = this._ctx;\n database.close()\n // only happens if the database failed to load in the first place, so we don't care\n .catch(err => console.error(err));\n }\n });\n }\n\n static get observedAttributes () {\n return ['locale', 'data-source', 'skin-tone-emoji', 'emoji-version'] // complex objects aren't supported, also use kebab-case\n }\n\n attributeChangedCallback (attrName, oldValue, newValue) {\n this._set(\n // convert from kebab-case to camelcase\n // see https://github.com/sveltejs/svelte/issues/3852#issuecomment-665037015\n attrName.replace(/-([a-z])/g, (_, up) => up.toUpperCase()),\n // convert string attribute to float if necessary\n attrName === 'emoji-version' ? parseFloat(newValue) : newValue\n );\n }\n\n _set (prop, newValue) {\n this._ctx[prop] = newValue;\n if (this._cmp) {\n this._cmp.$set({ [prop]: newValue });\n }\n if (['locale', 'dataSource'].includes(prop)) {\n this._dbFlush();\n }\n }\n\n _dbCreate () {\n const { locale, dataSource, database } = this._ctx;\n // only create a new database if we really need to\n if (!database || database.locale !== locale || database.dataSource !== dataSource) {\n this._set('database', new Database({ locale, dataSource }));\n }\n }\n\n // Update the Database in one microtask if the locale/dataSource change. We do one microtask\n // so we don't create two Databases if e.g. both the locale and the dataSource change\n _dbFlush () {\n qM(() => (\n this._dbCreate()\n ));\n }\n}\n\nconst definitions = {};\n\nfor (const prop of PROPS) {\n definitions[prop] = {\n get () {\n if (prop === 'database') {\n // in rare cases, the microtask may not be flushed yet, so we need to instantiate the DB\n // now if the user is asking for it\n this._dbCreate();\n }\n return this._ctx[prop]\n },\n set (val) {\n if (prop === 'database') {\n throw new Error('database is read-only')\n }\n this._set(prop, val);\n }\n };\n}\n\nObject.defineProperties(PickerElement.prototype, definitions);\n\n/* istanbul ignore else */\nif (!customElements.get('emoji-picker')) { // if already defined, do nothing (e.g. same script imported twice)\n customElements.define('emoji-picker', PickerElement);\n}\n\nexport { PickerElement as default };\n"],
+ "mappings": "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",
+ "names": ["set", "keyPath", "res", "emoji", "version", "_", "result", "customEmojiIndex", "results", "currentMap", "MIN_SEARCH_TEXT_LENGTH", "uniqBy", "set", "DEFAULT_DATA_SOURCE", "DEFAULT_LOCALE"]
+}
diff --git a/node_modules/.vite/deps/js-chacha20.js b/node_modules/.vite/deps/js-chacha20.js
new file mode 100644
index 0000000..90ec6e5
--- /dev/null
+++ b/node_modules/.vite/deps/js-chacha20.js
@@ -0,0 +1,177 @@
+import {
+ __commonJS
+} from "./chunk-HKJ2B2AA.js";
+
+// node_modules/js-chacha20/src/jschacha20.js
+var require_jschacha20 = __commonJS({
+ "node_modules/js-chacha20/src/jschacha20.js"(exports, module) {
+ var JSChaCha20 = function(key, nonce, counter) {
+ if (typeof counter === "undefined") {
+ counter = 0;
+ }
+ if (!(key instanceof Uint8Array) || key.length !== 32) {
+ throw new Error("Key should be 32 byte array!");
+ }
+ if (!(nonce instanceof Uint8Array) || nonce.length !== 12) {
+ throw new Error("Nonce should be 12 byte array!");
+ }
+ this._rounds = 20;
+ this._sigma = [1634760805, 857760878, 2036477234, 1797285236];
+ this._param = [
+ this._sigma[0],
+ this._sigma[1],
+ this._sigma[2],
+ this._sigma[3],
+ // key
+ this._get32(key, 0),
+ this._get32(key, 4),
+ this._get32(key, 8),
+ this._get32(key, 12),
+ this._get32(key, 16),
+ this._get32(key, 20),
+ this._get32(key, 24),
+ this._get32(key, 28),
+ // counter
+ counter,
+ // nonce
+ this._get32(nonce, 0),
+ this._get32(nonce, 4),
+ this._get32(nonce, 8)
+ ];
+ this._keystream = [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ ];
+ this._byteCounter = 0;
+ };
+ JSChaCha20.prototype._chacha = function() {
+ var mix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+ var i = 0;
+ var b = 0;
+ for (i = 0; i < 16; i++) {
+ mix[i] = this._param[i];
+ }
+ for (i = 0; i < this._rounds; i += 2) {
+ this._quarterround(mix, 0, 4, 8, 12);
+ this._quarterround(mix, 1, 5, 9, 13);
+ this._quarterround(mix, 2, 6, 10, 14);
+ this._quarterround(mix, 3, 7, 11, 15);
+ this._quarterround(mix, 0, 5, 10, 15);
+ this._quarterround(mix, 1, 6, 11, 12);
+ this._quarterround(mix, 2, 7, 8, 13);
+ this._quarterround(mix, 3, 4, 9, 14);
+ }
+ for (i = 0; i < 16; i++) {
+ mix[i] += this._param[i];
+ this._keystream[b++] = mix[i] & 255;
+ this._keystream[b++] = mix[i] >>> 8 & 255;
+ this._keystream[b++] = mix[i] >>> 16 & 255;
+ this._keystream[b++] = mix[i] >>> 24 & 255;
+ }
+ };
+ JSChaCha20.prototype._quarterround = function(output, a, b, c, d) {
+ output[d] = this._rotl(output[d] ^ (output[a] += output[b]), 16);
+ output[b] = this._rotl(output[b] ^ (output[c] += output[d]), 12);
+ output[d] = this._rotl(output[d] ^ (output[a] += output[b]), 8);
+ output[b] = this._rotl(output[b] ^ (output[c] += output[d]), 7);
+ output[a] >>>= 0;
+ output[b] >>>= 0;
+ output[c] >>>= 0;
+ output[d] >>>= 0;
+ };
+ JSChaCha20.prototype._get32 = function(data, index) {
+ return data[index++] ^ data[index++] << 8 ^ data[index++] << 16 ^ data[index] << 24;
+ };
+ JSChaCha20.prototype._rotl = function(data, shift) {
+ return data << shift | data >>> 32 - shift;
+ };
+ JSChaCha20.prototype.encrypt = function(data) {
+ return this._update(data);
+ };
+ JSChaCha20.prototype.decrypt = function(data) {
+ return this._update(data);
+ };
+ JSChaCha20.prototype._update = function(data) {
+ if (!(data instanceof Uint8Array) || data.length === 0) {
+ throw new Error("Data should be type of bytes (Uint8Array) and not empty!");
+ }
+ var output = new Uint8Array(data.length);
+ for (var i = 0; i < data.length; i++) {
+ if (this._byteCounter === 0 || this._byteCounter === 64) {
+ this._chacha();
+ this._param[12]++;
+ this._byteCounter = 0;
+ }
+ output[i] = data[i] ^ this._keystream[this._byteCounter++];
+ }
+ return output;
+ };
+ if (typeof module !== "undefined" && module.exports) {
+ module.exports = JSChaCha20;
+ }
+ }
+});
+export default require_jschacha20();
+//# sourceMappingURL=js-chacha20.js.map
diff --git a/node_modules/.vite/deps/js-chacha20.js.map b/node_modules/.vite/deps/js-chacha20.js.map
new file mode 100644
index 0000000..7666e06
--- /dev/null
+++ b/node_modules/.vite/deps/js-chacha20.js.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["../../js-chacha20/src/jschacha20.js"],
+ "sourcesContent": ["'use strict'\n/*\n * Copyright (c) 2017, Bubelich Mykola\n * https, 0x//www.bubelich.com\n *\n * (。◕‿‿◕。)\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met, 0x\n *\n * Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *\n * ChaCha20 is a stream cipher designed by D. J. Bernstein.\n * It is a refinement of the Salsa20 algorithm, and it uses a 256-bit key.\n *\n * ChaCha20 successively calls the ChaCha20 block function, with the same key and nonce, and with successively increasing block counter parameters.\n * ChaCha20 then serializes the resulting state by writing the numbers in little-endian order, creating a keystream block.\n *\n * Concatenating the keystream blocks from the successive blocks forms a keystream.\n * The ChaCha20 function then performs an XOR of this keystream with the plaintext.\n * Alternatively, each keystream block can be XORed with a plaintext block before proceeding to create the next block, saving some memory.\n * There is no requirement for the plaintext to be an integral multiple of 512 bits. If there is extra keystream from the last block, it is discarded.\n *\n * The inputs to ChaCha20 are\n * - 256-bit key\n * - 32-bit initial counter\n * - 96-bit nonce. In some protocols, this is known as the Initialization Vector\n * - Arbitrary-length plaintext\n *\n * Implementation derived from chacha-ref.c version 20080118\n * See for details, 0x http, 0x//cr.yp.to/chacha/chacha-20080128.pdf\n */\n\n/**\n *\n * @param {Uint8Array} key\n * @param {Uint8Array} nonce\n * @param {number} counter\n * @throws {Error}\n *\n * @constructor\n */\nvar JSChaCha20 = function (key, nonce, counter) {\n if (typeof counter === 'undefined') {\n counter = 0\n }\n\n if (!(key instanceof Uint8Array) || key.length !== 32) {\n throw new Error('Key should be 32 byte array!')\n }\n\n if (!(nonce instanceof Uint8Array) || nonce.length !== 12) {\n throw new Error('Nonce should be 12 byte array!')\n }\n\n this._rounds = 20\n // Constants\n this._sigma = [0x61707865, 0x3320646e, 0x79622d32, 0x6b206574]\n\n // param construction\n this._param = [\n this._sigma[0],\n this._sigma[1],\n this._sigma[2],\n this._sigma[3],\n // key\n this._get32(key, 0),\n this._get32(key, 4),\n this._get32(key, 8),\n this._get32(key, 12),\n this._get32(key, 16),\n this._get32(key, 20),\n this._get32(key, 24),\n this._get32(key, 28),\n // counter\n counter,\n // nonce\n this._get32(nonce, 0),\n this._get32(nonce, 4),\n this._get32(nonce, 8)\n ]\n\n // init 64 byte keystream block //\n this._keystream = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n ]\n\n // internal byte counter //\n this._byteCounter = 0\n}\n\nJSChaCha20.prototype._chacha = function () {\n var mix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n var i = 0\n var b = 0\n\n // copy param array to mix //\n for (i = 0; i < 16; i++) {\n mix[i] = this._param[i]\n }\n\n // mix rounds //\n for (i = 0; i < this._rounds; i += 2) {\n this._quarterround(mix, 0, 4, 8, 12)\n this._quarterround(mix, 1, 5, 9, 13)\n this._quarterround(mix, 2, 6, 10, 14)\n this._quarterround(mix, 3, 7, 11, 15)\n\n this._quarterround(mix, 0, 5, 10, 15)\n this._quarterround(mix, 1, 6, 11, 12)\n this._quarterround(mix, 2, 7, 8, 13)\n this._quarterround(mix, 3, 4, 9, 14)\n }\n\n for (i = 0; i < 16; i++) {\n // add\n mix[i] += this._param[i]\n\n // store keystream\n this._keystream[b++] = mix[i] & 0xFF\n this._keystream[b++] = (mix[i] >>> 8) & 0xFF\n this._keystream[b++] = (mix[i] >>> 16) & 0xFF\n this._keystream[b++] = (mix[i] >>> 24) & 0xFF\n }\n}\n\n/**\n * The basic operation of the ChaCha algorithm is the quarter round.\n * It operates on four 32-bit unsigned integers, denoted a, b, c, and d.\n *\n * @param {Array} output\n * @param {number} a\n * @param {number} b\n * @param {number} c\n * @param {number} d\n * @private\n */\nJSChaCha20.prototype._quarterround = function (output, a, b, c, d) {\n output[d] = this._rotl(output[d] ^ (output[a] += output[b]), 16)\n output[b] = this._rotl(output[b] ^ (output[c] += output[d]), 12)\n output[d] = this._rotl(output[d] ^ (output[a] += output[b]), 8)\n output[b] = this._rotl(output[b] ^ (output[c] += output[d]), 7)\n\n // JavaScript hack to make UINT32 :) //\n output[a] >>>= 0\n output[b] >>>= 0\n output[c] >>>= 0\n output[d] >>>= 0\n}\n\n/**\n * Little-endian to uint 32 bytes\n *\n * @param {Uint8Array|[number]} data\n * @param {number} index\n * @return {number}\n * @private\n */\nJSChaCha20.prototype._get32 = function (data, index) {\n return data[index++] ^ (data[index++] << 8) ^ (data[index++] << 16) ^ (data[index] << 24)\n}\n\n/**\n * Cyclic left rotation\n *\n * @param {number} data\n * @param {number} shift\n * @return {number}\n * @private\n */\nJSChaCha20.prototype._rotl = function (data, shift) {\n return ((data << shift) | (data >>> (32 - shift)))\n}\n\n/**\n * Encrypt data with key and nonce\n *\n * @param {Uint8Array} data\n * @return {Uint8Array}\n */\nJSChaCha20.prototype.encrypt = function (data) {\n return this._update(data)\n}\n\n/**\n * Decrypt data with key and nonce\n *\n * @param {Uint8Array} data\n * @return {Uint8Array}\n */\nJSChaCha20.prototype.decrypt = function (data) {\n return this._update(data)\n}\n\n/**\n * Encrypt or Decrypt data with key and nonce\n *\n * @param {Uint8Array} data\n * @return {Uint8Array}\n * @private\n */\nJSChaCha20.prototype._update = function (data) {\n if (!(data instanceof Uint8Array) || data.length === 0) {\n throw new Error('Data should be type of bytes (Uint8Array) and not empty!')\n }\n\n var output = new Uint8Array(data.length)\n\n // core function, build block and xor with input data //\n for (var i = 0; i < data.length; i++) {\n if (this._byteCounter === 0 || this._byteCounter === 64) {\n // generate new block //\n\n this._chacha()\n // counter increment //\n this._param[12]++\n\n // reset internal counter //\n this._byteCounter = 0\n }\n\n output[i] = data[i] ^ this._keystream[this._byteCounter++]\n }\n\n return output\n}\n\n// EXPORT //\nif (typeof module !== 'undefined' && module.exports) {\n module.exports = JSChaCha20\n}\n"],
+ "mappings": "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",
+ "names": []
+}
diff --git a/node_modules/.vite/deps/js-sha256.js b/node_modules/.vite/deps/js-sha256.js
new file mode 100644
index 0000000..e070513
--- /dev/null
+++ b/node_modules/.vite/deps/js-sha256.js
@@ -0,0 +1,539 @@
+import {
+ require_buffer,
+ require_crypto
+} from "./chunk-LNRWHUEM.js";
+import {
+ __commonJS
+} from "./chunk-HKJ2B2AA.js";
+
+// node_modules/js-sha256/src/sha256.js
+var require_sha256 = __commonJS({
+ "node_modules/js-sha256/src/sha256.js"(exports, module) {
+ (function() {
+ "use strict";
+ var ERROR = "input is invalid type";
+ var WINDOW = typeof window === "object";
+ var root = WINDOW ? window : {};
+ if (root.JS_SHA256_NO_WINDOW) {
+ WINDOW = false;
+ }
+ var WEB_WORKER = !WINDOW && typeof self === "object";
+ var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node;
+ if (NODE_JS) {
+ root = global;
+ } else if (WEB_WORKER) {
+ root = self;
+ }
+ var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === "object" && module.exports;
+ var AMD = typeof define === "function" && define.amd;
+ var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined";
+ var HEX_CHARS = "0123456789abcdef".split("");
+ var EXTRA = [-2147483648, 8388608, 32768, 128];
+ var SHIFT = [24, 16, 8, 0];
+ var K = [
+ 1116352408,
+ 1899447441,
+ 3049323471,
+ 3921009573,
+ 961987163,
+ 1508970993,
+ 2453635748,
+ 2870763221,
+ 3624381080,
+ 310598401,
+ 607225278,
+ 1426881987,
+ 1925078388,
+ 2162078206,
+ 2614888103,
+ 3248222580,
+ 3835390401,
+ 4022224774,
+ 264347078,
+ 604807628,
+ 770255983,
+ 1249150122,
+ 1555081692,
+ 1996064986,
+ 2554220882,
+ 2821834349,
+ 2952996808,
+ 3210313671,
+ 3336571891,
+ 3584528711,
+ 113926993,
+ 338241895,
+ 666307205,
+ 773529912,
+ 1294757372,
+ 1396182291,
+ 1695183700,
+ 1986661051,
+ 2177026350,
+ 2456956037,
+ 2730485921,
+ 2820302411,
+ 3259730800,
+ 3345764771,
+ 3516065817,
+ 3600352804,
+ 4094571909,
+ 275423344,
+ 430227734,
+ 506948616,
+ 659060556,
+ 883997877,
+ 958139571,
+ 1322822218,
+ 1537002063,
+ 1747873779,
+ 1955562222,
+ 2024104815,
+ 2227730452,
+ 2361852424,
+ 2428436474,
+ 2756734187,
+ 3204031479,
+ 3329325298
+ ];
+ var OUTPUT_TYPES = ["hex", "array", "digest", "arrayBuffer"];
+ var blocks = [];
+ if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {
+ Array.isArray = function(obj) {
+ return Object.prototype.toString.call(obj) === "[object Array]";
+ };
+ }
+ if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {
+ ArrayBuffer.isView = function(obj) {
+ return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer;
+ };
+ }
+ var createOutputMethod = function(outputType, is224) {
+ return function(message) {
+ return new Sha256(is224, true).update(message)[outputType]();
+ };
+ };
+ var createMethod = function(is224) {
+ var method = createOutputMethod("hex", is224);
+ if (NODE_JS) {
+ method = nodeWrap(method, is224);
+ }
+ method.create = function() {
+ return new Sha256(is224);
+ };
+ method.update = function(message) {
+ return method.create().update(message);
+ };
+ for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
+ var type = OUTPUT_TYPES[i];
+ method[type] = createOutputMethod(type, is224);
+ }
+ return method;
+ };
+ var nodeWrap = function(method, is224) {
+ var crypto = require_crypto();
+ var Buffer = require_buffer().Buffer;
+ var algorithm = is224 ? "sha224" : "sha256";
+ var bufferFrom;
+ if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {
+ bufferFrom = Buffer.from;
+ } else {
+ bufferFrom = function(message) {
+ return new Buffer(message);
+ };
+ }
+ var nodeMethod = function(message) {
+ if (typeof message === "string") {
+ return crypto.createHash(algorithm).update(message, "utf8").digest("hex");
+ } else {
+ if (message === null || message === void 0) {
+ throw new Error(ERROR);
+ } else if (message.constructor === ArrayBuffer) {
+ message = new Uint8Array(message);
+ }
+ }
+ if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) {
+ return crypto.createHash(algorithm).update(bufferFrom(message)).digest("hex");
+ } else {
+ return method(message);
+ }
+ };
+ return nodeMethod;
+ };
+ var createHmacOutputMethod = function(outputType, is224) {
+ return function(key, message) {
+ return new HmacSha256(key, is224, true).update(message)[outputType]();
+ };
+ };
+ var createHmacMethod = function(is224) {
+ var method = createHmacOutputMethod("hex", is224);
+ method.create = function(key) {
+ return new HmacSha256(key, is224);
+ };
+ method.update = function(key, message) {
+ return method.create(key).update(message);
+ };
+ for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
+ var type = OUTPUT_TYPES[i];
+ method[type] = createHmacOutputMethod(type, is224);
+ }
+ return method;
+ };
+ function Sha256(is224, sharedMemory) {
+ if (sharedMemory) {
+ blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
+ this.blocks = blocks;
+ } else {
+ this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+ }
+ if (is224) {
+ this.h0 = 3238371032;
+ this.h1 = 914150663;
+ this.h2 = 812702999;
+ this.h3 = 4144912697;
+ this.h4 = 4290775857;
+ this.h5 = 1750603025;
+ this.h6 = 1694076839;
+ this.h7 = 3204075428;
+ } else {
+ this.h0 = 1779033703;
+ this.h1 = 3144134277;
+ this.h2 = 1013904242;
+ this.h3 = 2773480762;
+ this.h4 = 1359893119;
+ this.h5 = 2600822924;
+ this.h6 = 528734635;
+ this.h7 = 1541459225;
+ }
+ this.block = this.start = this.bytes = this.hBytes = 0;
+ this.finalized = this.hashed = false;
+ this.first = true;
+ this.is224 = is224;
+ }
+ Sha256.prototype.update = function(message) {
+ if (this.finalized) {
+ return;
+ }
+ var notString, type = typeof message;
+ if (type !== "string") {
+ if (type === "object") {
+ if (message === null) {
+ throw new Error(ERROR);
+ } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {
+ message = new Uint8Array(message);
+ } else if (!Array.isArray(message)) {
+ if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {
+ throw new Error(ERROR);
+ }
+ }
+ } else {
+ throw new Error(ERROR);
+ }
+ notString = true;
+ }
+ var code, index = 0, i, length = message.length, blocks2 = this.blocks;
+ while (index < length) {
+ if (this.hashed) {
+ this.hashed = false;
+ blocks2[0] = this.block;
+ this.block = blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0;
+ }
+ if (notString) {
+ for (i = this.start; index < length && i < 64; ++index) {
+ blocks2[i >>> 2] |= message[index] << SHIFT[i++ & 3];
+ }
+ } else {
+ for (i = this.start; index < length && i < 64; ++index) {
+ code = message.charCodeAt(index);
+ if (code < 128) {
+ blocks2[i >>> 2] |= code << SHIFT[i++ & 3];
+ } else if (code < 2048) {
+ blocks2[i >>> 2] |= (192 | code >>> 6) << SHIFT[i++ & 3];
+ blocks2[i >>> 2] |= (128 | code & 63) << SHIFT[i++ & 3];
+ } else if (code < 55296 || code >= 57344) {
+ blocks2[i >>> 2] |= (224 | code >>> 12) << SHIFT[i++ & 3];
+ blocks2[i >>> 2] |= (128 | code >>> 6 & 63) << SHIFT[i++ & 3];
+ blocks2[i >>> 2] |= (128 | code & 63) << SHIFT[i++ & 3];
+ } else {
+ code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index) & 1023);
+ blocks2[i >>> 2] |= (240 | code >>> 18) << SHIFT[i++ & 3];
+ blocks2[i >>> 2] |= (128 | code >>> 12 & 63) << SHIFT[i++ & 3];
+ blocks2[i >>> 2] |= (128 | code >>> 6 & 63) << SHIFT[i++ & 3];
+ blocks2[i >>> 2] |= (128 | code & 63) << SHIFT[i++ & 3];
+ }
+ }
+ }
+ this.lastByteIndex = i;
+ this.bytes += i - this.start;
+ if (i >= 64) {
+ this.block = blocks2[16];
+ this.start = i - 64;
+ this.hash();
+ this.hashed = true;
+ } else {
+ this.start = i;
+ }
+ }
+ if (this.bytes > 4294967295) {
+ this.hBytes += this.bytes / 4294967296 << 0;
+ this.bytes = this.bytes % 4294967296;
+ }
+ return this;
+ };
+ Sha256.prototype.finalize = function() {
+ if (this.finalized) {
+ return;
+ }
+ this.finalized = true;
+ var blocks2 = this.blocks, i = this.lastByteIndex;
+ blocks2[16] = this.block;
+ blocks2[i >>> 2] |= EXTRA[i & 3];
+ this.block = blocks2[16];
+ if (i >= 56) {
+ if (!this.hashed) {
+ this.hash();
+ }
+ blocks2[0] = this.block;
+ blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0;
+ }
+ blocks2[14] = this.hBytes << 3 | this.bytes >>> 29;
+ blocks2[15] = this.bytes << 3;
+ this.hash();
+ };
+ Sha256.prototype.hash = function() {
+ var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6, h = this.h7, blocks2 = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;
+ for (j = 16; j < 64; ++j) {
+ t1 = blocks2[j - 15];
+ s0 = (t1 >>> 7 | t1 << 25) ^ (t1 >>> 18 | t1 << 14) ^ t1 >>> 3;
+ t1 = blocks2[j - 2];
+ s1 = (t1 >>> 17 | t1 << 15) ^ (t1 >>> 19 | t1 << 13) ^ t1 >>> 10;
+ blocks2[j] = blocks2[j - 16] + s0 + blocks2[j - 7] + s1 << 0;
+ }
+ bc = b & c;
+ for (j = 0; j < 64; j += 4) {
+ if (this.first) {
+ if (this.is224) {
+ ab = 300032;
+ t1 = blocks2[0] - 1413257819;
+ h = t1 - 150054599 << 0;
+ d = t1 + 24177077 << 0;
+ } else {
+ ab = 704751109;
+ t1 = blocks2[0] - 210244248;
+ h = t1 - 1521486534 << 0;
+ d = t1 + 143694565 << 0;
+ }
+ this.first = false;
+ } else {
+ s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10);
+ s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7);
+ ab = a & b;
+ maj = ab ^ a & c ^ bc;
+ ch = e & f ^ ~e & g;
+ t1 = h + s1 + ch + K[j] + blocks2[j];
+ t2 = s0 + maj;
+ h = d + t1 << 0;
+ d = t1 + t2 << 0;
+ }
+ s0 = (d >>> 2 | d << 30) ^ (d >>> 13 | d << 19) ^ (d >>> 22 | d << 10);
+ s1 = (h >>> 6 | h << 26) ^ (h >>> 11 | h << 21) ^ (h >>> 25 | h << 7);
+ da = d & a;
+ maj = da ^ d & b ^ ab;
+ ch = h & e ^ ~h & f;
+ t1 = g + s1 + ch + K[j + 1] + blocks2[j + 1];
+ t2 = s0 + maj;
+ g = c + t1 << 0;
+ c = t1 + t2 << 0;
+ s0 = (c >>> 2 | c << 30) ^ (c >>> 13 | c << 19) ^ (c >>> 22 | c << 10);
+ s1 = (g >>> 6 | g << 26) ^ (g >>> 11 | g << 21) ^ (g >>> 25 | g << 7);
+ cd = c & d;
+ maj = cd ^ c & a ^ da;
+ ch = g & h ^ ~g & e;
+ t1 = f + s1 + ch + K[j + 2] + blocks2[j + 2];
+ t2 = s0 + maj;
+ f = b + t1 << 0;
+ b = t1 + t2 << 0;
+ s0 = (b >>> 2 | b << 30) ^ (b >>> 13 | b << 19) ^ (b >>> 22 | b << 10);
+ s1 = (f >>> 6 | f << 26) ^ (f >>> 11 | f << 21) ^ (f >>> 25 | f << 7);
+ bc = b & c;
+ maj = bc ^ b & d ^ cd;
+ ch = f & g ^ ~f & h;
+ t1 = e + s1 + ch + K[j + 3] + blocks2[j + 3];
+ t2 = s0 + maj;
+ e = a + t1 << 0;
+ a = t1 + t2 << 0;
+ this.chromeBugWorkAround = true;
+ }
+ this.h0 = this.h0 + a << 0;
+ this.h1 = this.h1 + b << 0;
+ this.h2 = this.h2 + c << 0;
+ this.h3 = this.h3 + d << 0;
+ this.h4 = this.h4 + e << 0;
+ this.h5 = this.h5 + f << 0;
+ this.h6 = this.h6 + g << 0;
+ this.h7 = this.h7 + h << 0;
+ };
+ Sha256.prototype.hex = function() {
+ this.finalize();
+ var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7;
+ var hex = HEX_CHARS[h0 >>> 28 & 15] + HEX_CHARS[h0 >>> 24 & 15] + HEX_CHARS[h0 >>> 20 & 15] + HEX_CHARS[h0 >>> 16 & 15] + HEX_CHARS[h0 >>> 12 & 15] + HEX_CHARS[h0 >>> 8 & 15] + HEX_CHARS[h0 >>> 4 & 15] + HEX_CHARS[h0 & 15] + HEX_CHARS[h1 >>> 28 & 15] + HEX_CHARS[h1 >>> 24 & 15] + HEX_CHARS[h1 >>> 20 & 15] + HEX_CHARS[h1 >>> 16 & 15] + HEX_CHARS[h1 >>> 12 & 15] + HEX_CHARS[h1 >>> 8 & 15] + HEX_CHARS[h1 >>> 4 & 15] + HEX_CHARS[h1 & 15] + HEX_CHARS[h2 >>> 28 & 15] + HEX_CHARS[h2 >>> 24 & 15] + HEX_CHARS[h2 >>> 20 & 15] + HEX_CHARS[h2 >>> 16 & 15] + HEX_CHARS[h2 >>> 12 & 15] + HEX_CHARS[h2 >>> 8 & 15] + HEX_CHARS[h2 >>> 4 & 15] + HEX_CHARS[h2 & 15] + HEX_CHARS[h3 >>> 28 & 15] + HEX_CHARS[h3 >>> 24 & 15] + HEX_CHARS[h3 >>> 20 & 15] + HEX_CHARS[h3 >>> 16 & 15] + HEX_CHARS[h3 >>> 12 & 15] + HEX_CHARS[h3 >>> 8 & 15] + HEX_CHARS[h3 >>> 4 & 15] + HEX_CHARS[h3 & 15] + HEX_CHARS[h4 >>> 28 & 15] + HEX_CHARS[h4 >>> 24 & 15] + HEX_CHARS[h4 >>> 20 & 15] + HEX_CHARS[h4 >>> 16 & 15] + HEX_CHARS[h4 >>> 12 & 15] + HEX_CHARS[h4 >>> 8 & 15] + HEX_CHARS[h4 >>> 4 & 15] + HEX_CHARS[h4 & 15] + HEX_CHARS[h5 >>> 28 & 15] + HEX_CHARS[h5 >>> 24 & 15] + HEX_CHARS[h5 >>> 20 & 15] + HEX_CHARS[h5 >>> 16 & 15] + HEX_CHARS[h5 >>> 12 & 15] + HEX_CHARS[h5 >>> 8 & 15] + HEX_CHARS[h5 >>> 4 & 15] + HEX_CHARS[h5 & 15] + HEX_CHARS[h6 >>> 28 & 15] + HEX_CHARS[h6 >>> 24 & 15] + HEX_CHARS[h6 >>> 20 & 15] + HEX_CHARS[h6 >>> 16 & 15] + HEX_CHARS[h6 >>> 12 & 15] + HEX_CHARS[h6 >>> 8 & 15] + HEX_CHARS[h6 >>> 4 & 15] + HEX_CHARS[h6 & 15];
+ if (!this.is224) {
+ hex += HEX_CHARS[h7 >>> 28 & 15] + HEX_CHARS[h7 >>> 24 & 15] + HEX_CHARS[h7 >>> 20 & 15] + HEX_CHARS[h7 >>> 16 & 15] + HEX_CHARS[h7 >>> 12 & 15] + HEX_CHARS[h7 >>> 8 & 15] + HEX_CHARS[h7 >>> 4 & 15] + HEX_CHARS[h7 & 15];
+ }
+ return hex;
+ };
+ Sha256.prototype.toString = Sha256.prototype.hex;
+ Sha256.prototype.digest = function() {
+ this.finalize();
+ var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7;
+ var arr = [
+ h0 >>> 24 & 255,
+ h0 >>> 16 & 255,
+ h0 >>> 8 & 255,
+ h0 & 255,
+ h1 >>> 24 & 255,
+ h1 >>> 16 & 255,
+ h1 >>> 8 & 255,
+ h1 & 255,
+ h2 >>> 24 & 255,
+ h2 >>> 16 & 255,
+ h2 >>> 8 & 255,
+ h2 & 255,
+ h3 >>> 24 & 255,
+ h3 >>> 16 & 255,
+ h3 >>> 8 & 255,
+ h3 & 255,
+ h4 >>> 24 & 255,
+ h4 >>> 16 & 255,
+ h4 >>> 8 & 255,
+ h4 & 255,
+ h5 >>> 24 & 255,
+ h5 >>> 16 & 255,
+ h5 >>> 8 & 255,
+ h5 & 255,
+ h6 >>> 24 & 255,
+ h6 >>> 16 & 255,
+ h6 >>> 8 & 255,
+ h6 & 255
+ ];
+ if (!this.is224) {
+ arr.push(h7 >>> 24 & 255, h7 >>> 16 & 255, h7 >>> 8 & 255, h7 & 255);
+ }
+ return arr;
+ };
+ Sha256.prototype.array = Sha256.prototype.digest;
+ Sha256.prototype.arrayBuffer = function() {
+ this.finalize();
+ var buffer = new ArrayBuffer(this.is224 ? 28 : 32);
+ var dataView = new DataView(buffer);
+ dataView.setUint32(0, this.h0);
+ dataView.setUint32(4, this.h1);
+ dataView.setUint32(8, this.h2);
+ dataView.setUint32(12, this.h3);
+ dataView.setUint32(16, this.h4);
+ dataView.setUint32(20, this.h5);
+ dataView.setUint32(24, this.h6);
+ if (!this.is224) {
+ dataView.setUint32(28, this.h7);
+ }
+ return buffer;
+ };
+ function HmacSha256(key, is224, sharedMemory) {
+ var i, type = typeof key;
+ if (type === "string") {
+ var bytes = [], length = key.length, index = 0, code;
+ for (i = 0; i < length; ++i) {
+ code = key.charCodeAt(i);
+ if (code < 128) {
+ bytes[index++] = code;
+ } else if (code < 2048) {
+ bytes[index++] = 192 | code >>> 6;
+ bytes[index++] = 128 | code & 63;
+ } else if (code < 55296 || code >= 57344) {
+ bytes[index++] = 224 | code >>> 12;
+ bytes[index++] = 128 | code >>> 6 & 63;
+ bytes[index++] = 128 | code & 63;
+ } else {
+ code = 65536 + ((code & 1023) << 10 | key.charCodeAt(++i) & 1023);
+ bytes[index++] = 240 | code >>> 18;
+ bytes[index++] = 128 | code >>> 12 & 63;
+ bytes[index++] = 128 | code >>> 6 & 63;
+ bytes[index++] = 128 | code & 63;
+ }
+ }
+ key = bytes;
+ } else {
+ if (type === "object") {
+ if (key === null) {
+ throw new Error(ERROR);
+ } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {
+ key = new Uint8Array(key);
+ } else if (!Array.isArray(key)) {
+ if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {
+ throw new Error(ERROR);
+ }
+ }
+ } else {
+ throw new Error(ERROR);
+ }
+ }
+ if (key.length > 64) {
+ key = new Sha256(is224, true).update(key).array();
+ }
+ var oKeyPad = [], iKeyPad = [];
+ for (i = 0; i < 64; ++i) {
+ var b = key[i] || 0;
+ oKeyPad[i] = 92 ^ b;
+ iKeyPad[i] = 54 ^ b;
+ }
+ Sha256.call(this, is224, sharedMemory);
+ this.update(iKeyPad);
+ this.oKeyPad = oKeyPad;
+ this.inner = true;
+ this.sharedMemory = sharedMemory;
+ }
+ HmacSha256.prototype = new Sha256();
+ HmacSha256.prototype.finalize = function() {
+ Sha256.prototype.finalize.call(this);
+ if (this.inner) {
+ this.inner = false;
+ var innerHash = this.array();
+ Sha256.call(this, this.is224, this.sharedMemory);
+ this.update(this.oKeyPad);
+ this.update(innerHash);
+ Sha256.prototype.finalize.call(this);
+ }
+ };
+ var exports2 = createMethod();
+ exports2.sha256 = exports2;
+ exports2.sha224 = createMethod(true);
+ exports2.sha256.hmac = createHmacMethod();
+ exports2.sha224.hmac = createHmacMethod(true);
+ if (COMMON_JS) {
+ module.exports = exports2;
+ } else {
+ root.sha256 = exports2.sha256;
+ root.sha224 = exports2.sha224;
+ if (AMD) {
+ define(function() {
+ return exports2;
+ });
+ }
+ }
+ })();
+ }
+});
+export default require_sha256();
+/*! Bundled license information:
+
+js-sha256/src/sha256.js:
+ (**
+ * [js-sha256]{@link https://github.com/emn178/js-sha256}
+ *
+ * @version 0.11.0
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
+ * @copyright Chen, Yi-Cyuan 2014-2024
+ * @license MIT
+ *)
+*/
+//# sourceMappingURL=js-sha256.js.map
diff --git a/node_modules/.vite/deps/js-sha256.js.map b/node_modules/.vite/deps/js-sha256.js.map
new file mode 100644
index 0000000..248f3ca
--- /dev/null
+++ b/node_modules/.vite/deps/js-sha256.js.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["../../js-sha256/src/sha256.js"],
+ "sourcesContent": ["/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.11.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2024\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = require('crypto')\n var Buffer = require('buffer').Buffer;\n var algorithm = is224 ? 'sha224' : 'sha256';\n var bufferFrom;\n if (Buffer.from && !root.JS_SHA256_NO_BUFFER_FROM) {\n bufferFrom = Buffer.from;\n } else {\n bufferFrom = function (message) {\n return new Buffer(message);\n };\n }\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(bufferFrom(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n this.block = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >>> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >>> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >>> 2] |= (0xc0 | (code >>> 6)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >>> 2] |= (0xe0 | (code >>> 12)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >>> 2] |= (0xf0 | (code >>> 18)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | ((code >>> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >>> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >>> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n this.chromeBugWorkAround = true;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >>> 28) & 0x0F] + HEX_CHARS[(h0 >>> 24) & 0x0F] +\n HEX_CHARS[(h0 >>> 20) & 0x0F] + HEX_CHARS[(h0 >>> 16) & 0x0F] +\n HEX_CHARS[(h0 >>> 12) & 0x0F] + HEX_CHARS[(h0 >>> 8) & 0x0F] +\n HEX_CHARS[(h0 >>> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >>> 28) & 0x0F] + HEX_CHARS[(h1 >>> 24) & 0x0F] +\n HEX_CHARS[(h1 >>> 20) & 0x0F] + HEX_CHARS[(h1 >>> 16) & 0x0F] +\n HEX_CHARS[(h1 >>> 12) & 0x0F] + HEX_CHARS[(h1 >>> 8) & 0x0F] +\n HEX_CHARS[(h1 >>> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >>> 28) & 0x0F] + HEX_CHARS[(h2 >>> 24) & 0x0F] +\n HEX_CHARS[(h2 >>> 20) & 0x0F] + HEX_CHARS[(h2 >>> 16) & 0x0F] +\n HEX_CHARS[(h2 >>> 12) & 0x0F] + HEX_CHARS[(h2 >>> 8) & 0x0F] +\n HEX_CHARS[(h2 >>> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >>> 28) & 0x0F] + HEX_CHARS[(h3 >>> 24) & 0x0F] +\n HEX_CHARS[(h3 >>> 20) & 0x0F] + HEX_CHARS[(h3 >>> 16) & 0x0F] +\n HEX_CHARS[(h3 >>> 12) & 0x0F] + HEX_CHARS[(h3 >>> 8) & 0x0F] +\n HEX_CHARS[(h3 >>> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >>> 28) & 0x0F] + HEX_CHARS[(h4 >>> 24) & 0x0F] +\n HEX_CHARS[(h4 >>> 20) & 0x0F] + HEX_CHARS[(h4 >>> 16) & 0x0F] +\n HEX_CHARS[(h4 >>> 12) & 0x0F] + HEX_CHARS[(h4 >>> 8) & 0x0F] +\n HEX_CHARS[(h4 >>> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >>> 28) & 0x0F] + HEX_CHARS[(h5 >>> 24) & 0x0F] +\n HEX_CHARS[(h5 >>> 20) & 0x0F] + HEX_CHARS[(h5 >>> 16) & 0x0F] +\n HEX_CHARS[(h5 >>> 12) & 0x0F] + HEX_CHARS[(h5 >>> 8) & 0x0F] +\n HEX_CHARS[(h5 >>> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >>> 28) & 0x0F] + HEX_CHARS[(h6 >>> 24) & 0x0F] +\n HEX_CHARS[(h6 >>> 20) & 0x0F] + HEX_CHARS[(h6 >>> 16) & 0x0F] +\n HEX_CHARS[(h6 >>> 12) & 0x0F] + HEX_CHARS[(h6 >>> 8) & 0x0F] +\n HEX_CHARS[(h6 >>> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >>> 28) & 0x0F] + HEX_CHARS[(h7 >>> 24) & 0x0F] +\n HEX_CHARS[(h7 >>> 20) & 0x0F] + HEX_CHARS[(h7 >>> 16) & 0x0F] +\n HEX_CHARS[(h7 >>> 12) & 0x0F] + HEX_CHARS[(h7 >>> 8) & 0x0F] +\n HEX_CHARS[(h7 >>> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >>> 24) & 0xFF, (h0 >>> 16) & 0xFF, (h0 >>> 8) & 0xFF, h0 & 0xFF,\n (h1 >>> 24) & 0xFF, (h1 >>> 16) & 0xFF, (h1 >>> 8) & 0xFF, h1 & 0xFF,\n (h2 >>> 24) & 0xFF, (h2 >>> 16) & 0xFF, (h2 >>> 8) & 0xFF, h2 & 0xFF,\n (h3 >>> 24) & 0xFF, (h3 >>> 16) & 0xFF, (h3 >>> 8) & 0xFF, h3 & 0xFF,\n (h4 >>> 24) & 0xFF, (h4 >>> 16) & 0xFF, (h4 >>> 8) & 0xFF, h4 & 0xFF,\n (h5 >>> 24) & 0xFF, (h5 >>> 16) & 0xFF, (h5 >>> 8) & 0xFF, h5 & 0xFF,\n (h6 >>> 24) & 0xFF, (h6 >>> 16) & 0xFF, (h6 >>> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >>> 24) & 0xFF, (h7 >>> 16) & 0xFF, (h7 >>> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >>> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >>> 12));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >>> 18));\n bytes[index++] = (0x80 | ((code >>> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >>> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n"],
+ "mappings": "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",
+ "names": ["blocks", "exports"]
+}
diff --git a/node_modules/.vite/deps/package.json b/node_modules/.vite/deps/package.json
new file mode 100644
index 0000000..3dbc1ca
--- /dev/null
+++ b/node_modules/.vite/deps/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "module"
+}
diff --git a/node_modules/@dicebear/core/LICENSE b/node_modules/@dicebear/core/LICENSE
new file mode 100644
index 0000000..b117e2b
--- /dev/null
+++ b/node_modules/@dicebear/core/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Florian Körner
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@dicebear/core/README.md b/node_modules/@dicebear/core/README.md
new file mode 100644
index 0000000..6cb4492
--- /dev/null
+++ b/node_modules/@dicebear/core/README.md
@@ -0,0 +1,26 @@
+
DiceBear
+
+
+
+
+
+
+
+
+
+
+With DiceBear you can create awesome avatars for your project in no time.
+Whether you are looking for abstract shapes or lovingly designed characters, you
+will find something suitable among our avatar styles. And no matter how and for
+what you want to use the avatars, DiceBear offers the right solution!
+
+In addition to purely random avatars, you can also create deterministic avatars
+for user identities. With the built-in PRNG you create the same avatar over and
+over again based on a seed. But also individual avatars are possible! Just use
+the countless options that each avatar style provides.
+
+And thanks to the JavaScript library, HTTP API, CLI, Figma plugin and
+Playground, your next avatar is always just a stone's throw away!
+
+[Playground](https://www.dicebear.com/playground) |
+[Documentation](https://www.dicebear.com/introduction)
diff --git a/node_modules/@dicebear/core/lib/core.d.ts b/node_modules/@dicebear/core/lib/core.d.ts
new file mode 100644
index 0000000..346629b
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/core.d.ts
@@ -0,0 +1,2 @@
+import type { Result, Style, StyleOptions } from './types.js';
+export declare function createAvatar
(style: Style, options?: StyleOptions): Result;
diff --git a/node_modules/@dicebear/core/lib/core.js b/node_modules/@dicebear/core/lib/core.js
new file mode 100644
index 0000000..f37bcb7
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/core.js
@@ -0,0 +1,67 @@
+import * as svgUtils from './utils/svg.js';
+import { merge as mergeOptions } from './utils/options.js';
+import { create as createPrng } from './utils/prng.js';
+import * as license from './utils/license.js';
+import { getBackgroundColors } from './utils/color.js';
+export function createAvatar(style, options = {}) {
+ var _a, _b, _c, _d, _e;
+ options = mergeOptions(style, options);
+ const prng = createPrng(options.seed);
+ const result = style.create({ prng: prng, options });
+ const backgroundType = prng.pick((_a = options.backgroundType) !== null && _a !== void 0 ? _a : [], 'solid');
+ const { primary: primaryBackgroundColor, secondary: secondaryBackgroundColor, } = getBackgroundColors(prng, (_b = options.backgroundColor) !== null && _b !== void 0 ? _b : [], backgroundType);
+ const backgroundRotation = prng.integer(((_c = options.backgroundRotation) === null || _c === void 0 ? void 0 : _c.length)
+ ? Math.min(...options.backgroundRotation)
+ : 0, ((_d = options.backgroundRotation) === null || _d === void 0 ? void 0 : _d.length)
+ ? Math.max(...options.backgroundRotation)
+ : 0);
+ if (options.size) {
+ result.attributes.width = options.size.toString();
+ result.attributes.height = options.size.toString();
+ }
+ if (options.scale !== undefined && options.scale !== 100) {
+ result.body = svgUtils.addScale(result, options.scale);
+ }
+ if (options.flip) {
+ result.body = svgUtils.addFlip(result);
+ }
+ if (options.rotate) {
+ result.body = svgUtils.addRotate(result, options.rotate);
+ }
+ if (options.translateX || options.translateY) {
+ result.body = svgUtils.addTranslate(result, options.translateX, options.translateY);
+ }
+ if (primaryBackgroundColor !== 'transparent' &&
+ secondaryBackgroundColor !== 'transparent') {
+ result.body = svgUtils.addBackground(result, primaryBackgroundColor, secondaryBackgroundColor, backgroundType, backgroundRotation);
+ }
+ if (options.radius || options.clip) {
+ result.body = svgUtils.addViewboxMask(result, (_e = options.radius) !== null && _e !== void 0 ? _e : 0);
+ }
+ if (options.randomizeIds) {
+ // Reduces the occurrence of ID collisions when rendering multiple avatars on one HTML page.
+ result.body = svgUtils.randomizeIds(result);
+ }
+ const attributes = svgUtils.createAttrString(result);
+ const metadata = license.xml(style);
+ const svg = `${metadata}${result.body} `;
+ return {
+ toString: () => svg,
+ toJson: () => {
+ var _a;
+ return ({
+ svg: svg,
+ extra: {
+ primaryBackgroundColor,
+ secondaryBackgroundColor,
+ backgroundType,
+ backgroundRotation,
+ ...(_a = result.extra) === null || _a === void 0 ? void 0 : _a.call(result),
+ },
+ });
+ },
+ toDataUri: () => {
+ return `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;
+ },
+ };
+}
diff --git a/node_modules/@dicebear/core/lib/index.d.ts b/node_modules/@dicebear/core/lib/index.d.ts
new file mode 100644
index 0000000..f728f7a
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/index.d.ts
@@ -0,0 +1,12 @@
+/*!
+ * DiceBear (@dicebear/core)
+ *
+ * Code licensed under MIT (https://github.com/dicebear/dicebear/blob/main/LICENSE)
+ * Copyright (c) 2024 Florian Körner
+ */
+import * as license from './utils/license.js';
+import * as escape from './utils/escape.js';
+export * from './core.js';
+export * from './schema.js';
+export * from './types.js';
+export { license, escape };
diff --git a/node_modules/@dicebear/core/lib/index.js b/node_modules/@dicebear/core/lib/index.js
new file mode 100644
index 0000000..f728f7a
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/index.js
@@ -0,0 +1,12 @@
+/*!
+ * DiceBear (@dicebear/core)
+ *
+ * Code licensed under MIT (https://github.com/dicebear/dicebear/blob/main/LICENSE)
+ * Copyright (c) 2024 Florian Körner
+ */
+import * as license from './utils/license.js';
+import * as escape from './utils/escape.js';
+export * from './core.js';
+export * from './schema.js';
+export * from './types.js';
+export { license, escape };
diff --git a/node_modules/@dicebear/core/lib/schema.d.ts b/node_modules/@dicebear/core/lib/schema.d.ts
new file mode 100644
index 0000000..1172ede
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/schema.d.ts
@@ -0,0 +1,2 @@
+import { JSONSchema7 } from 'json-schema';
+export declare const schema: JSONSchema7;
diff --git a/node_modules/@dicebear/core/lib/schema.js b/node_modules/@dicebear/core/lib/schema.js
new file mode 100644
index 0000000..57bc9a6
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/schema.js
@@ -0,0 +1,81 @@
+export const schema = {
+ type: 'object',
+ $schema: 'http://json-schema.org/draft-07/schema#',
+ properties: {
+ seed: {
+ type: 'string',
+ },
+ flip: {
+ type: 'boolean',
+ default: false,
+ },
+ rotate: {
+ type: 'integer',
+ minimum: 0,
+ maximum: 360,
+ default: 0,
+ },
+ scale: {
+ type: 'integer',
+ minimum: 0,
+ maximum: 200,
+ default: 100,
+ },
+ radius: {
+ type: 'integer',
+ minimum: 0,
+ maximum: 50,
+ default: 0,
+ },
+ size: {
+ type: 'integer',
+ minimum: 1,
+ },
+ backgroundColor: {
+ type: 'array',
+ items: {
+ type: 'string',
+ pattern: '^(transparent|[a-fA-F0-9]{6})$',
+ },
+ },
+ backgroundType: {
+ type: 'array',
+ items: {
+ type: 'string',
+ enum: ['solid', 'gradientLinear'],
+ },
+ default: ['solid'],
+ },
+ backgroundRotation: {
+ type: 'array',
+ items: {
+ type: 'integer',
+ minimum: -360,
+ maximum: 360,
+ },
+ default: [
+ 0, 360,
+ ],
+ },
+ translateX: {
+ type: 'integer',
+ minimum: -100,
+ maximum: 100,
+ default: 0,
+ },
+ translateY: {
+ type: 'integer',
+ minimum: -100,
+ maximum: 100,
+ default: 0,
+ },
+ clip: {
+ type: 'boolean',
+ default: true,
+ },
+ randomizeIds: {
+ type: 'boolean',
+ default: false,
+ },
+ },
+};
diff --git a/node_modules/@dicebear/core/lib/types.d.ts b/node_modules/@dicebear/core/lib/types.d.ts
new file mode 100644
index 0000000..3610633
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/types.d.ts
@@ -0,0 +1,73 @@
+import type { JSONSchema7 } from 'json-schema';
+export interface ResultConvertOptions {
+ includeExif?: boolean;
+}
+export interface Result {
+ toString(): string;
+ toJson(): {
+ svg: string;
+ extra: Record;
+ };
+ toDataUri(): string;
+}
+export type BackgroundType = 'solid' | 'gradientLinear';
+export interface Options {
+ seed?: string;
+ flip?: boolean;
+ rotate?: number;
+ scale?: number;
+ radius?: number;
+ size?: number;
+ backgroundColor?: string[];
+ backgroundType?: BackgroundType[];
+ backgroundRotation?: number[];
+ translateX?: number;
+ translateY?: number;
+ clip?: boolean;
+ randomizeIds?: boolean;
+}
+export interface Exif {
+ [key: string]: string;
+}
+export type SchemaDefaults = Record;
+export interface Prng {
+ seed: string;
+ next(): void;
+ bool(likelihood?: number): boolean;
+ integer(min: number, max: number): number;
+ pick(arr: T[], fallback: T): T;
+ pick(arr: T[]): T | undefined;
+ shuffle(arr: T[]): T[];
+ string(length: number, characters?: string): string;
+}
+export type StyleSchema = JSONSchema7;
+export type StyleOptions = Partial;
+export interface StyleCreateProps {
+ prng: Prng;
+ options: StyleOptions;
+}
+export type StyleCreate = (props: StyleCreateProps) => StyleCreateResult;
+export interface StyleCreateResultAttributes {
+ viewBox: string;
+ [key: string]: string;
+}
+export interface StyleCreateResult {
+ attributes: StyleCreateResultAttributes;
+ body: string;
+ extra?: () => Record;
+}
+export interface StyleMeta {
+ title?: string;
+ source?: string;
+ creator?: string;
+ homepage?: string;
+ license?: {
+ name: string;
+ url: string;
+ };
+}
+export interface Style {
+ meta?: StyleMeta;
+ schema?: StyleSchema;
+ create: StyleCreate;
+}
diff --git a/node_modules/@dicebear/core/lib/types.js b/node_modules/@dicebear/core/lib/types.js
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/types.js
@@ -0,0 +1 @@
+export {};
diff --git a/node_modules/@dicebear/core/lib/utils/color.d.ts b/node_modules/@dicebear/core/lib/utils/color.d.ts
new file mode 100644
index 0000000..079f199
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/color.d.ts
@@ -0,0 +1,6 @@
+import { Prng } from '../types.js';
+export declare function convertColor(color: string): string;
+export declare function getBackgroundColors(prng: Prng, backgroundColor: string[], backgroundType: 'solid' | 'gradientLinear'): {
+ primary: string;
+ secondary: string;
+};
diff --git a/node_modules/@dicebear/core/lib/utils/color.js b/node_modules/@dicebear/core/lib/utils/color.js
new file mode 100644
index 0000000..f560da4
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/color.js
@@ -0,0 +1,34 @@
+export function convertColor(color) {
+ return 'transparent' === color ? color : `#${color}`;
+}
+export function getBackgroundColors(prng, backgroundColor, backgroundType) {
+ var _a;
+ let shuffledBackgroundColors = prng.shuffle(backgroundColor);
+ if (shuffledBackgroundColors.length <= 1) {
+ // If no background colour or only one background colour has been selected,
+ // the random sorting logic can be omitted.
+ shuffledBackgroundColors = backgroundColor;
+ // A function call should in any case make an identical number of calls to the PRNG.
+ prng.next();
+ }
+ else if (backgroundColor.length == 2 && backgroundType == 'gradientLinear') {
+ // If the background is to be a colour gradient and exactly two background
+ // colours have been specified, do not sort them randomly. In this case, we
+ // assume that the order of the background colours was chosen on purpose.
+ shuffledBackgroundColors = backgroundColor;
+ // A function call should in any case make an identical number of calls to the PRNG.
+ prng.next();
+ }
+ else {
+ shuffledBackgroundColors = prng.shuffle(backgroundColor);
+ }
+ if (shuffledBackgroundColors.length === 0) {
+ shuffledBackgroundColors = ['transparent'];
+ }
+ const primary = shuffledBackgroundColors[0];
+ const secondary = (_a = shuffledBackgroundColors[1]) !== null && _a !== void 0 ? _a : shuffledBackgroundColors[0];
+ return {
+ primary: convertColor(primary),
+ secondary: convertColor(secondary),
+ };
+}
diff --git a/node_modules/@dicebear/core/lib/utils/escape.d.ts b/node_modules/@dicebear/core/lib/utils/escape.d.ts
new file mode 100644
index 0000000..9c6f0c7
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/escape.d.ts
@@ -0,0 +1 @@
+export declare function xml(content: string): string;
diff --git a/node_modules/@dicebear/core/lib/utils/escape.js b/node_modules/@dicebear/core/lib/utils/escape.js
new file mode 100644
index 0000000..b797b26
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/escape.js
@@ -0,0 +1,8 @@
+export function xml(content) {
+ return content
+ .replace(/&/g, '&')
+ .replace(/'/g, ''')
+ .replace(/"/g, '"')
+ .replace(//g, '>');
+}
diff --git a/node_modules/@dicebear/core/lib/utils/license.d.ts b/node_modules/@dicebear/core/lib/utils/license.d.ts
new file mode 100644
index 0000000..8363d94
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/license.d.ts
@@ -0,0 +1,3 @@
+import { Style } from '../types.js';
+export declare function xml(style: Style): string;
+export declare function text(style: Style): string;
diff --git a/node_modules/@dicebear/core/lib/utils/license.js b/node_modules/@dicebear/core/lib/utils/license.js
new file mode 100644
index 0000000..506d6d2
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/license.js
@@ -0,0 +1,54 @@
+import * as _ from './escape.js';
+export function xml(style) {
+ var _a, _b, _c, _d, _e, _f, _g;
+ const title = (_a = style.meta) === null || _a === void 0 ? void 0 : _a.title;
+ const creator = (_b = style.meta) === null || _b === void 0 ? void 0 : _b.creator;
+ const source = (_c = style.meta) === null || _c === void 0 ? void 0 : _c.source;
+ const license = (_e = (_d = style.meta) === null || _d === void 0 ? void 0 : _d.license) === null || _e === void 0 ? void 0 : _e.url;
+ const rights = text(style);
+ if (!title && !creator && !source && !license && !rights) {
+ return '';
+ }
+ // https://nsteffel.github.io/dublin_core_generator/generator.html
+ return ('' +
+ '' +
+ '' +
+ (title ? `${_.xml(title)} ` : '') +
+ (creator ? `${_.xml(creator)} ` : '') +
+ (source
+ ? `${_.xml((_g = (_f = style.meta) === null || _f === void 0 ? void 0 : _f.source) !== null && _g !== void 0 ? _g : '')} `
+ : '') +
+ (license
+ ? `${_.xml(license)} `
+ : '') +
+ (rights ? `${_.xml(rights)} ` : '') +
+ ' ' +
+ ' ' +
+ ' ');
+}
+export function text(style) {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
+ let title = ((_a = style.meta) === null || _a === void 0 ? void 0 : _a.title) ? `„${(_b = style.meta) === null || _b === void 0 ? void 0 : _b.title}”` : 'Design';
+ let creator = `„${(_d = (_c = style.meta) === null || _c === void 0 ? void 0 : _c.creator) !== null && _d !== void 0 ? _d : 'Unknown'}”`;
+ if ((_e = style.meta) === null || _e === void 0 ? void 0 : _e.source) {
+ title += ` (${style.meta.source})`;
+ }
+ let result = '';
+ if (((_g = (_f = style.meta) === null || _f === void 0 ? void 0 : _f.license) === null || _g === void 0 ? void 0 : _g.name) !== 'MIT' &&
+ ((_h = style.meta) === null || _h === void 0 ? void 0 : _h.creator) !== 'DiceBear' &&
+ ((_j = style.meta) === null || _j === void 0 ? void 0 : _j.title)) {
+ result += 'Remix of ';
+ }
+ result += `${title} by ${creator}`;
+ if ((_l = (_k = style.meta) === null || _k === void 0 ? void 0 : _k.license) === null || _l === void 0 ? void 0 : _l.name) {
+ result += `, licensed under „${(_o = (_m = style.meta) === null || _m === void 0 ? void 0 : _m.license) === null || _o === void 0 ? void 0 : _o.name}”`;
+ if ((_q = (_p = style.meta) === null || _p === void 0 ? void 0 : _p.license) === null || _q === void 0 ? void 0 : _q.url) {
+ result += ` (${style.meta.license.url})`;
+ }
+ }
+ return result;
+}
diff --git a/node_modules/@dicebear/core/lib/utils/options.d.ts b/node_modules/@dicebear/core/lib/utils/options.d.ts
new file mode 100644
index 0000000..6cf5565
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/options.d.ts
@@ -0,0 +1,3 @@
+import type { SchemaDefaults, Style, StyleOptions, StyleSchema } from '../types.js';
+export declare function defaults(schema: StyleSchema): SchemaDefaults;
+export declare function merge(style: Style, options: StyleOptions): StyleOptions;
diff --git a/node_modules/@dicebear/core/lib/utils/options.js b/node_modules/@dicebear/core/lib/utils/options.js
new file mode 100644
index 0000000..48f2160
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/options.js
@@ -0,0 +1,32 @@
+import { schema } from '../schema.js';
+export function defaults(schema) {
+ var _a;
+ let result = {};
+ let props = (_a = schema.properties) !== null && _a !== void 0 ? _a : {};
+ Object.keys(props).forEach((key) => {
+ let val = props[key];
+ if (typeof val === 'object' && undefined !== val.default) {
+ if (Array.isArray(val.default)) {
+ result[key] = [...val.default];
+ }
+ else if (typeof val.default === 'object') {
+ result[key] = { ...val.default };
+ }
+ else {
+ result[key] = val.default;
+ }
+ }
+ });
+ return result;
+}
+export function merge(style, options) {
+ var _a;
+ let result = {
+ ...defaults(schema),
+ ...defaults((_a = style.schema) !== null && _a !== void 0 ? _a : {}),
+ ...options,
+ };
+ // Return a complete copy because the styles could partially customize the
+ // options and thus modify nested objects and arrays.
+ return JSON.parse(JSON.stringify(result));
+}
diff --git a/node_modules/@dicebear/core/lib/utils/prng.d.ts b/node_modules/@dicebear/core/lib/utils/prng.d.ts
new file mode 100644
index 0000000..fb87266
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/prng.d.ts
@@ -0,0 +1,2 @@
+import type { Prng } from '../types.js';
+export declare function create(seed?: string): Prng;
diff --git a/node_modules/@dicebear/core/lib/utils/prng.js b/node_modules/@dicebear/core/lib/utils/prng.js
new file mode 100644
index 0000000..4deea61
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/prng.js
@@ -0,0 +1,67 @@
+const MIN = -2147483648;
+const MAX = 2147483647;
+function xorshift(value) {
+ value ^= value << 13;
+ value ^= value >> 17;
+ value ^= value << 5;
+ return value;
+}
+function hashSeed(seed) {
+ let hash = 0;
+ for (let i = 0; i < seed.length; i++) {
+ hash = ((hash << 5) - hash + seed.charCodeAt(i)) | 0;
+ hash = xorshift(hash);
+ }
+ return hash;
+}
+export function create(seed = '') {
+ // Ensure that seed is a string
+ seed = seed.toString();
+ let value = hashSeed(seed) || 1;
+ const next = () => (value = xorshift(value));
+ const integer = (min, max) => {
+ return Math.floor(((next() - MIN) / (MAX - MIN)) * (max + 1 - min) + min);
+ };
+ return {
+ seed,
+ next,
+ bool(likelihood = 50) {
+ return integer(1, 100) <= likelihood;
+ },
+ integer(min, max) {
+ return integer(min, max);
+ },
+ pick(arr, fallback) {
+ var _a;
+ if (arr.length === 0) {
+ next();
+ return fallback;
+ }
+ return (_a = arr[integer(0, arr.length - 1)]) !== null && _a !== void 0 ? _a : fallback;
+ },
+ shuffle(arr) {
+ // Each method call should call the `next` function only once.
+ // Therefore, we use a separate instance of the PRNG here.
+ const internalPrng = create(next().toString());
+ // Fisher-Yates shuffle algorithm - We do not use the Array.sort method
+ // because it is not stable and produces different results when used in
+ // different browsers. See: https://github.com/dicebear/dicebear/issues/394
+ const workingArray = [...arr];
+ for (let i = workingArray.length - 1; i > 0; i--) {
+ const j = internalPrng.integer(0, i);
+ [workingArray[i], workingArray[j]] = [workingArray[j], workingArray[i]];
+ }
+ return workingArray;
+ },
+ string(length, characters = 'abcdefghijklmnopqrstuvwxyz1234567890') {
+ // Each method call should call the `next` function only once.
+ // Therefore, we use a separate instance of the PRNG here.
+ const internalPrng = create(next().toString());
+ let str = '';
+ for (let i = 0; i < length; i++) {
+ str += characters[internalPrng.integer(0, characters.length - 1)];
+ }
+ return str;
+ },
+ };
+}
diff --git a/node_modules/@dicebear/core/lib/utils/svg.d.ts b/node_modules/@dicebear/core/lib/utils/svg.d.ts
new file mode 100644
index 0000000..591d481
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/svg.d.ts
@@ -0,0 +1,15 @@
+import type { BackgroundType, StyleCreateResult } from '../types.js';
+export declare function getViewBox(result: StyleCreateResult): {
+ x: number;
+ y: number;
+ width: number;
+ height: number;
+};
+export declare function addBackground(result: StyleCreateResult, primaryColor: string, secondaryColor: string, type: BackgroundType, rotation: number): string;
+export declare function addScale(result: StyleCreateResult, scale: number): string;
+export declare function addTranslate(result: StyleCreateResult, x?: number, y?: number): string;
+export declare function addRotate(result: StyleCreateResult, rotate: number): string;
+export declare function addFlip(result: StyleCreateResult): string;
+export declare function addViewboxMask(result: StyleCreateResult, radius: number): string;
+export declare function createAttrString(result: StyleCreateResult): string;
+export declare function randomizeIds(result: StyleCreateResult): string;
diff --git a/node_modules/@dicebear/core/lib/utils/svg.js b/node_modules/@dicebear/core/lib/utils/svg.js
new file mode 100644
index 0000000..e2e4c52
--- /dev/null
+++ b/node_modules/@dicebear/core/lib/utils/svg.js
@@ -0,0 +1,79 @@
+import * as escape from './escape.js';
+import { create as createPrng } from './prng.js';
+export function getViewBox(result) {
+ let viewBox = result.attributes['viewBox'].split(' ');
+ let x = parseInt(viewBox[0]);
+ let y = parseInt(viewBox[1]);
+ let width = parseInt(viewBox[2]);
+ let height = parseInt(viewBox[3]);
+ return {
+ x,
+ y,
+ width,
+ height,
+ };
+}
+export function addBackground(result, primaryColor, secondaryColor, type, rotation) {
+ let { width, height, x, y } = getViewBox(result);
+ const solidBackground = ` `;
+ switch (type) {
+ case 'solid':
+ return solidBackground + result.body;
+ case 'gradientLinear':
+ return (` ` +
+ `` +
+ `` +
+ ` ` +
+ ` ` +
+ ` ` +
+ ` ` +
+ result.body);
+ }
+}
+export function addScale(result, scale) {
+ let { width, height, x, y } = getViewBox(result);
+ let percent = scale ? (scale - 100) / 100 : 0;
+ let translateX = (width / 2 + x) * percent * -1;
+ let translateY = (height / 2 + y) * percent * -1;
+ return `${result.body} `;
+}
+export function addTranslate(result, x, y) {
+ let viewBox = getViewBox(result);
+ let translateX = (viewBox.width + viewBox.x * 2) * ((x !== null && x !== void 0 ? x : 0) / 100);
+ let translateY = (viewBox.height + viewBox.y * 2) * ((y !== null && y !== void 0 ? y : 0) / 100);
+ return `${result.body} `;
+}
+export function addRotate(result, rotate) {
+ let { width, height, x, y } = getViewBox(result);
+ return `${result.body} `;
+}
+export function addFlip(result) {
+ let { width, x } = getViewBox(result);
+ return `${result.body} `;
+}
+export function addViewboxMask(result, radius) {
+ let { width, height, x, y } = getViewBox(result);
+ let rx = radius ? (width * radius) / 100 : 0;
+ let ry = radius ? (height * radius) / 100 : 0;
+ return (`` +
+ ` ` +
+ ` ` +
+ `${result.body} `);
+}
+export function createAttrString(result) {
+ const attributes = {
+ xmlns: 'http://www.w3.org/2000/svg',
+ ...result.attributes,
+ };
+ return Object.keys(attributes)
+ .map((attr) => `${escape.xml(attr)}="${escape.xml(attributes[attr])}"`)
+ .join(' ');
+}
+export function randomizeIds(result) {
+ const prng = createPrng(Math.random().toString());
+ const ids = {};
+ return result.body.replace(/(id="|url\(#)([a-z0-9-_]+)([")])/gi, (match, m1, m2, m3) => {
+ ids[m2] = ids[m2] || prng.string(8);
+ return `${m1}${ids[m2]}${m3}`;
+ });
+}
diff --git a/node_modules/@dicebear/core/package.json b/node_modules/@dicebear/core/package.json
new file mode 100644
index 0000000..e6145d1
--- /dev/null
+++ b/node_modules/@dicebear/core/package.json
@@ -0,0 +1,50 @@
+{
+ "name": "@dicebear/core",
+ "version": "9.2.2",
+ "description": "An avatar library for designers and developers.",
+ "keywords": [
+ "avatar",
+ "identicon"
+ ],
+ "homepage": "https://www.dicebear.com",
+ "bugs": {
+ "url": "https://github.com/dicebear/dicebear/issues"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/dicebear/dicebear.git"
+ },
+ "license": "MIT",
+ "author": "Florian Körner ",
+ "type": "module",
+ "main": "./lib/index.js",
+ "exports": "./lib/index.js",
+ "types": "./lib/index.d.ts",
+ "files": [
+ "LICENSE",
+ "lib",
+ "README.md"
+ ],
+ "scripts": {
+ "prebuild": "del-cli lib",
+ "build": "tsc",
+ "prepublishOnly": "npm run build",
+ "test": "uvu tests"
+ },
+ "dependencies": {
+ "@types/json-schema": "^7.0.11"
+ },
+ "devDependencies": {
+ "@tsconfig/recommended": "^1.0.2",
+ "del-cli": "^5.0.0",
+ "typescript": "^5.1.6",
+ "uvu": "^0.5.6"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "gitHead": "bf5b31d047f707f50299142660bc89ef020d9b24"
+}
diff --git a/node_modules/@dicebear/micah/LICENSE b/node_modules/@dicebear/micah/LICENSE
new file mode 100644
index 0000000..92b5db6
--- /dev/null
+++ b/node_modules/@dicebear/micah/LICENSE
@@ -0,0 +1,34 @@
+Licenses
+--------
+
+# Design
+Applies to all design files in this package.
+
+Source: Avatar Illustration System (https://www.figma.com/community/file/829741575478342595)
+Designer: Micah Lanier (https://dribbble.com/micahlanier)
+License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
+
+# Code
+Applies to all non-design files in this package.
+
+MIT License
+
+Copyright (c) 2024 Florian Körner
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@dicebear/micah/README.md b/node_modules/@dicebear/micah/README.md
new file mode 100644
index 0000000..c858dab
--- /dev/null
+++ b/node_modules/@dicebear/micah/README.md
@@ -0,0 +1,30 @@
+ DiceBear Micah
+
+ Avatar Style for DiceBear
+ Avatar Illustration System by Micah Lanier
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The avatar style is based on Avatar Illustration System by
+ Micah Lanier , licensed under
+ CC BY 4.0 . / Remix of the original.
+
+
+ See license overview for more information.
+
+
+
+
+ Read Documentation
+
+
diff --git a/node_modules/@dicebear/micah/lib/components/base.d.ts b/node_modules/@dicebear/micah/lib/components/base.d.ts
new file mode 100644
index 0000000..f089f91
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/base.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const base: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/base.js b/node_modules/@dicebear/micah/lib/components/base.js
new file mode 100644
index 0000000..9a6b8fe
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/base.js
@@ -0,0 +1,10 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const base = {
+ 'standard': (components, colors) => { var _a, _b; return `${(_b = (_a = components.facialHair) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+};
diff --git a/node_modules/@dicebear/micah/lib/components/earrings.d.ts b/node_modules/@dicebear/micah/lib/components/earrings.d.ts
new file mode 100644
index 0000000..4f36440
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/earrings.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const earrings: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/earrings.js b/node_modules/@dicebear/micah/lib/components/earrings.js
new file mode 100644
index 0000000..0f95e64
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/earrings.js
@@ -0,0 +1,11 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const earrings = {
+ 'hoop': (components, colors) => ` `,
+ 'stud': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/components/ears.d.ts b/node_modules/@dicebear/micah/lib/components/ears.d.ts
new file mode 100644
index 0000000..3f5be6f
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/ears.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const ears: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/ears.js b/node_modules/@dicebear/micah/lib/components/ears.js
new file mode 100644
index 0000000..04a8f74
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/ears.js
@@ -0,0 +1,11 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const ears = {
+ 'attached': (components, colors) => { var _a, _b; return `${(_b = (_a = components.earrings) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+ 'detached': (components, colors) => { var _a, _b; return `${(_b = (_a = components.earrings) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+};
diff --git a/node_modules/@dicebear/micah/lib/components/eyebrows.d.ts b/node_modules/@dicebear/micah/lib/components/eyebrows.d.ts
new file mode 100644
index 0000000..6e7bb6b
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/eyebrows.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const eyebrows: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/eyebrows.js b/node_modules/@dicebear/micah/lib/components/eyebrows.js
new file mode 100644
index 0000000..777970d
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/eyebrows.js
@@ -0,0 +1,13 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const eyebrows = {
+ 'up': (components, colors) => ` `,
+ 'down': (components, colors) => ` `,
+ 'eyelashesUp': (components, colors) => ` `,
+ 'eyelashesDown': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/components/eyes.d.ts b/node_modules/@dicebear/micah/lib/components/eyes.d.ts
new file mode 100644
index 0000000..b81bc72
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/eyes.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const eyes: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/eyes.js b/node_modules/@dicebear/micah/lib/components/eyes.js
new file mode 100644
index 0000000..2ca8ced
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/eyes.js
@@ -0,0 +1,14 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const eyes = {
+ 'eyes': (components, colors) => { var _a, _b; return `${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+ 'round': (components, colors) => { var _a, _b; return `${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+ 'eyesShadow': (components, colors) => { var _a, _b; return `${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+ 'smiling': (components, colors) => { var _a, _b; return `${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+ 'smilingShadow': (components, colors) => { var _a, _b; return `${(_b = (_a = components.glasses) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} `; },
+};
diff --git a/node_modules/@dicebear/micah/lib/components/facialHair.d.ts b/node_modules/@dicebear/micah/lib/components/facialHair.d.ts
new file mode 100644
index 0000000..e1d5df9
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/facialHair.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const facialHair: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/facialHair.js b/node_modules/@dicebear/micah/lib/components/facialHair.js
new file mode 100644
index 0000000..cad405f
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/facialHair.js
@@ -0,0 +1,11 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const facialHair = {
+ 'beard': (components, colors) => ` `,
+ 'scruff': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/components/glasses.d.ts b/node_modules/@dicebear/micah/lib/components/glasses.d.ts
new file mode 100644
index 0000000..751b9ed
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/glasses.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const glasses: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/glasses.js b/node_modules/@dicebear/micah/lib/components/glasses.js
new file mode 100644
index 0000000..2a1c5af
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/glasses.js
@@ -0,0 +1,11 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const glasses = {
+ 'round': (components, colors) => ` `,
+ 'square': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/components/hair.d.ts b/node_modules/@dicebear/micah/lib/components/hair.d.ts
new file mode 100644
index 0000000..0fbc1dc
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/hair.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const hair: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/hair.js b/node_modules/@dicebear/micah/lib/components/hair.js
new file mode 100644
index 0000000..aed35c1
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/hair.js
@@ -0,0 +1,17 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const hair = {
+ 'fonze': (components, colors) => ` `,
+ 'mrT': (components, colors) => ` `,
+ 'dougFunny': (components, colors) => ` `,
+ 'mrClean': (components, colors) => ` `,
+ 'dannyPhantom': (components, colors) => ` `,
+ 'full': (components, colors) => ` `,
+ 'turban': (components, colors) => ` `,
+ 'pixie': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/components/index.d.ts b/node_modules/@dicebear/micah/lib/components/index.d.ts
new file mode 100644
index 0000000..e2b0e77
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/index.d.ts
@@ -0,0 +1,17 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export { base } from './base.js';
+export { mouth } from './mouth.js';
+export { eyebrows } from './eyebrows.js';
+export { hair } from './hair.js';
+export { eyes } from './eyes.js';
+export { nose } from './nose.js';
+export { ears } from './ears.js';
+export { shirt } from './shirt.js';
+export { earrings } from './earrings.js';
+export { glasses } from './glasses.js';
+export { facialHair } from './facialHair.js';
diff --git a/node_modules/@dicebear/micah/lib/components/index.js b/node_modules/@dicebear/micah/lib/components/index.js
new file mode 100644
index 0000000..e2b0e77
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/index.js
@@ -0,0 +1,17 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export { base } from './base.js';
+export { mouth } from './mouth.js';
+export { eyebrows } from './eyebrows.js';
+export { hair } from './hair.js';
+export { eyes } from './eyes.js';
+export { nose } from './nose.js';
+export { ears } from './ears.js';
+export { shirt } from './shirt.js';
+export { earrings } from './earrings.js';
+export { glasses } from './glasses.js';
+export { facialHair } from './facialHair.js';
diff --git a/node_modules/@dicebear/micah/lib/components/mouth.d.ts b/node_modules/@dicebear/micah/lib/components/mouth.d.ts
new file mode 100644
index 0000000..77a14f1
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/mouth.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const mouth: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/mouth.js b/node_modules/@dicebear/micah/lib/components/mouth.js
new file mode 100644
index 0000000..f13ed39
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/mouth.js
@@ -0,0 +1,17 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const mouth = {
+ 'surprised': (components, colors) => ` `,
+ 'laughing': (components, colors) => ` `,
+ 'nervous': (components, colors) => ` `,
+ 'smile': (components, colors) => ` `,
+ 'sad': (components, colors) => ` `,
+ 'pucker': (components, colors) => ` `,
+ 'frown': (components, colors) => ` `,
+ 'smirk': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/components/nose.d.ts b/node_modules/@dicebear/micah/lib/components/nose.d.ts
new file mode 100644
index 0000000..c92893e
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/nose.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const nose: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/nose.js b/node_modules/@dicebear/micah/lib/components/nose.js
new file mode 100644
index 0000000..d8af7b8
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/nose.js
@@ -0,0 +1,11 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export const nose = {
+ 'curve': (components, colors) => ` `,
+ 'pointed': (components, colors) => ` `,
+ 'tound': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/components/shirt.d.ts b/node_modules/@dicebear/micah/lib/components/shirt.d.ts
new file mode 100644
index 0000000..a17023d
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/shirt.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { ComponentGroup } from '../types.js';
+export declare const shirt: ComponentGroup;
diff --git a/node_modules/@dicebear/micah/lib/components/shirt.js b/node_modules/@dicebear/micah/lib/components/shirt.js
new file mode 100644
index 0000000..35b8cf6
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/components/shirt.js
@@ -0,0 +1,12 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { escape } from '@dicebear/core';
+export const shirt = {
+ 'open': (components, colors) => ` `,
+ 'crew': (components, colors) => ` `,
+ 'collared': (components, colors) => ` `,
+};
diff --git a/node_modules/@dicebear/micah/lib/hooks/onPostCreate.d.ts b/node_modules/@dicebear/micah/lib/hooks/onPostCreate.d.ts
new file mode 100644
index 0000000..79ec9b4
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/hooks/onPostCreate.d.ts
@@ -0,0 +1,16 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { Prng, StyleOptions } from "@dicebear/core";
+import { Options, ColorPickCollection, ComponentPickCollection } from "../types.js";
+type Props = {
+ prng: Prng;
+ options: StyleOptions;
+ components: ComponentPickCollection;
+ colors: ColorPickCollection;
+};
+export declare function onPostCreate({ prng, options, components, colors }: Props): void;
+export {};
diff --git a/node_modules/@dicebear/micah/lib/hooks/onPostCreate.js b/node_modules/@dicebear/micah/lib/hooks/onPostCreate.js
new file mode 100644
index 0000000..e04e8f5
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/hooks/onPostCreate.js
@@ -0,0 +1,13 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export function onPostCreate({ prng, options, components, colors }) {
+ var _a;
+ // Ensure that the mouth remains visible. #132
+ if (((_a = components.facialHair) === null || _a === void 0 ? void 0 : _a.name) === 'beard' && colors.facialHair === colors.mouth) {
+ colors.mouth = '#ffffff33';
+ }
+}
diff --git a/node_modules/@dicebear/micah/lib/hooks/onPreCreate.d.ts b/node_modules/@dicebear/micah/lib/hooks/onPreCreate.d.ts
new file mode 100644
index 0000000..ad92e47
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/hooks/onPreCreate.d.ts
@@ -0,0 +1,14 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { Prng, StyleOptions } from "@dicebear/core";
+import { Options } from "../types.js";
+type Props = {
+ prng: Prng;
+ options: StyleOptions;
+};
+export declare function onPreCreate({ prng, options }: Props): void;
+export {};
diff --git a/node_modules/@dicebear/micah/lib/hooks/onPreCreate.js b/node_modules/@dicebear/micah/lib/hooks/onPreCreate.js
new file mode 100644
index 0000000..f8f3294
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/hooks/onPreCreate.js
@@ -0,0 +1,19 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export function onPreCreate({ prng, options }) {
+ var _a;
+ // Prevent baseColor from being used a second time if possible.
+ options.baseColor = options.baseColor && options.baseColor.length > 0 ? [prng.pick(options.baseColor, 'transparent')] : [];
+ for (const colorName of ['eyebrows', 'hair', 'eyes', 'nose', 'ears', 'shirt', 'earrings', 'glasses', 'facialHair']) {
+ // @ts-ignore
+ const colorOption = (_a = options[`${colorName}Color`]) !== null && _a !== void 0 ? _a : [];
+ const index = colorOption.indexOf(options.baseColor[0]);
+ if (colorOption.length > 1 && index > -1) {
+ colorOption.splice(index, 1);
+ }
+ }
+}
diff --git a/node_modules/@dicebear/micah/lib/index.d.ts b/node_modules/@dicebear/micah/lib/index.d.ts
new file mode 100644
index 0000000..f8d6f23
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/index.d.ts
@@ -0,0 +1,23 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+/*!
+ * Micah (@dicebear/micah)
+ *
+ * Code licensed under MIT License.
+ * Copyright (c) 2024 Florian Körner
+ *
+ * Design "Avatar Illustration System" by Micah Lanier licensed under CC BY 4.0. / Remix of the original.
+ * Source: https://www.figma.com/community/file/829741575478342595
+ * Homepage: https://dribbble.com/micahlanier
+ * License: https://creativecommons.org/licenses/by/4.0/
+ */
+import type { StyleCreate, StyleMeta } from '@dicebear/core';
+import type { Options } from './types.js';
+export declare const meta: StyleMeta;
+export declare const create: StyleCreate;
+export { schema } from './schema.js';
+export type { Options } from './types.js';
diff --git a/node_modules/@dicebear/micah/lib/index.js b/node_modules/@dicebear/micah/lib/index.js
new file mode 100644
index 0000000..88cab28
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/index.js
@@ -0,0 +1,46 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { getComponents } from './utils/getComponents.js';
+import { getColors } from './utils/getColors.js';
+import { onPreCreate } from './hooks/onPreCreate.js';
+import { onPostCreate } from './hooks/onPostCreate.js';
+export const meta = {
+ title: 'Avatar Illustration System',
+ creator: 'Micah Lanier',
+ source: 'https://www.figma.com/community/file/829741575478342595',
+ homepage: 'https://dribbble.com/micahlanier',
+ license: {
+ name: 'CC BY 4.0',
+ url: 'https://creativecommons.org/licenses/by/4.0/',
+ },
+};
+export const create = ({ prng, options }) => {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
+ onPreCreate({ prng, options });
+ const components = getComponents({ prng, options });
+ const colors = getColors({ prng, options });
+ onPostCreate({ prng, options, components, colors });
+ return {
+ attributes: {
+ viewBox: '0 0 360 360',
+ fill: 'none',
+ 'shape-rendering': 'auto'
+ },
+ body: `${(_b = (_a = components.base) === null || _a === void 0 ? void 0 : _a.value(components, colors)) !== null && _b !== void 0 ? _b : ''} ${(_d = (_c = components.mouth) === null || _c === void 0 ? void 0 : _c.value(components, colors)) !== null && _d !== void 0 ? _d : ''} ${(_f = (_e = components.eyebrows) === null || _e === void 0 ? void 0 : _e.value(components, colors)) !== null && _f !== void 0 ? _f : ''} ${(_h = (_g = components.hair) === null || _g === void 0 ? void 0 : _g.value(components, colors)) !== null && _h !== void 0 ? _h : ''} ${(_k = (_j = components.eyes) === null || _j === void 0 ? void 0 : _j.value(components, colors)) !== null && _k !== void 0 ? _k : ''} ${(_m = (_l = components.nose) === null || _l === void 0 ? void 0 : _l.value(components, colors)) !== null && _m !== void 0 ? _m : ''} ${(_p = (_o = components.ears) === null || _o === void 0 ? void 0 : _o.value(components, colors)) !== null && _p !== void 0 ? _p : ''} ${(_r = (_q = components.shirt) === null || _q === void 0 ? void 0 : _q.value(components, colors)) !== null && _r !== void 0 ? _r : ''} `,
+ extra: () => ({
+ ...Object.entries(components).reduce((acc, [key, value]) => {
+ acc[key] = value === null || value === void 0 ? void 0 : value.name;
+ return acc;
+ }, {}),
+ ...Object.entries(colors).reduce((acc, [key, value]) => {
+ acc[`${key}Color`] = value;
+ return acc;
+ }, {}),
+ }),
+ };
+};
+export { schema } from './schema.js';
diff --git a/node_modules/@dicebear/micah/lib/schema.d.ts b/node_modules/@dicebear/micah/lib/schema.d.ts
new file mode 100644
index 0000000..26acd2d
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/schema.d.ts
@@ -0,0 +1,8 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { StyleSchema } from '@dicebear/core';
+export declare const schema: StyleSchema;
diff --git a/node_modules/@dicebear/micah/lib/schema.js b/node_modules/@dicebear/micah/lib/schema.js
new file mode 100644
index 0000000..656ae8d
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/schema.js
@@ -0,0 +1,379 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export const schema = {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "properties": {
+ "base": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "standard"
+ ]
+ },
+ "default": [
+ "standard"
+ ]
+ },
+ "baseColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "f9c9b6",
+ "ac6651",
+ "77311d"
+ ]
+ },
+ "earringColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "f9c9b6",
+ "d2eff3",
+ "000000",
+ "e0ddff",
+ "f4d150",
+ "ac6651",
+ "9287ff",
+ "ffeba4",
+ "fc909f",
+ "ffedef",
+ "6bd9e9",
+ "77311d",
+ "ffffff"
+ ]
+ },
+ "earrings": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "hoop",
+ "stud"
+ ]
+ },
+ "default": [
+ "hoop",
+ "stud"
+ ]
+ },
+ "earringsProbability": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100,
+ "default": 30
+ },
+ "ears": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "attached",
+ "detached"
+ ]
+ },
+ "default": [
+ "attached",
+ "detached"
+ ]
+ },
+ "eyeShadowColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "d2eff3",
+ "e0ddff",
+ "ffeba4",
+ "ffedef",
+ "ffffff"
+ ]
+ },
+ "eyebrows": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "up",
+ "down",
+ "eyelashesUp",
+ "eyelashesDown"
+ ]
+ },
+ "default": [
+ "up",
+ "down",
+ "eyelashesUp",
+ "eyelashesDown"
+ ]
+ },
+ "eyebrowsColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "000000"
+ ]
+ },
+ "eyes": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "eyes",
+ "round",
+ "eyesShadow",
+ "smiling",
+ "smilingShadow"
+ ]
+ },
+ "default": [
+ "eyes",
+ "round",
+ "eyesShadow",
+ "smiling",
+ "smilingShadow"
+ ]
+ },
+ "eyesColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "000000"
+ ]
+ },
+ "facialHair": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "beard",
+ "scruff"
+ ]
+ },
+ "default": [
+ "beard",
+ "scruff"
+ ]
+ },
+ "facialHairColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "000000"
+ ]
+ },
+ "facialHairProbability": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100,
+ "default": 10
+ },
+ "glasses": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "round",
+ "square"
+ ]
+ },
+ "default": [
+ "round",
+ "square"
+ ]
+ },
+ "glassesColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "f9c9b6",
+ "d2eff3",
+ "000000",
+ "e0ddff",
+ "f4d150",
+ "ac6651",
+ "9287ff",
+ "ffeba4",
+ "fc909f",
+ "ffedef",
+ "6bd9e9",
+ "77311d",
+ "ffffff"
+ ]
+ },
+ "glassesProbability": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100,
+ "default": 30
+ },
+ "hair": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "fonze",
+ "mrT",
+ "dougFunny",
+ "mrClean",
+ "dannyPhantom",
+ "full",
+ "turban",
+ "pixie"
+ ]
+ },
+ "default": [
+ "fonze",
+ "mrT",
+ "dougFunny",
+ "mrClean",
+ "dannyPhantom",
+ "full",
+ "turban",
+ "pixie"
+ ]
+ },
+ "hairColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "f9c9b6",
+ "d2eff3",
+ "000000",
+ "e0ddff",
+ "f4d150",
+ "ac6651",
+ "9287ff",
+ "ffeba4",
+ "fc909f",
+ "ffedef",
+ "6bd9e9",
+ "77311d",
+ "ffffff"
+ ]
+ },
+ "hairProbability": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 100,
+ "default": 100
+ },
+ "mouth": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "surprised",
+ "laughing",
+ "nervous",
+ "smile",
+ "sad",
+ "pucker",
+ "frown",
+ "smirk"
+ ]
+ },
+ "default": [
+ "surprised",
+ "laughing",
+ "nervous",
+ "smile",
+ "sad",
+ "pucker",
+ "frown",
+ "smirk"
+ ]
+ },
+ "mouthColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "000000"
+ ]
+ },
+ "nose": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "curve",
+ "pointed",
+ "tound"
+ ]
+ },
+ "default": [
+ "curve",
+ "pointed",
+ "tound"
+ ]
+ },
+ "shirt": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "open",
+ "crew",
+ "collared"
+ ]
+ },
+ "default": [
+ "open",
+ "crew",
+ "collared"
+ ]
+ },
+ "shirtColor": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "pattern": "^(transparent|[a-fA-F0-9]{6})$"
+ },
+ "default": [
+ "f9c9b6",
+ "d2eff3",
+ "000000",
+ "e0ddff",
+ "f4d150",
+ "ac6651",
+ "9287ff",
+ "ffeba4",
+ "fc909f",
+ "ffedef",
+ "6bd9e9",
+ "77311d",
+ "ffffff"
+ ]
+ }
+ }
+};
diff --git a/node_modules/@dicebear/micah/lib/types.d.ts b/node_modules/@dicebear/micah/lib/types.d.ts
new file mode 100644
index 0000000..a68da26
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/types.d.ts
@@ -0,0 +1,42 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export interface Options {
+ base?: ('standard')[];
+ mouth?: ('surprised' | 'laughing' | 'nervous' | 'smile' | 'sad' | 'pucker' | 'frown' | 'smirk')[];
+ eyebrows?: ('up' | 'down' | 'eyelashesUp' | 'eyelashesDown')[];
+ hair?: ('fonze' | 'mrT' | 'dougFunny' | 'mrClean' | 'dannyPhantom' | 'full' | 'turban' | 'pixie')[];
+ hairProbability?: number;
+ eyes?: ('eyes' | 'round' | 'eyesShadow' | 'smiling' | 'smilingShadow')[];
+ nose?: ('curve' | 'pointed' | 'tound')[];
+ ears?: ('attached' | 'detached')[];
+ shirt?: ('open' | 'crew' | 'collared')[];
+ earrings?: ('hoop' | 'stud')[];
+ earringsProbability?: number;
+ glasses?: ('round' | 'square')[];
+ glassesProbability?: number;
+ facialHair?: ('beard' | 'scruff')[];
+ facialHairProbability?: number;
+ baseColor?: string[];
+ earringColor?: string[];
+ eyeShadowColor?: string[];
+ eyebrowsColor?: string[];
+ facialHairColor?: string[];
+ glassesColor?: string[];
+ hairColor?: string[];
+ mouthColor?: string[];
+ shirtColor?: string[];
+ eyesColor?: string[];
+}
+export type ColorPickCollection = Record;
+export type ComponentGroup = Record;
+export type ComponentGroupCollection = Record;
+export type ComponentGroupItem = (components: ComponentPickCollection, colors: ColorPickCollection) => string;
+export type ComponentPickCollection = Record;
+export type ComponentPick = {
+ name: string;
+ value: ComponentGroupItem;
+} | undefined;
diff --git a/node_modules/@dicebear/micah/lib/types.js b/node_modules/@dicebear/micah/lib/types.js
new file mode 100644
index 0000000..3e7780c
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/types.js
@@ -0,0 +1,7 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export {};
diff --git a/node_modules/@dicebear/micah/lib/utils/convertColor.d.ts b/node_modules/@dicebear/micah/lib/utils/convertColor.d.ts
new file mode 100644
index 0000000..bd26146
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/convertColor.d.ts
@@ -0,0 +1,7 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export declare function convertColor(color: string): string;
diff --git a/node_modules/@dicebear/micah/lib/utils/convertColor.js b/node_modules/@dicebear/micah/lib/utils/convertColor.js
new file mode 100644
index 0000000..3aa0c35
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/convertColor.js
@@ -0,0 +1,9 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+export function convertColor(color) {
+ return 'transparent' === color ? color : `#${color}`;
+}
diff --git a/node_modules/@dicebear/micah/lib/utils/getColors.d.ts b/node_modules/@dicebear/micah/lib/utils/getColors.d.ts
new file mode 100644
index 0000000..7935094
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/getColors.d.ts
@@ -0,0 +1,14 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { Prng } from '@dicebear/core';
+import type { Options, ColorPickCollection } from '../types.js';
+type Props = {
+ prng: Prng;
+ options: Options;
+};
+export declare function getColors({ prng, options }: Props): ColorPickCollection;
+export {};
diff --git a/node_modules/@dicebear/micah/lib/utils/getColors.js b/node_modules/@dicebear/micah/lib/utils/getColors.js
new file mode 100644
index 0000000..f82fba4
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/getColors.js
@@ -0,0 +1,23 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { convertColor } from './convertColor.js';
+export function getColors({ prng, options }) {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
+ return {
+ 'base': convertColor(prng.pick((_a = options.baseColor) !== null && _a !== void 0 ? _a : [], 'transparent')),
+ 'earring': convertColor(prng.pick((_b = options.earringColor) !== null && _b !== void 0 ? _b : [], 'transparent')),
+ 'eyeShadow': convertColor(prng.pick((_c = options.eyeShadowColor) !== null && _c !== void 0 ? _c : [], 'transparent')),
+ 'eyebrows': convertColor(prng.pick((_d = options.eyebrowsColor) !== null && _d !== void 0 ? _d : [], 'transparent')),
+ 'facialHair': convertColor(prng.pick((_e = options.facialHairColor) !== null && _e !== void 0 ? _e : [], 'transparent')),
+ 'glasses': convertColor(prng.pick((_f = options.glassesColor) !== null && _f !== void 0 ? _f : [], 'transparent')),
+ 'hair': convertColor(prng.pick((_g = options.hairColor) !== null && _g !== void 0 ? _g : [], 'transparent')),
+ 'mouth': convertColor(prng.pick((_h = options.mouthColor) !== null && _h !== void 0 ? _h : [], 'transparent')),
+ 'shirt': convertColor(prng.pick((_j = options.shirtColor) !== null && _j !== void 0 ? _j : [], 'transparent')),
+ 'eyes': convertColor(prng.pick((_k = options.eyesColor) !== null && _k !== void 0 ? _k : [], 'transparent')),
+ };
+}
+;
diff --git a/node_modules/@dicebear/micah/lib/utils/getComponents.d.ts b/node_modules/@dicebear/micah/lib/utils/getComponents.d.ts
new file mode 100644
index 0000000..81c1405
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/getComponents.d.ts
@@ -0,0 +1,14 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { Prng } from '@dicebear/core';
+import type { Options, ComponentPickCollection } from '../types.js';
+type Props = {
+ prng: Prng;
+ options: Options;
+};
+export declare function getComponents({ prng, options }: Props): ComponentPickCollection;
+export {};
diff --git a/node_modules/@dicebear/micah/lib/utils/getComponents.js b/node_modules/@dicebear/micah/lib/utils/getComponents.js
new file mode 100644
index 0000000..f31cbfd
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/getComponents.js
@@ -0,0 +1,78 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import { pickComponent } from './pickComponent.js';
+export function getComponents({ prng, options }) {
+ const baseComponent = pickComponent({
+ prng,
+ group: 'base',
+ values: options.base,
+ });
+ const mouthComponent = pickComponent({
+ prng,
+ group: 'mouth',
+ values: options.mouth,
+ });
+ const eyebrowsComponent = pickComponent({
+ prng,
+ group: 'eyebrows',
+ values: options.eyebrows,
+ });
+ const hairComponent = pickComponent({
+ prng,
+ group: 'hair',
+ values: options.hair,
+ });
+ const eyesComponent = pickComponent({
+ prng,
+ group: 'eyes',
+ values: options.eyes,
+ });
+ const noseComponent = pickComponent({
+ prng,
+ group: 'nose',
+ values: options.nose,
+ });
+ const earsComponent = pickComponent({
+ prng,
+ group: 'ears',
+ values: options.ears,
+ });
+ const shirtComponent = pickComponent({
+ prng,
+ group: 'shirt',
+ values: options.shirt,
+ });
+ const earringsComponent = pickComponent({
+ prng,
+ group: 'earrings',
+ values: options.earrings,
+ });
+ const glassesComponent = pickComponent({
+ prng,
+ group: 'glasses',
+ values: options.glasses,
+ });
+ const facialHairComponent = pickComponent({
+ prng,
+ group: 'facialHair',
+ values: options.facialHair,
+ });
+ return {
+ 'base': baseComponent,
+ 'mouth': mouthComponent,
+ 'eyebrows': eyebrowsComponent,
+ 'hair': prng.bool(options.hairProbability) ? hairComponent : undefined,
+ 'eyes': eyesComponent,
+ 'nose': noseComponent,
+ 'ears': earsComponent,
+ 'shirt': shirtComponent,
+ 'earrings': prng.bool(options.earringsProbability) ? earringsComponent : undefined,
+ 'glasses': prng.bool(options.glassesProbability) ? glassesComponent : undefined,
+ 'facialHair': prng.bool(options.facialHairProbability) ? facialHairComponent : undefined,
+ };
+}
+;
diff --git a/node_modules/@dicebear/micah/lib/utils/pickComponent.d.ts b/node_modules/@dicebear/micah/lib/utils/pickComponent.d.ts
new file mode 100644
index 0000000..2a13e46
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/pickComponent.d.ts
@@ -0,0 +1,15 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import type { Prng } from '@dicebear/core';
+import type { ComponentPick } from '../types.js';
+type Props = {
+ prng: Prng;
+ group: string;
+ values?: string[];
+};
+export declare function pickComponent({ prng, group, values }: Props): ComponentPick;
+export {};
diff --git a/node_modules/@dicebear/micah/lib/utils/pickComponent.js b/node_modules/@dicebear/micah/lib/utils/pickComponent.js
new file mode 100644
index 0000000..ee93b1f
--- /dev/null
+++ b/node_modules/@dicebear/micah/lib/utils/pickComponent.js
@@ -0,0 +1,20 @@
+/**
+ * Do not change this file manually! This file was generated with the "Dicebear Exporter"-Plugin for Figma.
+ *
+ * Plugin: https://www.figma.com/community/plugin/1005765655729342787
+ * File: https://www.figma.com/file/YHb4ShTgmO8Lqhkz1plLfL
+ */
+import * as components from '../components/index.js';
+export function pickComponent({ prng, group, values = [] }) {
+ const componentCollection = components;
+ const key = prng.pick(values);
+ if (key && componentCollection[group][key]) {
+ return {
+ name: key,
+ value: componentCollection[group][key],
+ };
+ }
+ else {
+ return undefined;
+ }
+}
diff --git a/node_modules/@dicebear/micah/package.json b/node_modules/@dicebear/micah/package.json
new file mode 100644
index 0000000..695b449
--- /dev/null
+++ b/node_modules/@dicebear/micah/package.json
@@ -0,0 +1,48 @@
+{
+ "name": "@dicebear/micah",
+ "version": "9.2.2",
+ "description": "Avatar style for DiceBear",
+ "keywords": [
+ "dicebear"
+ ],
+ "bugs": {
+ "url": "https://github.com/dicebear/dicebear/issues"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/dicebear/dicebear.git"
+ },
+ "license": "MIT",
+ "type": "module",
+ "main": "./lib/index.js",
+ "exports": "./lib/index.js",
+ "types": "./lib/index.d.ts",
+ "files": [
+ "LICENSE",
+ "lib",
+ "README.md"
+ ],
+ "scripts": {
+ "prebuild": "del-cli lib",
+ "build": "tsc",
+ "prepublishOnly": "npm run build",
+ "test": "uvu tests"
+ },
+ "devDependencies": {
+ "@dicebear/core": "9.2.2",
+ "@tsconfig/recommended": "^1.0.2",
+ "del-cli": "^5.0.0",
+ "typescript": "^5.1.6",
+ "uvu": "^0.5.6"
+ },
+ "peerDependencies": {
+ "@dicebear/core": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "gitHead": "bf5b31d047f707f50299142660bc89ef020d9b24"
+}
diff --git a/node_modules/@esbuild/win32-x64/README.md b/node_modules/@esbuild/win32-x64/README.md
new file mode 100644
index 0000000..a99ee7c
--- /dev/null
+++ b/node_modules/@esbuild/win32-x64/README.md
@@ -0,0 +1,3 @@
+# esbuild
+
+This is the Windows 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
diff --git a/node_modules/@esbuild/win32-x64/esbuild.exe b/node_modules/@esbuild/win32-x64/esbuild.exe
new file mode 100644
index 0000000..998c718
Binary files /dev/null and b/node_modules/@esbuild/win32-x64/esbuild.exe differ
diff --git a/node_modules/@esbuild/win32-x64/package.json b/node_modules/@esbuild/win32-x64/package.json
new file mode 100644
index 0000000..9167d5a
--- /dev/null
+++ b/node_modules/@esbuild/win32-x64/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "@esbuild/win32-x64",
+ "version": "0.25.4",
+ "description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/evanw/esbuild.git"
+ },
+ "license": "MIT",
+ "preferUnplugged": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "os": [
+ "win32"
+ ],
+ "cpu": [
+ "x64"
+ ]
+}
diff --git a/node_modules/@jridgewell/gen-mapping/LICENSE b/node_modules/@jridgewell/gen-mapping/LICENSE
new file mode 100644
index 0000000..352f071
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/LICENSE
@@ -0,0 +1,19 @@
+Copyright 2022 Justin Ridgewell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@jridgewell/gen-mapping/README.md b/node_modules/@jridgewell/gen-mapping/README.md
new file mode 100644
index 0000000..4066cdb
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/README.md
@@ -0,0 +1,227 @@
+# @jridgewell/gen-mapping
+
+> Generate source maps
+
+`gen-mapping` allows you to generate a source map during transpilation or minification.
+With a source map, you're able to trace the original location in the source file, either in Chrome's
+DevTools or using a library like [`@jridgewell/trace-mapping`][trace-mapping].
+
+You may already be familiar with the [`source-map`][source-map] package's `SourceMapGenerator`. This
+provides the same `addMapping` and `setSourceContent` API.
+
+## Installation
+
+```sh
+npm install @jridgewell/gen-mapping
+```
+
+## Usage
+
+```typescript
+import { GenMapping, addMapping, setSourceContent, toEncodedMap, toDecodedMap } from '@jridgewell/gen-mapping';
+
+const map = new GenMapping({
+ file: 'output.js',
+ sourceRoot: 'https://example.com/',
+});
+
+setSourceContent(map, 'input.js', `function foo() {}`);
+
+addMapping(map, {
+ // Lines start at line 1, columns at column 0.
+ generated: { line: 1, column: 0 },
+ source: 'input.js',
+ original: { line: 1, column: 0 },
+});
+
+addMapping(map, {
+ generated: { line: 1, column: 9 },
+ source: 'input.js',
+ original: { line: 1, column: 9 },
+ name: 'foo',
+});
+
+assert.deepEqual(toDecodedMap(map), {
+ version: 3,
+ file: 'output.js',
+ names: ['foo'],
+ sourceRoot: 'https://example.com/',
+ sources: ['input.js'],
+ sourcesContent: ['function foo() {}'],
+ mappings: [
+ [ [0, 0, 0, 0], [9, 0, 0, 9, 0] ]
+ ],
+});
+
+assert.deepEqual(toEncodedMap(map), {
+ version: 3,
+ file: 'output.js',
+ names: ['foo'],
+ sourceRoot: 'https://example.com/',
+ sources: ['input.js'],
+ sourcesContent: ['function foo() {}'],
+ mappings: 'AAAA,SAASA',
+});
+```
+
+### Smaller Sourcemaps
+
+Not everything needs to be added to a sourcemap, and needless markings can cause signficantly
+larger file sizes. `gen-mapping` exposes `maybeAddSegment`/`maybeAddMapping` APIs that will
+intelligently determine if this marking adds useful information. If not, the marking will be
+skipped.
+
+```typescript
+import { maybeAddMapping } from '@jridgewell/gen-mapping';
+
+const map = new GenMapping();
+
+// Adding a sourceless marking at the beginning of a line isn't useful.
+maybeAddMapping(map, {
+ generated: { line: 1, column: 0 },
+});
+
+// Adding a new source marking is useful.
+maybeAddMapping(map, {
+ generated: { line: 1, column: 0 },
+ source: 'input.js',
+ original: { line: 1, column: 0 },
+});
+
+// But adding another marking pointing to the exact same original location isn't, even if the
+// generated column changed.
+maybeAddMapping(map, {
+ generated: { line: 1, column: 9 },
+ source: 'input.js',
+ original: { line: 1, column: 0 },
+});
+
+assert.deepEqual(toEncodedMap(map), {
+ version: 3,
+ names: [],
+ sources: ['input.js'],
+ sourcesContent: [null],
+ mappings: 'AAAA',
+});
+```
+
+## Benchmarks
+
+```
+node v18.0.0
+
+amp.js.map
+Memory Usage:
+gen-mapping: addSegment 5852872 bytes
+gen-mapping: addMapping 7716042 bytes
+source-map-js 6143250 bytes
+source-map-0.6.1 6124102 bytes
+source-map-0.8.0 6121173 bytes
+Smallest memory usage is gen-mapping: addSegment
+
+Adding speed:
+gen-mapping: addSegment x 441 ops/sec ±2.07% (90 runs sampled)
+gen-mapping: addMapping x 350 ops/sec ±2.40% (86 runs sampled)
+source-map-js: addMapping x 169 ops/sec ±2.42% (80 runs sampled)
+source-map-0.6.1: addMapping x 167 ops/sec ±2.56% (80 runs sampled)
+source-map-0.8.0: addMapping x 168 ops/sec ±2.52% (80 runs sampled)
+Fastest is gen-mapping: addSegment
+
+Generate speed:
+gen-mapping: decoded output x 150,824,370 ops/sec ±0.07% (102 runs sampled)
+gen-mapping: encoded output x 663 ops/sec ±0.22% (98 runs sampled)
+source-map-js: encoded output x 197 ops/sec ±0.45% (84 runs sampled)
+source-map-0.6.1: encoded output x 198 ops/sec ±0.33% (85 runs sampled)
+source-map-0.8.0: encoded output x 197 ops/sec ±0.06% (93 runs sampled)
+Fastest is gen-mapping: decoded output
+
+
+***
+
+
+babel.min.js.map
+Memory Usage:
+gen-mapping: addSegment 37578063 bytes
+gen-mapping: addMapping 37212897 bytes
+source-map-js 47638527 bytes
+source-map-0.6.1 47690503 bytes
+source-map-0.8.0 47470188 bytes
+Smallest memory usage is gen-mapping: addMapping
+
+Adding speed:
+gen-mapping: addSegment x 31.05 ops/sec ±8.31% (43 runs sampled)
+gen-mapping: addMapping x 29.83 ops/sec ±7.36% (51 runs sampled)
+source-map-js: addMapping x 20.73 ops/sec ±6.22% (38 runs sampled)
+source-map-0.6.1: addMapping x 20.03 ops/sec ±10.51% (38 runs sampled)
+source-map-0.8.0: addMapping x 19.30 ops/sec ±8.27% (37 runs sampled)
+Fastest is gen-mapping: addSegment
+
+Generate speed:
+gen-mapping: decoded output x 381,379,234 ops/sec ±0.29% (96 runs sampled)
+gen-mapping: encoded output x 95.15 ops/sec ±2.98% (72 runs sampled)
+source-map-js: encoded output x 15.20 ops/sec ±7.41% (33 runs sampled)
+source-map-0.6.1: encoded output x 16.36 ops/sec ±10.46% (31 runs sampled)
+source-map-0.8.0: encoded output x 16.06 ops/sec ±6.45% (31 runs sampled)
+Fastest is gen-mapping: decoded output
+
+
+***
+
+
+preact.js.map
+Memory Usage:
+gen-mapping: addSegment 416247 bytes
+gen-mapping: addMapping 419824 bytes
+source-map-js 1024619 bytes
+source-map-0.6.1 1146004 bytes
+source-map-0.8.0 1113250 bytes
+Smallest memory usage is gen-mapping: addSegment
+
+Adding speed:
+gen-mapping: addSegment x 13,755 ops/sec ±0.15% (98 runs sampled)
+gen-mapping: addMapping x 13,013 ops/sec ±0.11% (101 runs sampled)
+source-map-js: addMapping x 4,564 ops/sec ±0.21% (98 runs sampled)
+source-map-0.6.1: addMapping x 4,562 ops/sec ±0.11% (99 runs sampled)
+source-map-0.8.0: addMapping x 4,593 ops/sec ±0.11% (100 runs sampled)
+Fastest is gen-mapping: addSegment
+
+Generate speed:
+gen-mapping: decoded output x 379,864,020 ops/sec ±0.23% (93 runs sampled)
+gen-mapping: encoded output x 14,368 ops/sec ±4.07% (82 runs sampled)
+source-map-js: encoded output x 5,261 ops/sec ±0.21% (99 runs sampled)
+source-map-0.6.1: encoded output x 5,124 ops/sec ±0.58% (99 runs sampled)
+source-map-0.8.0: encoded output x 5,434 ops/sec ±0.33% (96 runs sampled)
+Fastest is gen-mapping: decoded output
+
+
+***
+
+
+react.js.map
+Memory Usage:
+gen-mapping: addSegment 975096 bytes
+gen-mapping: addMapping 1102981 bytes
+source-map-js 2918836 bytes
+source-map-0.6.1 2885435 bytes
+source-map-0.8.0 2874336 bytes
+Smallest memory usage is gen-mapping: addSegment
+
+Adding speed:
+gen-mapping: addSegment x 4,772 ops/sec ±0.15% (100 runs sampled)
+gen-mapping: addMapping x 4,456 ops/sec ±0.13% (97 runs sampled)
+source-map-js: addMapping x 1,618 ops/sec ±0.24% (97 runs sampled)
+source-map-0.6.1: addMapping x 1,622 ops/sec ±0.12% (99 runs sampled)
+source-map-0.8.0: addMapping x 1,631 ops/sec ±0.12% (100 runs sampled)
+Fastest is gen-mapping: addSegment
+
+Generate speed:
+gen-mapping: decoded output x 379,107,695 ops/sec ±0.07% (99 runs sampled)
+gen-mapping: encoded output x 5,421 ops/sec ±1.60% (89 runs sampled)
+source-map-js: encoded output x 2,113 ops/sec ±1.81% (98 runs sampled)
+source-map-0.6.1: encoded output x 2,126 ops/sec ±0.10% (100 runs sampled)
+source-map-0.8.0: encoded output x 2,176 ops/sec ±0.39% (98 runs sampled)
+Fastest is gen-mapping: decoded output
+```
+
+[source-map]: https://www.npmjs.com/package/source-map
+[trace-mapping]: https://github.com/jridgewell/trace-mapping
diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs
new file mode 100644
index 0000000..5d38e38
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs
@@ -0,0 +1,230 @@
+import { SetArray, put, remove } from '@jridgewell/set-array';
+import { encode } from '@jridgewell/sourcemap-codec';
+import { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';
+
+const COLUMN = 0;
+const SOURCES_INDEX = 1;
+const SOURCE_LINE = 2;
+const SOURCE_COLUMN = 3;
+const NAMES_INDEX = 4;
+
+const NO_NAME = -1;
+/**
+ * Provides the state to generate a sourcemap.
+ */
+class GenMapping {
+ constructor({ file, sourceRoot } = {}) {
+ this._names = new SetArray();
+ this._sources = new SetArray();
+ this._sourcesContent = [];
+ this._mappings = [];
+ this.file = file;
+ this.sourceRoot = sourceRoot;
+ this._ignoreList = new SetArray();
+ }
+}
+/**
+ * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
+ * with public access modifiers.
+ */
+function cast(map) {
+ return map;
+}
+function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
+ return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
+}
+function addMapping(map, mapping) {
+ return addMappingInternal(false, map, mapping);
+}
+/**
+ * Same as `addSegment`, but will only add the segment if it generates useful information in the
+ * resulting map. This only works correctly if segments are added **in order**, meaning you should
+ * not add a segment with a lower generated line/column than one that came before.
+ */
+const maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
+ return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
+};
+/**
+ * Same as `addMapping`, but will only add the mapping if it generates useful information in the
+ * resulting map. This only works correctly if mappings are added **in order**, meaning you should
+ * not add a mapping with a lower generated line/column than one that came before.
+ */
+const maybeAddMapping = (map, mapping) => {
+ return addMappingInternal(true, map, mapping);
+};
+/**
+ * Adds/removes the content of the source file to the source map.
+ */
+function setSourceContent(map, source, content) {
+ const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);
+ const index = put(sources, source);
+ sourcesContent[index] = content;
+}
+function setIgnore(map, source, ignore = true) {
+ const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);
+ const index = put(sources, source);
+ if (index === sourcesContent.length)
+ sourcesContent[index] = null;
+ if (ignore)
+ put(ignoreList, index);
+ else
+ remove(ignoreList, index);
+}
+/**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+function toDecodedMap(map) {
+ const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList, } = cast(map);
+ removeEmptyFinalLines(mappings);
+ return {
+ version: 3,
+ file: map.file || undefined,
+ names: names.array,
+ sourceRoot: map.sourceRoot || undefined,
+ sources: sources.array,
+ sourcesContent,
+ mappings,
+ ignoreList: ignoreList.array,
+ };
+}
+/**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+function toEncodedMap(map) {
+ const decoded = toDecodedMap(map);
+ return Object.assign(Object.assign({}, decoded), { mappings: encode(decoded.mappings) });
+}
+/**
+ * Constructs a new GenMapping, using the already present mappings of the input.
+ */
+function fromMap(input) {
+ const map = new TraceMap(input);
+ const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });
+ putAll(cast(gen)._names, map.names);
+ putAll(cast(gen)._sources, map.sources);
+ cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);
+ cast(gen)._mappings = decodedMappings(map);
+ if (map.ignoreList)
+ putAll(cast(gen)._ignoreList, map.ignoreList);
+ return gen;
+}
+/**
+ * Returns an array of high-level mapping objects for every recorded segment, which could then be
+ * passed to the `source-map` library.
+ */
+function allMappings(map) {
+ const out = [];
+ const { _mappings: mappings, _sources: sources, _names: names } = cast(map);
+ for (let i = 0; i < mappings.length; i++) {
+ const line = mappings[i];
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ const generated = { line: i + 1, column: seg[COLUMN] };
+ let source = undefined;
+ let original = undefined;
+ let name = undefined;
+ if (seg.length !== 1) {
+ source = sources.array[seg[SOURCES_INDEX]];
+ original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };
+ if (seg.length === 5)
+ name = names.array[seg[NAMES_INDEX]];
+ }
+ out.push({ generated, source, original, name });
+ }
+ }
+ return out;
+}
+// This split declaration is only so that terser can elminiate the static initialization block.
+function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
+ const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = cast(map);
+ const line = getLine(mappings, genLine);
+ const index = getColumnIndex(line, genColumn);
+ if (!source) {
+ if (skipable && skipSourceless(line, index))
+ return;
+ return insert(line, index, [genColumn]);
+ }
+ const sourcesIndex = put(sources, source);
+ const namesIndex = name ? put(names, name) : NO_NAME;
+ if (sourcesIndex === sourcesContent.length)
+ sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null;
+ if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {
+ return;
+ }
+ return insert(line, index, name
+ ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]
+ : [genColumn, sourcesIndex, sourceLine, sourceColumn]);
+}
+function getLine(mappings, index) {
+ for (let i = mappings.length; i <= index; i++) {
+ mappings[i] = [];
+ }
+ return mappings[index];
+}
+function getColumnIndex(line, genColumn) {
+ let index = line.length;
+ for (let i = index - 1; i >= 0; index = i--) {
+ const current = line[i];
+ if (genColumn >= current[COLUMN])
+ break;
+ }
+ return index;
+}
+function insert(array, index, value) {
+ for (let i = array.length; i > index; i--) {
+ array[i] = array[i - 1];
+ }
+ array[index] = value;
+}
+function removeEmptyFinalLines(mappings) {
+ const { length } = mappings;
+ let len = length;
+ for (let i = len - 1; i >= 0; len = i, i--) {
+ if (mappings[i].length > 0)
+ break;
+ }
+ if (len < length)
+ mappings.length = len;
+}
+function putAll(setarr, array) {
+ for (let i = 0; i < array.length; i++)
+ put(setarr, array[i]);
+}
+function skipSourceless(line, index) {
+ // The start of a line is already sourceless, so adding a sourceless segment to the beginning
+ // doesn't generate any useful information.
+ if (index === 0)
+ return true;
+ const prev = line[index - 1];
+ // If the previous segment is also sourceless, then adding another sourceless segment doesn't
+ // genrate any new information. Else, this segment will end the source/named segment and point to
+ // a sourceless position, which is useful.
+ return prev.length === 1;
+}
+function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
+ // A source/named segment at the start of a line gives position at that genColumn
+ if (index === 0)
+ return false;
+ const prev = line[index - 1];
+ // If the previous segment is sourceless, then we're transitioning to a source.
+ if (prev.length === 1)
+ return false;
+ // If the previous segment maps to the exact same source position, then this segment doesn't
+ // provide any new position information.
+ return (sourcesIndex === prev[SOURCES_INDEX] &&
+ sourceLine === prev[SOURCE_LINE] &&
+ sourceColumn === prev[SOURCE_COLUMN] &&
+ namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));
+}
+function addMappingInternal(skipable, map, mapping) {
+ const { generated, source, original, name, content } = mapping;
+ if (!source) {
+ return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null);
+ }
+ return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content);
+}
+
+export { GenMapping, addMapping, addSegment, allMappings, fromMap, maybeAddMapping, maybeAddSegment, setIgnore, setSourceContent, toDecodedMap, toEncodedMap };
+//# sourceMappingURL=gen-mapping.mjs.map
diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map
new file mode 100644
index 0000000..6290b97
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"gen-mapping.mjs","sources":["../src/sourcemap-segment.ts","../src/gen-mapping.ts"],"sourcesContent":["type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n","import { SetArray, put, remove } from '@jridgewell/set-array';\nimport { encode } from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type { SourceMapInput } from '@jridgewell/trace-mapping';\nimport type { SourceMapSegment } from './sourcemap-segment';\nimport type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types';\n\nexport type { DecodedSourceMap, EncodedSourceMap, Mapping };\n\nexport type Options = {\n file?: string | null;\n sourceRoot?: string | null;\n};\n\nconst NO_NAME = -1;\n\n/**\n * Provides the state to generate a sourcemap.\n */\nexport class GenMapping {\n private declare _names: SetArray;\n private declare _sources: SetArray;\n private declare _sourcesContent: (string | null)[];\n private declare _mappings: SourceMapSegment[][];\n private declare _ignoreList: SetArray;\n declare file: string | null | undefined;\n declare sourceRoot: string | null | undefined;\n\n constructor({ file, sourceRoot }: Options = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n}\n\ninterface PublicMap {\n _names: GenMapping['_names'];\n _sources: GenMapping['_sources'];\n _sourcesContent: GenMapping['_sourcesContent'];\n _mappings: GenMapping['_mappings'];\n _ignoreList: GenMapping['_ignoreList'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: null,\n sourceLine?: null,\n sourceColumn?: null,\n name?: null,\n content?: null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name?: null,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name: string,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: string | null,\n sourceLine?: number | null,\n sourceColumn?: number | null,\n name?: string | null,\n content?: string | null,\n): void {\n return addSegmentInternal(\n false,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n}\n\n/**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: null;\n original?: null;\n name?: null;\n content?: null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name?: null;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name: string;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: string | null;\n original?: Pos | null;\n name?: string | null;\n content?: string | null;\n },\n): void {\n return addMappingInternal(false, map, mapping as Parameters[2]);\n}\n\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nexport const maybeAddSegment: typeof addSegment = (\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n) => {\n return addSegmentInternal(\n true,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n};\n\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nexport const maybeAddMapping: typeof addMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping as Parameters[2]);\n};\n\n/**\n * Adds/removes the content of the source file to the source map.\n */\nexport function setSourceContent(map: GenMapping, source: string, content: string | null): void {\n const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n}\n\nexport function setIgnore(map: GenMapping, source: string, ignore = true) {\n const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (ignore) put(ignoreList, index);\n else remove(ignoreList, index);\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toDecodedMap(map: GenMapping): DecodedSourceMap {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n _ignoreList: ignoreList,\n } = cast(map);\n removeEmptyFinalLines(mappings);\n\n return {\n version: 3,\n file: map.file || undefined,\n names: names.array,\n sourceRoot: map.sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n ignoreList: ignoreList.array,\n };\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toEncodedMap(map: GenMapping): EncodedSourceMap {\n const decoded = toDecodedMap(map);\n return {\n ...decoded,\n mappings: encode(decoded.mappings as SourceMapSegment[][]),\n };\n}\n\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nexport function fromMap(input: SourceMapInput): GenMapping {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n\n putAll(cast(gen)._names, map.names);\n putAll(cast(gen)._sources, map.sources as string[]);\n cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast(gen)._mappings = decodedMappings(map) as GenMapping['_mappings'];\n if (map.ignoreList) putAll(cast(gen)._ignoreList, map.ignoreList);\n\n return gen;\n}\n\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nexport function allMappings(map: GenMapping): Mapping[] {\n const out: Mapping[] = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source: string | undefined = undefined;\n let original: Pos | undefined = undefined;\n let name: string | undefined = undefined;\n\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n\n if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n }\n\n out.push({ generated, source, original, name } as Mapping);\n }\n }\n\n return out;\n}\n\n// This split declaration is only so that terser can elminiate the static initialization block.\nfunction addSegmentInternal(\n skipable: boolean,\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: S,\n sourceLine: S extends string ? number : null | undefined,\n sourceColumn: S extends string ? number : null | undefined,\n name: S extends string ? string | null | undefined : null | undefined,\n content: S extends string ? string | null | undefined : null | undefined,\n): void {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n } = cast(map);\n const line = getLine(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n\n if (!source) {\n if (skipable && skipSourceless(line, index)) return;\n return insert(line, index, [genColumn]);\n }\n\n // Sigh, TypeScript can't figure out sourceLine and sourceColumn aren't nullish if source\n // isn't nullish.\n assert(sourceLine);\n assert(sourceColumn);\n\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content ?? null;\n\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n\n return insert(\n line,\n index,\n name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn],\n );\n}\n\nfunction assert(_val: unknown): asserts _val is T {\n // noop.\n}\n\nfunction getLine(mappings: SourceMapSegment[][], index: number): SourceMapSegment[] {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n}\n\nfunction getColumnIndex(line: SourceMapSegment[], genColumn: number): number {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN]) break;\n }\n return index;\n}\n\nfunction insert(array: T[], index: number, value: T) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n\nfunction removeEmptyFinalLines(mappings: SourceMapSegment[][]) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0) break;\n }\n if (len < length) mappings.length = len;\n}\n\nfunction putAll(setarr: SetArray, array: T[]) {\n for (let i = 0; i < array.length; i++) put(setarr, array[i]);\n}\n\nfunction skipSourceless(line: SourceMapSegment[], index: number): boolean {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0) return true;\n\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n}\n\nfunction skipSource(\n line: SourceMapSegment[],\n index: number,\n sourcesIndex: number,\n sourceLine: number,\n sourceColumn: number,\n namesIndex: number,\n): boolean {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0) return false;\n\n const prev = line[index - 1];\n\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1) return false;\n\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (\n sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)\n );\n}\n\nfunction addMappingInternal(\n skipable: boolean,\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: S;\n original: S extends string ? Pos : null | undefined;\n name: S extends string ? string | null | undefined : null | undefined;\n content: S extends string ? string | null | undefined : null | undefined;\n },\n) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n null,\n null,\n null,\n null,\n null,\n );\n }\n assert(original);\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n source as string,\n original.line - 1,\n original.column,\n name,\n content,\n );\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
new file mode 100644
index 0000000..3bf18f3
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js
@@ -0,0 +1,246 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec'), require('@jridgewell/trace-mapping')) :
+ typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec', '@jridgewell/trace-mapping'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec, global.traceMapping));
+})(this, (function (exports, setArray, sourcemapCodec, traceMapping) { 'use strict';
+
+ const COLUMN = 0;
+ const SOURCES_INDEX = 1;
+ const SOURCE_LINE = 2;
+ const SOURCE_COLUMN = 3;
+ const NAMES_INDEX = 4;
+
+ const NO_NAME = -1;
+ /**
+ * Provides the state to generate a sourcemap.
+ */
+ class GenMapping {
+ constructor({ file, sourceRoot } = {}) {
+ this._names = new setArray.SetArray();
+ this._sources = new setArray.SetArray();
+ this._sourcesContent = [];
+ this._mappings = [];
+ this.file = file;
+ this.sourceRoot = sourceRoot;
+ this._ignoreList = new setArray.SetArray();
+ }
+ }
+ /**
+ * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
+ * with public access modifiers.
+ */
+ function cast(map) {
+ return map;
+ }
+ function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
+ return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
+ }
+ function addMapping(map, mapping) {
+ return addMappingInternal(false, map, mapping);
+ }
+ /**
+ * Same as `addSegment`, but will only add the segment if it generates useful information in the
+ * resulting map. This only works correctly if segments are added **in order**, meaning you should
+ * not add a segment with a lower generated line/column than one that came before.
+ */
+ const maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {
+ return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);
+ };
+ /**
+ * Same as `addMapping`, but will only add the mapping if it generates useful information in the
+ * resulting map. This only works correctly if mappings are added **in order**, meaning you should
+ * not add a mapping with a lower generated line/column than one that came before.
+ */
+ const maybeAddMapping = (map, mapping) => {
+ return addMappingInternal(true, map, mapping);
+ };
+ /**
+ * Adds/removes the content of the source file to the source map.
+ */
+ function setSourceContent(map, source, content) {
+ const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);
+ const index = setArray.put(sources, source);
+ sourcesContent[index] = content;
+ }
+ function setIgnore(map, source, ignore = true) {
+ const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);
+ const index = setArray.put(sources, source);
+ if (index === sourcesContent.length)
+ sourcesContent[index] = null;
+ if (ignore)
+ setArray.put(ignoreList, index);
+ else
+ setArray.remove(ignoreList, index);
+ }
+ /**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ function toDecodedMap(map) {
+ const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList, } = cast(map);
+ removeEmptyFinalLines(mappings);
+ return {
+ version: 3,
+ file: map.file || undefined,
+ names: names.array,
+ sourceRoot: map.sourceRoot || undefined,
+ sources: sources.array,
+ sourcesContent,
+ mappings,
+ ignoreList: ignoreList.array,
+ };
+ }
+ /**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ function toEncodedMap(map) {
+ const decoded = toDecodedMap(map);
+ return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) });
+ }
+ /**
+ * Constructs a new GenMapping, using the already present mappings of the input.
+ */
+ function fromMap(input) {
+ const map = new traceMapping.TraceMap(input);
+ const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });
+ putAll(cast(gen)._names, map.names);
+ putAll(cast(gen)._sources, map.sources);
+ cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);
+ cast(gen)._mappings = traceMapping.decodedMappings(map);
+ if (map.ignoreList)
+ putAll(cast(gen)._ignoreList, map.ignoreList);
+ return gen;
+ }
+ /**
+ * Returns an array of high-level mapping objects for every recorded segment, which could then be
+ * passed to the `source-map` library.
+ */
+ function allMappings(map) {
+ const out = [];
+ const { _mappings: mappings, _sources: sources, _names: names } = cast(map);
+ for (let i = 0; i < mappings.length; i++) {
+ const line = mappings[i];
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ const generated = { line: i + 1, column: seg[COLUMN] };
+ let source = undefined;
+ let original = undefined;
+ let name = undefined;
+ if (seg.length !== 1) {
+ source = sources.array[seg[SOURCES_INDEX]];
+ original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };
+ if (seg.length === 5)
+ name = names.array[seg[NAMES_INDEX]];
+ }
+ out.push({ generated, source, original, name });
+ }
+ }
+ return out;
+ }
+ // This split declaration is only so that terser can elminiate the static initialization block.
+ function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
+ const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = cast(map);
+ const line = getLine(mappings, genLine);
+ const index = getColumnIndex(line, genColumn);
+ if (!source) {
+ if (skipable && skipSourceless(line, index))
+ return;
+ return insert(line, index, [genColumn]);
+ }
+ const sourcesIndex = setArray.put(sources, source);
+ const namesIndex = name ? setArray.put(names, name) : NO_NAME;
+ if (sourcesIndex === sourcesContent.length)
+ sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null;
+ if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {
+ return;
+ }
+ return insert(line, index, name
+ ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]
+ : [genColumn, sourcesIndex, sourceLine, sourceColumn]);
+ }
+ function getLine(mappings, index) {
+ for (let i = mappings.length; i <= index; i++) {
+ mappings[i] = [];
+ }
+ return mappings[index];
+ }
+ function getColumnIndex(line, genColumn) {
+ let index = line.length;
+ for (let i = index - 1; i >= 0; index = i--) {
+ const current = line[i];
+ if (genColumn >= current[COLUMN])
+ break;
+ }
+ return index;
+ }
+ function insert(array, index, value) {
+ for (let i = array.length; i > index; i--) {
+ array[i] = array[i - 1];
+ }
+ array[index] = value;
+ }
+ function removeEmptyFinalLines(mappings) {
+ const { length } = mappings;
+ let len = length;
+ for (let i = len - 1; i >= 0; len = i, i--) {
+ if (mappings[i].length > 0)
+ break;
+ }
+ if (len < length)
+ mappings.length = len;
+ }
+ function putAll(setarr, array) {
+ for (let i = 0; i < array.length; i++)
+ setArray.put(setarr, array[i]);
+ }
+ function skipSourceless(line, index) {
+ // The start of a line is already sourceless, so adding a sourceless segment to the beginning
+ // doesn't generate any useful information.
+ if (index === 0)
+ return true;
+ const prev = line[index - 1];
+ // If the previous segment is also sourceless, then adding another sourceless segment doesn't
+ // genrate any new information. Else, this segment will end the source/named segment and point to
+ // a sourceless position, which is useful.
+ return prev.length === 1;
+ }
+ function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
+ // A source/named segment at the start of a line gives position at that genColumn
+ if (index === 0)
+ return false;
+ const prev = line[index - 1];
+ // If the previous segment is sourceless, then we're transitioning to a source.
+ if (prev.length === 1)
+ return false;
+ // If the previous segment maps to the exact same source position, then this segment doesn't
+ // provide any new position information.
+ return (sourcesIndex === prev[SOURCES_INDEX] &&
+ sourceLine === prev[SOURCE_LINE] &&
+ sourceColumn === prev[SOURCE_COLUMN] &&
+ namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));
+ }
+ function addMappingInternal(skipable, map, mapping) {
+ const { generated, source, original, name, content } = mapping;
+ if (!source) {
+ return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null);
+ }
+ return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content);
+ }
+
+ exports.GenMapping = GenMapping;
+ exports.addMapping = addMapping;
+ exports.addSegment = addSegment;
+ exports.allMappings = allMappings;
+ exports.fromMap = fromMap;
+ exports.maybeAddMapping = maybeAddMapping;
+ exports.maybeAddSegment = maybeAddSegment;
+ exports.setIgnore = setIgnore;
+ exports.setSourceContent = setSourceContent;
+ exports.toDecodedMap = toDecodedMap;
+ exports.toEncodedMap = toEncodedMap;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
+//# sourceMappingURL=gen-mapping.umd.js.map
diff --git a/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map
new file mode 100644
index 0000000..72172ac
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"gen-mapping.umd.js","sources":["../src/sourcemap-segment.ts","../src/gen-mapping.ts"],"sourcesContent":["type GeneratedColumn = number;\ntype SourcesIndex = number;\ntype SourceLine = number;\ntype SourceColumn = number;\ntype NamesIndex = number;\n\nexport type SourceMapSegment =\n | [GeneratedColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn]\n | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];\n\nexport const COLUMN = 0;\nexport const SOURCES_INDEX = 1;\nexport const SOURCE_LINE = 2;\nexport const SOURCE_COLUMN = 3;\nexport const NAMES_INDEX = 4;\n","import { SetArray, put, remove } from '@jridgewell/set-array';\nimport { encode } from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nimport {\n COLUMN,\n SOURCES_INDEX,\n SOURCE_LINE,\n SOURCE_COLUMN,\n NAMES_INDEX,\n} from './sourcemap-segment';\n\nimport type { SourceMapInput } from '@jridgewell/trace-mapping';\nimport type { SourceMapSegment } from './sourcemap-segment';\nimport type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types';\n\nexport type { DecodedSourceMap, EncodedSourceMap, Mapping };\n\nexport type Options = {\n file?: string | null;\n sourceRoot?: string | null;\n};\n\nconst NO_NAME = -1;\n\n/**\n * Provides the state to generate a sourcemap.\n */\nexport class GenMapping {\n private declare _names: SetArray;\n private declare _sources: SetArray;\n private declare _sourcesContent: (string | null)[];\n private declare _mappings: SourceMapSegment[][];\n private declare _ignoreList: SetArray;\n declare file: string | null | undefined;\n declare sourceRoot: string | null | undefined;\n\n constructor({ file, sourceRoot }: Options = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n}\n\ninterface PublicMap {\n _names: GenMapping['_names'];\n _sources: GenMapping['_sources'];\n _sourcesContent: GenMapping['_sourcesContent'];\n _mappings: GenMapping['_mappings'];\n _ignoreList: GenMapping['_ignoreList'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map: unknown): PublicMap {\n return map as any;\n}\n\n/**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: null,\n sourceLine?: null,\n sourceColumn?: null,\n name?: null,\n content?: null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name?: null,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: string,\n sourceLine: number,\n sourceColumn: number,\n name: string,\n content?: string | null,\n): void;\nexport function addSegment(\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source?: string | null,\n sourceLine?: number | null,\n sourceColumn?: number | null,\n name?: string | null,\n content?: string | null,\n): void {\n return addSegmentInternal(\n false,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n}\n\n/**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: null;\n original?: null;\n name?: null;\n content?: null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name?: null;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: string;\n original: Pos;\n name: string;\n content?: string | null;\n },\n): void;\nexport function addMapping(\n map: GenMapping,\n mapping: {\n generated: Pos;\n source?: string | null;\n original?: Pos | null;\n name?: string | null;\n content?: string | null;\n },\n): void {\n return addMappingInternal(false, map, mapping as Parameters[2]);\n}\n\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nexport const maybeAddSegment: typeof addSegment = (\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n) => {\n return addSegmentInternal(\n true,\n map,\n genLine,\n genColumn,\n source,\n sourceLine,\n sourceColumn,\n name,\n content,\n );\n};\n\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nexport const maybeAddMapping: typeof addMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping as Parameters[2]);\n};\n\n/**\n * Adds/removes the content of the source file to the source map.\n */\nexport function setSourceContent(map: GenMapping, source: string, content: string | null): void {\n const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n}\n\nexport function setIgnore(map: GenMapping, source: string, ignore = true) {\n const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);\n const index = put(sources, source);\n if (index === sourcesContent.length) sourcesContent[index] = null;\n if (ignore) put(ignoreList, index);\n else remove(ignoreList, index);\n}\n\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toDecodedMap(map: GenMapping): DecodedSourceMap {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n _ignoreList: ignoreList,\n } = cast(map);\n removeEmptyFinalLines(mappings);\n\n return {\n version: 3,\n file: map.file || undefined,\n names: names.array,\n sourceRoot: map.sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n ignoreList: ignoreList.array,\n };\n}\n\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nexport function toEncodedMap(map: GenMapping): EncodedSourceMap {\n const decoded = toDecodedMap(map);\n return {\n ...decoded,\n mappings: encode(decoded.mappings as SourceMapSegment[][]),\n };\n}\n\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nexport function fromMap(input: SourceMapInput): GenMapping {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n\n putAll(cast(gen)._names, map.names);\n putAll(cast(gen)._sources, map.sources as string[]);\n cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast(gen)._mappings = decodedMappings(map) as GenMapping['_mappings'];\n if (map.ignoreList) putAll(cast(gen)._ignoreList, map.ignoreList);\n\n return gen;\n}\n\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nexport function allMappings(map: GenMapping): Mapping[] {\n const out: Mapping[] = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source: string | undefined = undefined;\n let original: Pos | undefined = undefined;\n let name: string | undefined = undefined;\n\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n\n if (seg.length === 5) name = names.array[seg[NAMES_INDEX]];\n }\n\n out.push({ generated, source, original, name } as Mapping);\n }\n }\n\n return out;\n}\n\n// This split declaration is only so that terser can elminiate the static initialization block.\nfunction addSegmentInternal(\n skipable: boolean,\n map: GenMapping,\n genLine: number,\n genColumn: number,\n source: S,\n sourceLine: S extends string ? number : null | undefined,\n sourceColumn: S extends string ? number : null | undefined,\n name: S extends string ? string | null | undefined : null | undefined,\n content: S extends string ? string | null | undefined : null | undefined,\n): void {\n const {\n _mappings: mappings,\n _sources: sources,\n _sourcesContent: sourcesContent,\n _names: names,\n } = cast(map);\n const line = getLine(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n\n if (!source) {\n if (skipable && skipSourceless(line, index)) return;\n return insert(line, index, [genColumn]);\n }\n\n // Sigh, TypeScript can't figure out sourceLine and sourceColumn aren't nullish if source\n // isn't nullish.\n assert(sourceLine);\n assert(sourceColumn);\n\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length) sourcesContent[sourcesIndex] = content ?? null;\n\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n\n return insert(\n line,\n index,\n name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn],\n );\n}\n\nfunction assert(_val: unknown): asserts _val is T {\n // noop.\n}\n\nfunction getLine(mappings: SourceMapSegment[][], index: number): SourceMapSegment[] {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n}\n\nfunction getColumnIndex(line: SourceMapSegment[], genColumn: number): number {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN]) break;\n }\n return index;\n}\n\nfunction insert(array: T[], index: number, value: T) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n\nfunction removeEmptyFinalLines(mappings: SourceMapSegment[][]) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0) break;\n }\n if (len < length) mappings.length = len;\n}\n\nfunction putAll(setarr: SetArray, array: T[]) {\n for (let i = 0; i < array.length; i++) put(setarr, array[i]);\n}\n\nfunction skipSourceless(line: SourceMapSegment[], index: number): boolean {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0) return true;\n\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n}\n\nfunction skipSource(\n line: SourceMapSegment[],\n index: number,\n sourcesIndex: number,\n sourceLine: number,\n sourceColumn: number,\n namesIndex: number,\n): boolean {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0) return false;\n\n const prev = line[index - 1];\n\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1) return false;\n\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (\n sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)\n );\n}\n\nfunction addMappingInternal(\n skipable: boolean,\n map: GenMapping,\n mapping: {\n generated: Pos;\n source: S;\n original: S extends string ? Pos : null | undefined;\n name: S extends string ? string | null | undefined : null | undefined;\n content: S extends string ? string | null | undefined : null | undefined;\n },\n) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n null,\n null,\n null,\n null,\n null,\n );\n }\n assert(original);\n return addSegmentInternal(\n skipable,\n map,\n generated.line - 1,\n generated.column,\n source as string,\n original.line - 1,\n original.column,\n name,\n content,\n );\n}\n"],"names":["SetArray","put","remove","encode","TraceMap","decodedMappings"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts b/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts
new file mode 100644
index 0000000..398a695
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/types/gen-mapping.d.ts
@@ -0,0 +1,88 @@
+import type { SourceMapInput } from '@jridgewell/trace-mapping';
+import type { DecodedSourceMap, EncodedSourceMap, Pos, Mapping } from './types';
+export type { DecodedSourceMap, EncodedSourceMap, Mapping };
+export declare type Options = {
+ file?: string | null;
+ sourceRoot?: string | null;
+};
+/**
+ * Provides the state to generate a sourcemap.
+ */
+export declare class GenMapping {
+ private _names;
+ private _sources;
+ private _sourcesContent;
+ private _mappings;
+ private _ignoreList;
+ file: string | null | undefined;
+ sourceRoot: string | null | undefined;
+ constructor({ file, sourceRoot }?: Options);
+}
+/**
+ * A low-level API to associate a generated position with an original source position. Line and
+ * column here are 0-based, unlike `addMapping`.
+ */
+export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source?: null, sourceLine?: null, sourceColumn?: null, name?: null, content?: null): void;
+export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name?: null, content?: string | null): void;
+export declare function addSegment(map: GenMapping, genLine: number, genColumn: number, source: string, sourceLine: number, sourceColumn: number, name: string, content?: string | null): void;
+/**
+ * A high-level API to associate a generated position with an original source position. Line is
+ * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.
+ */
+export declare function addMapping(map: GenMapping, mapping: {
+ generated: Pos;
+ source?: null;
+ original?: null;
+ name?: null;
+ content?: null;
+}): void;
+export declare function addMapping(map: GenMapping, mapping: {
+ generated: Pos;
+ source: string;
+ original: Pos;
+ name?: null;
+ content?: string | null;
+}): void;
+export declare function addMapping(map: GenMapping, mapping: {
+ generated: Pos;
+ source: string;
+ original: Pos;
+ name: string;
+ content?: string | null;
+}): void;
+/**
+ * Same as `addSegment`, but will only add the segment if it generates useful information in the
+ * resulting map. This only works correctly if segments are added **in order**, meaning you should
+ * not add a segment with a lower generated line/column than one that came before.
+ */
+export declare const maybeAddSegment: typeof addSegment;
+/**
+ * Same as `addMapping`, but will only add the mapping if it generates useful information in the
+ * resulting map. This only works correctly if mappings are added **in order**, meaning you should
+ * not add a mapping with a lower generated line/column than one that came before.
+ */
+export declare const maybeAddMapping: typeof addMapping;
+/**
+ * Adds/removes the content of the source file to the source map.
+ */
+export declare function setSourceContent(map: GenMapping, source: string, content: string | null): void;
+export declare function setIgnore(map: GenMapping, source: string, ignore?: boolean): void;
+/**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+export declare function toDecodedMap(map: GenMapping): DecodedSourceMap;
+/**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+export declare function toEncodedMap(map: GenMapping): EncodedSourceMap;
+/**
+ * Constructs a new GenMapping, using the already present mappings of the input.
+ */
+export declare function fromMap(input: SourceMapInput): GenMapping;
+/**
+ * Returns an array of high-level mapping objects for every recorded segment, which could then be
+ * passed to the `source-map` library.
+ */
+export declare function allMappings(map: GenMapping): Mapping[];
diff --git a/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts b/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts
new file mode 100644
index 0000000..e187ba9
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/types/sourcemap-segment.d.ts
@@ -0,0 +1,12 @@
+declare type GeneratedColumn = number;
+declare type SourcesIndex = number;
+declare type SourceLine = number;
+declare type SourceColumn = number;
+declare type NamesIndex = number;
+export declare type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];
+export declare const COLUMN = 0;
+export declare const SOURCES_INDEX = 1;
+export declare const SOURCE_LINE = 2;
+export declare const SOURCE_COLUMN = 3;
+export declare const NAMES_INDEX = 4;
+export {};
diff --git a/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts b/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts
new file mode 100644
index 0000000..7f0ab15
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/dist/types/types.d.ts
@@ -0,0 +1,36 @@
+import type { SourceMapSegment } from './sourcemap-segment';
+export interface SourceMapV3 {
+ file?: string | null;
+ names: readonly string[];
+ sourceRoot?: string;
+ sources: readonly (string | null)[];
+ sourcesContent?: readonly (string | null)[];
+ version: 3;
+ ignoreList?: readonly number[];
+}
+export interface EncodedSourceMap extends SourceMapV3 {
+ mappings: string;
+}
+export interface DecodedSourceMap extends SourceMapV3 {
+ mappings: readonly SourceMapSegment[][];
+}
+export interface Pos {
+ line: number;
+ column: number;
+}
+export declare type Mapping = {
+ generated: Pos;
+ source: undefined;
+ original: undefined;
+ name: undefined;
+} | {
+ generated: Pos;
+ source: string;
+ original: Pos;
+ name: string;
+} | {
+ generated: Pos;
+ source: string;
+ original: Pos;
+ name: undefined;
+};
diff --git a/node_modules/@jridgewell/gen-mapping/package.json b/node_modules/@jridgewell/gen-mapping/package.json
new file mode 100644
index 0000000..9b8f0bb
--- /dev/null
+++ b/node_modules/@jridgewell/gen-mapping/package.json
@@ -0,0 +1,76 @@
+{
+ "name": "@jridgewell/gen-mapping",
+ "version": "0.3.8",
+ "description": "Generate source maps",
+ "keywords": [
+ "source",
+ "map"
+ ],
+ "author": "Justin Ridgewell ",
+ "license": "MIT",
+ "repository": "https://github.com/jridgewell/gen-mapping",
+ "main": "dist/gen-mapping.umd.js",
+ "module": "dist/gen-mapping.mjs",
+ "types": "dist/types/gen-mapping.d.ts",
+ "exports": {
+ ".": [
+ {
+ "types": "./dist/types/gen-mapping.d.ts",
+ "browser": "./dist/gen-mapping.umd.js",
+ "require": "./dist/gen-mapping.umd.js",
+ "import": "./dist/gen-mapping.mjs"
+ },
+ "./dist/gen-mapping.umd.js"
+ ],
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "dist"
+ ],
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "scripts": {
+ "benchmark": "run-s build:rollup benchmark:*",
+ "benchmark:install": "cd benchmark && npm install",
+ "benchmark:only": "node benchmark/index.mjs",
+ "prebuild": "rm -rf dist",
+ "build": "run-s -n build:*",
+ "build:rollup": "rollup -c rollup.config.js",
+ "build:ts": "tsc --project tsconfig.build.json",
+ "lint": "run-s -n lint:*",
+ "lint:prettier": "npm run test:lint:prettier -- --write",
+ "lint:ts": "npm run test:lint:ts -- --fix",
+ "test": "run-s -n test:lint test:only",
+ "test:debug": "mocha --inspect-brk",
+ "test:lint": "run-s -n test:lint:*",
+ "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
+ "test:lint:ts": "eslint '{src,test}/**/*.ts'",
+ "test:only": "c8 mocha",
+ "test:watch": "mocha --watch",
+ "prepublishOnly": "npm run preversion",
+ "preversion": "run-s test build"
+ },
+ "devDependencies": {
+ "@rollup/plugin-typescript": "8.3.2",
+ "@types/mocha": "9.1.1",
+ "@types/node": "17.0.29",
+ "@typescript-eslint/eslint-plugin": "5.21.0",
+ "@typescript-eslint/parser": "5.21.0",
+ "benchmark": "2.1.4",
+ "c8": "7.11.2",
+ "eslint": "8.14.0",
+ "eslint-config-prettier": "8.5.0",
+ "mocha": "9.2.2",
+ "npm-run-all": "4.1.5",
+ "prettier": "2.6.2",
+ "rollup": "2.70.2",
+ "tsx": "4.7.1",
+ "typescript": "4.6.3"
+ },
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+}
diff --git a/node_modules/@jridgewell/resolve-uri/LICENSE b/node_modules/@jridgewell/resolve-uri/LICENSE
new file mode 100644
index 0000000..0a81b2a
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/LICENSE
@@ -0,0 +1,19 @@
+Copyright 2019 Justin Ridgewell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/node_modules/@jridgewell/resolve-uri/README.md b/node_modules/@jridgewell/resolve-uri/README.md
new file mode 100644
index 0000000..2fe70df
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/README.md
@@ -0,0 +1,40 @@
+# @jridgewell/resolve-uri
+
+> Resolve a URI relative to an optional base URI
+
+Resolve any combination of absolute URIs, protocol-realtive URIs, absolute paths, or relative paths.
+
+## Installation
+
+```sh
+npm install @jridgewell/resolve-uri
+```
+
+## Usage
+
+```typescript
+function resolve(input: string, base?: string): string;
+```
+
+```js
+import resolve from '@jridgewell/resolve-uri';
+
+resolve('foo', 'https://example.com'); // => 'https://example.com/foo'
+```
+
+| Input | Base | Resolution | Explanation |
+|-----------------------|-------------------------|--------------------------------|--------------------------------------------------------------|
+| `https://example.com` | _any_ | `https://example.com/` | Input is normalized only |
+| `//example.com` | `https://base.com/` | `https://example.com/` | Input inherits the base's protocol |
+| `//example.com` | _rest_ | `//example.com/` | Input is normalized only |
+| `/example` | `https://base.com/` | `https://base.com/example` | Input inherits the base's origin |
+| `/example` | `//base.com/` | `//base.com/example` | Input inherits the base's host and remains protocol relative |
+| `/example` | _rest_ | `/example` | Input is normalized only |
+| `example` | `https://base.com/dir/` | `https://base.com/dir/example` | Input is joined with the base |
+| `example` | `https://base.com/file` | `https://base.com/example` | Input is joined with the base without its file |
+| `example` | `//base.com/dir/` | `//base.com/dir/example` | Input is joined with the base's last directory |
+| `example` | `//base.com/file` | `//base.com/example` | Input is joined with the base without its file |
+| `example` | `/base/dir/` | `/base/dir/example` | Input is joined with the base's last directory |
+| `example` | `/base/file` | `/base/example` | Input is joined with the base without its file |
+| `example` | `base/dir/` | `base/dir/example` | Input is joined with the base's last directory |
+| `example` | `base/file` | `base/example` | Input is joined with the base without its file |
diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
new file mode 100644
index 0000000..e958e88
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs
@@ -0,0 +1,232 @@
+// Matches the scheme of a URL, eg "http://"
+const schemeRegex = /^[\w+.-]+:\/\//;
+/**
+ * Matches the parts of a URL:
+ * 1. Scheme, including ":", guaranteed.
+ * 2. User/password, including "@", optional.
+ * 3. Host, guaranteed.
+ * 4. Port, including ":", optional.
+ * 5. Path, including "/", optional.
+ * 6. Query, including "?", optional.
+ * 7. Hash, including "#", optional.
+ */
+const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
+/**
+ * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
+ * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
+ *
+ * 1. Host, optional.
+ * 2. Path, which may include "/", guaranteed.
+ * 3. Query, including "?", optional.
+ * 4. Hash, including "#", optional.
+ */
+const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
+function isAbsoluteUrl(input) {
+ return schemeRegex.test(input);
+}
+function isSchemeRelativeUrl(input) {
+ return input.startsWith('//');
+}
+function isAbsolutePath(input) {
+ return input.startsWith('/');
+}
+function isFileUrl(input) {
+ return input.startsWith('file:');
+}
+function isRelative(input) {
+ return /^[.?#]/.test(input);
+}
+function parseAbsoluteUrl(input) {
+ const match = urlRegex.exec(input);
+ return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
+}
+function parseFileUrl(input) {
+ const match = fileRegex.exec(input);
+ const path = match[2];
+ return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
+}
+function makeUrl(scheme, user, host, port, path, query, hash) {
+ return {
+ scheme,
+ user,
+ host,
+ port,
+ path,
+ query,
+ hash,
+ type: 7 /* Absolute */,
+ };
+}
+function parseUrl(input) {
+ if (isSchemeRelativeUrl(input)) {
+ const url = parseAbsoluteUrl('http:' + input);
+ url.scheme = '';
+ url.type = 6 /* SchemeRelative */;
+ return url;
+ }
+ if (isAbsolutePath(input)) {
+ const url = parseAbsoluteUrl('http://foo.com' + input);
+ url.scheme = '';
+ url.host = '';
+ url.type = 5 /* AbsolutePath */;
+ return url;
+ }
+ if (isFileUrl(input))
+ return parseFileUrl(input);
+ if (isAbsoluteUrl(input))
+ return parseAbsoluteUrl(input);
+ const url = parseAbsoluteUrl('http://foo.com/' + input);
+ url.scheme = '';
+ url.host = '';
+ url.type = input
+ ? input.startsWith('?')
+ ? 3 /* Query */
+ : input.startsWith('#')
+ ? 2 /* Hash */
+ : 4 /* RelativePath */
+ : 1 /* Empty */;
+ return url;
+}
+function stripPathFilename(path) {
+ // If a path ends with a parent directory "..", then it's a relative path with excess parent
+ // paths. It's not a file, so we can't strip it.
+ if (path.endsWith('/..'))
+ return path;
+ const index = path.lastIndexOf('/');
+ return path.slice(0, index + 1);
+}
+function mergePaths(url, base) {
+ normalizePath(base, base.type);
+ // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
+ // path).
+ if (url.path === '/') {
+ url.path = base.path;
+ }
+ else {
+ // Resolution happens relative to the base path's directory, not the file.
+ url.path = stripPathFilename(base.path) + url.path;
+ }
+}
+/**
+ * The path can have empty directories "//", unneeded parents "foo/..", or current directory
+ * "foo/.". We need to normalize to a standard representation.
+ */
+function normalizePath(url, type) {
+ const rel = type <= 4 /* RelativePath */;
+ const pieces = url.path.split('/');
+ // We need to preserve the first piece always, so that we output a leading slash. The item at
+ // pieces[0] is an empty string.
+ let pointer = 1;
+ // Positive is the number of real directories we've output, used for popping a parent directory.
+ // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
+ let positive = 0;
+ // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
+ // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
+ // real directory, we won't need to append, unless the other conditions happen again.
+ let addTrailingSlash = false;
+ for (let i = 1; i < pieces.length; i++) {
+ const piece = pieces[i];
+ // An empty directory, could be a trailing slash, or just a double "//" in the path.
+ if (!piece) {
+ addTrailingSlash = true;
+ continue;
+ }
+ // If we encounter a real directory, then we don't need to append anymore.
+ addTrailingSlash = false;
+ // A current directory, which we can always drop.
+ if (piece === '.')
+ continue;
+ // A parent directory, we need to see if there are any real directories we can pop. Else, we
+ // have an excess of parents, and we'll need to keep the "..".
+ if (piece === '..') {
+ if (positive) {
+ addTrailingSlash = true;
+ positive--;
+ pointer--;
+ }
+ else if (rel) {
+ // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
+ // URL, protocol relative URL, or an absolute path, we don't need to keep excess.
+ pieces[pointer++] = piece;
+ }
+ continue;
+ }
+ // We've encountered a real directory. Move it to the next insertion pointer, which accounts for
+ // any popped or dropped directories.
+ pieces[pointer++] = piece;
+ positive++;
+ }
+ let path = '';
+ for (let i = 1; i < pointer; i++) {
+ path += '/' + pieces[i];
+ }
+ if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
+ path += '/';
+ }
+ url.path = path;
+}
+/**
+ * Attempts to resolve `input` URL/path relative to `base`.
+ */
+function resolve(input, base) {
+ if (!input && !base)
+ return '';
+ const url = parseUrl(input);
+ let inputType = url.type;
+ if (base && inputType !== 7 /* Absolute */) {
+ const baseUrl = parseUrl(base);
+ const baseType = baseUrl.type;
+ switch (inputType) {
+ case 1 /* Empty */:
+ url.hash = baseUrl.hash;
+ // fall through
+ case 2 /* Hash */:
+ url.query = baseUrl.query;
+ // fall through
+ case 3 /* Query */:
+ case 4 /* RelativePath */:
+ mergePaths(url, baseUrl);
+ // fall through
+ case 5 /* AbsolutePath */:
+ // The host, user, and port are joined, you can't copy one without the others.
+ url.user = baseUrl.user;
+ url.host = baseUrl.host;
+ url.port = baseUrl.port;
+ // fall through
+ case 6 /* SchemeRelative */:
+ // The input doesn't have a schema at least, so we need to copy at least that over.
+ url.scheme = baseUrl.scheme;
+ }
+ if (baseType > inputType)
+ inputType = baseType;
+ }
+ normalizePath(url, inputType);
+ const queryHash = url.query + url.hash;
+ switch (inputType) {
+ // This is impossible, because of the empty checks at the start of the function.
+ // case UrlType.Empty:
+ case 2 /* Hash */:
+ case 3 /* Query */:
+ return queryHash;
+ case 4 /* RelativePath */: {
+ // The first char is always a "/", and we need it to be relative.
+ const path = url.path.slice(1);
+ if (!path)
+ return queryHash || '.';
+ if (isRelative(base || input) && !isRelative(path)) {
+ // If base started with a leading ".", or there is no base and input started with a ".",
+ // then we need to ensure that the relative path starts with a ".". We don't know if
+ // relative starts with a "..", though, so check before prepending.
+ return './' + path + queryHash;
+ }
+ return path + queryHash;
+ }
+ case 5 /* AbsolutePath */:
+ return url.path + queryHash;
+ default:
+ return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
+ }
+}
+
+export { resolve as default };
+//# sourceMappingURL=resolve-uri.mjs.map
diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
new file mode 100644
index 0000000..1de97d0
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"resolve-uri.mjs","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
new file mode 100644
index 0000000..a783049
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js
@@ -0,0 +1,240 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.resolveURI = factory());
+})(this, (function () { 'use strict';
+
+ // Matches the scheme of a URL, eg "http://"
+ const schemeRegex = /^[\w+.-]+:\/\//;
+ /**
+ * Matches the parts of a URL:
+ * 1. Scheme, including ":", guaranteed.
+ * 2. User/password, including "@", optional.
+ * 3. Host, guaranteed.
+ * 4. Port, including ":", optional.
+ * 5. Path, including "/", optional.
+ * 6. Query, including "?", optional.
+ * 7. Hash, including "#", optional.
+ */
+ const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
+ /**
+ * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
+ * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
+ *
+ * 1. Host, optional.
+ * 2. Path, which may include "/", guaranteed.
+ * 3. Query, including "?", optional.
+ * 4. Hash, including "#", optional.
+ */
+ const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
+ function isAbsoluteUrl(input) {
+ return schemeRegex.test(input);
+ }
+ function isSchemeRelativeUrl(input) {
+ return input.startsWith('//');
+ }
+ function isAbsolutePath(input) {
+ return input.startsWith('/');
+ }
+ function isFileUrl(input) {
+ return input.startsWith('file:');
+ }
+ function isRelative(input) {
+ return /^[.?#]/.test(input);
+ }
+ function parseAbsoluteUrl(input) {
+ const match = urlRegex.exec(input);
+ return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
+ }
+ function parseFileUrl(input) {
+ const match = fileRegex.exec(input);
+ const path = match[2];
+ return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
+ }
+ function makeUrl(scheme, user, host, port, path, query, hash) {
+ return {
+ scheme,
+ user,
+ host,
+ port,
+ path,
+ query,
+ hash,
+ type: 7 /* Absolute */,
+ };
+ }
+ function parseUrl(input) {
+ if (isSchemeRelativeUrl(input)) {
+ const url = parseAbsoluteUrl('http:' + input);
+ url.scheme = '';
+ url.type = 6 /* SchemeRelative */;
+ return url;
+ }
+ if (isAbsolutePath(input)) {
+ const url = parseAbsoluteUrl('http://foo.com' + input);
+ url.scheme = '';
+ url.host = '';
+ url.type = 5 /* AbsolutePath */;
+ return url;
+ }
+ if (isFileUrl(input))
+ return parseFileUrl(input);
+ if (isAbsoluteUrl(input))
+ return parseAbsoluteUrl(input);
+ const url = parseAbsoluteUrl('http://foo.com/' + input);
+ url.scheme = '';
+ url.host = '';
+ url.type = input
+ ? input.startsWith('?')
+ ? 3 /* Query */
+ : input.startsWith('#')
+ ? 2 /* Hash */
+ : 4 /* RelativePath */
+ : 1 /* Empty */;
+ return url;
+ }
+ function stripPathFilename(path) {
+ // If a path ends with a parent directory "..", then it's a relative path with excess parent
+ // paths. It's not a file, so we can't strip it.
+ if (path.endsWith('/..'))
+ return path;
+ const index = path.lastIndexOf('/');
+ return path.slice(0, index + 1);
+ }
+ function mergePaths(url, base) {
+ normalizePath(base, base.type);
+ // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
+ // path).
+ if (url.path === '/') {
+ url.path = base.path;
+ }
+ else {
+ // Resolution happens relative to the base path's directory, not the file.
+ url.path = stripPathFilename(base.path) + url.path;
+ }
+ }
+ /**
+ * The path can have empty directories "//", unneeded parents "foo/..", or current directory
+ * "foo/.". We need to normalize to a standard representation.
+ */
+ function normalizePath(url, type) {
+ const rel = type <= 4 /* RelativePath */;
+ const pieces = url.path.split('/');
+ // We need to preserve the first piece always, so that we output a leading slash. The item at
+ // pieces[0] is an empty string.
+ let pointer = 1;
+ // Positive is the number of real directories we've output, used for popping a parent directory.
+ // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
+ let positive = 0;
+ // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
+ // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
+ // real directory, we won't need to append, unless the other conditions happen again.
+ let addTrailingSlash = false;
+ for (let i = 1; i < pieces.length; i++) {
+ const piece = pieces[i];
+ // An empty directory, could be a trailing slash, or just a double "//" in the path.
+ if (!piece) {
+ addTrailingSlash = true;
+ continue;
+ }
+ // If we encounter a real directory, then we don't need to append anymore.
+ addTrailingSlash = false;
+ // A current directory, which we can always drop.
+ if (piece === '.')
+ continue;
+ // A parent directory, we need to see if there are any real directories we can pop. Else, we
+ // have an excess of parents, and we'll need to keep the "..".
+ if (piece === '..') {
+ if (positive) {
+ addTrailingSlash = true;
+ positive--;
+ pointer--;
+ }
+ else if (rel) {
+ // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
+ // URL, protocol relative URL, or an absolute path, we don't need to keep excess.
+ pieces[pointer++] = piece;
+ }
+ continue;
+ }
+ // We've encountered a real directory. Move it to the next insertion pointer, which accounts for
+ // any popped or dropped directories.
+ pieces[pointer++] = piece;
+ positive++;
+ }
+ let path = '';
+ for (let i = 1; i < pointer; i++) {
+ path += '/' + pieces[i];
+ }
+ if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
+ path += '/';
+ }
+ url.path = path;
+ }
+ /**
+ * Attempts to resolve `input` URL/path relative to `base`.
+ */
+ function resolve(input, base) {
+ if (!input && !base)
+ return '';
+ const url = parseUrl(input);
+ let inputType = url.type;
+ if (base && inputType !== 7 /* Absolute */) {
+ const baseUrl = parseUrl(base);
+ const baseType = baseUrl.type;
+ switch (inputType) {
+ case 1 /* Empty */:
+ url.hash = baseUrl.hash;
+ // fall through
+ case 2 /* Hash */:
+ url.query = baseUrl.query;
+ // fall through
+ case 3 /* Query */:
+ case 4 /* RelativePath */:
+ mergePaths(url, baseUrl);
+ // fall through
+ case 5 /* AbsolutePath */:
+ // The host, user, and port are joined, you can't copy one without the others.
+ url.user = baseUrl.user;
+ url.host = baseUrl.host;
+ url.port = baseUrl.port;
+ // fall through
+ case 6 /* SchemeRelative */:
+ // The input doesn't have a schema at least, so we need to copy at least that over.
+ url.scheme = baseUrl.scheme;
+ }
+ if (baseType > inputType)
+ inputType = baseType;
+ }
+ normalizePath(url, inputType);
+ const queryHash = url.query + url.hash;
+ switch (inputType) {
+ // This is impossible, because of the empty checks at the start of the function.
+ // case UrlType.Empty:
+ case 2 /* Hash */:
+ case 3 /* Query */:
+ return queryHash;
+ case 4 /* RelativePath */: {
+ // The first char is always a "/", and we need it to be relative.
+ const path = url.path.slice(1);
+ if (!path)
+ return queryHash || '.';
+ if (isRelative(base || input) && !isRelative(path)) {
+ // If base started with a leading ".", or there is no base and input started with a ".",
+ // then we need to ensure that the relative path starts with a ".". We don't know if
+ // relative starts with a "..", though, so check before prepending.
+ return './' + path + queryHash;
+ }
+ return path + queryHash;
+ }
+ case 5 /* AbsolutePath */:
+ return url.path + queryHash;
+ default:
+ return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
+ }
+ }
+
+ return resolve;
+
+}));
+//# sourceMappingURL=resolve-uri.umd.js.map
diff --git a/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
new file mode 100644
index 0000000..70a37f2
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"resolve-uri.umd.js","sources":["../src/resolve-uri.ts"],"sourcesContent":["// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n\ntype Url = {\n scheme: string;\n user: string;\n host: string;\n port: string;\n path: string;\n query: string;\n hash: string;\n type: UrlType;\n};\n\nconst enum UrlType {\n Empty = 1,\n Hash = 2,\n Query = 3,\n RelativePath = 4,\n AbsolutePath = 5,\n SchemeRelative = 6,\n Absolute = 7,\n}\n\nfunction isAbsoluteUrl(input: string): boolean {\n return schemeRegex.test(input);\n}\n\nfunction isSchemeRelativeUrl(input: string): boolean {\n return input.startsWith('//');\n}\n\nfunction isAbsolutePath(input: string): boolean {\n return input.startsWith('/');\n}\n\nfunction isFileUrl(input: string): boolean {\n return input.startsWith('file:');\n}\n\nfunction isRelative(input: string): boolean {\n return /^[.?#]/.test(input);\n}\n\nfunction parseAbsoluteUrl(input: string): Url {\n const match = urlRegex.exec(input)!;\n return makeUrl(\n match[1],\n match[2] || '',\n match[3],\n match[4] || '',\n match[5] || '/',\n match[6] || '',\n match[7] || '',\n );\n}\n\nfunction parseFileUrl(input: string): Url {\n const match = fileRegex.exec(input)!;\n const path = match[2];\n return makeUrl(\n 'file:',\n '',\n match[1] || '',\n '',\n isAbsolutePath(path) ? path : '/' + path,\n match[3] || '',\n match[4] || '',\n );\n}\n\nfunction makeUrl(\n scheme: string,\n user: string,\n host: string,\n port: string,\n path: string,\n query: string,\n hash: string,\n): Url {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: UrlType.Absolute,\n };\n}\n\nfunction parseUrl(input: string): Url {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = UrlType.SchemeRelative;\n return url;\n }\n\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = UrlType.AbsolutePath;\n return url;\n }\n\n if (isFileUrl(input)) return parseFileUrl(input);\n\n if (isAbsoluteUrl(input)) return parseAbsoluteUrl(input);\n\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? UrlType.Query\n : input.startsWith('#')\n ? UrlType.Hash\n : UrlType.RelativePath\n : UrlType.Empty;\n return url;\n}\n\nfunction stripPathFilename(path: string): string {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..')) return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nfunction mergePaths(url: Url, base: Url) {\n normalizePath(base, base.type);\n\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n } else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url: Url, type: UrlType) {\n const rel = type <= UrlType.RelativePath;\n const pieces = url.path.split('/');\n\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n\n // A current directory, which we can always drop.\n if (piece === '.') continue;\n\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n } else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nexport default function resolve(input: string, base: string | undefined): string {\n if (!input && !base) return '';\n\n const url = parseUrl(input);\n let inputType = url.type;\n\n if (base && inputType !== UrlType.Absolute) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n\n switch (inputType) {\n case UrlType.Empty:\n url.hash = baseUrl.hash;\n // fall through\n\n case UrlType.Hash:\n url.query = baseUrl.query;\n // fall through\n\n case UrlType.Query:\n case UrlType.RelativePath:\n mergePaths(url, baseUrl);\n // fall through\n\n case UrlType.AbsolutePath:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n\n case UrlType.SchemeRelative:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType) inputType = baseType;\n }\n\n normalizePath(url, inputType);\n\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n\n case UrlType.Hash:\n case UrlType.Query:\n return queryHash;\n\n case UrlType.RelativePath: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n\n if (!path) return queryHash || '.';\n\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n\n return path + queryHash;\n }\n\n case UrlType.AbsolutePath:\n return url.path + queryHash;\n\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts b/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
new file mode 100644
index 0000000..b7f0b3b
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/dist/types/resolve-uri.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Attempts to resolve `input` URL/path relative to `base`.
+ */
+export default function resolve(input: string, base: string | undefined): string;
diff --git a/node_modules/@jridgewell/resolve-uri/package.json b/node_modules/@jridgewell/resolve-uri/package.json
new file mode 100644
index 0000000..02a4c51
--- /dev/null
+++ b/node_modules/@jridgewell/resolve-uri/package.json
@@ -0,0 +1,69 @@
+{
+ "name": "@jridgewell/resolve-uri",
+ "version": "3.1.2",
+ "description": "Resolve a URI relative to an optional base URI",
+ "keywords": [
+ "resolve",
+ "uri",
+ "url",
+ "path"
+ ],
+ "author": "Justin Ridgewell ",
+ "license": "MIT",
+ "repository": "https://github.com/jridgewell/resolve-uri",
+ "main": "dist/resolve-uri.umd.js",
+ "module": "dist/resolve-uri.mjs",
+ "types": "dist/types/resolve-uri.d.ts",
+ "exports": {
+ ".": [
+ {
+ "types": "./dist/types/resolve-uri.d.ts",
+ "browser": "./dist/resolve-uri.umd.js",
+ "require": "./dist/resolve-uri.umd.js",
+ "import": "./dist/resolve-uri.mjs"
+ },
+ "./dist/resolve-uri.umd.js"
+ ],
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "dist"
+ ],
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "scripts": {
+ "prebuild": "rm -rf dist",
+ "build": "run-s -n build:*",
+ "build:rollup": "rollup -c rollup.config.js",
+ "build:ts": "tsc --project tsconfig.build.json",
+ "lint": "run-s -n lint:*",
+ "lint:prettier": "npm run test:lint:prettier -- --write",
+ "lint:ts": "npm run test:lint:ts -- --fix",
+ "pretest": "run-s build:rollup",
+ "test": "run-s -n test:lint test:only",
+ "test:debug": "mocha --inspect-brk",
+ "test:lint": "run-s -n test:lint:*",
+ "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
+ "test:lint:ts": "eslint '{src,test}/**/*.ts'",
+ "test:only": "mocha",
+ "test:coverage": "c8 mocha",
+ "test:watch": "mocha --watch",
+ "prepublishOnly": "npm run preversion",
+ "preversion": "run-s test build"
+ },
+ "devDependencies": {
+ "@jridgewell/resolve-uri-latest": "npm:@jridgewell/resolve-uri@*",
+ "@rollup/plugin-typescript": "8.3.0",
+ "@typescript-eslint/eslint-plugin": "5.10.0",
+ "@typescript-eslint/parser": "5.10.0",
+ "c8": "7.11.0",
+ "eslint": "8.7.0",
+ "eslint-config-prettier": "8.3.0",
+ "mocha": "9.2.0",
+ "npm-run-all": "4.1.5",
+ "prettier": "2.5.1",
+ "rollup": "2.66.0",
+ "typescript": "4.5.5"
+ }
+}
diff --git a/node_modules/@jridgewell/set-array/LICENSE b/node_modules/@jridgewell/set-array/LICENSE
new file mode 100644
index 0000000..352f071
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/LICENSE
@@ -0,0 +1,19 @@
+Copyright 2022 Justin Ridgewell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@jridgewell/set-array/README.md b/node_modules/@jridgewell/set-array/README.md
new file mode 100644
index 0000000..2ed155f
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/README.md
@@ -0,0 +1,37 @@
+# @jridgewell/set-array
+
+> Like a Set, but provides the index of the `key` in the backing array
+
+This is designed to allow synchronizing a second array with the contents of the backing array, like
+how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, and there
+are never duplicates.
+
+## Installation
+
+```sh
+npm install @jridgewell/set-array
+```
+
+## Usage
+
+```js
+import { SetArray, get, put, pop } from '@jridgewell/set-array';
+
+const sa = new SetArray();
+
+let index = put(sa, 'first');
+assert.strictEqual(index, 0);
+
+index = put(sa, 'second');
+assert.strictEqual(index, 1);
+
+assert.deepEqual(sa.array, [ 'first', 'second' ]);
+
+index = get(sa, 'first');
+assert.strictEqual(index, 0);
+
+pop(sa);
+index = get(sa, 'second');
+assert.strictEqual(index, undefined);
+assert.deepEqual(sa.array, [ 'first' ]);
+```
diff --git a/node_modules/@jridgewell/set-array/dist/set-array.mjs b/node_modules/@jridgewell/set-array/dist/set-array.mjs
new file mode 100644
index 0000000..8a2d60b
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/dist/set-array.mjs
@@ -0,0 +1,69 @@
+/**
+ * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
+ * index of the `key` in the backing array.
+ *
+ * This is designed to allow synchronizing a second array with the contents of the backing array,
+ * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
+ * and there are never duplicates.
+ */
+class SetArray {
+ constructor() {
+ this._indexes = { __proto__: null };
+ this.array = [];
+ }
+}
+/**
+ * Typescript doesn't allow friend access to private fields, so this just casts the set into a type
+ * with public access modifiers.
+ */
+function cast(set) {
+ return set;
+}
+/**
+ * Gets the index associated with `key` in the backing array, if it is already present.
+ */
+function get(setarr, key) {
+ return cast(setarr)._indexes[key];
+}
+/**
+ * Puts `key` into the backing array, if it is not already present. Returns
+ * the index of the `key` in the backing array.
+ */
+function put(setarr, key) {
+ // The key may or may not be present. If it is present, it's a number.
+ const index = get(setarr, key);
+ if (index !== undefined)
+ return index;
+ const { array, _indexes: indexes } = cast(setarr);
+ const length = array.push(key);
+ return (indexes[key] = length - 1);
+}
+/**
+ * Pops the last added item out of the SetArray.
+ */
+function pop(setarr) {
+ const { array, _indexes: indexes } = cast(setarr);
+ if (array.length === 0)
+ return;
+ const last = array.pop();
+ indexes[last] = undefined;
+}
+/**
+ * Removes the key, if it exists in the set.
+ */
+function remove(setarr, key) {
+ const index = get(setarr, key);
+ if (index === undefined)
+ return;
+ const { array, _indexes: indexes } = cast(setarr);
+ for (let i = index + 1; i < array.length; i++) {
+ const k = array[i];
+ array[i - 1] = k;
+ indexes[k]--;
+ }
+ indexes[key] = undefined;
+ array.pop();
+}
+
+export { SetArray, get, pop, put, remove };
+//# sourceMappingURL=set-array.mjs.map
diff --git a/node_modules/@jridgewell/set-array/dist/set-array.mjs.map b/node_modules/@jridgewell/set-array/dist/set-array.mjs.map
new file mode 100644
index 0000000..9276dfa
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/dist/set-array.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"set-array.mjs","sources":["../src/set-array.ts"],"sourcesContent":["type Key = string | number | symbol;\n\n/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nexport class SetArray {\n private declare _indexes: Record;\n declare array: readonly T[];\n\n constructor() {\n this._indexes = { __proto__: null } as any;\n this.array = [];\n }\n}\n\ninterface PublicSet {\n array: T[];\n _indexes: SetArray['_indexes'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\nfunction cast(set: SetArray): PublicSet {\n return set as any;\n}\n\n/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nexport function get(setarr: SetArray, key: T): number | undefined {\n return cast(setarr)._indexes[key];\n}\n\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nexport function put(setarr: SetArray, key: T): number {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(setarr, key);\n if (index !== undefined) return index;\n\n const { array, _indexes: indexes } = cast(setarr);\n\n const length = array.push(key);\n return (indexes[key] = length - 1);\n}\n\n/**\n * Pops the last added item out of the SetArray.\n */\nexport function pop(setarr: SetArray): void {\n const { array, _indexes: indexes } = cast(setarr);\n if (array.length === 0) return;\n\n const last = array.pop()!;\n indexes[last] = undefined;\n}\n\n/**\n * Removes the key, if it exists in the set.\n */\nexport function remove(setarr: SetArray, key: T): void {\n const index = get(setarr, key);\n if (index === undefined) return;\n\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]!--;\n }\n indexes[key] = undefined;\n array.pop();\n}\n"],"names":[],"mappings":"AAEA;;;;;;;;MAQa,QAAQ;IAInB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,EAAS,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;CACF;AAOD;;;;AAIA,SAAS,IAAI,CAAgB,GAAgB;IAC3C,OAAO,GAAU,CAAC;AACpB,CAAC;AAED;;;SAGgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;IAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED;;;;SAIgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;;IAE5D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE;AACrC,CAAC;AAED;;;SAGgB,GAAG,CAAgB,MAAmB;IACpD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC5B,CAAC;AAED;;;SAGgB,MAAM,CAAgB,MAAmB,EAAE,GAAM;IAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAEhC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC;KACf;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,CAAC;AACd;;;;"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/set-array/dist/set-array.umd.js b/node_modules/@jridgewell/set-array/dist/set-array.umd.js
new file mode 100644
index 0000000..ab498cc
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/dist/set-array.umd.js
@@ -0,0 +1,83 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.setArray = {}));
+})(this, (function (exports) { 'use strict';
+
+ /**
+ * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
+ * index of the `key` in the backing array.
+ *
+ * This is designed to allow synchronizing a second array with the contents of the backing array,
+ * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
+ * and there are never duplicates.
+ */
+ class SetArray {
+ constructor() {
+ this._indexes = { __proto__: null };
+ this.array = [];
+ }
+ }
+ /**
+ * Typescript doesn't allow friend access to private fields, so this just casts the set into a type
+ * with public access modifiers.
+ */
+ function cast(set) {
+ return set;
+ }
+ /**
+ * Gets the index associated with `key` in the backing array, if it is already present.
+ */
+ function get(setarr, key) {
+ return cast(setarr)._indexes[key];
+ }
+ /**
+ * Puts `key` into the backing array, if it is not already present. Returns
+ * the index of the `key` in the backing array.
+ */
+ function put(setarr, key) {
+ // The key may or may not be present. If it is present, it's a number.
+ const index = get(setarr, key);
+ if (index !== undefined)
+ return index;
+ const { array, _indexes: indexes } = cast(setarr);
+ const length = array.push(key);
+ return (indexes[key] = length - 1);
+ }
+ /**
+ * Pops the last added item out of the SetArray.
+ */
+ function pop(setarr) {
+ const { array, _indexes: indexes } = cast(setarr);
+ if (array.length === 0)
+ return;
+ const last = array.pop();
+ indexes[last] = undefined;
+ }
+ /**
+ * Removes the key, if it exists in the set.
+ */
+ function remove(setarr, key) {
+ const index = get(setarr, key);
+ if (index === undefined)
+ return;
+ const { array, _indexes: indexes } = cast(setarr);
+ for (let i = index + 1; i < array.length; i++) {
+ const k = array[i];
+ array[i - 1] = k;
+ indexes[k]--;
+ }
+ indexes[key] = undefined;
+ array.pop();
+ }
+
+ exports.SetArray = SetArray;
+ exports.get = get;
+ exports.pop = pop;
+ exports.put = put;
+ exports.remove = remove;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
+//# sourceMappingURL=set-array.umd.js.map
diff --git a/node_modules/@jridgewell/set-array/dist/set-array.umd.js.map b/node_modules/@jridgewell/set-array/dist/set-array.umd.js.map
new file mode 100644
index 0000000..9edb8bc
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/dist/set-array.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"set-array.umd.js","sources":["../src/set-array.ts"],"sourcesContent":["type Key = string | number | symbol;\n\n/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nexport class SetArray {\n private declare _indexes: Record;\n declare array: readonly T[];\n\n constructor() {\n this._indexes = { __proto__: null } as any;\n this.array = [];\n }\n}\n\ninterface PublicSet {\n array: T[];\n _indexes: SetArray['_indexes'];\n}\n\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\nfunction cast(set: SetArray): PublicSet {\n return set as any;\n}\n\n/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nexport function get(setarr: SetArray, key: T): number | undefined {\n return cast(setarr)._indexes[key];\n}\n\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nexport function put(setarr: SetArray, key: T): number {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(setarr, key);\n if (index !== undefined) return index;\n\n const { array, _indexes: indexes } = cast(setarr);\n\n const length = array.push(key);\n return (indexes[key] = length - 1);\n}\n\n/**\n * Pops the last added item out of the SetArray.\n */\nexport function pop(setarr: SetArray): void {\n const { array, _indexes: indexes } = cast(setarr);\n if (array.length === 0) return;\n\n const last = array.pop()!;\n indexes[last] = undefined;\n}\n\n/**\n * Removes the key, if it exists in the set.\n */\nexport function remove(setarr: SetArray, key: T): void {\n const index = get(setarr, key);\n if (index === undefined) return;\n\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]!--;\n }\n indexes[key] = undefined;\n array.pop();\n}\n"],"names":[],"mappings":";;;;;;IAEA;;;;;;;;UAQa,QAAQ;QAInB;YACE,IAAI,CAAC,QAAQ,GAAG,EAAE,SAAS,EAAE,IAAI,EAAS,CAAC;YAC3C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjB;KACF;IAOD;;;;IAIA,SAAS,IAAI,CAAgB,GAAgB;QAC3C,OAAO,GAAU,CAAC;IACpB,CAAC;IAED;;;aAGgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;;aAIgB,GAAG,CAAgB,MAAmB,EAAE,GAAM;;QAE5D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAEtC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE;IACrC,CAAC;IAED;;;aAGgB,GAAG,CAAgB,MAAmB;QACpD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED;;;aAGgB,MAAM,CAAgB,MAAmB,EAAE,GAAM;QAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC;SACf;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QACzB,KAAK,CAAC,GAAG,EAAE,CAAC;IACd;;;;;;;;;;;;;;"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/set-array/dist/types/set-array.d.ts b/node_modules/@jridgewell/set-array/dist/types/set-array.d.ts
new file mode 100644
index 0000000..5f68e5d
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/dist/types/set-array.d.ts
@@ -0,0 +1,32 @@
+declare type Key = string | number | symbol;
+/**
+ * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
+ * index of the `key` in the backing array.
+ *
+ * This is designed to allow synchronizing a second array with the contents of the backing array,
+ * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
+ * and there are never duplicates.
+ */
+export declare class SetArray {
+ private _indexes;
+ array: readonly T[];
+ constructor();
+}
+/**
+ * Gets the index associated with `key` in the backing array, if it is already present.
+ */
+export declare function get(setarr: SetArray, key: T): number | undefined;
+/**
+ * Puts `key` into the backing array, if it is not already present. Returns
+ * the index of the `key` in the backing array.
+ */
+export declare function put(setarr: SetArray, key: T): number;
+/**
+ * Pops the last added item out of the SetArray.
+ */
+export declare function pop(setarr: SetArray): void;
+/**
+ * Removes the key, if it exists in the set.
+ */
+export declare function remove(setarr: SetArray, key: T): void;
+export {};
diff --git a/node_modules/@jridgewell/set-array/package.json b/node_modules/@jridgewell/set-array/package.json
new file mode 100644
index 0000000..f652ca5
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/package.json
@@ -0,0 +1,65 @@
+{
+ "name": "@jridgewell/set-array",
+ "version": "1.2.1",
+ "description": "Like a Set, but provides the index of the `key` in the backing array",
+ "keywords": [],
+ "author": "Justin Ridgewell ",
+ "license": "MIT",
+ "repository": "https://github.com/jridgewell/set-array",
+ "main": "dist/set-array.umd.js",
+ "module": "dist/set-array.mjs",
+ "typings": "dist/types/set-array.d.ts",
+ "exports": {
+ ".": [
+ {
+ "types": "./dist/types/set-array.d.ts",
+ "browser": "./dist/set-array.umd.js",
+ "require": "./dist/set-array.umd.js",
+ "import": "./dist/set-array.mjs"
+ },
+ "./dist/set-array.umd.js"
+ ],
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "dist"
+ ],
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "scripts": {
+ "prebuild": "rm -rf dist",
+ "build": "run-s -n build:*",
+ "build:rollup": "rollup -c rollup.config.js",
+ "build:ts": "tsc --project tsconfig.build.json",
+ "lint": "run-s -n lint:*",
+ "lint:prettier": "npm run test:lint:prettier -- --write",
+ "lint:ts": "npm run test:lint:ts -- --fix",
+ "test": "run-s -n test:lint test:only",
+ "test:debug": "mocha --inspect-brk",
+ "test:lint": "run-s -n test:lint:*",
+ "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
+ "test:lint:ts": "eslint '{src,test}/**/*.ts'",
+ "test:only": "mocha",
+ "test:coverage": "c8 mocha",
+ "test:watch": "mocha --watch",
+ "prepublishOnly": "npm run preversion",
+ "preversion": "run-s test build"
+ },
+ "devDependencies": {
+ "@rollup/plugin-typescript": "8.3.0",
+ "@types/mocha": "9.1.1",
+ "@types/node": "17.0.29",
+ "@typescript-eslint/eslint-plugin": "5.10.0",
+ "@typescript-eslint/parser": "5.10.0",
+ "c8": "7.11.0",
+ "eslint": "8.7.0",
+ "eslint-config-prettier": "8.3.0",
+ "mocha": "9.2.0",
+ "npm-run-all": "4.1.5",
+ "prettier": "2.5.1",
+ "rollup": "2.66.0",
+ "tsx": "4.7.1",
+ "typescript": "4.5.5"
+ }
+}
diff --git a/node_modules/@jridgewell/source-map/LICENSE b/node_modules/@jridgewell/source-map/LICENSE
new file mode 100644
index 0000000..0a81b2a
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/LICENSE
@@ -0,0 +1,19 @@
+Copyright 2019 Justin Ridgewell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/node_modules/@jridgewell/source-map/README.md b/node_modules/@jridgewell/source-map/README.md
new file mode 100644
index 0000000..a565f9a
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/README.md
@@ -0,0 +1,184 @@
+# @jridgewell/source-map
+
+> Packages `@jridgewell/trace-mapping` and `@jridgewell/gen-mapping` into the familiar source-map API
+
+This isn't the full API, but it's the core functionality. This wraps
+[@jridgewell/trace-mapping][trace-mapping] and [@jridgewell/gen-mapping][gen-mapping]
+implementations.
+
+## Installation
+
+```sh
+npm install @jridgewell/source-map
+```
+
+## Usage
+
+TODO
+
+### SourceMapConsumer
+
+```typescript
+import { SourceMapConsumer } from '@jridgewell/source-map';
+const smc = new SourceMapConsumer({
+ version: 3,
+ names: ['foo'],
+ sources: ['input.js'],
+ mappings: 'AAAAA',
+});
+```
+
+#### SourceMapConsumer.fromSourceMap(mapGenerator[, mapUrl])
+
+Transforms a `SourceMapGenerator` into a `SourceMapConsumer`.
+
+```typescript
+const smg = new SourceMapGenerator();
+
+const smc = SourceMapConsumer.fromSourceMap(map);
+smc.originalPositionFor({ line: 1, column: 0 });
+```
+
+#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
+
+```typescript
+const smc = new SourceMapConsumer(map);
+smc.originalPositionFor({ line: 1, column: 0 });
+```
+
+#### SourceMapConsumer.prototype.mappings
+
+```typescript
+const smc = new SourceMapConsumer(map);
+smc.mappings; // AAAA
+```
+
+#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
+
+```typescript
+const smc = new SourceMapConsumer(map);
+smc.allGeneratedpositionsfor({ line: 1, column: 5, source: "baz.ts" });
+// [
+// { line: 2, column: 8 }
+// ]
+```
+
+#### SourceMapConsumer.prototype.eachMapping(callback[, context[, order]])
+
+> This implementation currently does not support the "order" parameter.
+> This function can only iterate in Generated order.
+
+```typescript
+const smc = new SourceMapConsumer(map);
+smc.eachMapping((mapping) => {
+// { source: 'baz.ts',
+// generatedLine: 4,
+// generatedColumn: 5,
+// originalLine: 4,
+// originalColumn: 5,
+// name: null }
+});
+```
+
+#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)
+
+```typescript
+const smc = new SourceMapConsumer(map);
+smc.generatedPositionFor({ line: 1, column: 5, source: "baz.ts" });
+// { line: 2, column: 8 }
+```
+
+#### SourceMapConsumer.prototype.hasContentsOfAllSources()
+
+```typescript
+const smc = new SourceMapConsumer(map);
+smc.hasContentsOfAllSources();
+// true
+```
+
+#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])
+
+```typescript
+const smc = new SourceMapConsumer(map);
+smc.generatedPositionFor("baz.ts");
+// "export default ..."
+```
+
+#### SourceMapConsumer.prototype.version
+
+Returns the source map's version
+
+### SourceMapGenerator
+
+```typescript
+import { SourceMapGenerator } from '@jridgewell/source-map';
+const smg = new SourceMapGenerator({
+ file: 'output.js',
+ sourceRoot: 'https://example.com/',
+});
+```
+
+#### SourceMapGenerator.fromSourceMap(map)
+
+Transform a `SourceMapConsumer` into a `SourceMapGenerator`.
+
+```typescript
+const smc = new SourceMapConsumer();
+const smg = SourceMapGenerator.fromSourceMap(smc);
+```
+
+#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])
+
+> This method is not implemented yet
+
+#### SourceMapGenerator.prototype.addMapping(mapping)
+
+```typescript
+const smg = new SourceMapGenerator();
+smg.addMapping({
+ generated: { line: 1, column: 0 },
+ source: 'input.js',
+ original: { line: 1, column: 0 },
+ name: 'foo',
+});
+```
+
+#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)
+
+```typescript
+const smg = new SourceMapGenerator();
+smg.setSourceContent('input.js', 'foobar');
+```
+
+#### SourceMapGenerator.prototype.toJSON()
+
+```typescript
+const smg = new SourceMapGenerator();
+smg.toJSON(); // { version: 3, names: [], sources: [], mappings: '' }
+```
+
+#### SourceMapGenerator.prototype.toString()
+
+```typescript
+const smg = new SourceMapGenerator();
+smg.toJSON(); // "{version:3,names:[],sources:[],mappings:''}"
+```
+
+#### SourceMapGenerator.prototype.toDecodedMap()
+
+```typescript
+const smg = new SourceMapGenerator();
+smg.toDecodedMap(); // { version: 3, names: [], sources: [], mappings: [] }
+```
+
+## Known differences with other implementations
+
+This implementation has some differences with `source-map` and `source-map-js`.
+
+- `SourceMapConsumer.prototype.eachMapping()`
+ - Does not support the `order` argument
+- `SourceMapGenerator.prototype.applySourceMap()`
+ - Not implemented
+
+[trace-mapping]: https://github.com/jridgewell/trace-mapping/
+[gen-mapping]: https://github.com/jridgewell/gen-mapping/
diff --git a/node_modules/@jridgewell/source-map/dist/source-map.cjs b/node_modules/@jridgewell/source-map/dist/source-map.cjs
new file mode 100644
index 0000000..82d1e2b
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/dist/source-map.cjs
@@ -0,0 +1,95 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+var traceMapping = require('@jridgewell/trace-mapping');
+var genMapping = require('@jridgewell/gen-mapping');
+
+class SourceMapConsumer {
+ constructor(map, mapUrl) {
+ const trace = (this._map = new traceMapping.AnyMap(map, mapUrl));
+ this.file = trace.file;
+ this.names = trace.names;
+ this.sourceRoot = trace.sourceRoot;
+ this.sources = trace.resolvedSources;
+ this.sourcesContent = trace.sourcesContent;
+ this.version = trace.version;
+ }
+ static fromSourceMap(map, mapUrl) {
+ // This is more performant if we receive
+ // a @jridgewell/source-map SourceMapGenerator
+ if (map.toDecodedMap) {
+ return new SourceMapConsumer(map.toDecodedMap(), mapUrl);
+ }
+ // This is a fallback for `source-map` and `source-map-js`
+ return new SourceMapConsumer(map.toJSON(), mapUrl);
+ }
+ get mappings() {
+ return traceMapping.encodedMappings(this._map);
+ }
+ originalPositionFor(needle) {
+ return traceMapping.originalPositionFor(this._map, needle);
+ }
+ generatedPositionFor(originalPosition) {
+ return traceMapping.generatedPositionFor(this._map, originalPosition);
+ }
+ allGeneratedPositionsFor(originalPosition) {
+ return traceMapping.allGeneratedPositionsFor(this._map, originalPosition);
+ }
+ hasContentsOfAllSources() {
+ if (!this.sourcesContent || this.sourcesContent.length !== this.sources.length) {
+ return false;
+ }
+ for (const content of this.sourcesContent) {
+ if (content == null) {
+ return false;
+ }
+ }
+ return true;
+ }
+ sourceContentFor(source, nullOnMissing) {
+ const sourceContent = traceMapping.sourceContentFor(this._map, source);
+ if (sourceContent != null) {
+ return sourceContent;
+ }
+ if (nullOnMissing) {
+ return null;
+ }
+ throw new Error(`"${source}" is not in the SourceMap.`);
+ }
+ eachMapping(callback, context /*, order?: number*/) {
+ // order is ignored as @jridgewell/trace-map doesn't implement it
+ traceMapping.eachMapping(this._map, context ? callback.bind(context) : callback);
+ }
+ destroy() {
+ // noop.
+ }
+}
+class SourceMapGenerator {
+ constructor(opts) {
+ // TODO :: should this be duck-typed ?
+ this._map = opts instanceof genMapping.GenMapping ? opts : new genMapping.GenMapping(opts);
+ }
+ static fromSourceMap(consumer) {
+ return new SourceMapGenerator(genMapping.fromMap(consumer));
+ }
+ addMapping(mapping) {
+ genMapping.maybeAddMapping(this._map, mapping);
+ }
+ setSourceContent(source, content) {
+ genMapping.setSourceContent(this._map, source, content);
+ }
+ toJSON() {
+ return genMapping.toEncodedMap(this._map);
+ }
+ toString() {
+ return JSON.stringify(this.toJSON());
+ }
+ toDecodedMap() {
+ return genMapping.toDecodedMap(this._map);
+ }
+}
+
+exports.SourceMapConsumer = SourceMapConsumer;
+exports.SourceMapGenerator = SourceMapGenerator;
+//# sourceMappingURL=source-map.cjs.map
diff --git a/node_modules/@jridgewell/source-map/dist/source-map.cjs.map b/node_modules/@jridgewell/source-map/dist/source-map.cjs.map
new file mode 100644
index 0000000..cf4e637
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/dist/source-map.cjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"source-map.cjs","sources":["../../src/source-map.ts"],"sourcesContent":["import {\n AnyMap,\n originalPositionFor,\n generatedPositionFor,\n allGeneratedPositionsFor,\n eachMapping,\n encodedMappings,\n sourceContentFor,\n} from '@jridgewell/trace-mapping';\nimport {\n GenMapping,\n maybeAddMapping,\n toDecodedMap,\n toEncodedMap,\n setSourceContent,\n fromMap,\n} from '@jridgewell/gen-mapping';\n\nimport type {\n TraceMap,\n SourceMapInput,\n SectionedSourceMapInput,\n DecodedSourceMap,\n} from '@jridgewell/trace-mapping';\nexport type { TraceMap, SourceMapInput, SectionedSourceMapInput, DecodedSourceMap };\n\nimport type { Mapping, EncodedSourceMap } from '@jridgewell/gen-mapping';\nexport type { Mapping, EncodedSourceMap };\n\nexport class SourceMapConsumer {\n private declare _map: TraceMap;\n declare file: TraceMap['file'];\n declare names: TraceMap['names'];\n declare sourceRoot: TraceMap['sourceRoot'];\n declare sources: TraceMap['sources'];\n declare sourcesContent: TraceMap['sourcesContent'];\n declare version: TraceMap['version'];\n\n constructor(map: ConstructorParameters[0], mapUrl: Parameters[1]) {\n const trace = (this._map = new AnyMap(map, mapUrl));\n\n this.file = trace.file;\n this.names = trace.names;\n this.sourceRoot = trace.sourceRoot;\n this.sources = trace.resolvedSources;\n this.sourcesContent = trace.sourcesContent;\n this.version = trace.version;\n }\n\n static fromSourceMap(map: SourceMapGenerator, mapUrl: Parameters[1]) {\n // This is more performant if we receive\n // a @jridgewell/source-map SourceMapGenerator\n if (map.toDecodedMap) {\n return new SourceMapConsumer(map.toDecodedMap() as SectionedSourceMapInput, mapUrl);\n }\n\n // This is a fallback for `source-map` and `source-map-js`\n return new SourceMapConsumer(map.toJSON() as SectionedSourceMapInput, mapUrl);\n }\n\n get mappings(): string {\n return encodedMappings(this._map);\n }\n\n originalPositionFor(\n needle: Parameters[1],\n ): ReturnType {\n return originalPositionFor(this._map, needle);\n }\n\n generatedPositionFor(\n originalPosition: Parameters[1],\n ): ReturnType {\n return generatedPositionFor(this._map, originalPosition);\n }\n\n allGeneratedPositionsFor(\n originalPosition: Parameters[1],\n ): ReturnType[] {\n return allGeneratedPositionsFor(this._map, originalPosition);\n }\n\n hasContentsOfAllSources(): boolean {\n if (!this.sourcesContent || this.sourcesContent.length !== this.sources.length) {\n return false;\n }\n\n for (const content of this.sourcesContent) {\n if (content == null) {\n return false;\n }\n }\n\n return true;\n }\n\n sourceContentFor(source: string, nullOnMissing?: boolean): string | null {\n const sourceContent = sourceContentFor(this._map, source);\n if (sourceContent != null) {\n return sourceContent;\n }\n\n if (nullOnMissing) {\n return null;\n }\n throw new Error(`\"${source}\" is not in the SourceMap.`);\n }\n\n eachMapping(\n callback: Parameters[1],\n context?: any /*, order?: number*/,\n ): void {\n // order is ignored as @jridgewell/trace-map doesn't implement it\n eachMapping(this._map, context ? callback.bind(context) : callback);\n }\n\n destroy() {\n // noop.\n }\n}\n\nexport class SourceMapGenerator {\n private declare _map: GenMapping;\n\n constructor(opts: ConstructorParameters[0] | GenMapping) {\n // TODO :: should this be duck-typed ?\n this._map = opts instanceof GenMapping ? opts : new GenMapping(opts);\n }\n\n static fromSourceMap(consumer: SourceMapConsumer) {\n return new SourceMapGenerator(fromMap(consumer));\n }\n\n addMapping(mapping: Parameters[1]): ReturnType {\n maybeAddMapping(this._map, mapping);\n }\n\n setSourceContent(\n source: Parameters[1],\n content: Parameters[2],\n ): ReturnType {\n setSourceContent(this._map, source, content);\n }\n\n toJSON(): ReturnType {\n return toEncodedMap(this._map);\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n\n toDecodedMap(): ReturnType {\n return toDecodedMap(this._map);\n }\n}\n"],"names":["AnyMap","encodedMappings","originalPositionFor","generatedPositionFor","allGeneratedPositionsFor","sourceContentFor","eachMapping","GenMapping","fromMap","maybeAddMapping","setSourceContent","toEncodedMap","toDecodedMap"],"mappings":";;;;;;;MA6Ba,iBAAiB;IAS5B,YAAY,GAA4C,EAAE,MAAoC;QAC5F,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,IAAIA,mBAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAEpD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;KAC9B;IAED,OAAO,aAAa,CAAC,GAAuB,EAAE,MAAoC;;;QAGhF,IAAI,GAAG,CAAC,YAAY,EAAE;YACpB,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAA6B,EAAE,MAAM,CAAC,CAAC;SACrF;;QAGD,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAA6B,EAAE,MAAM,CAAC,CAAC;KAC/E;IAED,IAAI,QAAQ;QACV,OAAOC,4BAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,mBAAmB,CACjB,MAAiD;QAEjD,OAAOC,gCAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC/C;IAED,oBAAoB,CAClB,gBAA4D;QAE5D,OAAOC,iCAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;KAC1D;IAED,wBAAwB,CACtB,gBAA4D;QAE5D,OAAOC,qCAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;KAC9D;IAED,uBAAuB;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAC9E,OAAO,KAAK,CAAC;SACd;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE;YACzC,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;KACb;IAED,gBAAgB,CAAC,MAAc,EAAE,aAAuB;QACtD,MAAM,aAAa,GAAGC,6BAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,OAAO,aAAa,CAAC;SACtB;QAED,IAAI,aAAa,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,4BAA4B,CAAC,CAAC;KACzD;IAED,WAAW,CACT,QAA2C,EAC3C,OAAa;;QAGbC,wBAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;KACrE;IAED,OAAO;;KAEN;CACF;MAEY,kBAAkB;IAG7B,YAAY,IAA8D;;QAExE,IAAI,CAAC,IAAI,GAAG,IAAI,YAAYC,qBAAU,GAAG,IAAI,GAAG,IAAIA,qBAAU,CAAC,IAAI,CAAC,CAAC;KACtE;IAED,OAAO,aAAa,CAAC,QAA2B;QAC9C,OAAO,IAAI,kBAAkB,CAACC,kBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;KAClD;IAED,UAAU,CAAC,OAA8C;QACvDC,0BAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACrC;IAED,gBAAgB,CACd,MAA8C,EAC9C,OAA+C;QAE/CC,2BAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9C;IAED,MAAM;QACJ,OAAOC,uBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;KACtC;IAED,YAAY;QACV,OAAOC,uBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;;;;;;"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/source-map/dist/source-map.mjs b/node_modules/@jridgewell/source-map/dist/source-map.mjs
new file mode 100644
index 0000000..0d7b29c
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/dist/source-map.mjs
@@ -0,0 +1,90 @@
+import { AnyMap, encodedMappings, originalPositionFor, generatedPositionFor, allGeneratedPositionsFor, sourceContentFor, eachMapping } from '@jridgewell/trace-mapping';
+import { GenMapping, fromMap, maybeAddMapping, setSourceContent, toEncodedMap, toDecodedMap } from '@jridgewell/gen-mapping';
+
+class SourceMapConsumer {
+ constructor(map, mapUrl) {
+ const trace = (this._map = new AnyMap(map, mapUrl));
+ this.file = trace.file;
+ this.names = trace.names;
+ this.sourceRoot = trace.sourceRoot;
+ this.sources = trace.resolvedSources;
+ this.sourcesContent = trace.sourcesContent;
+ this.version = trace.version;
+ }
+ static fromSourceMap(map, mapUrl) {
+ // This is more performant if we receive
+ // a @jridgewell/source-map SourceMapGenerator
+ if (map.toDecodedMap) {
+ return new SourceMapConsumer(map.toDecodedMap(), mapUrl);
+ }
+ // This is a fallback for `source-map` and `source-map-js`
+ return new SourceMapConsumer(map.toJSON(), mapUrl);
+ }
+ get mappings() {
+ return encodedMappings(this._map);
+ }
+ originalPositionFor(needle) {
+ return originalPositionFor(this._map, needle);
+ }
+ generatedPositionFor(originalPosition) {
+ return generatedPositionFor(this._map, originalPosition);
+ }
+ allGeneratedPositionsFor(originalPosition) {
+ return allGeneratedPositionsFor(this._map, originalPosition);
+ }
+ hasContentsOfAllSources() {
+ if (!this.sourcesContent || this.sourcesContent.length !== this.sources.length) {
+ return false;
+ }
+ for (const content of this.sourcesContent) {
+ if (content == null) {
+ return false;
+ }
+ }
+ return true;
+ }
+ sourceContentFor(source, nullOnMissing) {
+ const sourceContent = sourceContentFor(this._map, source);
+ if (sourceContent != null) {
+ return sourceContent;
+ }
+ if (nullOnMissing) {
+ return null;
+ }
+ throw new Error(`"${source}" is not in the SourceMap.`);
+ }
+ eachMapping(callback, context /*, order?: number*/) {
+ // order is ignored as @jridgewell/trace-map doesn't implement it
+ eachMapping(this._map, context ? callback.bind(context) : callback);
+ }
+ destroy() {
+ // noop.
+ }
+}
+class SourceMapGenerator {
+ constructor(opts) {
+ // TODO :: should this be duck-typed ?
+ this._map = opts instanceof GenMapping ? opts : new GenMapping(opts);
+ }
+ static fromSourceMap(consumer) {
+ return new SourceMapGenerator(fromMap(consumer));
+ }
+ addMapping(mapping) {
+ maybeAddMapping(this._map, mapping);
+ }
+ setSourceContent(source, content) {
+ setSourceContent(this._map, source, content);
+ }
+ toJSON() {
+ return toEncodedMap(this._map);
+ }
+ toString() {
+ return JSON.stringify(this.toJSON());
+ }
+ toDecodedMap() {
+ return toDecodedMap(this._map);
+ }
+}
+
+export { SourceMapConsumer, SourceMapGenerator };
+//# sourceMappingURL=source-map.mjs.map
diff --git a/node_modules/@jridgewell/source-map/dist/source-map.mjs.map b/node_modules/@jridgewell/source-map/dist/source-map.mjs.map
new file mode 100644
index 0000000..91d9aa2
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/dist/source-map.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"source-map.mjs","sources":["../../src/source-map.ts"],"sourcesContent":["import {\n AnyMap,\n originalPositionFor,\n generatedPositionFor,\n allGeneratedPositionsFor,\n eachMapping,\n encodedMappings,\n sourceContentFor,\n} from '@jridgewell/trace-mapping';\nimport {\n GenMapping,\n maybeAddMapping,\n toDecodedMap,\n toEncodedMap,\n setSourceContent,\n fromMap,\n} from '@jridgewell/gen-mapping';\n\nimport type {\n TraceMap,\n SourceMapInput,\n SectionedSourceMapInput,\n DecodedSourceMap,\n} from '@jridgewell/trace-mapping';\nexport type { TraceMap, SourceMapInput, SectionedSourceMapInput, DecodedSourceMap };\n\nimport type { Mapping, EncodedSourceMap } from '@jridgewell/gen-mapping';\nexport type { Mapping, EncodedSourceMap };\n\nexport class SourceMapConsumer {\n private declare _map: TraceMap;\n declare file: TraceMap['file'];\n declare names: TraceMap['names'];\n declare sourceRoot: TraceMap['sourceRoot'];\n declare sources: TraceMap['sources'];\n declare sourcesContent: TraceMap['sourcesContent'];\n declare version: TraceMap['version'];\n\n constructor(map: ConstructorParameters[0], mapUrl: Parameters[1]) {\n const trace = (this._map = new AnyMap(map, mapUrl));\n\n this.file = trace.file;\n this.names = trace.names;\n this.sourceRoot = trace.sourceRoot;\n this.sources = trace.resolvedSources;\n this.sourcesContent = trace.sourcesContent;\n this.version = trace.version;\n }\n\n static fromSourceMap(map: SourceMapGenerator, mapUrl: Parameters[1]) {\n // This is more performant if we receive\n // a @jridgewell/source-map SourceMapGenerator\n if (map.toDecodedMap) {\n return new SourceMapConsumer(map.toDecodedMap() as SectionedSourceMapInput, mapUrl);\n }\n\n // This is a fallback for `source-map` and `source-map-js`\n return new SourceMapConsumer(map.toJSON() as SectionedSourceMapInput, mapUrl);\n }\n\n get mappings(): string {\n return encodedMappings(this._map);\n }\n\n originalPositionFor(\n needle: Parameters[1],\n ): ReturnType {\n return originalPositionFor(this._map, needle);\n }\n\n generatedPositionFor(\n originalPosition: Parameters[1],\n ): ReturnType {\n return generatedPositionFor(this._map, originalPosition);\n }\n\n allGeneratedPositionsFor(\n originalPosition: Parameters[1],\n ): ReturnType[] {\n return allGeneratedPositionsFor(this._map, originalPosition);\n }\n\n hasContentsOfAllSources(): boolean {\n if (!this.sourcesContent || this.sourcesContent.length !== this.sources.length) {\n return false;\n }\n\n for (const content of this.sourcesContent) {\n if (content == null) {\n return false;\n }\n }\n\n return true;\n }\n\n sourceContentFor(source: string, nullOnMissing?: boolean): string | null {\n const sourceContent = sourceContentFor(this._map, source);\n if (sourceContent != null) {\n return sourceContent;\n }\n\n if (nullOnMissing) {\n return null;\n }\n throw new Error(`\"${source}\" is not in the SourceMap.`);\n }\n\n eachMapping(\n callback: Parameters[1],\n context?: any /*, order?: number*/,\n ): void {\n // order is ignored as @jridgewell/trace-map doesn't implement it\n eachMapping(this._map, context ? callback.bind(context) : callback);\n }\n\n destroy() {\n // noop.\n }\n}\n\nexport class SourceMapGenerator {\n private declare _map: GenMapping;\n\n constructor(opts: ConstructorParameters[0] | GenMapping) {\n // TODO :: should this be duck-typed ?\n this._map = opts instanceof GenMapping ? opts : new GenMapping(opts);\n }\n\n static fromSourceMap(consumer: SourceMapConsumer) {\n return new SourceMapGenerator(fromMap(consumer));\n }\n\n addMapping(mapping: Parameters[1]): ReturnType {\n maybeAddMapping(this._map, mapping);\n }\n\n setSourceContent(\n source: Parameters[1],\n content: Parameters[2],\n ): ReturnType {\n setSourceContent(this._map, source, content);\n }\n\n toJSON(): ReturnType {\n return toEncodedMap(this._map);\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n\n toDecodedMap(): ReturnType {\n return toDecodedMap(this._map);\n }\n}\n"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/source-map/dist/source-map.umd.js b/node_modules/@jridgewell/source-map/dist/source-map.umd.js
new file mode 100644
index 0000000..70594c2
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/dist/source-map.umd.js
@@ -0,0 +1,1242 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.sourceMap = {}));
+})(this, (function (exports) { 'use strict';
+
+ const comma = ','.charCodeAt(0);
+ const semicolon = ';'.charCodeAt(0);
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+ const intToChar = new Uint8Array(64); // 64 possible chars.
+ const charToInt = new Uint8Array(128); // z is 122 in ASCII
+ for (let i = 0; i < chars.length; i++) {
+ const c = chars.charCodeAt(i);
+ intToChar[i] = c;
+ charToInt[c] = i;
+ }
+ // Provide a fallback for older environments.
+ const td = typeof TextDecoder !== 'undefined'
+ ? /* #__PURE__ */ new TextDecoder()
+ : typeof Buffer !== 'undefined'
+ ? {
+ decode(buf) {
+ const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
+ return out.toString();
+ },
+ }
+ : {
+ decode(buf) {
+ let out = '';
+ for (let i = 0; i < buf.length; i++) {
+ out += String.fromCharCode(buf[i]);
+ }
+ return out;
+ },
+ };
+ function decode(mappings) {
+ const state = new Int32Array(5);
+ const decoded = [];
+ let index = 0;
+ do {
+ const semi = indexOf(mappings, index);
+ const line = [];
+ let sorted = true;
+ let lastCol = 0;
+ state[0] = 0;
+ for (let i = index; i < semi; i++) {
+ let seg;
+ i = decodeInteger(mappings, i, state, 0); // genColumn
+ const col = state[0];
+ if (col < lastCol)
+ sorted = false;
+ lastCol = col;
+ if (hasMoreVlq(mappings, i, semi)) {
+ i = decodeInteger(mappings, i, state, 1); // sourcesIndex
+ i = decodeInteger(mappings, i, state, 2); // sourceLine
+ i = decodeInteger(mappings, i, state, 3); // sourceColumn
+ if (hasMoreVlq(mappings, i, semi)) {
+ i = decodeInteger(mappings, i, state, 4); // namesIndex
+ seg = [col, state[1], state[2], state[3], state[4]];
+ }
+ else {
+ seg = [col, state[1], state[2], state[3]];
+ }
+ }
+ else {
+ seg = [col];
+ }
+ line.push(seg);
+ }
+ if (!sorted)
+ sort(line);
+ decoded.push(line);
+ index = semi + 1;
+ } while (index <= mappings.length);
+ return decoded;
+ }
+ function indexOf(mappings, index) {
+ const idx = mappings.indexOf(';', index);
+ return idx === -1 ? mappings.length : idx;
+ }
+ function decodeInteger(mappings, pos, state, j) {
+ let value = 0;
+ let shift = 0;
+ let integer = 0;
+ do {
+ const c = mappings.charCodeAt(pos++);
+ integer = charToInt[c];
+ value |= (integer & 31) << shift;
+ shift += 5;
+ } while (integer & 32);
+ const shouldNegate = value & 1;
+ value >>>= 1;
+ if (shouldNegate) {
+ value = -0x80000000 | -value;
+ }
+ state[j] += value;
+ return pos;
+ }
+ function hasMoreVlq(mappings, i, length) {
+ if (i >= length)
+ return false;
+ return mappings.charCodeAt(i) !== comma;
+ }
+ function sort(line) {
+ line.sort(sortComparator$1);
+ }
+ function sortComparator$1(a, b) {
+ return a[0] - b[0];
+ }
+ function encode(decoded) {
+ const state = new Int32Array(5);
+ const bufLength = 1024 * 16;
+ const subLength = bufLength - 36;
+ const buf = new Uint8Array(bufLength);
+ const sub = buf.subarray(0, subLength);
+ let pos = 0;
+ let out = '';
+ for (let i = 0; i < decoded.length; i++) {
+ const line = decoded[i];
+ if (i > 0) {
+ if (pos === bufLength) {
+ out += td.decode(buf);
+ pos = 0;
+ }
+ buf[pos++] = semicolon;
+ }
+ if (line.length === 0)
+ continue;
+ state[0] = 0;
+ for (let j = 0; j < line.length; j++) {
+ const segment = line[j];
+ // We can push up to 5 ints, each int can take at most 7 chars, and we
+ // may push a comma.
+ if (pos > subLength) {
+ out += td.decode(sub);
+ buf.copyWithin(0, subLength, pos);
+ pos -= subLength;
+ }
+ if (j > 0)
+ buf[pos++] = comma;
+ pos = encodeInteger(buf, pos, state, segment, 0); // genColumn
+ if (segment.length === 1)
+ continue;
+ pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex
+ pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine
+ pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn
+ if (segment.length === 4)
+ continue;
+ pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex
+ }
+ }
+ return out + td.decode(buf.subarray(0, pos));
+ }
+ function encodeInteger(buf, pos, state, segment, j) {
+ const next = segment[j];
+ let num = next - state[j];
+ state[j] = next;
+ num = num < 0 ? (-num << 1) | 1 : num << 1;
+ do {
+ let clamped = num & 0b011111;
+ num >>>= 5;
+ if (num > 0)
+ clamped |= 0b100000;
+ buf[pos++] = intToChar[clamped];
+ } while (num > 0);
+ return pos;
+ }
+
+ // Matches the scheme of a URL, eg "http://"
+ const schemeRegex = /^[\w+.-]+:\/\//;
+ /**
+ * Matches the parts of a URL:
+ * 1. Scheme, including ":", guaranteed.
+ * 2. User/password, including "@", optional.
+ * 3. Host, guaranteed.
+ * 4. Port, including ":", optional.
+ * 5. Path, including "/", optional.
+ * 6. Query, including "?", optional.
+ * 7. Hash, including "#", optional.
+ */
+ const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
+ /**
+ * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start
+ * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).
+ *
+ * 1. Host, optional.
+ * 2. Path, which may include "/", guaranteed.
+ * 3. Query, including "?", optional.
+ * 4. Hash, including "#", optional.
+ */
+ const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
+ function isAbsoluteUrl(input) {
+ return schemeRegex.test(input);
+ }
+ function isSchemeRelativeUrl(input) {
+ return input.startsWith('//');
+ }
+ function isAbsolutePath(input) {
+ return input.startsWith('/');
+ }
+ function isFileUrl(input) {
+ return input.startsWith('file:');
+ }
+ function isRelative(input) {
+ return /^[.?#]/.test(input);
+ }
+ function parseAbsoluteUrl(input) {
+ const match = urlRegex.exec(input);
+ return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');
+ }
+ function parseFileUrl(input) {
+ const match = fileRegex.exec(input);
+ const path = match[2];
+ return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');
+ }
+ function makeUrl(scheme, user, host, port, path, query, hash) {
+ return {
+ scheme,
+ user,
+ host,
+ port,
+ path,
+ query,
+ hash,
+ type: 7 /* Absolute */,
+ };
+ }
+ function parseUrl(input) {
+ if (isSchemeRelativeUrl(input)) {
+ const url = parseAbsoluteUrl('http:' + input);
+ url.scheme = '';
+ url.type = 6 /* SchemeRelative */;
+ return url;
+ }
+ if (isAbsolutePath(input)) {
+ const url = parseAbsoluteUrl('http://foo.com' + input);
+ url.scheme = '';
+ url.host = '';
+ url.type = 5 /* AbsolutePath */;
+ return url;
+ }
+ if (isFileUrl(input))
+ return parseFileUrl(input);
+ if (isAbsoluteUrl(input))
+ return parseAbsoluteUrl(input);
+ const url = parseAbsoluteUrl('http://foo.com/' + input);
+ url.scheme = '';
+ url.host = '';
+ url.type = input
+ ? input.startsWith('?')
+ ? 3 /* Query */
+ : input.startsWith('#')
+ ? 2 /* Hash */
+ : 4 /* RelativePath */
+ : 1 /* Empty */;
+ return url;
+ }
+ function stripPathFilename(path) {
+ // If a path ends with a parent directory "..", then it's a relative path with excess parent
+ // paths. It's not a file, so we can't strip it.
+ if (path.endsWith('/..'))
+ return path;
+ const index = path.lastIndexOf('/');
+ return path.slice(0, index + 1);
+ }
+ function mergePaths(url, base) {
+ normalizePath(base, base.type);
+ // If the path is just a "/", then it was an empty path to begin with (remember, we're a relative
+ // path).
+ if (url.path === '/') {
+ url.path = base.path;
+ }
+ else {
+ // Resolution happens relative to the base path's directory, not the file.
+ url.path = stripPathFilename(base.path) + url.path;
+ }
+ }
+ /**
+ * The path can have empty directories "//", unneeded parents "foo/..", or current directory
+ * "foo/.". We need to normalize to a standard representation.
+ */
+ function normalizePath(url, type) {
+ const rel = type <= 4 /* RelativePath */;
+ const pieces = url.path.split('/');
+ // We need to preserve the first piece always, so that we output a leading slash. The item at
+ // pieces[0] is an empty string.
+ let pointer = 1;
+ // Positive is the number of real directories we've output, used for popping a parent directory.
+ // Eg, "foo/bar/.." will have a positive 2, and we can decrement to be left with just "foo".
+ let positive = 0;
+ // We need to keep a trailing slash if we encounter an empty directory (eg, splitting "foo/" will
+ // generate `["foo", ""]` pieces). And, if we pop a parent directory. But once we encounter a
+ // real directory, we won't need to append, unless the other conditions happen again.
+ let addTrailingSlash = false;
+ for (let i = 1; i < pieces.length; i++) {
+ const piece = pieces[i];
+ // An empty directory, could be a trailing slash, or just a double "//" in the path.
+ if (!piece) {
+ addTrailingSlash = true;
+ continue;
+ }
+ // If we encounter a real directory, then we don't need to append anymore.
+ addTrailingSlash = false;
+ // A current directory, which we can always drop.
+ if (piece === '.')
+ continue;
+ // A parent directory, we need to see if there are any real directories we can pop. Else, we
+ // have an excess of parents, and we'll need to keep the "..".
+ if (piece === '..') {
+ if (positive) {
+ addTrailingSlash = true;
+ positive--;
+ pointer--;
+ }
+ else if (rel) {
+ // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute
+ // URL, protocol relative URL, or an absolute path, we don't need to keep excess.
+ pieces[pointer++] = piece;
+ }
+ continue;
+ }
+ // We've encountered a real directory. Move it to the next insertion pointer, which accounts for
+ // any popped or dropped directories.
+ pieces[pointer++] = piece;
+ positive++;
+ }
+ let path = '';
+ for (let i = 1; i < pointer; i++) {
+ path += '/' + pieces[i];
+ }
+ if (!path || (addTrailingSlash && !path.endsWith('/..'))) {
+ path += '/';
+ }
+ url.path = path;
+ }
+ /**
+ * Attempts to resolve `input` URL/path relative to `base`.
+ */
+ function resolve$1(input, base) {
+ if (!input && !base)
+ return '';
+ const url = parseUrl(input);
+ let inputType = url.type;
+ if (base && inputType !== 7 /* Absolute */) {
+ const baseUrl = parseUrl(base);
+ const baseType = baseUrl.type;
+ switch (inputType) {
+ case 1 /* Empty */:
+ url.hash = baseUrl.hash;
+ // fall through
+ case 2 /* Hash */:
+ url.query = baseUrl.query;
+ // fall through
+ case 3 /* Query */:
+ case 4 /* RelativePath */:
+ mergePaths(url, baseUrl);
+ // fall through
+ case 5 /* AbsolutePath */:
+ // The host, user, and port are joined, you can't copy one without the others.
+ url.user = baseUrl.user;
+ url.host = baseUrl.host;
+ url.port = baseUrl.port;
+ // fall through
+ case 6 /* SchemeRelative */:
+ // The input doesn't have a schema at least, so we need to copy at least that over.
+ url.scheme = baseUrl.scheme;
+ }
+ if (baseType > inputType)
+ inputType = baseType;
+ }
+ normalizePath(url, inputType);
+ const queryHash = url.query + url.hash;
+ switch (inputType) {
+ // This is impossible, because of the empty checks at the start of the function.
+ // case UrlType.Empty:
+ case 2 /* Hash */:
+ case 3 /* Query */:
+ return queryHash;
+ case 4 /* RelativePath */: {
+ // The first char is always a "/", and we need it to be relative.
+ const path = url.path.slice(1);
+ if (!path)
+ return queryHash || '.';
+ if (isRelative(base || input) && !isRelative(path)) {
+ // If base started with a leading ".", or there is no base and input started with a ".",
+ // then we need to ensure that the relative path starts with a ".". We don't know if
+ // relative starts with a "..", though, so check before prepending.
+ return './' + path + queryHash;
+ }
+ return path + queryHash;
+ }
+ case 5 /* AbsolutePath */:
+ return url.path + queryHash;
+ default:
+ return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;
+ }
+ }
+
+ function resolve(input, base) {
+ // The base is always treated as a directory, if it's not empty.
+ // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327
+ // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401
+ if (base && !base.endsWith('/'))
+ base += '/';
+ return resolve$1(input, base);
+ }
+
+ /**
+ * Removes everything after the last "/", but leaves the slash.
+ */
+ function stripFilename(path) {
+ if (!path)
+ return '';
+ const index = path.lastIndexOf('/');
+ return path.slice(0, index + 1);
+ }
+
+ const COLUMN$1 = 0;
+ const SOURCES_INDEX$1 = 1;
+ const SOURCE_LINE$1 = 2;
+ const SOURCE_COLUMN$1 = 3;
+ const NAMES_INDEX$1 = 4;
+ const REV_GENERATED_LINE = 1;
+ const REV_GENERATED_COLUMN = 2;
+
+ function maybeSort(mappings, owned) {
+ const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);
+ if (unsortedIndex === mappings.length)
+ return mappings;
+ // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If
+ // not, we do not want to modify the consumer's input array.
+ if (!owned)
+ mappings = mappings.slice();
+ for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {
+ mappings[i] = sortSegments(mappings[i], owned);
+ }
+ return mappings;
+ }
+ function nextUnsortedSegmentLine(mappings, start) {
+ for (let i = start; i < mappings.length; i++) {
+ if (!isSorted(mappings[i]))
+ return i;
+ }
+ return mappings.length;
+ }
+ function isSorted(line) {
+ for (let j = 1; j < line.length; j++) {
+ if (line[j][COLUMN$1] < line[j - 1][COLUMN$1]) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function sortSegments(line, owned) {
+ if (!owned)
+ line = line.slice();
+ return line.sort(sortComparator);
+ }
+ function sortComparator(a, b) {
+ return a[COLUMN$1] - b[COLUMN$1];
+ }
+
+ let found = false;
+ /**
+ * A binary search implementation that returns the index if a match is found.
+ * If no match is found, then the left-index (the index associated with the item that comes just
+ * before the desired index) is returned. To maintain proper sort order, a splice would happen at
+ * the next index:
+ *
+ * ```js
+ * const array = [1, 3];
+ * const needle = 2;
+ * const index = binarySearch(array, needle, (item, needle) => item - needle);
+ *
+ * assert.equal(index, 0);
+ * array.splice(index + 1, 0, needle);
+ * assert.deepEqual(array, [1, 2, 3]);
+ * ```
+ */
+ function binarySearch(haystack, needle, low, high) {
+ while (low <= high) {
+ const mid = low + ((high - low) >> 1);
+ const cmp = haystack[mid][COLUMN$1] - needle;
+ if (cmp === 0) {
+ found = true;
+ return mid;
+ }
+ if (cmp < 0) {
+ low = mid + 1;
+ }
+ else {
+ high = mid - 1;
+ }
+ }
+ found = false;
+ return low - 1;
+ }
+ function upperBound(haystack, needle, index) {
+ for (let i = index + 1; i < haystack.length; index = i++) {
+ if (haystack[i][COLUMN$1] !== needle)
+ break;
+ }
+ return index;
+ }
+ function lowerBound(haystack, needle, index) {
+ for (let i = index - 1; i >= 0; index = i--) {
+ if (haystack[i][COLUMN$1] !== needle)
+ break;
+ }
+ return index;
+ }
+ function memoizedState() {
+ return {
+ lastKey: -1,
+ lastNeedle: -1,
+ lastIndex: -1,
+ };
+ }
+ /**
+ * This overly complicated beast is just to record the last tested line/column and the resulting
+ * index, allowing us to skip a few tests if mappings are monotonically increasing.
+ */
+ function memoizedBinarySearch(haystack, needle, state, key) {
+ const { lastKey, lastNeedle, lastIndex } = state;
+ let low = 0;
+ let high = haystack.length - 1;
+ if (key === lastKey) {
+ if (needle === lastNeedle) {
+ found = lastIndex !== -1 && haystack[lastIndex][COLUMN$1] === needle;
+ return lastIndex;
+ }
+ if (needle >= lastNeedle) {
+ // lastIndex may be -1 if the previous needle was not found.
+ low = lastIndex === -1 ? 0 : lastIndex;
+ }
+ else {
+ high = lastIndex;
+ }
+ }
+ state.lastKey = key;
+ state.lastNeedle = needle;
+ return (state.lastIndex = binarySearch(haystack, needle, low, high));
+ }
+
+ // Rebuilds the original source files, with mappings that are ordered by source line/column instead
+ // of generated line/column.
+ function buildBySources(decoded, memos) {
+ const sources = memos.map(buildNullArray);
+ for (let i = 0; i < decoded.length; i++) {
+ const line = decoded[i];
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ if (seg.length === 1)
+ continue;
+ const sourceIndex = seg[SOURCES_INDEX$1];
+ const sourceLine = seg[SOURCE_LINE$1];
+ const sourceColumn = seg[SOURCE_COLUMN$1];
+ const originalSource = sources[sourceIndex];
+ const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = []));
+ const memo = memos[sourceIndex];
+ // The binary search either found a match, or it found the left-index just before where the
+ // segment should go. Either way, we want to insert after that. And there may be multiple
+ // generated segments associated with an original location, so there may need to move several
+ // indexes before we find where we need to insert.
+ let index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine));
+ memo.lastIndex = ++index;
+ insert$1(originalLine, index, [sourceColumn, i, seg[COLUMN$1]]);
+ }
+ }
+ return sources;
+ }
+ function insert$1(array, index, value) {
+ for (let i = array.length; i > index; i--) {
+ array[i] = array[i - 1];
+ }
+ array[index] = value;
+ }
+ // Null arrays allow us to use ordered index keys without actually allocating contiguous memory like
+ // a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations.
+ // Numeric properties on objects are magically sorted in ascending order by the engine regardless of
+ // the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending
+ // order when iterating with for-in.
+ function buildNullArray() {
+ return { __proto__: null };
+ }
+
+ const AnyMap = function (map, mapUrl) {
+ const parsed = parse(map);
+ if (!('sections' in parsed)) {
+ return new TraceMap(parsed, mapUrl);
+ }
+ const mappings = [];
+ const sources = [];
+ const sourcesContent = [];
+ const names = [];
+ const ignoreList = [];
+ recurse(parsed, mapUrl, mappings, sources, sourcesContent, names, ignoreList, 0, 0, Infinity, Infinity);
+ const joined = {
+ version: 3,
+ file: parsed.file,
+ names,
+ sources,
+ sourcesContent,
+ mappings,
+ ignoreList,
+ };
+ return presortedDecodedMap(joined);
+ };
+ function parse(map) {
+ return typeof map === 'string' ? JSON.parse(map) : map;
+ }
+ function recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {
+ const { sections } = input;
+ for (let i = 0; i < sections.length; i++) {
+ const { map, offset } = sections[i];
+ let sl = stopLine;
+ let sc = stopColumn;
+ if (i + 1 < sections.length) {
+ const nextOffset = sections[i + 1].offset;
+ sl = Math.min(stopLine, lineOffset + nextOffset.line);
+ if (sl === stopLine) {
+ sc = Math.min(stopColumn, columnOffset + nextOffset.column);
+ }
+ else if (sl < stopLine) {
+ sc = columnOffset + nextOffset.column;
+ }
+ }
+ addSection(map, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset + offset.line, columnOffset + offset.column, sl, sc);
+ }
+ }
+ function addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {
+ const parsed = parse(input);
+ if ('sections' in parsed)
+ return recurse(...arguments);
+ const map = new TraceMap(parsed, mapUrl);
+ const sourcesOffset = sources.length;
+ const namesOffset = names.length;
+ const decoded = decodedMappings(map);
+ const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;
+ append(sources, resolvedSources);
+ append(names, map.names);
+ if (contents)
+ append(sourcesContent, contents);
+ else
+ for (let i = 0; i < resolvedSources.length; i++)
+ sourcesContent.push(null);
+ if (ignores)
+ for (let i = 0; i < ignores.length; i++)
+ ignoreList.push(ignores[i] + sourcesOffset);
+ for (let i = 0; i < decoded.length; i++) {
+ const lineI = lineOffset + i;
+ // We can only add so many lines before we step into the range that the next section's map
+ // controls. When we get to the last line, then we'll start checking the segments to see if
+ // they've crossed into the column range. But it may not have any columns that overstep, so we
+ // still need to check that we don't overstep lines, too.
+ if (lineI > stopLine)
+ return;
+ // The out line may already exist in mappings (if we're continuing the line started by a
+ // previous section). Or, we may have jumped ahead several lines to start this section.
+ const out = getLine$1(mappings, lineI);
+ // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the
+ // map can be multiple lines), it doesn't.
+ const cOffset = i === 0 ? columnOffset : 0;
+ const line = decoded[i];
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ const column = cOffset + seg[COLUMN$1];
+ // If this segment steps into the column range that the next section's map controls, we need
+ // to stop early.
+ if (lineI === stopLine && column >= stopColumn)
+ return;
+ if (seg.length === 1) {
+ out.push([column]);
+ continue;
+ }
+ const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX$1];
+ const sourceLine = seg[SOURCE_LINE$1];
+ const sourceColumn = seg[SOURCE_COLUMN$1];
+ out.push(seg.length === 4
+ ? [column, sourcesIndex, sourceLine, sourceColumn]
+ : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX$1]]);
+ }
+ }
+ }
+ function append(arr, other) {
+ for (let i = 0; i < other.length; i++)
+ arr.push(other[i]);
+ }
+ function getLine$1(arr, index) {
+ for (let i = arr.length; i <= index; i++)
+ arr[i] = [];
+ return arr[index];
+ }
+
+ const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';
+ const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';
+ const LEAST_UPPER_BOUND = -1;
+ const GREATEST_LOWER_BOUND = 1;
+ class TraceMap {
+ constructor(map, mapUrl) {
+ const isString = typeof map === 'string';
+ if (!isString && map._decodedMemo)
+ return map;
+ const parsed = (isString ? JSON.parse(map) : map);
+ const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;
+ this.version = version;
+ this.file = file;
+ this.names = names || [];
+ this.sourceRoot = sourceRoot;
+ this.sources = sources;
+ this.sourcesContent = sourcesContent;
+ this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || undefined;
+ const from = resolve(sourceRoot || '', stripFilename(mapUrl));
+ this.resolvedSources = sources.map((s) => resolve(s || '', from));
+ const { mappings } = parsed;
+ if (typeof mappings === 'string') {
+ this._encoded = mappings;
+ this._decoded = undefined;
+ }
+ else {
+ this._encoded = undefined;
+ this._decoded = maybeSort(mappings, isString);
+ }
+ this._decodedMemo = memoizedState();
+ this._bySources = undefined;
+ this._bySourceMemos = undefined;
+ }
+ }
+ /**
+ * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
+ * with public access modifiers.
+ */
+ function cast$2(map) {
+ return map;
+ }
+ /**
+ * Returns the encoded (VLQ string) form of the SourceMap's mappings field.
+ */
+ function encodedMappings(map) {
+ var _a;
+ var _b;
+ return ((_a = (_b = cast$2(map))._encoded) !== null && _a !== void 0 ? _a : (_b._encoded = encode(cast$2(map)._decoded)));
+ }
+ /**
+ * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
+ */
+ function decodedMappings(map) {
+ var _a;
+ return ((_a = cast$2(map))._decoded || (_a._decoded = decode(cast$2(map)._encoded)));
+ }
+ /**
+ * A higher-level API to find the source/line/column associated with a generated line/column
+ * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in
+ * `source-map` library.
+ */
+ function originalPositionFor(map, needle) {
+ let { line, column, bias } = needle;
+ line--;
+ if (line < 0)
+ throw new Error(LINE_GTR_ZERO);
+ if (column < 0)
+ throw new Error(COL_GTR_EQ_ZERO);
+ const decoded = decodedMappings(map);
+ // It's common for parent source maps to have pointers to lines that have no
+ // mapping (like a "//# sourceMappingURL=") at the end of the child file.
+ if (line >= decoded.length)
+ return OMapping(null, null, null, null);
+ const segments = decoded[line];
+ const index = traceSegmentInternal(segments, cast$2(map)._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);
+ if (index === -1)
+ return OMapping(null, null, null, null);
+ const segment = segments[index];
+ if (segment.length === 1)
+ return OMapping(null, null, null, null);
+ const { names, resolvedSources } = map;
+ return OMapping(resolvedSources[segment[SOURCES_INDEX$1]], segment[SOURCE_LINE$1] + 1, segment[SOURCE_COLUMN$1], segment.length === 5 ? names[segment[NAMES_INDEX$1]] : null);
+ }
+ /**
+ * Finds the generated line/column position of the provided source/line/column source position.
+ */
+ function generatedPositionFor(map, needle) {
+ const { source, line, column, bias } = needle;
+ return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);
+ }
+ /**
+ * Finds all generated line/column positions of the provided source/line/column source position.
+ */
+ function allGeneratedPositionsFor(map, needle) {
+ const { source, line, column, bias } = needle;
+ // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit.
+ return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);
+ }
+ /**
+ * Iterates each mapping in generated position order.
+ */
+ function eachMapping(map, cb) {
+ const decoded = decodedMappings(map);
+ const { names, resolvedSources } = map;
+ for (let i = 0; i < decoded.length; i++) {
+ const line = decoded[i];
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ const generatedLine = i + 1;
+ const generatedColumn = seg[0];
+ let source = null;
+ let originalLine = null;
+ let originalColumn = null;
+ let name = null;
+ if (seg.length !== 1) {
+ source = resolvedSources[seg[1]];
+ originalLine = seg[2] + 1;
+ originalColumn = seg[3];
+ }
+ if (seg.length === 5)
+ name = names[seg[4]];
+ cb({
+ generatedLine,
+ generatedColumn,
+ source,
+ originalLine,
+ originalColumn,
+ name,
+ });
+ }
+ }
+ }
+ function sourceIndex(map, source) {
+ const { sources, resolvedSources } = map;
+ let index = sources.indexOf(source);
+ if (index === -1)
+ index = resolvedSources.indexOf(source);
+ return index;
+ }
+ /**
+ * Retrieves the source content for a particular source, if its found. Returns null if not.
+ */
+ function sourceContentFor(map, source) {
+ const { sourcesContent } = map;
+ if (sourcesContent == null)
+ return null;
+ const index = sourceIndex(map, source);
+ return index === -1 ? null : sourcesContent[index];
+ }
+ /**
+ * A helper that skips sorting of the input map's mappings array, which can be expensive for larger
+ * maps.
+ */
+ function presortedDecodedMap(map, mapUrl) {
+ const tracer = new TraceMap(clone(map, []), mapUrl);
+ cast$2(tracer)._decoded = map.mappings;
+ return tracer;
+ }
+ function clone(map, mappings) {
+ return {
+ version: map.version,
+ file: map.file,
+ names: map.names,
+ sourceRoot: map.sourceRoot,
+ sources: map.sources,
+ sourcesContent: map.sourcesContent,
+ mappings,
+ ignoreList: map.ignoreList || map.x_google_ignoreList,
+ };
+ }
+ function OMapping(source, line, column, name) {
+ return { source, line, column, name };
+ }
+ function GMapping(line, column) {
+ return { line, column };
+ }
+ function traceSegmentInternal(segments, memo, line, column, bias) {
+ let index = memoizedBinarySearch(segments, column, memo, line);
+ if (found) {
+ index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);
+ }
+ else if (bias === LEAST_UPPER_BOUND)
+ index++;
+ if (index === -1 || index === segments.length)
+ return -1;
+ return index;
+ }
+ function sliceGeneratedPositions(segments, memo, line, column, bias) {
+ let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);
+ // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in
+ // insertion order) segment that matched. Even if we did respect the bias when tracing, we would
+ // still need to call `lowerBound()` to find the first segment, which is slower than just looking
+ // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the
+ // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to
+ // match LEAST_UPPER_BOUND.
+ if (!found && bias === LEAST_UPPER_BOUND)
+ min++;
+ if (min === -1 || min === segments.length)
+ return [];
+ // We may have found the segment that started at an earlier column. If this is the case, then we
+ // need to slice all generated segments that match _that_ column, because all such segments span
+ // to our desired column.
+ const matchedColumn = found ? column : segments[min][COLUMN$1];
+ // The binary search is not guaranteed to find the lower bound when a match wasn't found.
+ if (!found)
+ min = lowerBound(segments, matchedColumn, min);
+ const max = upperBound(segments, matchedColumn, min);
+ const result = [];
+ for (; min <= max; min++) {
+ const segment = segments[min];
+ result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));
+ }
+ return result;
+ }
+ function generatedPosition(map, source, line, column, bias, all) {
+ var _a;
+ line--;
+ if (line < 0)
+ throw new Error(LINE_GTR_ZERO);
+ if (column < 0)
+ throw new Error(COL_GTR_EQ_ZERO);
+ const { sources, resolvedSources } = map;
+ let sourceIndex = sources.indexOf(source);
+ if (sourceIndex === -1)
+ sourceIndex = resolvedSources.indexOf(source);
+ if (sourceIndex === -1)
+ return all ? [] : GMapping(null, null);
+ const generated = ((_a = cast$2(map))._bySources || (_a._bySources = buildBySources(decodedMappings(map), (cast$2(map)._bySourceMemos = sources.map(memoizedState)))));
+ const segments = generated[sourceIndex][line];
+ if (segments == null)
+ return all ? [] : GMapping(null, null);
+ const memo = cast$2(map)._bySourceMemos[sourceIndex];
+ if (all)
+ return sliceGeneratedPositions(segments, memo, line, column, bias);
+ const index = traceSegmentInternal(segments, memo, line, column, bias);
+ if (index === -1)
+ return GMapping(null, null);
+ const segment = segments[index];
+ return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);
+ }
+
+ /**
+ * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
+ * index of the `key` in the backing array.
+ *
+ * This is designed to allow synchronizing a second array with the contents of the backing array,
+ * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
+ * and there are never duplicates.
+ */
+ class SetArray {
+ constructor() {
+ this._indexes = { __proto__: null };
+ this.array = [];
+ }
+ }
+ /**
+ * Typescript doesn't allow friend access to private fields, so this just casts the set into a type
+ * with public access modifiers.
+ */
+ function cast$1(set) {
+ return set;
+ }
+ /**
+ * Gets the index associated with `key` in the backing array, if it is already present.
+ */
+ function get(setarr, key) {
+ return cast$1(setarr)._indexes[key];
+ }
+ /**
+ * Puts `key` into the backing array, if it is not already present. Returns
+ * the index of the `key` in the backing array.
+ */
+ function put(setarr, key) {
+ // The key may or may not be present. If it is present, it's a number.
+ const index = get(setarr, key);
+ if (index !== undefined)
+ return index;
+ const { array, _indexes: indexes } = cast$1(setarr);
+ const length = array.push(key);
+ return (indexes[key] = length - 1);
+ }
+
+ const COLUMN = 0;
+ const SOURCES_INDEX = 1;
+ const SOURCE_LINE = 2;
+ const SOURCE_COLUMN = 3;
+ const NAMES_INDEX = 4;
+
+ const NO_NAME = -1;
+ /**
+ * Provides the state to generate a sourcemap.
+ */
+ class GenMapping {
+ constructor({ file, sourceRoot } = {}) {
+ this._names = new SetArray();
+ this._sources = new SetArray();
+ this._sourcesContent = [];
+ this._mappings = [];
+ this.file = file;
+ this.sourceRoot = sourceRoot;
+ this._ignoreList = new SetArray();
+ }
+ }
+ /**
+ * Typescript doesn't allow friend access to private fields, so this just casts the map into a type
+ * with public access modifiers.
+ */
+ function cast(map) {
+ return map;
+ }
+ /**
+ * Same as `addMapping`, but will only add the mapping if it generates useful information in the
+ * resulting map. This only works correctly if mappings are added **in order**, meaning you should
+ * not add a mapping with a lower generated line/column than one that came before.
+ */
+ const maybeAddMapping = (map, mapping) => {
+ return addMappingInternal(true, map, mapping);
+ };
+ /**
+ * Adds/removes the content of the source file to the source map.
+ */
+ function setSourceContent(map, source, content) {
+ const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);
+ const index = put(sources, source);
+ sourcesContent[index] = content;
+ }
+ /**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ function toDecodedMap(map) {
+ const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList, } = cast(map);
+ removeEmptyFinalLines(mappings);
+ return {
+ version: 3,
+ file: map.file || undefined,
+ names: names.array,
+ sourceRoot: map.sourceRoot || undefined,
+ sources: sources.array,
+ sourcesContent,
+ mappings,
+ ignoreList: ignoreList.array,
+ };
+ }
+ /**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ function toEncodedMap(map) {
+ const decoded = toDecodedMap(map);
+ return Object.assign(Object.assign({}, decoded), { mappings: encode(decoded.mappings) });
+ }
+ /**
+ * Constructs a new GenMapping, using the already present mappings of the input.
+ */
+ function fromMap(input) {
+ const map = new TraceMap(input);
+ const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });
+ putAll(cast(gen)._names, map.names);
+ putAll(cast(gen)._sources, map.sources);
+ cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);
+ cast(gen)._mappings = decodedMappings(map);
+ if (map.ignoreList)
+ putAll(cast(gen)._ignoreList, map.ignoreList);
+ return gen;
+ }
+ // This split declaration is only so that terser can elminiate the static initialization block.
+ function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {
+ const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = cast(map);
+ const line = getLine(mappings, genLine);
+ const index = getColumnIndex(line, genColumn);
+ if (!source) {
+ if (skipable && skipSourceless(line, index))
+ return;
+ return insert(line, index, [genColumn]);
+ }
+ const sourcesIndex = put(sources, source);
+ const namesIndex = name ? put(names, name) : NO_NAME;
+ if (sourcesIndex === sourcesContent.length)
+ sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null;
+ if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {
+ return;
+ }
+ return insert(line, index, name
+ ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]
+ : [genColumn, sourcesIndex, sourceLine, sourceColumn]);
+ }
+ function getLine(mappings, index) {
+ for (let i = mappings.length; i <= index; i++) {
+ mappings[i] = [];
+ }
+ return mappings[index];
+ }
+ function getColumnIndex(line, genColumn) {
+ let index = line.length;
+ for (let i = index - 1; i >= 0; index = i--) {
+ const current = line[i];
+ if (genColumn >= current[COLUMN])
+ break;
+ }
+ return index;
+ }
+ function insert(array, index, value) {
+ for (let i = array.length; i > index; i--) {
+ array[i] = array[i - 1];
+ }
+ array[index] = value;
+ }
+ function removeEmptyFinalLines(mappings) {
+ const { length } = mappings;
+ let len = length;
+ for (let i = len - 1; i >= 0; len = i, i--) {
+ if (mappings[i].length > 0)
+ break;
+ }
+ if (len < length)
+ mappings.length = len;
+ }
+ function putAll(setarr, array) {
+ for (let i = 0; i < array.length; i++)
+ put(setarr, array[i]);
+ }
+ function skipSourceless(line, index) {
+ // The start of a line is already sourceless, so adding a sourceless segment to the beginning
+ // doesn't generate any useful information.
+ if (index === 0)
+ return true;
+ const prev = line[index - 1];
+ // If the previous segment is also sourceless, then adding another sourceless segment doesn't
+ // genrate any new information. Else, this segment will end the source/named segment and point to
+ // a sourceless position, which is useful.
+ return prev.length === 1;
+ }
+ function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
+ // A source/named segment at the start of a line gives position at that genColumn
+ if (index === 0)
+ return false;
+ const prev = line[index - 1];
+ // If the previous segment is sourceless, then we're transitioning to a source.
+ if (prev.length === 1)
+ return false;
+ // If the previous segment maps to the exact same source position, then this segment doesn't
+ // provide any new position information.
+ return (sourcesIndex === prev[SOURCES_INDEX] &&
+ sourceLine === prev[SOURCE_LINE] &&
+ sourceColumn === prev[SOURCE_COLUMN] &&
+ namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));
+ }
+ function addMappingInternal(skipable, map, mapping) {
+ const { generated, source, original, name, content } = mapping;
+ if (!source) {
+ return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null);
+ }
+ return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content);
+ }
+
+ class SourceMapConsumer {
+ constructor(map, mapUrl) {
+ const trace = (this._map = new AnyMap(map, mapUrl));
+ this.file = trace.file;
+ this.names = trace.names;
+ this.sourceRoot = trace.sourceRoot;
+ this.sources = trace.resolvedSources;
+ this.sourcesContent = trace.sourcesContent;
+ this.version = trace.version;
+ }
+ static fromSourceMap(map, mapUrl) {
+ // This is more performant if we receive
+ // a @jridgewell/source-map SourceMapGenerator
+ if (map.toDecodedMap) {
+ return new SourceMapConsumer(map.toDecodedMap(), mapUrl);
+ }
+ // This is a fallback for `source-map` and `source-map-js`
+ return new SourceMapConsumer(map.toJSON(), mapUrl);
+ }
+ get mappings() {
+ return encodedMappings(this._map);
+ }
+ originalPositionFor(needle) {
+ return originalPositionFor(this._map, needle);
+ }
+ generatedPositionFor(originalPosition) {
+ return generatedPositionFor(this._map, originalPosition);
+ }
+ allGeneratedPositionsFor(originalPosition) {
+ return allGeneratedPositionsFor(this._map, originalPosition);
+ }
+ hasContentsOfAllSources() {
+ if (!this.sourcesContent || this.sourcesContent.length !== this.sources.length) {
+ return false;
+ }
+ for (const content of this.sourcesContent) {
+ if (content == null) {
+ return false;
+ }
+ }
+ return true;
+ }
+ sourceContentFor(source, nullOnMissing) {
+ const sourceContent = sourceContentFor(this._map, source);
+ if (sourceContent != null) {
+ return sourceContent;
+ }
+ if (nullOnMissing) {
+ return null;
+ }
+ throw new Error(`"${source}" is not in the SourceMap.`);
+ }
+ eachMapping(callback, context /*, order?: number*/) {
+ // order is ignored as @jridgewell/trace-map doesn't implement it
+ eachMapping(this._map, context ? callback.bind(context) : callback);
+ }
+ destroy() {
+ // noop.
+ }
+ }
+ class SourceMapGenerator {
+ constructor(opts) {
+ // TODO :: should this be duck-typed ?
+ this._map = opts instanceof GenMapping ? opts : new GenMapping(opts);
+ }
+ static fromSourceMap(consumer) {
+ return new SourceMapGenerator(fromMap(consumer));
+ }
+ addMapping(mapping) {
+ maybeAddMapping(this._map, mapping);
+ }
+ setSourceContent(source, content) {
+ setSourceContent(this._map, source, content);
+ }
+ toJSON() {
+ return toEncodedMap(this._map);
+ }
+ toString() {
+ return JSON.stringify(this.toJSON());
+ }
+ toDecodedMap() {
+ return toDecodedMap(this._map);
+ }
+ }
+
+ exports.SourceMapConsumer = SourceMapConsumer;
+ exports.SourceMapGenerator = SourceMapGenerator;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
+//# sourceMappingURL=source-map.umd.js.map
diff --git a/node_modules/@jridgewell/source-map/dist/source-map.umd.js.map b/node_modules/@jridgewell/source-map/dist/source-map.umd.js.map
new file mode 100644
index 0000000..01dcb27
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/dist/source-map.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"source-map.umd.js","sources":["../node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","../node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs","../node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs","../node_modules/@jridgewell/set-array/dist/set-array.mjs","../node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs","../../src/source-map.ts"],"sourcesContent":["const comma = ','.charCodeAt(0);\nconst semicolon = ';'.charCodeAt(0);\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\n// Provide a fallback for older environments.\nconst td = typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf) {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\nfunction decode(mappings) {\n const state = new Int32Array(5);\n const decoded = [];\n let index = 0;\n do {\n const semi = indexOf(mappings, index);\n const line = [];\n let sorted = true;\n let lastCol = 0;\n state[0] = 0;\n for (let i = index; i < semi; i++) {\n let seg;\n i = decodeInteger(mappings, i, state, 0); // genColumn\n const col = state[0];\n if (col < lastCol)\n sorted = false;\n lastCol = col;\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 1); // sourcesIndex\n i = decodeInteger(mappings, i, state, 2); // sourceLine\n i = decodeInteger(mappings, i, state, 3); // sourceColumn\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 4); // namesIndex\n seg = [col, state[1], state[2], state[3], state[4]];\n }\n else {\n seg = [col, state[1], state[2], state[3]];\n }\n }\n else {\n seg = [col];\n }\n line.push(seg);\n }\n if (!sorted)\n sort(line);\n decoded.push(line);\n index = semi + 1;\n } while (index <= mappings.length);\n return decoded;\n}\nfunction indexOf(mappings, index) {\n const idx = mappings.indexOf(';', index);\n return idx === -1 ? mappings.length : idx;\n}\nfunction decodeInteger(mappings, pos, state, j) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = mappings.charCodeAt(pos++);\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n state[j] += value;\n return pos;\n}\nfunction hasMoreVlq(mappings, i, length) {\n if (i >= length)\n return false;\n return mappings.charCodeAt(i) !== comma;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const state = new Int32Array(5);\n const bufLength = 1024 * 16;\n const subLength = bufLength - 36;\n const buf = new Uint8Array(bufLength);\n const sub = buf.subarray(0, subLength);\n let pos = 0;\n let out = '';\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) {\n if (pos === bufLength) {\n out += td.decode(buf);\n pos = 0;\n }\n buf[pos++] = semicolon;\n }\n if (line.length === 0)\n continue;\n state[0] = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n // We can push up to 5 ints, each int can take at most 7 chars, and we\n // may push a comma.\n if (pos > subLength) {\n out += td.decode(sub);\n buf.copyWithin(0, subLength, pos);\n pos -= subLength;\n }\n if (j > 0)\n buf[pos++] = comma;\n pos = encodeInteger(buf, pos, state, segment, 0); // genColumn\n if (segment.length === 1)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex\n pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine\n pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn\n if (segment.length === 4)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex\n }\n }\n return out + td.decode(buf.subarray(0, pos));\n}\nfunction encodeInteger(buf, pos, state, segment, j) {\n const next = segment[j];\n let num = next - state[j];\n state[j] = next;\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n let clamped = num & 0b011111;\n num >>>= 5;\n if (num > 0)\n clamped |= 0b100000;\n buf[pos++] = intToChar[clamped];\n } while (num > 0);\n return pos;\n}\n\nexport { decode, encode };\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","// Matches the scheme of a URL, eg \"http://\"\nconst schemeRegex = /^[\\w+.-]+:\\/\\//;\n/**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\nconst urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n/**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\nconst fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\nfunction isAbsoluteUrl(input) {\n return schemeRegex.test(input);\n}\nfunction isSchemeRelativeUrl(input) {\n return input.startsWith('//');\n}\nfunction isAbsolutePath(input) {\n return input.startsWith('/');\n}\nfunction isFileUrl(input) {\n return input.startsWith('file:');\n}\nfunction isRelative(input) {\n return /^[.?#]/.test(input);\n}\nfunction parseAbsoluteUrl(input) {\n const match = urlRegex.exec(input);\n return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');\n}\nfunction parseFileUrl(input) {\n const match = fileRegex.exec(input);\n const path = match[2];\n return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');\n}\nfunction makeUrl(scheme, user, host, port, path, query, hash) {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: 7 /* Absolute */,\n };\n}\nfunction parseUrl(input) {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = 6 /* SchemeRelative */;\n return url;\n }\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = 5 /* AbsolutePath */;\n return url;\n }\n if (isFileUrl(input))\n return parseFileUrl(input);\n if (isAbsoluteUrl(input))\n return parseAbsoluteUrl(input);\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? 3 /* Query */\n : input.startsWith('#')\n ? 2 /* Hash */\n : 4 /* RelativePath */\n : 1 /* Empty */;\n return url;\n}\nfunction stripPathFilename(path) {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..'))\n return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\nfunction mergePaths(url, base) {\n normalizePath(base, base.type);\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n }\n else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n}\n/**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\nfunction normalizePath(url, type) {\n const rel = type <= 4 /* RelativePath */;\n const pieces = url.path.split('/');\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n // A current directory, which we can always drop.\n if (piece === '.')\n continue;\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n }\n else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n}\n/**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\nfunction resolve(input, base) {\n if (!input && !base)\n return '';\n const url = parseUrl(input);\n let inputType = url.type;\n if (base && inputType !== 7 /* Absolute */) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n switch (inputType) {\n case 1 /* Empty */:\n url.hash = baseUrl.hash;\n // fall through\n case 2 /* Hash */:\n url.query = baseUrl.query;\n // fall through\n case 3 /* Query */:\n case 4 /* RelativePath */:\n mergePaths(url, baseUrl);\n // fall through\n case 5 /* AbsolutePath */:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n case 6 /* SchemeRelative */:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType)\n inputType = baseType;\n }\n normalizePath(url, inputType);\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n case 2 /* Hash */:\n case 3 /* Query */:\n return queryHash;\n case 4 /* RelativePath */: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n if (!path)\n return queryHash || '.';\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n return path + queryHash;\n }\n case 5 /* AbsolutePath */:\n return url.path + queryHash;\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n}\n\nexport { resolve as default };\n//# sourceMappingURL=resolve-uri.mjs.map\n","import { encode, decode } from '@jridgewell/sourcemap-codec';\nimport resolveUri from '@jridgewell/resolve-uri';\n\nfunction resolve(input, base) {\n // The base is always treated as a directory, if it's not empty.\n // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n if (base && !base.endsWith('/'))\n base += '/';\n return resolveUri(input, base);\n}\n\n/**\n * Removes everything after the last \"/\", but leaves the slash.\n */\nfunction stripFilename(path) {\n if (!path)\n return '';\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\nconst COLUMN = 0;\nconst SOURCES_INDEX = 1;\nconst SOURCE_LINE = 2;\nconst SOURCE_COLUMN = 3;\nconst NAMES_INDEX = 4;\nconst REV_GENERATED_LINE = 1;\nconst REV_GENERATED_COLUMN = 2;\n\nfunction maybeSort(mappings, owned) {\n const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);\n if (unsortedIndex === mappings.length)\n return mappings;\n // If we own the array (meaning we parsed it from JSON), then we're free to directly mutate it. If\n // not, we do not want to modify the consumer's input array.\n if (!owned)\n mappings = mappings.slice();\n for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {\n mappings[i] = sortSegments(mappings[i], owned);\n }\n return mappings;\n}\nfunction nextUnsortedSegmentLine(mappings, start) {\n for (let i = start; i < mappings.length; i++) {\n if (!isSorted(mappings[i]))\n return i;\n }\n return mappings.length;\n}\nfunction isSorted(line) {\n for (let j = 1; j < line.length; j++) {\n if (line[j][COLUMN] < line[j - 1][COLUMN]) {\n return false;\n }\n }\n return true;\n}\nfunction sortSegments(line, owned) {\n if (!owned)\n line = line.slice();\n return line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[COLUMN] - b[COLUMN];\n}\n\nlet found = false;\n/**\n * A binary search implementation that returns the index if a match is found.\n * If no match is found, then the left-index (the index associated with the item that comes just\n * before the desired index) is returned. To maintain proper sort order, a splice would happen at\n * the next index:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, 0);\n * array.splice(index + 1, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nfunction binarySearch(haystack, needle, low, high) {\n while (low <= high) {\n const mid = low + ((high - low) >> 1);\n const cmp = haystack[mid][COLUMN] - needle;\n if (cmp === 0) {\n found = true;\n return mid;\n }\n if (cmp < 0) {\n low = mid + 1;\n }\n else {\n high = mid - 1;\n }\n }\n found = false;\n return low - 1;\n}\nfunction upperBound(haystack, needle, index) {\n for (let i = index + 1; i < haystack.length; index = i++) {\n if (haystack[i][COLUMN] !== needle)\n break;\n }\n return index;\n}\nfunction lowerBound(haystack, needle, index) {\n for (let i = index - 1; i >= 0; index = i--) {\n if (haystack[i][COLUMN] !== needle)\n break;\n }\n return index;\n}\nfunction memoizedState() {\n return {\n lastKey: -1,\n lastNeedle: -1,\n lastIndex: -1,\n };\n}\n/**\n * This overly complicated beast is just to record the last tested line/column and the resulting\n * index, allowing us to skip a few tests if mappings are monotonically increasing.\n */\nfunction memoizedBinarySearch(haystack, needle, state, key) {\n const { lastKey, lastNeedle, lastIndex } = state;\n let low = 0;\n let high = haystack.length - 1;\n if (key === lastKey) {\n if (needle === lastNeedle) {\n found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle;\n return lastIndex;\n }\n if (needle >= lastNeedle) {\n // lastIndex may be -1 if the previous needle was not found.\n low = lastIndex === -1 ? 0 : lastIndex;\n }\n else {\n high = lastIndex;\n }\n }\n state.lastKey = key;\n state.lastNeedle = needle;\n return (state.lastIndex = binarySearch(haystack, needle, low, high));\n}\n\n// Rebuilds the original source files, with mappings that are ordered by source line/column instead\n// of generated line/column.\nfunction buildBySources(decoded, memos) {\n const sources = memos.map(buildNullArray);\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n if (seg.length === 1)\n continue;\n const sourceIndex = seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n const originalSource = sources[sourceIndex];\n const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = []));\n const memo = memos[sourceIndex];\n // The binary search either found a match, or it found the left-index just before where the\n // segment should go. Either way, we want to insert after that. And there may be multiple\n // generated segments associated with an original location, so there may need to move several\n // indexes before we find where we need to insert.\n let index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine));\n memo.lastIndex = ++index;\n insert(originalLine, index, [sourceColumn, i, seg[COLUMN]]);\n }\n }\n return sources;\n}\nfunction insert(array, index, value) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\n// Null arrays allow us to use ordered index keys without actually allocating contiguous memory like\n// a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations.\n// Numeric properties on objects are magically sorted in ascending order by the engine regardless of\n// the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending\n// order when iterating with for-in.\nfunction buildNullArray() {\n return { __proto__: null };\n}\n\nconst AnyMap = function (map, mapUrl) {\n const parsed = parse(map);\n if (!('sections' in parsed)) {\n return new TraceMap(parsed, mapUrl);\n }\n const mappings = [];\n const sources = [];\n const sourcesContent = [];\n const names = [];\n const ignoreList = [];\n recurse(parsed, mapUrl, mappings, sources, sourcesContent, names, ignoreList, 0, 0, Infinity, Infinity);\n const joined = {\n version: 3,\n file: parsed.file,\n names,\n sources,\n sourcesContent,\n mappings,\n ignoreList,\n };\n return presortedDecodedMap(joined);\n};\nfunction parse(map) {\n return typeof map === 'string' ? JSON.parse(map) : map;\n}\nfunction recurse(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {\n const { sections } = input;\n for (let i = 0; i < sections.length; i++) {\n const { map, offset } = sections[i];\n let sl = stopLine;\n let sc = stopColumn;\n if (i + 1 < sections.length) {\n const nextOffset = sections[i + 1].offset;\n sl = Math.min(stopLine, lineOffset + nextOffset.line);\n if (sl === stopLine) {\n sc = Math.min(stopColumn, columnOffset + nextOffset.column);\n }\n else if (sl < stopLine) {\n sc = columnOffset + nextOffset.column;\n }\n }\n addSection(map, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset + offset.line, columnOffset + offset.column, sl, sc);\n }\n}\nfunction addSection(input, mapUrl, mappings, sources, sourcesContent, names, ignoreList, lineOffset, columnOffset, stopLine, stopColumn) {\n const parsed = parse(input);\n if ('sections' in parsed)\n return recurse(...arguments);\n const map = new TraceMap(parsed, mapUrl);\n const sourcesOffset = sources.length;\n const namesOffset = names.length;\n const decoded = decodedMappings(map);\n const { resolvedSources, sourcesContent: contents, ignoreList: ignores } = map;\n append(sources, resolvedSources);\n append(names, map.names);\n if (contents)\n append(sourcesContent, contents);\n else\n for (let i = 0; i < resolvedSources.length; i++)\n sourcesContent.push(null);\n if (ignores)\n for (let i = 0; i < ignores.length; i++)\n ignoreList.push(ignores[i] + sourcesOffset);\n for (let i = 0; i < decoded.length; i++) {\n const lineI = lineOffset + i;\n // We can only add so many lines before we step into the range that the next section's map\n // controls. When we get to the last line, then we'll start checking the segments to see if\n // they've crossed into the column range. But it may not have any columns that overstep, so we\n // still need to check that we don't overstep lines, too.\n if (lineI > stopLine)\n return;\n // The out line may already exist in mappings (if we're continuing the line started by a\n // previous section). Or, we may have jumped ahead several lines to start this section.\n const out = getLine(mappings, lineI);\n // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the\n // map can be multiple lines), it doesn't.\n const cOffset = i === 0 ? columnOffset : 0;\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const column = cOffset + seg[COLUMN];\n // If this segment steps into the column range that the next section's map controls, we need\n // to stop early.\n if (lineI === stopLine && column >= stopColumn)\n return;\n if (seg.length === 1) {\n out.push([column]);\n continue;\n }\n const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];\n const sourceLine = seg[SOURCE_LINE];\n const sourceColumn = seg[SOURCE_COLUMN];\n out.push(seg.length === 4\n ? [column, sourcesIndex, sourceLine, sourceColumn]\n : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]);\n }\n }\n}\nfunction append(arr, other) {\n for (let i = 0; i < other.length; i++)\n arr.push(other[i]);\n}\nfunction getLine(arr, index) {\n for (let i = arr.length; i <= index; i++)\n arr[i] = [];\n return arr[index];\n}\n\nconst LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)';\nconst COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)';\nconst LEAST_UPPER_BOUND = -1;\nconst GREATEST_LOWER_BOUND = 1;\nclass TraceMap {\n constructor(map, mapUrl) {\n const isString = typeof map === 'string';\n if (!isString && map._decodedMemo)\n return map;\n const parsed = (isString ? JSON.parse(map) : map);\n const { version, file, names, sourceRoot, sources, sourcesContent } = parsed;\n this.version = version;\n this.file = file;\n this.names = names || [];\n this.sourceRoot = sourceRoot;\n this.sources = sources;\n this.sourcesContent = sourcesContent;\n this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || undefined;\n const from = resolve(sourceRoot || '', stripFilename(mapUrl));\n this.resolvedSources = sources.map((s) => resolve(s || '', from));\n const { mappings } = parsed;\n if (typeof mappings === 'string') {\n this._encoded = mappings;\n this._decoded = undefined;\n }\n else {\n this._encoded = undefined;\n this._decoded = maybeSort(mappings, isString);\n }\n this._decodedMemo = memoizedState();\n this._bySources = undefined;\n this._bySourceMemos = undefined;\n }\n}\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map) {\n return map;\n}\n/**\n * Returns the encoded (VLQ string) form of the SourceMap's mappings field.\n */\nfunction encodedMappings(map) {\n var _a;\n var _b;\n return ((_a = (_b = cast(map))._encoded) !== null && _a !== void 0 ? _a : (_b._encoded = encode(cast(map)._decoded)));\n}\n/**\n * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.\n */\nfunction decodedMappings(map) {\n var _a;\n return ((_a = cast(map))._decoded || (_a._decoded = decode(cast(map)._encoded)));\n}\n/**\n * A low-level API to find the segment associated with a generated line/column (think, from a\n * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.\n */\nfunction traceSegment(map, line, column) {\n const decoded = decodedMappings(map);\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length)\n return null;\n const segments = decoded[line];\n const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line, column, GREATEST_LOWER_BOUND);\n return index === -1 ? null : segments[index];\n}\n/**\n * A higher-level API to find the source/line/column associated with a generated line/column\n * (think, from a stack trace). Line is 1-based, but column is 0-based, due to legacy behavior in\n * `source-map` library.\n */\nfunction originalPositionFor(map, needle) {\n let { line, column, bias } = needle;\n line--;\n if (line < 0)\n throw new Error(LINE_GTR_ZERO);\n if (column < 0)\n throw new Error(COL_GTR_EQ_ZERO);\n const decoded = decodedMappings(map);\n // It's common for parent source maps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= decoded.length)\n return OMapping(null, null, null, null);\n const segments = decoded[line];\n const index = traceSegmentInternal(segments, cast(map)._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);\n if (index === -1)\n return OMapping(null, null, null, null);\n const segment = segments[index];\n if (segment.length === 1)\n return OMapping(null, null, null, null);\n const { names, resolvedSources } = map;\n return OMapping(resolvedSources[segment[SOURCES_INDEX]], segment[SOURCE_LINE] + 1, segment[SOURCE_COLUMN], segment.length === 5 ? names[segment[NAMES_INDEX]] : null);\n}\n/**\n * Finds the generated line/column position of the provided source/line/column source position.\n */\nfunction generatedPositionFor(map, needle) {\n const { source, line, column, bias } = needle;\n return generatedPosition(map, source, line, column, bias || GREATEST_LOWER_BOUND, false);\n}\n/**\n * Finds all generated line/column positions of the provided source/line/column source position.\n */\nfunction allGeneratedPositionsFor(map, needle) {\n const { source, line, column, bias } = needle;\n // SourceMapConsumer uses LEAST_UPPER_BOUND for some reason, so we follow suit.\n return generatedPosition(map, source, line, column, bias || LEAST_UPPER_BOUND, true);\n}\n/**\n * Iterates each mapping in generated position order.\n */\nfunction eachMapping(map, cb) {\n const decoded = decodedMappings(map);\n const { names, resolvedSources } = map;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generatedLine = i + 1;\n const generatedColumn = seg[0];\n let source = null;\n let originalLine = null;\n let originalColumn = null;\n let name = null;\n if (seg.length !== 1) {\n source = resolvedSources[seg[1]];\n originalLine = seg[2] + 1;\n originalColumn = seg[3];\n }\n if (seg.length === 5)\n name = names[seg[4]];\n cb({\n generatedLine,\n generatedColumn,\n source,\n originalLine,\n originalColumn,\n name,\n });\n }\n }\n}\nfunction sourceIndex(map, source) {\n const { sources, resolvedSources } = map;\n let index = sources.indexOf(source);\n if (index === -1)\n index = resolvedSources.indexOf(source);\n return index;\n}\n/**\n * Retrieves the source content for a particular source, if its found. Returns null if not.\n */\nfunction sourceContentFor(map, source) {\n const { sourcesContent } = map;\n if (sourcesContent == null)\n return null;\n const index = sourceIndex(map, source);\n return index === -1 ? null : sourcesContent[index];\n}\n/**\n * Determines if the source is marked to ignore by the source map.\n */\nfunction isIgnored(map, source) {\n const { ignoreList } = map;\n if (ignoreList == null)\n return false;\n const index = sourceIndex(map, source);\n return index === -1 ? false : ignoreList.includes(index);\n}\n/**\n * A helper that skips sorting of the input map's mappings array, which can be expensive for larger\n * maps.\n */\nfunction presortedDecodedMap(map, mapUrl) {\n const tracer = new TraceMap(clone(map, []), mapUrl);\n cast(tracer)._decoded = map.mappings;\n return tracer;\n}\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nfunction decodedMap(map) {\n return clone(map, decodedMappings(map));\n}\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nfunction encodedMap(map) {\n return clone(map, encodedMappings(map));\n}\nfunction clone(map, mappings) {\n return {\n version: map.version,\n file: map.file,\n names: map.names,\n sourceRoot: map.sourceRoot,\n sources: map.sources,\n sourcesContent: map.sourcesContent,\n mappings,\n ignoreList: map.ignoreList || map.x_google_ignoreList,\n };\n}\nfunction OMapping(source, line, column, name) {\n return { source, line, column, name };\n}\nfunction GMapping(line, column) {\n return { line, column };\n}\nfunction traceSegmentInternal(segments, memo, line, column, bias) {\n let index = memoizedBinarySearch(segments, column, memo, line);\n if (found) {\n index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);\n }\n else if (bias === LEAST_UPPER_BOUND)\n index++;\n if (index === -1 || index === segments.length)\n return -1;\n return index;\n}\nfunction sliceGeneratedPositions(segments, memo, line, column, bias) {\n let min = traceSegmentInternal(segments, memo, line, column, GREATEST_LOWER_BOUND);\n // We ignored the bias when tracing the segment so that we're guarnateed to find the first (in\n // insertion order) segment that matched. Even if we did respect the bias when tracing, we would\n // still need to call `lowerBound()` to find the first segment, which is slower than just looking\n // for the GREATEST_LOWER_BOUND to begin with. The only difference that matters for us is when the\n // binary search didn't match, in which case GREATEST_LOWER_BOUND just needs to increment to\n // match LEAST_UPPER_BOUND.\n if (!found && bias === LEAST_UPPER_BOUND)\n min++;\n if (min === -1 || min === segments.length)\n return [];\n // We may have found the segment that started at an earlier column. If this is the case, then we\n // need to slice all generated segments that match _that_ column, because all such segments span\n // to our desired column.\n const matchedColumn = found ? column : segments[min][COLUMN];\n // The binary search is not guaranteed to find the lower bound when a match wasn't found.\n if (!found)\n min = lowerBound(segments, matchedColumn, min);\n const max = upperBound(segments, matchedColumn, min);\n const result = [];\n for (; min <= max; min++) {\n const segment = segments[min];\n result.push(GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]));\n }\n return result;\n}\nfunction generatedPosition(map, source, line, column, bias, all) {\n var _a;\n line--;\n if (line < 0)\n throw new Error(LINE_GTR_ZERO);\n if (column < 0)\n throw new Error(COL_GTR_EQ_ZERO);\n const { sources, resolvedSources } = map;\n let sourceIndex = sources.indexOf(source);\n if (sourceIndex === -1)\n sourceIndex = resolvedSources.indexOf(source);\n if (sourceIndex === -1)\n return all ? [] : GMapping(null, null);\n const generated = ((_a = cast(map))._bySources || (_a._bySources = buildBySources(decodedMappings(map), (cast(map)._bySourceMemos = sources.map(memoizedState)))));\n const segments = generated[sourceIndex][line];\n if (segments == null)\n return all ? [] : GMapping(null, null);\n const memo = cast(map)._bySourceMemos[sourceIndex];\n if (all)\n return sliceGeneratedPositions(segments, memo, line, column, bias);\n const index = traceSegmentInternal(segments, memo, line, column, bias);\n if (index === -1)\n return GMapping(null, null);\n const segment = segments[index];\n return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]);\n}\n\nexport { AnyMap, GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap, allGeneratedPositionsFor, decodedMap, decodedMappings, eachMapping, encodedMap, encodedMappings, generatedPositionFor, isIgnored, originalPositionFor, presortedDecodedMap, sourceContentFor, traceSegment };\n//# sourceMappingURL=trace-mapping.mjs.map\n","/**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\nclass SetArray {\n constructor() {\n this._indexes = { __proto__: null };\n this.array = [];\n }\n}\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\nfunction cast(set) {\n return set;\n}\n/**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\nfunction get(setarr, key) {\n return cast(setarr)._indexes[key];\n}\n/**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\nfunction put(setarr, key) {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(setarr, key);\n if (index !== undefined)\n return index;\n const { array, _indexes: indexes } = cast(setarr);\n const length = array.push(key);\n return (indexes[key] = length - 1);\n}\n/**\n * Pops the last added item out of the SetArray.\n */\nfunction pop(setarr) {\n const { array, _indexes: indexes } = cast(setarr);\n if (array.length === 0)\n return;\n const last = array.pop();\n indexes[last] = undefined;\n}\n/**\n * Removes the key, if it exists in the set.\n */\nfunction remove(setarr, key) {\n const index = get(setarr, key);\n if (index === undefined)\n return;\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]--;\n }\n indexes[key] = undefined;\n array.pop();\n}\n\nexport { SetArray, get, pop, put, remove };\n//# sourceMappingURL=set-array.mjs.map\n","import { SetArray, put, remove } from '@jridgewell/set-array';\nimport { encode } from '@jridgewell/sourcemap-codec';\nimport { TraceMap, decodedMappings } from '@jridgewell/trace-mapping';\n\nconst COLUMN = 0;\nconst SOURCES_INDEX = 1;\nconst SOURCE_LINE = 2;\nconst SOURCE_COLUMN = 3;\nconst NAMES_INDEX = 4;\n\nconst NO_NAME = -1;\n/**\n * Provides the state to generate a sourcemap.\n */\nclass GenMapping {\n constructor({ file, sourceRoot } = {}) {\n this._names = new SetArray();\n this._sources = new SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new SetArray();\n }\n}\n/**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\nfunction cast(map) {\n return map;\n}\nfunction addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);\n}\nfunction addMapping(map, mapping) {\n return addMappingInternal(false, map, mapping);\n}\n/**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\nconst maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {\n return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);\n};\n/**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\nconst maybeAddMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping);\n};\n/**\n * Adds/removes the content of the source file to the source map.\n */\nfunction setSourceContent(map, source, content) {\n const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);\n const index = put(sources, source);\n sourcesContent[index] = content;\n}\nfunction setIgnore(map, source, ignore = true) {\n const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);\n const index = put(sources, source);\n if (index === sourcesContent.length)\n sourcesContent[index] = null;\n if (ignore)\n put(ignoreList, index);\n else\n remove(ignoreList, index);\n}\n/**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nfunction toDecodedMap(map) {\n const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList, } = cast(map);\n removeEmptyFinalLines(mappings);\n return {\n version: 3,\n file: map.file || undefined,\n names: names.array,\n sourceRoot: map.sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n ignoreList: ignoreList.array,\n };\n}\n/**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\nfunction toEncodedMap(map) {\n const decoded = toDecodedMap(map);\n return Object.assign(Object.assign({}, decoded), { mappings: encode(decoded.mappings) });\n}\n/**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\nfunction fromMap(input) {\n const map = new TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n putAll(cast(gen)._names, map.names);\n putAll(cast(gen)._sources, map.sources);\n cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast(gen)._mappings = decodedMappings(map);\n if (map.ignoreList)\n putAll(cast(gen)._ignoreList, map.ignoreList);\n return gen;\n}\n/**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\nfunction allMappings(map) {\n const out = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source = undefined;\n let original = undefined;\n let name = undefined;\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n if (seg.length === 5)\n name = names.array[seg[NAMES_INDEX]];\n }\n out.push({ generated, source, original, name });\n }\n }\n return out;\n}\n// This split declaration is only so that terser can elminiate the static initialization block.\nfunction addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = cast(map);\n const line = getLine(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n if (!source) {\n if (skipable && skipSourceless(line, index))\n return;\n return insert(line, index, [genColumn]);\n }\n const sourcesIndex = put(sources, source);\n const namesIndex = name ? put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length)\n sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null;\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n return insert(line, index, name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn]);\n}\nfunction getLine(mappings, index) {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n}\nfunction getColumnIndex(line, genColumn) {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN])\n break;\n }\n return index;\n}\nfunction insert(array, index, value) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n}\nfunction removeEmptyFinalLines(mappings) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0)\n break;\n }\n if (len < length)\n mappings.length = len;\n}\nfunction putAll(setarr, array) {\n for (let i = 0; i < array.length; i++)\n put(setarr, array[i]);\n}\nfunction skipSourceless(line, index) {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0)\n return true;\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n}\nfunction skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0)\n return false;\n const prev = line[index - 1];\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1)\n return false;\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));\n}\nfunction addMappingInternal(skipable, map, mapping) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null);\n }\n return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content);\n}\n\nexport { GenMapping, addMapping, addSegment, allMappings, fromMap, maybeAddMapping, maybeAddSegment, setIgnore, setSourceContent, toDecodedMap, toEncodedMap };\n//# sourceMappingURL=gen-mapping.mjs.map\n","import {\n AnyMap,\n originalPositionFor,\n generatedPositionFor,\n allGeneratedPositionsFor,\n eachMapping,\n encodedMappings,\n sourceContentFor,\n} from '@jridgewell/trace-mapping';\nimport {\n GenMapping,\n maybeAddMapping,\n toDecodedMap,\n toEncodedMap,\n setSourceContent,\n fromMap,\n} from '@jridgewell/gen-mapping';\n\nimport type {\n TraceMap,\n SourceMapInput,\n SectionedSourceMapInput,\n DecodedSourceMap,\n} from '@jridgewell/trace-mapping';\nexport type { TraceMap, SourceMapInput, SectionedSourceMapInput, DecodedSourceMap };\n\nimport type { Mapping, EncodedSourceMap } from '@jridgewell/gen-mapping';\nexport type { Mapping, EncodedSourceMap };\n\nexport class SourceMapConsumer {\n private declare _map: TraceMap;\n declare file: TraceMap['file'];\n declare names: TraceMap['names'];\n declare sourceRoot: TraceMap['sourceRoot'];\n declare sources: TraceMap['sources'];\n declare sourcesContent: TraceMap['sourcesContent'];\n declare version: TraceMap['version'];\n\n constructor(map: ConstructorParameters[0], mapUrl: Parameters[1]) {\n const trace = (this._map = new AnyMap(map, mapUrl));\n\n this.file = trace.file;\n this.names = trace.names;\n this.sourceRoot = trace.sourceRoot;\n this.sources = trace.resolvedSources;\n this.sourcesContent = trace.sourcesContent;\n this.version = trace.version;\n }\n\n static fromSourceMap(map: SourceMapGenerator, mapUrl: Parameters[1]) {\n // This is more performant if we receive\n // a @jridgewell/source-map SourceMapGenerator\n if (map.toDecodedMap) {\n return new SourceMapConsumer(map.toDecodedMap() as SectionedSourceMapInput, mapUrl);\n }\n\n // This is a fallback for `source-map` and `source-map-js`\n return new SourceMapConsumer(map.toJSON() as SectionedSourceMapInput, mapUrl);\n }\n\n get mappings(): string {\n return encodedMappings(this._map);\n }\n\n originalPositionFor(\n needle: Parameters[1],\n ): ReturnType {\n return originalPositionFor(this._map, needle);\n }\n\n generatedPositionFor(\n originalPosition: Parameters[1],\n ): ReturnType {\n return generatedPositionFor(this._map, originalPosition);\n }\n\n allGeneratedPositionsFor(\n originalPosition: Parameters[1],\n ): ReturnType[] {\n return allGeneratedPositionsFor(this._map, originalPosition);\n }\n\n hasContentsOfAllSources(): boolean {\n if (!this.sourcesContent || this.sourcesContent.length !== this.sources.length) {\n return false;\n }\n\n for (const content of this.sourcesContent) {\n if (content == null) {\n return false;\n }\n }\n\n return true;\n }\n\n sourceContentFor(source: string, nullOnMissing?: boolean): string | null {\n const sourceContent = sourceContentFor(this._map, source);\n if (sourceContent != null) {\n return sourceContent;\n }\n\n if (nullOnMissing) {\n return null;\n }\n throw new Error(`\"${source}\" is not in the SourceMap.`);\n }\n\n eachMapping(\n callback: Parameters[1],\n context?: any /*, order?: number*/,\n ): void {\n // order is ignored as @jridgewell/trace-map doesn't implement it\n eachMapping(this._map, context ? callback.bind(context) : callback);\n }\n\n destroy() {\n // noop.\n }\n}\n\nexport class SourceMapGenerator {\n private declare _map: GenMapping;\n\n constructor(opts: ConstructorParameters[0] | GenMapping) {\n // TODO :: should this be duck-typed ?\n this._map = opts instanceof GenMapping ? opts : new GenMapping(opts);\n }\n\n static fromSourceMap(consumer: SourceMapConsumer) {\n return new SourceMapGenerator(fromMap(consumer));\n }\n\n addMapping(mapping: Parameters[1]): ReturnType {\n maybeAddMapping(this._map, mapping);\n }\n\n setSourceContent(\n source: Parameters[1],\n content: Parameters[2],\n ): ReturnType {\n setSourceContent(this._map, source, content);\n }\n\n toJSON(): ReturnType {\n return toEncodedMap(this._map);\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n\n toDecodedMap(): ReturnType {\n return toDecodedMap(this._map);\n }\n}\n"],"names":["sortComparator","resolve","resolveUri","COLUMN","SOURCES_INDEX","SOURCE_LINE","SOURCE_COLUMN","NAMES_INDEX","insert","getLine","cast"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/source-map/dist/types/source-map.d.ts b/node_modules/@jridgewell/source-map/dist/types/source-map.d.ts
new file mode 100644
index 0000000..97b8b93
--- /dev/null
+++ b/node_modules/@jridgewell/source-map/dist/types/source-map.d.ts
@@ -0,0 +1,35 @@
+import { AnyMap, originalPositionFor, generatedPositionFor, eachMapping } from '@jridgewell/trace-mapping';
+import { GenMapping, maybeAddMapping, toDecodedMap, toEncodedMap, setSourceContent } from '@jridgewell/gen-mapping';
+import type { TraceMap, SourceMapInput, SectionedSourceMapInput, DecodedSourceMap } from '@jridgewell/trace-mapping';
+export type { TraceMap, SourceMapInput, SectionedSourceMapInput, DecodedSourceMap };
+import type { Mapping, EncodedSourceMap } from '@jridgewell/gen-mapping';
+export type { Mapping, EncodedSourceMap };
+export declare class SourceMapConsumer {
+ private _map;
+ file: TraceMap['file'];
+ names: TraceMap['names'];
+ sourceRoot: TraceMap['sourceRoot'];
+ sources: TraceMap['sources'];
+ sourcesContent: TraceMap['sourcesContent'];
+ version: TraceMap['version'];
+ constructor(map: ConstructorParameters[0], mapUrl: Parameters[1]);
+ static fromSourceMap(map: SourceMapGenerator, mapUrl: Parameters[1]): SourceMapConsumer;
+ get mappings(): string;
+ originalPositionFor(needle: Parameters[1]): ReturnType;
+ generatedPositionFor(originalPosition: Parameters[1]): ReturnType;
+ allGeneratedPositionsFor(originalPosition: Parameters[1]): ReturnType[];
+ hasContentsOfAllSources(): boolean;
+ sourceContentFor(source: string, nullOnMissing?: boolean): string | null;
+ eachMapping(callback: Parameters[1], context?: any): void;
+ destroy(): void;
+}
+export declare class SourceMapGenerator {
+ private _map;
+ constructor(opts: ConstructorParameters