diff --git a/node_modules/.bin/acorn b/node_modules/.bin/acorn
new file mode 100644
index 0000000..679bd16
--- /dev/null
+++ b/node_modules/.bin/acorn
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@"
+else
+ exec node "$basedir/../acorn/bin/acorn" "$@"
+fi
diff --git a/node_modules/.bin/acorn.cmd b/node_modules/.bin/acorn.cmd
new file mode 100644
index 0000000..a9324df
--- /dev/null
+++ b/node_modules/.bin/acorn.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %*
diff --git a/node_modules/.bin/acorn.ps1 b/node_modules/.bin/acorn.ps1
new file mode 100644
index 0000000..6f6dcdd
--- /dev/null
+++ b/node_modules/.bin/acorn.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args
+ } else {
+ & "node$exe" "$basedir/../acorn/bin/acorn" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/fxparser b/node_modules/.bin/fxparser
new file mode 100644
index 0000000..c722e41
--- /dev/null
+++ b/node_modules/.bin/fxparser
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../fast-xml-parser/src/cli/cli.js" "$@"
+else
+ exec node "$basedir/../fast-xml-parser/src/cli/cli.js" "$@"
+fi
diff --git a/node_modules/.bin/fxparser.cmd b/node_modules/.bin/fxparser.cmd
new file mode 100644
index 0000000..043b763
--- /dev/null
+++ b/node_modules/.bin/fxparser.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\fast-xml-parser\src\cli\cli.js" %*
diff --git a/node_modules/.bin/fxparser.ps1 b/node_modules/.bin/fxparser.ps1
new file mode 100644
index 0000000..3e7252a
--- /dev/null
+++ b/node_modules/.bin/fxparser.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../fast-xml-parser/src/cli/cli.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../fast-xml-parser/src/cli/cli.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../fast-xml-parser/src/cli/cli.js" $args
+ } else {
+ & "node$exe" "$basedir/../fast-xml-parser/src/cli/cli.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/ts-node b/node_modules/.bin/ts-node
new file mode 100644
index 0000000..f3d4fab
--- /dev/null
+++ b/node_modules/.bin/ts-node
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin.js" "$@"
+else
+ exec node "$basedir/../ts-node/dist/bin.js" "$@"
+fi
diff --git a/node_modules/.bin/ts-node-cwd b/node_modules/.bin/ts-node-cwd
new file mode 100644
index 0000000..ae68e85
--- /dev/null
+++ b/node_modules/.bin/ts-node-cwd
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-cwd.js" "$@"
+else
+ exec node "$basedir/../ts-node/dist/bin-cwd.js" "$@"
+fi
diff --git a/node_modules/.bin/ts-node-cwd.cmd b/node_modules/.bin/ts-node-cwd.cmd
new file mode 100644
index 0000000..50c1bbc
--- /dev/null
+++ b/node_modules/.bin/ts-node-cwd.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ts-node\dist\bin-cwd.js" %*
diff --git a/node_modules/.bin/ts-node-cwd.ps1 b/node_modules/.bin/ts-node-cwd.ps1
new file mode 100644
index 0000000..b12acfa
--- /dev/null
+++ b/node_modules/.bin/ts-node-cwd.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-cwd.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-cwd.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../ts-node/dist/bin-cwd.js" $args
+ } else {
+ & "node$exe" "$basedir/../ts-node/dist/bin-cwd.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/ts-node-esm b/node_modules/.bin/ts-node-esm
new file mode 100644
index 0000000..19ea759
--- /dev/null
+++ b/node_modules/.bin/ts-node-esm
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-esm.js" "$@"
+else
+ exec node "$basedir/../ts-node/dist/bin-esm.js" "$@"
+fi
diff --git a/node_modules/.bin/ts-node-esm.cmd b/node_modules/.bin/ts-node-esm.cmd
new file mode 100644
index 0000000..ba439a0
--- /dev/null
+++ b/node_modules/.bin/ts-node-esm.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ts-node\dist\bin-esm.js" %*
diff --git a/node_modules/.bin/ts-node-esm.ps1 b/node_modules/.bin/ts-node-esm.ps1
new file mode 100644
index 0000000..d9806c0
--- /dev/null
+++ b/node_modules/.bin/ts-node-esm.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-esm.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-esm.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../ts-node/dist/bin-esm.js" $args
+ } else {
+ & "node$exe" "$basedir/../ts-node/dist/bin-esm.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/ts-node-script b/node_modules/.bin/ts-node-script
new file mode 100644
index 0000000..14c2f67
--- /dev/null
+++ b/node_modules/.bin/ts-node-script
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-script.js" "$@"
+else
+ exec node "$basedir/../ts-node/dist/bin-script.js" "$@"
+fi
diff --git a/node_modules/.bin/ts-node-script.cmd b/node_modules/.bin/ts-node-script.cmd
new file mode 100644
index 0000000..146251b
--- /dev/null
+++ b/node_modules/.bin/ts-node-script.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ts-node\dist\bin-script.js" %*
diff --git a/node_modules/.bin/ts-node-script.ps1 b/node_modules/.bin/ts-node-script.ps1
new file mode 100644
index 0000000..3061e81
--- /dev/null
+++ b/node_modules/.bin/ts-node-script.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-script.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-script.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../ts-node/dist/bin-script.js" $args
+ } else {
+ & "node$exe" "$basedir/../ts-node/dist/bin-script.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/ts-node-transpile-only b/node_modules/.bin/ts-node-transpile-only
new file mode 100644
index 0000000..d3d4c0c
--- /dev/null
+++ b/node_modules/.bin/ts-node-transpile-only
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-transpile.js" "$@"
+else
+ exec node "$basedir/../ts-node/dist/bin-transpile.js" "$@"
+fi
diff --git a/node_modules/.bin/ts-node-transpile-only.cmd b/node_modules/.bin/ts-node-transpile-only.cmd
new file mode 100644
index 0000000..60b2af3
--- /dev/null
+++ b/node_modules/.bin/ts-node-transpile-only.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ts-node\dist\bin-transpile.js" %*
diff --git a/node_modules/.bin/ts-node-transpile-only.ps1 b/node_modules/.bin/ts-node-transpile-only.ps1
new file mode 100644
index 0000000..9503db4
--- /dev/null
+++ b/node_modules/.bin/ts-node-transpile-only.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-transpile.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-transpile.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../ts-node/dist/bin-transpile.js" $args
+ } else {
+ & "node$exe" "$basedir/../ts-node/dist/bin-transpile.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/ts-node.cmd b/node_modules/.bin/ts-node.cmd
new file mode 100644
index 0000000..a2a9c92
--- /dev/null
+++ b/node_modules/.bin/ts-node.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ts-node\dist\bin.js" %*
diff --git a/node_modules/.bin/ts-node.ps1 b/node_modules/.bin/ts-node.ps1
new file mode 100644
index 0000000..90517a4
--- /dev/null
+++ b/node_modules/.bin/ts-node.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../ts-node/dist/bin.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../ts-node/dist/bin.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../ts-node/dist/bin.js" $args
+ } else {
+ & "node$exe" "$basedir/../ts-node/dist/bin.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/ts-script b/node_modules/.bin/ts-script
new file mode 100644
index 0000000..8f65f36
--- /dev/null
+++ b/node_modules/.bin/ts-script
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../ts-node/dist/bin-script-deprecated.js" "$@"
+else
+ exec node "$basedir/../ts-node/dist/bin-script-deprecated.js" "$@"
+fi
diff --git a/node_modules/.bin/ts-script.cmd b/node_modules/.bin/ts-script.cmd
new file mode 100644
index 0000000..e3b0e81
--- /dev/null
+++ b/node_modules/.bin/ts-script.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\ts-node\dist\bin-script-deprecated.js" %*
diff --git a/node_modules/.bin/ts-script.ps1 b/node_modules/.bin/ts-script.ps1
new file mode 100644
index 0000000..1b348af
--- /dev/null
+++ b/node_modules/.bin/ts-script.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-script-deprecated.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../ts-node/dist/bin-script-deprecated.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../ts-node/dist/bin-script-deprecated.js" $args
+ } else {
+ & "node$exe" "$basedir/../ts-node/dist/bin-script-deprecated.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/tsc b/node_modules/.bin/tsc
new file mode 100644
index 0000000..c4864b9
--- /dev/null
+++ b/node_modules/.bin/tsc
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
+else
+ exec node "$basedir/../typescript/bin/tsc" "$@"
+fi
diff --git a/node_modules/.bin/tsc.cmd b/node_modules/.bin/tsc.cmd
new file mode 100644
index 0000000..40bf128
--- /dev/null
+++ b/node_modules/.bin/tsc.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsc" %*
diff --git a/node_modules/.bin/tsc.ps1 b/node_modules/.bin/tsc.ps1
new file mode 100644
index 0000000..112413b
--- /dev/null
+++ b/node_modules/.bin/tsc.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../typescript/bin/tsc" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../typescript/bin/tsc" $args
+ } else {
+ & "node$exe" "$basedir/../typescript/bin/tsc" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.bin/tsserver b/node_modules/.bin/tsserver
new file mode 100644
index 0000000..6c19ce3
--- /dev/null
+++ b/node_modules/.bin/tsserver
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
+else
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
+fi
diff --git a/node_modules/.bin/tsserver.cmd b/node_modules/.bin/tsserver.cmd
new file mode 100644
index 0000000..57f851f
--- /dev/null
+++ b/node_modules/.bin/tsserver.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\typescript\bin\tsserver" %*
diff --git a/node_modules/.bin/tsserver.ps1 b/node_modules/.bin/tsserver.ps1
new file mode 100644
index 0000000..249f417
--- /dev/null
+++ b/node_modules/.bin/tsserver.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../typescript/bin/tsserver" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../typescript/bin/tsserver" $args
+ } else {
+ & "node$exe" "$basedir/../typescript/bin/tsserver" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
new file mode 100644
index 0000000..0fd93f7
--- /dev/null
+++ b/node_modules/.package-lock.json
@@ -0,0 +1,571 @@
+{
+ "name": "remix_-edumanager---sistema-de-gestão-escolar-para-porteiner",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "0.3.9"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "node_modules/@nodable/entities": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.0.tgz",
+ "integrity": "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/nodable"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz",
+ "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/minio": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@types/minio/-/minio-7.1.0.tgz",
+ "integrity": "sha512-yUaFE62KI7lhQLH7lQpT1bzDmTOS+8bD7wGN8ySk8teLv9afbL7RIT3tSbeijq6sqeyS9kGpj9Kmp4gHNQJWCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "25.6.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz",
+ "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.19.0"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.5",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz",
+ "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "license": "MIT"
+ },
+ "node_modules/block-stream2": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/block-stream2/-/block-stream2-2.1.0.tgz",
+ "integrity": "sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/browser-or-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz",
+ "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==",
+ "license": "MIT"
+ },
+ "node_modules/buffer-crc32": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
+ "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/diff": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz",
+ "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz",
+ "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==",
+ "license": "MIT"
+ },
+ "node_modules/fast-xml-builder": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.5.tgz",
+ "integrity": "sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "path-expression-matcher": "^1.1.3"
+ }
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.7.1.tgz",
+ "integrity": "sha512-8Cc3f8GUGUULg34pBch/KGyPLglS+OFs05deyOlY7fL2MTagYPKrVQNmR1fLF/yJ9PH5ZSTd3YDF6pnmeZU+zA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@nodable/entities": "^2.1.0",
+ "fast-xml-builder": "^1.1.5",
+ "path-expression-matcher": "^1.5.0",
+ "strnum": "^2.2.3"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/ipaddr.js": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz",
+ "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
+ "license": "MIT"
+ },
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minio": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmjs.org/minio/-/minio-8.0.7.tgz",
+ "integrity": "sha512-E737MgufW8CeQAsTAtnEMrxZ9scMSf29kkhZoXzDTKj/Jszzo2SfeZUH9wbDQH2Rsq6TCtl/yQL0+XdVKZansQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "async": "^3.2.4",
+ "block-stream2": "^2.1.0",
+ "browser-or-node": "^2.1.1",
+ "buffer-crc32": "^1.0.0",
+ "eventemitter3": "^5.0.1",
+ "fast-xml-parser": "^5.3.4",
+ "ipaddr.js": "^2.0.1",
+ "lodash": "^4.17.21",
+ "mime-types": "^2.1.35",
+ "query-string": "^7.1.3",
+ "stream-json": "^1.8.0",
+ "through2": "^4.0.2",
+ "xml2js": "^0.5.0 || ^0.6.2"
+ },
+ "engines": {
+ "node": "^16 || ^18 || >=20"
+ }
+ },
+ "node_modules/path-expression-matcher": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz",
+ "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
+ "license": "MIT",
+ "dependencies": {
+ "decode-uri-component": "^0.2.2",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/sax": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
+ "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=11.0.0"
+ }
+ },
+ "node_modules/split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/stream-chain": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz",
+ "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/stream-json": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz",
+ "integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "stream-chain": "^2.2.5"
+ }
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/strnum": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.3.tgz",
+ "integrity": "sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/through2": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
+ "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "3"
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "10.9.2",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/typescript": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "7.19.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz",
+ "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
+ },
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/xml2js": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
+ "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
+ "license": "MIT",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ }
+ }
+}
diff --git a/node_modules/@cspotcode/source-map-support/LICENSE.md b/node_modules/@cspotcode/source-map-support/LICENSE.md
new file mode 100644
index 0000000..6247ca9
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Evan Wallace
+
+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/@cspotcode/source-map-support/README.md b/node_modules/@cspotcode/source-map-support/README.md
new file mode 100644
index 0000000..f739070
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/README.md
@@ -0,0 +1,289 @@
+# Source Map Support
+
+[](https://npmjs.org/package/@cspotcode/source-map-support)
+[](https://npmjs.org/package/@cspotcode/source-map-support)
+[](https://github.com/cspotcode/node-source-map-support/actions?query=workflow%3A%22Continuous+Integration%22)
+
+This module provides source map support for stack traces in node via the [V8 stack trace API](https://github.com/v8/v8/wiki/Stack-Trace-API). It uses the [source-map](https://github.com/mozilla/source-map) module to replace the paths and line numbers of source-mapped files with their original paths and line numbers. The output mimics node's stack trace format with the goal of making every compile-to-JS language more of a first-class citizen. Source maps are completely general (not specific to any one language) so you can use source maps with multiple compile-to-JS languages in the same node process.
+
+## Installation and Usage
+
+#### Node support
+
+```
+$ npm install @cspotcode/source-map-support
+```
+
+Source maps can be generated using libraries such as [source-map-index-generator](https://github.com/twolfson/source-map-index-generator). Once you have a valid source map, place a source mapping comment somewhere in the file (usually done automatically or with an option by your transpiler):
+
+```
+//# sourceMappingURL=path/to/source.map
+```
+
+If multiple sourceMappingURL comments exist in one file, the last sourceMappingURL comment will be
+respected (e.g. if a file mentions the comment in code, or went through multiple transpilers).
+The path should either be absolute or relative to the compiled file.
+
+From here you have two options.
+
+##### CLI Usage
+
+```bash
+node -r @cspotcode/source-map-support/register compiled.js
+# Or to enable hookRequire
+node -r @cspotcode/source-map-support/register-hook-require compiled.js
+```
+
+##### Programmatic Usage
+
+Put the following line at the top of the compiled file.
+
+```js
+require('@cspotcode/source-map-support').install();
+```
+
+It is also possible to install the source map support directly by
+requiring the `register` module which can be handy with ES6:
+
+```js
+import '@cspotcode/source-map-support/register'
+
+// Instead of:
+import sourceMapSupport from '@cspotcode/source-map-support'
+sourceMapSupport.install()
+```
+Note: if you're using babel-register, it includes source-map-support already.
+
+It is also very useful with Mocha:
+
+```
+$ mocha --require @cspotcode/source-map-support/register tests/
+```
+
+#### Browser support
+
+This library also works in Chrome. While the DevTools console already supports source maps, the V8 engine doesn't and `Error.prototype.stack` will be incorrect without this library. Everything will just work if you deploy your source files using [browserify](http://browserify.org/). Just make sure to pass the `--debug` flag to the browserify command so your source maps are included in the bundled code.
+
+This library also works if you use another build process or just include the source files directly. In this case, include the file `browser-source-map-support.js` in your page and call `sourceMapSupport.install()`. It contains the whole library already bundled for the browser using browserify.
+
+```html
+
+
+```
+
+This library also works if you use AMD (Asynchronous Module Definition), which is used in tools like [RequireJS](http://requirejs.org/). Just list `browser-source-map-support` as a dependency:
+
+```html
+
+```
+
+## Options
+
+This module installs two things: a change to the `stack` property on `Error` objects and a handler for uncaught exceptions that mimics node's default exception handler (the handler can be seen in the demos below). You may want to disable the handler if you have your own uncaught exception handler. This can be done by passing an argument to the installer:
+
+```js
+require('@cspotcode/source-map-support').install({
+ handleUncaughtExceptions: false
+});
+```
+
+This module loads source maps from the filesystem by default. You can provide alternate loading behavior through a callback as shown below. For example, [Meteor](https://github.com/meteor) keeps all source maps cached in memory to avoid disk access.
+
+```js
+require('@cspotcode/source-map-support').install({
+ retrieveSourceMap: function(source) {
+ if (source === 'compiled.js') {
+ return {
+ url: 'original.js',
+ map: fs.readFileSync('compiled.js.map', 'utf8')
+ };
+ }
+ return null;
+ }
+});
+```
+
+The module will by default assume a browser environment if XMLHttpRequest and window are defined. If either of these do not exist it will instead assume a node environment.
+In some rare cases, e.g. when running a browser emulation and where both variables are also set, you can explictly specify the environment to be either 'browser' or 'node'.
+
+```js
+require('@cspotcode/source-map-support').install({
+ environment: 'node'
+});
+```
+
+To support files with inline source maps, the `hookRequire` options can be specified, which will monitor all source files for inline source maps.
+
+
+```js
+require('@cspotcode/source-map-support').install({
+ hookRequire: true
+});
+```
+
+This monkey patches the `require` module loading chain, so is not enabled by default and is not recommended for any sort of production usage.
+
+## Demos
+
+#### Basic Demo
+
+original.js:
+
+```js
+throw new Error('test'); // This is the original code
+```
+
+compiled.js:
+
+```js
+require('@cspotcode/source-map-support').install();
+
+throw new Error('test'); // This is the compiled code
+// The next line defines the sourceMapping.
+//# sourceMappingURL=compiled.js.map
+```
+
+compiled.js.map:
+
+```json
+{
+ "version": 3,
+ "file": "compiled.js",
+ "sources": ["original.js"],
+ "names": [],
+ "mappings": ";;AAAA,MAAM,IAAI"
+}
+```
+
+Run compiled.js using node (notice how the stack trace uses original.js instead of compiled.js):
+
+```
+$ node compiled.js
+
+original.js:1
+throw new Error('test'); // This is the original code
+ ^
+Error: test
+ at Object. (original.js:1:7)
+ at Module._compile (module.js:456:26)
+ at Object.Module._extensions..js (module.js:474:10)
+ at Module.load (module.js:356:32)
+ at Function.Module._load (module.js:312:12)
+ at Function.Module.runMain (module.js:497:10)
+ at startup (node.js:119:16)
+ at node.js:901:3
+```
+
+#### TypeScript Demo
+
+demo.ts:
+
+```typescript
+declare function require(name: string);
+require('@cspotcode/source-map-support').install();
+class Foo {
+ constructor() { this.bar(); }
+ bar() { throw new Error('this is a demo'); }
+}
+new Foo();
+```
+
+Compile and run the file using the TypeScript compiler from the terminal:
+
+```
+$ npm install source-map-support typescript
+$ node_modules/typescript/bin/tsc -sourcemap demo.ts
+$ node demo.js
+
+demo.ts:5
+ bar() { throw new Error('this is a demo'); }
+ ^
+Error: this is a demo
+ at Foo.bar (demo.ts:5:17)
+ at new Foo (demo.ts:4:24)
+ at Object. (demo.ts:7:1)
+ at Module._compile (module.js:456:26)
+ at Object.Module._extensions..js (module.js:474:10)
+ at Module.load (module.js:356:32)
+ at Function.Module._load (module.js:312:12)
+ at Function.Module.runMain (module.js:497:10)
+ at startup (node.js:119:16)
+ at node.js:901:3
+```
+
+There is also the option to use `-r source-map-support/register` with typescript, without the need add the `require('@cspotcode/source-map-support').install()` in the code base:
+
+```
+$ npm install source-map-support typescript
+$ node_modules/typescript/bin/tsc -sourcemap demo.ts
+$ node -r source-map-support/register demo.js
+
+demo.ts:5
+ bar() { throw new Error('this is a demo'); }
+ ^
+Error: this is a demo
+ at Foo.bar (demo.ts:5:17)
+ at new Foo (demo.ts:4:24)
+ at Object. (demo.ts:7:1)
+ at Module._compile (module.js:456:26)
+ at Object.Module._extensions..js (module.js:474:10)
+ at Module.load (module.js:356:32)
+ at Function.Module._load (module.js:312:12)
+ at Function.Module.runMain (module.js:497:10)
+ at startup (node.js:119:16)
+ at node.js:901:3
+```
+
+#### CoffeeScript Demo
+
+demo.coffee:
+
+```coffee
+require('@cspotcode/source-map-support').install()
+foo = ->
+ bar = -> throw new Error 'this is a demo'
+ bar()
+foo()
+```
+
+Compile and run the file using the CoffeeScript compiler from the terminal:
+
+```sh
+$ npm install @cspotcode/source-map-support coffeescript
+$ node_modules/.bin/coffee --map --compile demo.coffee
+$ node demo.js
+
+demo.coffee:3
+ bar = -> throw new Error 'this is a demo'
+ ^
+Error: this is a demo
+ at bar (demo.coffee:3:22)
+ at foo (demo.coffee:4:3)
+ at Object. (demo.coffee:5:1)
+ at Object. (demo.coffee:1:1)
+ at Module._compile (module.js:456:26)
+ at Object.Module._extensions..js (module.js:474:10)
+ at Module.load (module.js:356:32)
+ at Function.Module._load (module.js:312:12)
+ at Function.Module.runMain (module.js:497:10)
+ at startup (node.js:119:16)
+```
+
+## Tests
+
+This repo contains both automated tests for node and manual tests for the browser. The automated tests can be run using mocha (type `mocha` in the root directory). To run the manual tests:
+
+* Build the tests using `build.js`
+* Launch the HTTP server (`npm run serve-tests`) and visit
+ * http://127.0.0.1:1336/amd-test
+ * http://127.0.0.1:1336/browser-test
+ * http://127.0.0.1:1336/browserify-test - **Currently not working** due to a bug with browserify (see [pull request #66](https://github.com/evanw/node-source-map-support/pull/66) for details).
+* For `header-test`, run `server.js` inside that directory and visit http://127.0.0.1:1337/
+
+## License
+
+This code is available under the [MIT license](http://opensource.org/licenses/MIT).
diff --git a/node_modules/@cspotcode/source-map-support/browser-source-map-support.js b/node_modules/@cspotcode/source-map-support/browser-source-map-support.js
new file mode 100644
index 0000000..782da50
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/browser-source-map-support.js
@@ -0,0 +1,114 @@
+/*
+ * Support for source maps in V8 stack traces
+ * https://github.com/evanw/node-source-map-support
+ */
+/*
+ The buffer module from node.js, for the browser.
+
+ @author Feross Aboukhadijeh
+ license MIT
+*/
+(this.define||function(R,U){this.sourceMapSupport=U()})("browser-source-map-support",function(R){(function e(C,J,A){function p(f,c){if(!J[f]){if(!C[f]){var l="function"==typeof require&&require;if(!c&&l)return l(f,!0);if(t)return t(f,!0);throw Error("Cannot find module '"+f+"'");}l=J[f]={exports:{}};C[f][0].call(l.exports,function(q){var r=C[f][1][q];return p(r?r:q)},l,l.exports,e,C,J,A)}return J[f].exports}for(var t="function"==typeof require&&require,m=0;mm)return-1;if(58>m)return m-48+52;if(91>m)return m-65;if(123>m)return m-97+26}var t="undefined"!==typeof Uint8Array?Uint8Array:Array;e.toByteArray=function(m){function f(d){q[k++]=d}if(0>16);f((u&65280)>>8);f(u&255)}2===l?(u=p(m.charAt(c))<<2|p(m.charAt(c+1))>>4,f(u&255)):1===l&&(u=p(m.charAt(c))<<10|p(m.charAt(c+1))<<4|p(m.charAt(c+2))>>2,f(u>>8&255),f(u&255));return q};e.fromByteArray=function(m){var f=m.length%3,c="",l;var q=0;for(l=m.length-f;q>
+18&63)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>12&63)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>6&63)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r&63);c+=r}switch(f){case 1:r=m[m.length-1];c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>2);c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r<<4&63);c+="==";break;case 2:r=(m[m.length-2]<<8)+
+m[m.length-1],c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>10),c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>4&63),c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r<<2&63),c+="="}return c}})("undefined"===typeof A?this.base64js={}:A)},{}],3:[function(C,J,A){},{}],4:[function(C,J,A){(function(e){var p=Object.prototype.toString,t="function"===typeof e.alloc&&"function"===typeof e.allocUnsafe&&"function"===
+typeof e.from;J.exports=function(m,f,c){if("number"===typeof m)throw new TypeError('"value" argument must not be a number');if("ArrayBuffer"===p.call(m).slice(8,-1)){f>>>=0;var l=m.byteLength-f;if(0>l)throw new RangeError("'offset' is out of bounds");if(void 0===c)c=l;else if(c>>>=0,c>l)throw new RangeError("'length' is out of bounds");return t?e.from(m.slice(f,f+c)):new e(new Uint8Array(m.slice(f,f+c)))}if("string"===typeof m){c=f;if("string"!==typeof c||""===c)c="utf8";if(!e.isEncoding(c))throw new TypeError('"encoding" must be a valid string encoding');
+return t?e.from(m,c):new e(m,c)}return t?e.from(m):new e(m)}}).call(this,C("buffer").Buffer)},{buffer:5}],5:[function(C,J,A){function e(a,b,h){if(!(this instanceof e))return new e(a,b,h);var w=typeof a;if("number"===w)var y=0>>0:0;else if("string"===w){if("base64"===b)for(a=(a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")).replace(L,"");0!==a.length%4;)a+="=";y=e.byteLength(a,b)}else if("object"===w&&null!==a)"Buffer"===a.type&&z(a.data)&&(a=a.data),y=0<+a.length?Math.floor(+a.length):0;else throw new TypeError("must start with number, buffer, array or string");
+if(this.length>G)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+G.toString(16)+" bytes");if(e.TYPED_ARRAY_SUPPORT)var I=e._augment(new Uint8Array(y));else I=this,I.length=y,I._isBuffer=!0;if(e.TYPED_ARRAY_SUPPORT&&"number"===typeof a.byteLength)I._set(a);else{var K=a;if(z(K)||e.isBuffer(K)||K&&"object"===typeof K&&"number"===typeof K.length)if(e.isBuffer(a))for(b=0;ba)throw new RangeError("offset is not uint");if(a+b>h)throw new RangeError("Trying to access beyond buffer length");}function m(a,b,h,w,y,I){if(!e.isBuffer(a))throw new TypeError("buffer must be a Buffer instance");if(b>y||ba.length)throw new TypeError("index out of range");
+}function f(a,b,h,w){0>b&&(b=65535+b+1);for(var y=0,I=Math.min(a.length-h,2);y>>8*(w?y:1-y)}function c(a,b,h,w){0>b&&(b=4294967295+b+1);for(var y=0,I=Math.min(a.length-h,4);y>>8*(w?y:3-y)&255}function l(a,b,h,w,y,I){if(b>y||ba.length)throw new TypeError("index out of range");}function q(a,b,h,w,y){y||l(a,b,h,4,3.4028234663852886E38,-3.4028234663852886E38);v.write(a,b,h,w,23,4);return h+4}function r(a,
+b,h,w,y){y||l(a,b,h,8,1.7976931348623157E308,-1.7976931348623157E308);v.write(a,b,h,w,52,8);return h+8}function k(a){for(var b=[],h=0;h=w)b.push(w);else{var y=h;55296<=w&&57343>=w&&h++;w=encodeURIComponent(a.slice(y,h+1)).substr(1).split("%");for(y=0;y=b.length||y>=a.length);y++)b[y+
+h]=a[y];return y}function g(a){try{return decodeURIComponent(a)}catch(b){return String.fromCharCode(65533)}}var n=C("base64-js"),v=C("ieee754"),z=C("is-array");A.Buffer=e;A.SlowBuffer=e;A.INSPECT_MAX_BYTES=50;e.poolSize=8192;var G=1073741823;e.TYPED_ARRAY_SUPPORT=function(){try{var a=new ArrayBuffer(0),b=new Uint8Array(a);b.foo=function(){return 42};return 42===b.foo()&&"function"===typeof b.subarray&&0===(new Uint8Array(1)).subarray(1,1).byteLength}catch(h){return!1}}();e.isBuffer=function(a){return!(null==
+a||!a._isBuffer)};e.compare=function(a,b){if(!e.isBuffer(a)||!e.isBuffer(b))throw new TypeError("Arguments must be Buffers");for(var h=a.length,w=b.length,y=0,I=Math.min(h,w);y>>1;break;case "utf8":case "utf-8":h=k(a).length;break;case "base64":h=n.toByteArray(a).length;
+break;default:h=a.length}return h};e.prototype.length=void 0;e.prototype.parent=void 0;e.prototype.toString=function(a,b,h){var w=!1;b>>>=0;h=void 0===h||Infinity===h?this.length:h>>>0;a||(a="utf8");0>b&&(b=0);h>this.length&&(h=this.length);if(h<=b)return"";for(;;)switch(a){case "hex":a=b;b=h;h=this.length;if(!a||0>a)a=0;if(!b||0>b||b>h)b=h;w="";for(h=a;hw?"0"+w.toString(16):w.toString(16),w=a+w;return w;case "utf8":case "utf-8":w=a="";for(h=Math.min(this.length,h);b=
+this[b]?(a+=g(w)+String.fromCharCode(this[b]),w=""):w+="%"+this[b].toString(16);return a+g(w);case "ascii":return p(this,b,h);case "binary":return p(this,b,h);case "base64":return b=0===b&&h===this.length?n.fromByteArray(this):n.fromByteArray(this.slice(b,h)),b;case "ucs2":case "ucs-2":case "utf16le":case "utf-16le":b=this.slice(b,h);h="";for(a=0;ab&&(a+=" ... "));return""};e.prototype.compare=function(a){if(!e.isBuffer(a))throw new TypeError("Argument must be a Buffer");return e.compare(this,a)};e.prototype.get=function(a){console.log(".get() is deprecated. Access using array indexes instead.");
+return this.readUInt8(a)};e.prototype.set=function(a,b){console.log(".set() is deprecated. Access using array indexes instead.");return this.writeUInt8(a,b)};e.prototype.write=function(a,b,h,w){if(isFinite(b))isFinite(h)||(w=h,h=void 0);else{var y=w;w=b;b=h;h=y}b=Number(b)||0;y=this.length-b;h?(h=Number(h),h>y&&(h=y)):h=y;w=String(w||"utf8").toLowerCase();switch(w){case "hex":b=Number(b)||0;w=this.length-b;h?(h=Number(h),h>w&&(h=w)):h=w;w=a.length;if(0!==w%2)throw Error("Invalid hex string");h>w/
+2&&(h=w/2);for(w=0;w>8;K%=256;y.push(K);y.push(w)}a=d(y,this,b,h,2);break;default:throw new TypeError("Unknown encoding: "+
+w);}return a};e.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};e.prototype.slice=function(a,b){var h=this.length;a=~~a;b=void 0===b?h:~~b;0>a?(a+=h,0>a&&(a=0)):a>h&&(a=h);0>b?(b+=h,0>b&&(b=0)):b>h&&(b=h);b>>=0;h||m(this,a,b,1,255,0);e.TYPED_ARRAY_SUPPORT||(a=Math.floor(a));this[b]=a;return b+1};e.prototype.writeUInt16LE=function(a,
+b,h){a=+a;b>>>=0;h||m(this,a,b,2,65535,0);e.TYPED_ARRAY_SUPPORT?(this[b]=a,this[b+1]=a>>>8):f(this,a,b,!0);return b+2};e.prototype.writeUInt16BE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,2,65535,0);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=a):f(this,a,b,!1);return b+2};e.prototype.writeUInt32LE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,4,4294967295,0);e.TYPED_ARRAY_SUPPORT?(this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=a):c(this,a,b,!0);return b+4};e.prototype.writeUInt32BE=function(a,
+b,h){a=+a;b>>>=0;h||m(this,a,b,4,4294967295,0);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=a):c(this,a,b,!1);return b+4};e.prototype.writeInt8=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,1,127,-128);e.TYPED_ARRAY_SUPPORT||(a=Math.floor(a));0>a&&(a=255+a+1);this[b]=a;return b+1};e.prototype.writeInt16LE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,2,32767,-32768);e.TYPED_ARRAY_SUPPORT?(this[b]=a,this[b+1]=a>>>8):f(this,a,b,!0);return b+2};e.prototype.writeInt16BE=function(a,
+b,h){a=+a;b>>>=0;h||m(this,a,b,2,32767,-32768);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=a):f(this,a,b,!1);return b+2};e.prototype.writeInt32LE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,4,2147483647,-2147483648);e.TYPED_ARRAY_SUPPORT?(this[b]=a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24):c(this,a,b,!0);return b+4};e.prototype.writeInt32BE=function(a,b,h){a=+a;b>>>=0;h||m(this,a,b,4,2147483647,-2147483648);0>a&&(a=4294967295+a+1);e.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+
+2]=a>>>8,this[b+3]=a):c(this,a,b,!1);return b+4};e.prototype.writeFloatLE=function(a,b,h){return q(this,a,b,!0,h)};e.prototype.writeFloatBE=function(a,b,h){return q(this,a,b,!1,h)};e.prototype.writeDoubleLE=function(a,b,h){return r(this,a,b,!0,h)};e.prototype.writeDoubleBE=function(a,b,h){return r(this,a,b,!1,h)};e.prototype.copy=function(a,b,h,w){h||(h=0);w||0===w||(w=this.length);b||(b=0);if(w!==h&&0!==a.length&&0!==this.length){if(wb||b>=a.length)throw new TypeError("targetStart out of bounds");
+if(0>h||h>=this.length)throw new TypeError("sourceStart out of bounds");if(0>w||w>this.length)throw new TypeError("sourceEnd out of bounds");w>this.length&&(w=this.length);a.length-bw||!e.TYPED_ARRAY_SUPPORT)for(var y=0;yb||b>=this.length)throw new TypeError("start out of bounds");
+if(0>h||h>this.length)throw new TypeError("end out of bounds");if("number"===typeof a)for(;b>1,r=-7;f=t?f-1:0;var k=t?-1:1,u=e[p+f];f+=k;t=u&(1<<-r)-1;u>>=-r;for(r+=c;0>=-r;for(r+=m;0>1,u=23===f?Math.pow(2,-24)-Math.pow(2,-77):0;c=m?0:c-1;var d=m?1:-1,g=0>p||0===p&&0>1/p?1:0;p=Math.abs(p);isNaN(p)||Infinity===p?(p=isNaN(p)?1:0,m=r):(m=Math.floor(Math.log(p)/Math.LN2),1>p*(l=Math.pow(2,-m))&&(m--,l*=2),p=1<=m+k?p+u/l:p+u*Math.pow(2,1-k),2<=p*l&&(m++,l/=2),m+k>=r?(p=0,m=r):1<=m+k?(p=(p*l-1)*Math.pow(2,f),m+=k):(p=p*Math.pow(2,k-1)*Math.pow(2,f),m=0));for(;8<=f;e[t+c]=p&255,c+=
+d,p/=256,f-=8);m=m<z?[]:n.slice(v,z-v+1)}c=A.resolve(c).substr(1);l=A.resolve(l).substr(1);
+for(var r=q(c.split("/")),k=q(l.split("/")),u=Math.min(r.length,k.length),d=u,g=0;gl&&(l=c.length+l);return c.substr(l,q)}}).call(this,C("g5I+bs"))},{"g5I+bs":9}],9:[function(C,J,A){function e(){}C=J.exports={};C.nextTick=function(){if("undefined"!==typeof window&&window.setImmediate)return function(t){return window.setImmediate(t)};if("undefined"!==typeof window&&window.postMessage&&window.addEventListener){var p=[];window.addEventListener("message",function(t){var m=t.source;m!==window&&null!==
+m||"process-tick"!==t.data||(t.stopPropagation(),0p?(-p<<1)+1:p<<1;do p=m&31,m>>>=5,0=f)throw Error("Expected more digits in base 64 VLQ value.");var q=e.decode(p.charCodeAt(t++));if(-1===q)throw Error("Invalid base64 digit: "+p.charAt(t-1));var r=!!(q&32);q&=31;c+=q<>1;m.value=1===(c&1)?-p:p;m.rest=t}},{"./base64":12}],12:[function(C,
+J,A){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");A.encode=function(p){if(0<=p&&p=p?p-65:97<=p&&122>=p?p-97+26:48<=p&&57>=p?p-48+52:43==p?62:47==p?63:-1}},{}],13:[function(C,J,A){function e(p,t,m,f,c,l){var q=Math.floor((t-p)/2)+p,r=c(m,f[q],!0);return 0===r?q:0p?-1:p}A.GREATEST_LOWER_BOUND=1;A.LEAST_UPPER_BOUND=2;A.search=function(p,t,m,f){if(0===t.length)return-1;p=e(-1,t.length,p,t,m,f||A.GREATEST_LOWER_BOUND);if(0>p)return-1;for(;0<=p-1&&0===m(t[p],t[p-1],!0);)--p;return p}},{}],14:[function(C,J,A){function e(){this._array=[];this._sorted=!0;this._last={generatedLine:-1,generatedColumn:0}}var p=C("./util");e.prototype.unsortedForEach=function(t,m){this._array.forEach(t,m)};e.prototype.add=function(t){var m=this._last,f=m.generatedLine,
+c=t.generatedLine,l=m.generatedColumn,q=t.generatedColumn;c>f||c==f&&q>=l||0>=p.compareByGeneratedPositionsInflated(m,t)?this._last=t:this._sorted=!1;this._array.push(t)};e.prototype.toArray=function(){this._sorted||(this._array.sort(p.compareByGeneratedPositionsInflated),this._sorted=!0);return this._array};A.MappingList=e},{"./util":19}],15:[function(C,J,A){function e(t,m,f){var c=t[m];t[m]=t[f];t[f]=c}function p(t,m,f,c){if(f=m(t[r],q)&&(l+=1,e(t,l,r));e(t,l+1,r);l+=1;p(t,m,f,l-1);p(t,m,l+1,c)}}A.quickSort=function(t,m){p(t,m,0,t.length-1)}},{}],16:[function(C,J,A){function e(k,u){var d=k;"string"===typeof k&&(d=f.parseSourceMapInput(k));return null!=d.sections?new m(d,u):new p(d,u)}function p(k,u){var d=k;"string"===typeof k&&(d=f.parseSourceMapInput(k));var g=f.getArg(d,"version"),n=f.getArg(d,"sources"),v=f.getArg(d,"names",[]),z=f.getArg(d,"sourceRoot",null),G=f.getArg(d,"sourcesContent",null),D=f.getArg(d,
+"mappings");d=f.getArg(d,"file",null);if(g!=this._version)throw Error("Unsupported version: "+g);z&&(z=f.normalize(z));n=n.map(String).map(f.normalize).map(function(L){return z&&f.isAbsolute(z)&&f.isAbsolute(L)?f.relative(z,L):L});this._names=l.fromArray(v.map(String),!0);this._sources=l.fromArray(n,!0);this.sourceRoot=z;this.sourcesContent=G;this._mappings=D;this._sourceMapURL=u;this.file=d}function t(){this.generatedColumn=this.generatedLine=0;this.name=this.originalColumn=this.originalLine=this.source=
+null}function m(k,u){var d=k;"string"===typeof k&&(d=f.parseSourceMapInput(k));var g=f.getArg(d,"version");d=f.getArg(d,"sections");if(g!=this._version)throw Error("Unsupported version: "+g);this._sources=new l;this._names=new l;var n={line:-1,column:0};this._sections=d.map(function(v){if(v.url)throw Error("Support for url field in sections not implemented.");var z=f.getArg(v,"offset"),G=f.getArg(z,"line"),D=f.getArg(z,"column");if(G=k[d])throw new TypeError("Line must be greater than or equal to 1, got "+
+k[d]);if(0>k[g])throw new TypeError("Column must be greater than or equal to 0, got "+k[g]);return c.search(k,u,n,v)};p.prototype.computeColumnSpans=function(){for(var k=0;k=this._sources.size()&&!this.sourcesContent.some(function(k){return null==k}):!1};p.prototype.sourceContentFor=function(k,u){if(!this.sourcesContent)return null;var d=k;null!=this.sourceRoot&&(d=f.relative(this.sourceRoot,d));if(this._sources.has(d))return this.sourcesContent[this._sources.indexOf(d)];
+var g=this.sources,n;for(n=0;n
+g||95!==d.charCodeAt(g-1)||95!==d.charCodeAt(g-2)||111!==d.charCodeAt(g-3)||116!==d.charCodeAt(g-4)||111!==d.charCodeAt(g-5)||114!==d.charCodeAt(g-6)||112!==d.charCodeAt(g-7)||95!==d.charCodeAt(g-8)||95!==d.charCodeAt(g-9))return!1;for(g-=10;0<=g;g--)if(36!==d.charCodeAt(g))return!1;return!0}function r(d,g){return d===g?0:null===d?1:null===g?-1:d>g?1:-1}A.getArg=function(d,g,n){if(g in d)return d[g];if(3===arguments.length)return n;throw Error('"'+g+'" is a required argument.');};var k=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,
+u=/^data:.+,.+$/;A.urlParse=e;A.urlGenerate=p;A.normalize=t;A.join=m;A.isAbsolute=function(d){return"/"===d.charAt(0)||k.test(d)};A.relative=function(d,g){""===d&&(d=".");d=d.replace(/\/$/,"");for(var n=0;0!==g.indexOf(d+"/");){var v=d.lastIndexOf("/");if(0>v)return g;d=d.slice(0,v);if(d.match(/^([^\/]+:\/)?\/*$/))return g;++n}return Array(n+1).join("../")+g.substr(d.length+1)};C=!("__proto__"in Object.create(null));A.toSetString=C?f:c;A.fromSetString=C?f:l;A.compareByOriginalPositions=function(d,
+g,n){var v=r(d.source,g.source);if(0!==v)return v;v=d.originalLine-g.originalLine;if(0!==v)return v;v=d.originalColumn-g.originalColumn;if(0!==v||n)return v;v=d.generatedColumn-g.generatedColumn;if(0!==v)return v;v=d.generatedLine-g.generatedLine;return 0!==v?v:r(d.name,g.name)};A.compareByGeneratedPositionsDeflated=function(d,g,n){var v=d.generatedLine-g.generatedLine;if(0!==v)return v;v=d.generatedColumn-g.generatedColumn;if(0!==v||n)return v;v=r(d.source,g.source);if(0!==v)return v;v=d.originalLine-
+g.originalLine;if(0!==v)return v;v=d.originalColumn-g.originalColumn;return 0!==v?v:r(d.name,g.name)};A.compareByGeneratedPositionsInflated=function(d,g){var n=d.generatedLine-g.generatedLine;if(0!==n)return n;n=d.generatedColumn-g.generatedColumn;if(0!==n)return n;n=r(d.source,g.source);if(0!==n)return n;n=d.originalLine-g.originalLine;if(0!==n)return n;n=d.originalColumn-g.originalColumn;return 0!==n?n:r(d.name,g.name)};A.parseSourceMapInput=function(d){return JSON.parse(d.replace(/^\)]}'[^\n]*\n/,
+""))};A.computeSourceURL=function(d,g,n){g=g||"";d&&("/"!==d[d.length-1]&&"/"!==g[0]&&(d+="/"),g=d+g);if(n){d=e(n);if(!d)throw Error("sourceMapURL could not be parsed");d.path&&(n=d.path.lastIndexOf("/"),0<=n&&(d.path=d.path.substring(0,n+1)));g=m(p(d),g)}return t(g)}},{}],20:[function(C,J,A){A.SourceMapGenerator=C("./lib/source-map-generator").SourceMapGenerator;A.SourceMapConsumer=C("./lib/source-map-consumer").SourceMapConsumer;A.SourceNode=C("./lib/source-node").SourceNode},{"./lib/source-map-consumer":16,
+"./lib/source-map-generator":17,"./lib/source-node":18}],21:[function(C,J,A){(function(e){function p(){return"browser"===a?!0:"node"===a?!1:"undefined"!==typeof window&&"function"===typeof XMLHttpRequest&&!(window.require&&window.module&&window.process&&"renderer"===window.process.type)}function t(x){return function(B){for(var F=0;F";B=this.getLineNumber();null!=B&&(x+=":"+B,(B=
+this.getColumnNumber())&&(x+=":"+B))}B="";var F=this.getFunctionName(),E=!0,H=this.isConstructor();if(this.isToplevel()||H)H?B+="new "+(F||""):F?B+=F:(B+=x,E=!1);else{H=this.getTypeName();"[object Object]"===H&&(H="null");var M=this.getMethodName();F?(H&&0!=F.indexOf(H)&&(B+=H+"."),B+=F,M&&F.indexOf("."+M)!=F.length-M.length-1&&(B+=" [as "+M+"]")):B+=H+"."+(M||"")}E&&(B+=" ("+x+")");return B}function q(x){var B={};Object.getOwnPropertyNames(Object.getPrototypeOf(x)).forEach(function(F){B[F]=
+/^(?:is|get)/.test(F)?function(){return x[F].call(x)}:x[F]});B.toString=l;return B}function r(x,B){void 0===B&&(B={nextPosition:null,curPosition:null});if(x.isNative())return B.curPosition=null,x;var F=x.getFileName()||x.getScriptNameOrSourceURL();if(F){var E=x.getLineNumber(),H=x.getColumnNumber()-1,M=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/,S=M.test;var V="object"===typeof e&&null!==e?e.version:"";M=S.call(M,V)?0:62;1===E&&H>M&&!p()&&!x.isEval()&&(H-=M);var O=
+f({source:F,line:E,column:H});B.curPosition=O;x=q(x);var T=x.getFunctionName;x.getFunctionName=function(){return null==B.nextPosition?T():B.nextPosition.name||T()};x.getFileName=function(){return O.source};x.getLineNumber=function(){return O.line};x.getColumnNumber=function(){return O.column+1};x.getScriptNameOrSourceURL=function(){return O.source};return x}var Q=x.isEval()&&x.getEvalOrigin();Q&&(Q=c(Q),x=q(x),x.getEvalOrigin=function(){return Q});return x}function k(x,B){L&&(b={},h={});for(var F=
+(x.name||"Error")+": "+(x.message||""),E={nextPosition:null,curPosition:null},H=[],M=B.length-1;0<=M;M--)H.push("\n at "+r(B[M],E)),E.nextPosition=E.curPosition;E.curPosition=E.nextPosition=null;return F+H.reverse().join("")}function u(x){var B=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(x.stack);if(B){x=B[1];var F=+B[2];B=+B[3];var E=b[x];if(!E&&v&&v.existsSync(x))try{E=v.readFileSync(x,"utf8")}catch(H){E=""}if(E&&(E=E.split(/(?:\r\n|\r|\n)/)[F-1]))return x+":"+F+"\n"+E+"\n"+Array(B).join(" ")+
+"^"}return null}function d(){var x=e.emit;e.emit=function(B){if("uncaughtException"===B){var F=arguments[1]&&arguments[1].stack,E=0=12"
+ },
+ "volta": {
+ "node": "16.11.0",
+ "npm": "7.24.2"
+ }
+}
diff --git a/node_modules/@cspotcode/source-map-support/register-hook-require.d.ts b/node_modules/@cspotcode/source-map-support/register-hook-require.d.ts
new file mode 100644
index 0000000..a787e69
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/register-hook-require.d.ts
@@ -0,0 +1,7 @@
+// tslint:disable:no-useless-files
+
+// For following usage:
+// import '@cspotcode/source-map-support/register-hook-require'
+// Instead of:
+// import sourceMapSupport from '@cspotcode/source-map-support'
+// sourceMapSupport.install({hookRequire: true})
diff --git a/node_modules/@cspotcode/source-map-support/register-hook-require.js b/node_modules/@cspotcode/source-map-support/register-hook-require.js
new file mode 100644
index 0000000..6bc12ab
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/register-hook-require.js
@@ -0,0 +1,3 @@
+require('./').install({
+ hookRequire: true
+});
diff --git a/node_modules/@cspotcode/source-map-support/register.d.ts b/node_modules/@cspotcode/source-map-support/register.d.ts
new file mode 100644
index 0000000..063cd7c
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/register.d.ts
@@ -0,0 +1,7 @@
+// tslint:disable:no-useless-files
+
+// For following usage:
+// import '@cspotcode/source-map-support/register'
+// Instead of:
+// import sourceMapSupport from '@cspotcode/source-map-support'
+// sourceMapSupport.install()
diff --git a/node_modules/@cspotcode/source-map-support/register.js b/node_modules/@cspotcode/source-map-support/register.js
new file mode 100644
index 0000000..4f68e67
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/register.js
@@ -0,0 +1 @@
+require('./').install();
diff --git a/node_modules/@cspotcode/source-map-support/source-map-support.d.ts b/node_modules/@cspotcode/source-map-support/source-map-support.d.ts
new file mode 100644
index 0000000..d8cb9d8
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/source-map-support.d.ts
@@ -0,0 +1,76 @@
+// Type definitions for source-map-support 0.5
+// Project: https://github.com/evanw/node-source-map-support
+// Definitions by: Bart van der Schoor
+// Jason Cheatham
+// Alcedo Nathaniel De Guzman Jr
+// Griffin Yourick
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+export interface RawSourceMap {
+ version: 3;
+ sources: string[];
+ names: string[];
+ sourceRoot?: string;
+ sourcesContent?: string[];
+ mappings: string;
+ file: string;
+}
+
+/**
+ * Output of retrieveSourceMap().
+ * From source-map-support:
+ * The map field may be either a string or the parsed JSON object (i.e.,
+ * it must be a valid argument to the SourceMapConsumer constructor).
+ */
+export interface UrlAndMap {
+ url: string;
+ map: string | RawSourceMap;
+}
+
+/**
+ * Options to install().
+ */
+export interface Options {
+ handleUncaughtExceptions?: boolean | undefined;
+ hookRequire?: boolean | undefined;
+ emptyCacheBetweenOperations?: boolean | undefined;
+ environment?: 'auto' | 'browser' | 'node' | undefined;
+ overrideRetrieveFile?: boolean | undefined;
+ overrideRetrieveSourceMap?: boolean | undefined;
+ retrieveFile?(path: string): string;
+ retrieveSourceMap?(source: string): UrlAndMap | null;
+ /**
+ * Set false to disable redirection of require / import `source-map-support` to `@cspotcode/source-map-support`
+ */
+ redirectConflictingLibrary?: boolean;
+ /**
+ * Callback will be called every time we redirect due to `redirectConflictingLibrary`
+ * This allows consumers to log helpful warnings if they choose.
+ * @param parent NodeJS.Module which made the require() or require.resolve() call
+ * @param options options object internally passed to node's `_resolveFilename` hook
+ */
+ onConflictingLibraryRedirect?: (request: string, parent: any, isMain: boolean, options: any, redirectedRequest: string) => void;
+}
+
+export interface Position {
+ source: string;
+ line: number;
+ column: number;
+}
+
+export function wrapCallSite(frame: any /* StackFrame */): any /* StackFrame */;
+export function getErrorSource(error: Error): string | null;
+export function mapSourcePosition(position: Position): Position;
+export function retrieveSourceMap(source: string): UrlAndMap | null;
+export function resetRetrieveHandlers(): void;
+
+/**
+ * Install SourceMap support.
+ * @param options Can be used to e.g. disable uncaughtException handler.
+ */
+export function install(options?: Options): void;
+
+/**
+ * Uninstall SourceMap support.
+ */
+export function uninstall(): void;
diff --git a/node_modules/@cspotcode/source-map-support/source-map-support.js b/node_modules/@cspotcode/source-map-support/source-map-support.js
new file mode 100644
index 0000000..ad830b6
--- /dev/null
+++ b/node_modules/@cspotcode/source-map-support/source-map-support.js
@@ -0,0 +1,938 @@
+const { TraceMap, originalPositionFor, AnyMap } = require('@jridgewell/trace-mapping');
+var path = require('path');
+const { fileURLToPath, pathToFileURL } = require('url');
+var util = require('util');
+
+var fs;
+try {
+ fs = require('fs');
+ if (!fs.existsSync || !fs.readFileSync) {
+ // fs doesn't have all methods we need
+ fs = null;
+ }
+} catch (err) {
+ /* nop */
+}
+
+/**
+ * Requires a module which is protected against bundler minification.
+ *
+ * @param {NodeModule} mod
+ * @param {string} request
+ */
+function dynamicRequire(mod, request) {
+ return mod.require(request);
+}
+
+/**
+ * @typedef {{
+ * enabled: boolean;
+ * originalValue: any;
+ * installedValue: any;
+ * }} HookState
+ * Used for installing and uninstalling hooks
+ */
+
+// Increment this if the format of sharedData changes in a breaking way.
+var sharedDataVersion = 1;
+
+/**
+ * @template T
+ * @param {T} defaults
+ * @returns {T}
+ */
+function initializeSharedData(defaults) {
+ var sharedDataKey = 'source-map-support/sharedData';
+ if (typeof Symbol !== 'undefined') {
+ sharedDataKey = Symbol.for(sharedDataKey);
+ }
+ var sharedData = this[sharedDataKey];
+ if (!sharedData) {
+ sharedData = { version: sharedDataVersion };
+ if (Object.defineProperty) {
+ Object.defineProperty(this, sharedDataKey, { value: sharedData });
+ } else {
+ this[sharedDataKey] = sharedData;
+ }
+ }
+ if (sharedDataVersion !== sharedData.version) {
+ throw new Error("Multiple incompatible instances of source-map-support were loaded");
+ }
+ for (var key in defaults) {
+ if (!(key in sharedData)) {
+ sharedData[key] = defaults[key];
+ }
+ }
+ return sharedData;
+}
+
+// If multiple instances of source-map-support are loaded into the same
+// context, they shouldn't overwrite each other. By storing handlers, caches,
+// and other state on a shared object, different instances of
+// source-map-support can work together in a limited way. This does require
+// that future versions of source-map-support continue to support the fields on
+// this object. If this internal contract ever needs to be broken, increment
+// sharedDataVersion. (This version number is not the same as any of the
+// package's version numbers, which should reflect the *external* API of
+// source-map-support.)
+var sharedData = initializeSharedData({
+
+ // Only install once if called multiple times
+ // Remember how the environment looked before installation so we can restore if able
+ /** @type {HookState} */
+ errorPrepareStackTraceHook: undefined,
+ /** @type {HookState} */
+ processEmitHook: undefined,
+ /** @type {HookState} */
+ moduleResolveFilenameHook: undefined,
+
+ /** @type {Array<(request: string, parent: any, isMain: boolean, options: any, redirectedRequest: string) => void>} */
+ onConflictingLibraryRedirectArr: [],
+
+ // If true, the caches are reset before a stack trace formatting operation
+ emptyCacheBetweenOperations: false,
+
+ // Maps a file path to a string containing the file contents
+ fileContentsCache: Object.create(null),
+
+ // Maps a file path to a source map for that file
+ /** @type {Record C:/dir/file
+ '/'; // file:///root-dir/file -> /root-dir/file
+ });
+ }
+ const key = getCacheKey(path);
+ if(hasFileContentsCacheFromKey(key)) {
+ return getFileContentsCacheFromKey(key);
+ }
+
+ var contents = '';
+ try {
+ if (!fs) {
+ // Use SJAX if we are in the browser
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', path, /** async */ false);
+ xhr.send(null);
+ if (xhr.readyState === 4 && xhr.status === 200) {
+ contents = xhr.responseText;
+ }
+ } else if (fs.existsSync(path)) {
+ // Otherwise, use the filesystem
+ contents = fs.readFileSync(path, 'utf8');
+ }
+ } catch (er) {
+ /* ignore any errors */
+ }
+
+ return setFileContentsCache(path, contents);
+});
+
+// Support URLs relative to a directory, but be careful about a protocol prefix
+// in case we are in the browser (i.e. directories may start with "http://" or "file:///")
+function supportRelativeURL(file, url) {
+ if(!file) return url;
+ // given that this happens within error formatting codepath, probably best to
+ // fallback instead of throwing if anything goes wrong
+ try {
+ // if should output a URL
+ if(isAbsoluteUrl(file) || isSchemeRelativeUrl(file)) {
+ if(isAbsoluteUrl(url) || isSchemeRelativeUrl(url)) {
+ return new URL(url, file).toString();
+ }
+ if(path.isAbsolute(url)) {
+ return new URL(pathToFileURL(url), file).toString();
+ }
+ // url is relative path or URL
+ return new URL(url.replace(/\\/g, '/'), file).toString();
+ }
+ // if should output a path (unless URL is something like https://)
+ if(path.isAbsolute(file)) {
+ if(isFileUrl(url)) {
+ return fileURLToPath(url);
+ }
+ if(isSchemeRelativeUrl(url)) {
+ return fileURLToPath(new URL(url, 'file://'));
+ }
+ if(isAbsoluteUrl(url)) {
+ // url is a non-file URL
+ // Go with the URL
+ return url;
+ }
+ if(path.isAbsolute(url)) {
+ // Normalize at all? decodeURI or normalize slashes?
+ return path.normalize(url);
+ }
+ // url is relative path or URL
+ return path.join(file, '..', decodeURI(url));
+ }
+ // If we get here, file is relative.
+ // Shouldn't happen since node identifies modules with absolute paths or URLs.
+ // But we can take a stab at returning something meaningful anyway.
+ if(isAbsoluteUrl(url) || isSchemeRelativeUrl(url)) {
+ return url;
+ }
+ return path.join(file, '..', url);
+ } catch(e) {
+ return url;
+ }
+}
+
+// Return pathOrUrl in the same style as matchStyleOf: either a file URL or a native path
+function matchStyleOfPathOrUrl(matchStyleOf, pathOrUrl) {
+ try {
+ if(isAbsoluteUrl(matchStyleOf) || isSchemeRelativeUrl(matchStyleOf)) {
+ if(isAbsoluteUrl(pathOrUrl) || isSchemeRelativeUrl(pathOrUrl)) return pathOrUrl;
+ if(path.isAbsolute(pathOrUrl)) return pathToFileURL(pathOrUrl).toString();
+ } else if(path.isAbsolute(matchStyleOf)) {
+ if(isAbsoluteUrl(pathOrUrl) || isSchemeRelativeUrl(pathOrUrl)) {
+ return fileURLToPath(new URL(pathOrUrl, 'file://'));
+ }
+ }
+ return pathOrUrl;
+ } catch(e) {
+ return pathOrUrl;
+ }
+}
+
+function retrieveSourceMapURL(source) {
+ var fileData;
+
+ if (isInBrowser()) {
+ try {
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', source, false);
+ xhr.send(null);
+ fileData = xhr.readyState === 4 ? xhr.responseText : null;
+
+ // Support providing a sourceMappingURL via the SourceMap header
+ var sourceMapHeader = xhr.getResponseHeader("SourceMap") ||
+ xhr.getResponseHeader("X-SourceMap");
+ if (sourceMapHeader) {
+ return sourceMapHeader;
+ }
+ } catch (e) {
+ }
+ }
+
+ // Get the URL of the source map
+ fileData = retrieveFile(tryFileURLToPath(source));
+ var re = /(?:\/\/[@#][\s]*sourceMappingURL=([^\s'"]+)[\s]*$)|(?:\/\*[@#][\s]*sourceMappingURL=([^\s*'"]+)[\s]*(?:\*\/)[\s]*$)/mg;
+ // Keep executing the search to find the *last* sourceMappingURL to avoid
+ // picking up sourceMappingURLs from comments, strings, etc.
+ var lastMatch, match;
+ while (match = re.exec(fileData)) lastMatch = match;
+ if (!lastMatch) return null;
+ return lastMatch[1];
+};
+
+// Can be overridden by the retrieveSourceMap option to install. Takes a
+// generated source filename; returns a {map, optional url} object, or null if
+// there is no source map. The map field may be either a string or the parsed
+// JSON object (ie, it must be a valid argument to the SourceMapConsumer
+// constructor).
+/** @type {(source: string) => import('./source-map-support').UrlAndMap | null} */
+var retrieveSourceMap = handlerExec(sharedData.retrieveMapHandlers, sharedData.internalRetrieveMapHandlers);
+sharedData.internalRetrieveMapHandlers.push(function(source) {
+ var sourceMappingURL = retrieveSourceMapURL(source);
+ if (!sourceMappingURL) return null;
+
+ // Read the contents of the source map
+ var sourceMapData;
+ if (reSourceMap.test(sourceMappingURL)) {
+ // Support source map URL as a data url
+ var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);
+ sourceMapData = Buffer.from(rawData, "base64").toString();
+ sourceMappingURL = source;
+ } else {
+ // Support source map URLs relative to the source URL
+ sourceMappingURL = supportRelativeURL(source, sourceMappingURL);
+ sourceMapData = retrieveFile(tryFileURLToPath(sourceMappingURL));
+ }
+
+ if (!sourceMapData) {
+ return null;
+ }
+
+ return {
+ url: sourceMappingURL,
+ map: sourceMapData
+ };
+});
+
+function mapSourcePosition(position) {
+ var sourceMap = getSourceMapCache(position.source);
+ if (!sourceMap) {
+ // Call the (overrideable) retrieveSourceMap function to get the source map.
+ var urlAndMap = retrieveSourceMap(position.source);
+ if (urlAndMap) {
+ sourceMap = setSourceMapCache(position.source, {
+ url: urlAndMap.url,
+ map: new AnyMap(urlAndMap.map, urlAndMap.url)
+ });
+
+ // Overwrite trace-mapping's resolutions, because they do not handle
+ // Windows paths the way we want.
+ // TODO Remove now that windows path support was added to resolve-uri and thus trace-mapping?
+ sourceMap.map.resolvedSources = sourceMap.map.sources.map(s => supportRelativeURL(sourceMap.url, s));
+
+ // Load all sources stored inline with the source map into the file cache
+ // to pretend like they are already loaded. They may not exist on disk.
+ if (sourceMap.map.sourcesContent) {
+ sourceMap.map.resolvedSources.forEach(function(resolvedSource, i) {
+ var contents = sourceMap.map.sourcesContent[i];
+ if (contents) {
+ setFileContentsCache(resolvedSource, contents);
+ }
+ });
+ }
+ } else {
+ sourceMap = setSourceMapCache(position.source, {
+ url: null,
+ map: null
+ });
+ }
+ }
+
+ // Resolve the source URL relative to the URL of the source map
+ if (sourceMap && sourceMap.map) {
+ var originalPosition = originalPositionFor(sourceMap.map, position);
+
+ // Only return the original position if a matching line was found. If no
+ // matching line is found then we return position instead, which will cause
+ // the stack trace to print the path and line for the compiled file. It is
+ // better to give a precise location in the compiled file than a vague
+ // location in the original file.
+ if (originalPosition.source !== null) {
+ // originalPosition.source has *already* been resolved against sourceMap.url
+ // so is *already* as absolute as possible.
+ // However, we want to ensure we output in same format as input: URL or native path
+ originalPosition.source = matchStyleOfPathOrUrl(
+ position.source, originalPosition.source);
+ return originalPosition;
+ }
+ }
+
+ return position;
+}
+
+// Parses code generated by FormatEvalOrigin(), a function inside V8:
+// https://code.google.com/p/v8/source/browse/trunk/src/messages.js
+function mapEvalOrigin(origin) {
+ // Most eval() calls are in this format
+ var match = /^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(origin);
+ if (match) {
+ var position = mapSourcePosition({
+ source: match[2],
+ line: +match[3],
+ column: match[4] - 1
+ });
+ return 'eval at ' + match[1] + ' (' + position.source + ':' +
+ position.line + ':' + (position.column + 1) + ')';
+ }
+
+ // Parse nested eval() calls using recursion
+ match = /^eval at ([^(]+) \((.+)\)$/.exec(origin);
+ if (match) {
+ return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';
+ }
+
+ // Make sure we still return useful information if we didn't find anything
+ return origin;
+}
+
+// This is copied almost verbatim from the V8 source code at
+// https://code.google.com/p/v8/source/browse/trunk/src/messages.js
+// Update 2022-04-29:
+// https://github.com/v8/v8/blob/98f6f100c5ab8e390e51422747c4ef644d5ac6f2/src/builtins/builtins-callsite.cc#L175-L179
+// https://github.com/v8/v8/blob/98f6f100c5ab8e390e51422747c4ef644d5ac6f2/src/objects/call-site-info.cc#L795-L804
+// https://github.com/v8/v8/blob/98f6f100c5ab8e390e51422747c4ef644d5ac6f2/src/objects/call-site-info.cc#L717-L750
+// The implementation of wrapCallSite() used to just forward to the actual source
+// code of CallSite.prototype.toString but unfortunately a new release of V8
+// did something to the prototype chain and broke the shim. The only fix I
+// could find was copy/paste.
+function CallSiteToString() {
+ var fileName;
+ var fileLocation = "";
+ if (this.isNative()) {
+ fileLocation = "native";
+ } else {
+ fileName = this.getScriptNameOrSourceURL();
+ if (!fileName && this.isEval()) {
+ fileLocation = this.getEvalOrigin();
+ fileLocation += ", "; // Expecting source position to follow.
+ }
+
+ if (fileName) {
+ fileLocation += fileName;
+ } else {
+ // Source code does not originate from a file and is not native, but we
+ // can still get the source position inside the source string, e.g. in
+ // an eval string.
+ fileLocation += "";
+ }
+ var lineNumber = this.getLineNumber();
+ if (lineNumber != null) {
+ fileLocation += ":" + lineNumber;
+ var columnNumber = this.getColumnNumber();
+ if (columnNumber) {
+ fileLocation += ":" + columnNumber;
+ }
+ }
+ }
+
+ var line = "";
+ var isAsync = this.isAsync ? this.isAsync() : false;
+ if(isAsync) {
+ line += 'async ';
+ var isPromiseAll = this.isPromiseAll ? this.isPromiseAll() : false;
+ var isPromiseAny = this.isPromiseAny ? this.isPromiseAny() : false;
+ if(isPromiseAny || isPromiseAll) {
+ line += isPromiseAll ? 'Promise.all (index ' : 'Promise.any (index ';
+ var promiseIndex = this.getPromiseIndex();
+ line += promiseIndex + ')';
+ }
+ }
+ var functionName = this.getFunctionName();
+ var addSuffix = true;
+ var isConstructor = this.isConstructor();
+ var isMethodCall = !(this.isToplevel() || isConstructor);
+ if (isMethodCall) {
+ var typeName = this.getTypeName();
+ // Fixes shim to be backward compatable with Node v0 to v4
+ if (typeName === "[object Object]") {
+ typeName = "null";
+ }
+ var methodName = this.getMethodName();
+ if (functionName) {
+ if (typeName && functionName.indexOf(typeName) != 0) {
+ line += typeName + ".";
+ }
+ line += functionName;
+ if (methodName && functionName.indexOf("." + methodName) != functionName.length - methodName.length - 1) {
+ line += " [as " + methodName + "]";
+ }
+ } else {
+ line += typeName + "." + (methodName || "");
+ }
+ } else if (isConstructor) {
+ line += "new " + (functionName || "");
+ } else if (functionName) {
+ line += functionName;
+ } else {
+ line += fileLocation;
+ addSuffix = false;
+ }
+ if (addSuffix) {
+ line += " (" + fileLocation + ")";
+ }
+ return line;
+}
+
+function cloneCallSite(frame) {
+ var object = {};
+ Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {
+ object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];
+ });
+ object.toString = CallSiteToString;
+ return object;
+}
+
+function wrapCallSite(frame, state) {
+ // provides interface backward compatibility
+ if (state === undefined) {
+ state = { nextPosition: null, curPosition: null }
+ }
+ if(frame.isNative()) {
+ state.curPosition = null;
+ return frame;
+ }
+
+ // Most call sites will return the source file from getFileName(), but code
+ // passed to eval() ending in "//# sourceURL=..." will return the source file
+ // from getScriptNameOrSourceURL() instead
+ var source = frame.getFileName() || frame.getScriptNameOrSourceURL();
+ if (source) {
+ // v8 does not expose its internal isWasm, etc methods, so we do this instead.
+ if(source.startsWith('wasm://')) {
+ state.curPosition = null;
+ return frame;
+ }
+
+ var line = frame.getLineNumber();
+ var column = frame.getColumnNumber() - 1;
+
+ // Fix position in Node where some (internal) code is prepended.
+ // See https://github.com/evanw/node-source-map-support/issues/36
+ // Header removed in node at ^10.16 || >=11.11.0
+ // v11 is not an LTS candidate, we can just test the one version with it.
+ // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11
+ var noHeader = /^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/;
+ var headerLength = noHeader.test(process.version) ? 0 : 62;
+ if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {
+ column -= headerLength;
+ }
+
+ var position = mapSourcePosition({
+ source: source,
+ line: line,
+ column: column
+ });
+ state.curPosition = position;
+ frame = cloneCallSite(frame);
+ var originalFunctionName = frame.getFunctionName;
+ frame.getFunctionName = function() {
+ if (state.nextPosition == null) {
+ return originalFunctionName();
+ }
+ return state.nextPosition.name || originalFunctionName();
+ };
+ frame.getFileName = function() { return position.source; };
+ frame.getLineNumber = function() { return position.line; };
+ frame.getColumnNumber = function() { return position.column + 1; };
+ frame.getScriptNameOrSourceURL = function() { return position.source; };
+ return frame;
+ }
+
+ // Code called using eval() needs special handling
+ var origin = frame.isEval() && frame.getEvalOrigin();
+ if (origin) {
+ origin = mapEvalOrigin(origin);
+ frame = cloneCallSite(frame);
+ frame.getEvalOrigin = function() { return origin; };
+ return frame;
+ }
+
+ // If we get here then we were unable to change the source position
+ return frame;
+}
+
+var kIsNodeError = undefined;
+try {
+ // Get a deliberate ERR_INVALID_ARG_TYPE
+ // TODO is there a better way to reliably get an instance of NodeError?
+ path.resolve(123);
+} catch(e) {
+ const symbols = Object.getOwnPropertySymbols(e);
+ const symbol = symbols.find(function (s) {return s.toString().indexOf('kIsNodeError') >= 0});
+ if(symbol) kIsNodeError = symbol;
+}
+
+const ErrorPrototypeToString = (err) =>Error.prototype.toString.call(err);
+
+/** @param {HookState} hookState */
+function createPrepareStackTrace(hookState) {
+ return prepareStackTrace;
+
+ // This function is part of the V8 stack trace API, for more info see:
+ // https://v8.dev/docs/stack-trace-api
+ function prepareStackTrace(error, stack) {
+ if(!hookState.enabled) return hookState.originalValue.apply(this, arguments);
+
+ if (sharedData.emptyCacheBetweenOperations) {
+ clearCaches();
+ }
+
+ // node gives its own errors special treatment. Mimic that behavior
+ // https://github.com/nodejs/node/blob/3cbaabc4622df1b4009b9d026a1a970bdbae6e89/lib/internal/errors.js#L118-L128
+ // https://github.com/nodejs/node/pull/39182
+ var errorString;
+ if (kIsNodeError) {
+ if(kIsNodeError in error) {
+ errorString = `${error.name} [${error.code}]: ${error.message}`;
+ } else {
+ errorString = ErrorPrototypeToString(error);
+ }
+ } else {
+ var name = error.name || 'Error';
+ var message = error.message || '';
+ errorString = message ? name + ": " + message : name;
+ }
+
+ var state = { nextPosition: null, curPosition: null };
+ var processedStack = [];
+ for (var i = stack.length - 1; i >= 0; i--) {
+ processedStack.push('\n at ' + wrapCallSite(stack[i], state));
+ state.nextPosition = state.curPosition;
+ }
+ state.curPosition = state.nextPosition = null;
+ return errorString + processedStack.reverse().join('');
+ }
+}
+
+// Generate position and snippet of original source with pointer
+function getErrorSource(error) {
+ var match = /\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(error.stack);
+ if (match) {
+ var source = match[1];
+ var line = +match[2];
+ var column = +match[3];
+
+ // Support the inline sourceContents inside the source map
+ var contents = getFileContentsCache(source);
+
+ const sourceAsPath = tryFileURLToPath(source);
+
+ // Support files on disk
+ if (!contents && fs && fs.existsSync(sourceAsPath)) {
+ try {
+ contents = fs.readFileSync(sourceAsPath, 'utf8');
+ } catch (er) {
+ contents = '';
+ }
+ }
+
+ // Format the line from the original source code like node does
+ if (contents) {
+ var code = contents.split(/(?:\r\n|\r|\n)/)[line - 1];
+ if (code) {
+ return source + ':' + line + '\n' + code + '\n' +
+ new Array(column).join(' ') + '^';
+ }
+ }
+ }
+ return null;
+}
+
+function printFatalErrorUponExit (error) {
+ var source = getErrorSource(error);
+
+ // Ensure error is printed synchronously and not truncated
+ if (process.stderr._handle && process.stderr._handle.setBlocking) {
+ process.stderr._handle.setBlocking(true);
+ }
+
+ if (source) {
+ console.error(source);
+ }
+
+ // Matches node's behavior for colorized output
+ console.error(
+ util.inspect(error, {
+ customInspect: false,
+ colors: process.stderr.isTTY
+ })
+ );
+}
+
+function shimEmitUncaughtException () {
+ const originalValue = process.emit;
+ var hook = sharedData.processEmitHook = {
+ enabled: true,
+ originalValue,
+ installedValue: undefined
+ };
+ var isTerminatingDueToFatalException = false;
+ var fatalException;
+
+ process.emit = sharedData.processEmitHook.installedValue = function (type) {
+ const hadListeners = originalValue.apply(this, arguments);
+ if(hook.enabled) {
+ if (type === 'uncaughtException' && !hadListeners) {
+ isTerminatingDueToFatalException = true;
+ fatalException = arguments[1];
+ process.exit(1);
+ }
+ if (type === 'exit' && isTerminatingDueToFatalException) {
+ printFatalErrorUponExit(fatalException);
+ }
+ }
+ return hadListeners;
+ };
+}
+
+var originalRetrieveFileHandlers = sharedData.retrieveFileHandlers.slice(0);
+var originalRetrieveMapHandlers = sharedData.retrieveMapHandlers.slice(0);
+
+exports.wrapCallSite = wrapCallSite;
+exports.getErrorSource = getErrorSource;
+exports.mapSourcePosition = mapSourcePosition;
+exports.retrieveSourceMap = retrieveSourceMap;
+
+exports.install = function(options) {
+ options = options || {};
+
+ if (options.environment) {
+ environment = options.environment;
+ if (["node", "browser", "auto"].indexOf(environment) === -1) {
+ throw new Error("environment " + environment + " was unknown. Available options are {auto, browser, node}")
+ }
+ }
+
+ // Use dynamicRequire to avoid including in browser bundles
+ var Module = dynamicRequire(module, 'module');
+
+ // Redirect subsequent imports of "source-map-support"
+ // to this package
+ const {redirectConflictingLibrary = true, onConflictingLibraryRedirect} = options;
+ if(redirectConflictingLibrary) {
+ if (!sharedData.moduleResolveFilenameHook) {
+ const originalValue = Module._resolveFilename;
+ const moduleResolveFilenameHook = sharedData.moduleResolveFilenameHook = {
+ enabled: true,
+ originalValue,
+ installedValue: undefined,
+ }
+ Module._resolveFilename = sharedData.moduleResolveFilenameHook.installedValue = function (request, parent, isMain, options) {
+ if (moduleResolveFilenameHook.enabled) {
+ // Match all source-map-support entrypoints: source-map-support, source-map-support/register
+ let requestRedirect;
+ if (request === 'source-map-support') {
+ requestRedirect = './';
+ } else if (request === 'source-map-support/register') {
+ requestRedirect = './register';
+ }
+
+ if (requestRedirect !== undefined) {
+ const newRequest = require.resolve(requestRedirect);
+ for (const cb of sharedData.onConflictingLibraryRedirectArr) {
+ cb(request, parent, isMain, options, newRequest);
+ }
+ request = newRequest;
+ }
+ }
+
+ return originalValue.call(this, request, parent, isMain, options);
+ }
+ }
+ if (onConflictingLibraryRedirect) {
+ sharedData.onConflictingLibraryRedirectArr.push(onConflictingLibraryRedirect);
+ }
+ }
+
+ // Allow sources to be found by methods other than reading the files
+ // directly from disk.
+ if (options.retrieveFile) {
+ if (options.overrideRetrieveFile) {
+ sharedData.retrieveFileHandlers.length = 0;
+ }
+
+ sharedData.retrieveFileHandlers.unshift(options.retrieveFile);
+ }
+
+ // Allow source maps to be found by methods other than reading the files
+ // directly from disk.
+ if (options.retrieveSourceMap) {
+ if (options.overrideRetrieveSourceMap) {
+ sharedData.retrieveMapHandlers.length = 0;
+ }
+
+ sharedData.retrieveMapHandlers.unshift(options.retrieveSourceMap);
+ }
+
+ // Support runtime transpilers that include inline source maps
+ if (options.hookRequire && !isInBrowser()) {
+ var $compile = Module.prototype._compile;
+
+ if (!$compile.__sourceMapSupport) {
+ Module.prototype._compile = function(content, filename) {
+ setFileContentsCache(filename, content);
+ setSourceMapCache(filename, undefined);
+ return $compile.call(this, content, filename);
+ };
+
+ Module.prototype._compile.__sourceMapSupport = true;
+ }
+ }
+
+ // Configure options
+ if (!sharedData.emptyCacheBetweenOperations) {
+ sharedData.emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?
+ options.emptyCacheBetweenOperations : false;
+ }
+
+
+ // Install the error reformatter
+ if (!sharedData.errorPrepareStackTraceHook) {
+ const originalValue = Error.prepareStackTrace;
+ sharedData.errorPrepareStackTraceHook = {
+ enabled: true,
+ originalValue,
+ installedValue: undefined
+ };
+ Error.prepareStackTrace = sharedData.errorPrepareStackTraceHook.installedValue = createPrepareStackTrace(sharedData.errorPrepareStackTraceHook);
+ }
+
+ if (!sharedData.processEmitHook) {
+ var installHandler = 'handleUncaughtExceptions' in options ?
+ options.handleUncaughtExceptions : true;
+
+ // Do not override 'uncaughtException' with our own handler in Node.js
+ // Worker threads. Workers pass the error to the main thread as an event,
+ // rather than printing something to stderr and exiting.
+ try {
+ // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.
+ var worker_threads = dynamicRequire(module, 'worker_threads');
+ if (worker_threads.isMainThread === false) {
+ installHandler = false;
+ }
+ } catch(e) {}
+
+ // Provide the option to not install the uncaught exception handler. This is
+ // to support other uncaught exception handlers (in test frameworks, for
+ // example). If this handler is not installed and there are no other uncaught
+ // exception handlers, uncaught exceptions will be caught by node's built-in
+ // exception handler and the process will still be terminated. However, the
+ // generated JavaScript code will be shown above the stack trace instead of
+ // the original source code.
+ if (installHandler && hasGlobalProcessEventEmitter()) {
+ shimEmitUncaughtException();
+ }
+ }
+};
+
+exports.uninstall = function() {
+ if(sharedData.processEmitHook) {
+ // Disable behavior
+ sharedData.processEmitHook.enabled = false;
+ // If possible, remove our hook function. May not be possible if subsequent third-party hooks have wrapped around us.
+ if(process.emit === sharedData.processEmitHook.installedValue) {
+ process.emit = sharedData.processEmitHook.originalValue;
+ }
+ sharedData.processEmitHook = undefined;
+ }
+ if(sharedData.errorPrepareStackTraceHook) {
+ // Disable behavior
+ sharedData.errorPrepareStackTraceHook.enabled = false;
+ // If possible or necessary, remove our hook function.
+ // In vanilla environments, prepareStackTrace is `undefined`.
+ // We cannot delegate to `undefined` the way we can to a function w/`.apply()`; our only option is to remove the function.
+ // If we are the *first* hook installed, and another was installed on top of us, we have no choice but to remove both.
+ if(Error.prepareStackTrace === sharedData.errorPrepareStackTraceHook.installedValue || typeof sharedData.errorPrepareStackTraceHook.originalValue !== 'function') {
+ Error.prepareStackTrace = sharedData.errorPrepareStackTraceHook.originalValue;
+ }
+ sharedData.errorPrepareStackTraceHook = undefined;
+ }
+ if (sharedData.moduleResolveFilenameHook) {
+ // Disable behavior
+ sharedData.moduleResolveFilenameHook.enabled = false;
+ // If possible, remove our hook function. May not be possible if subsequent third-party hooks have wrapped around us.
+ var Module = dynamicRequire(module, 'module');
+ if(Module._resolveFilename === sharedData.moduleResolveFilenameHook.installedValue) {
+ Module._resolveFilename = sharedData.moduleResolveFilenameHook.originalValue;
+ }
+ sharedData.moduleResolveFilenameHook = undefined;
+ }
+ sharedData.onConflictingLibraryRedirectArr.length = 0;
+}
+
+exports.resetRetrieveHandlers = function() {
+ sharedData.retrieveFileHandlers.length = 0;
+ sharedData.retrieveMapHandlers.length = 0;
+}
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/sourcemap-codec/LICENSE b/node_modules/@jridgewell/sourcemap-codec/LICENSE
new file mode 100644
index 0000000..1f6ce94
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/LICENSE
@@ -0,0 +1,19 @@
+Copyright 2024 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/sourcemap-codec/README.md b/node_modules/@jridgewell/sourcemap-codec/README.md
new file mode 100644
index 0000000..b3e0708
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/README.md
@@ -0,0 +1,264 @@
+# @jridgewell/sourcemap-codec
+
+Encode/decode the `mappings` property of a [sourcemap](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit).
+
+
+## Why?
+
+Sourcemaps are difficult to generate and manipulate, because the `mappings` property – the part that actually links the generated code back to the original source – is encoded using an obscure method called [Variable-length quantity](https://en.wikipedia.org/wiki/Variable-length_quantity). On top of that, each segment in the mapping contains offsets rather than absolute indices, which means that you can't look at a segment in isolation – you have to understand the whole sourcemap.
+
+This package makes the process slightly easier.
+
+
+## Installation
+
+```bash
+npm install @jridgewell/sourcemap-codec
+```
+
+
+## Usage
+
+```js
+import { encode, decode } from '@jridgewell/sourcemap-codec';
+
+var decoded = decode( ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' );
+
+assert.deepEqual( decoded, [
+ // the first line (of the generated code) has no mappings,
+ // as shown by the starting semi-colon (which separates lines)
+ [],
+
+ // the second line contains four (comma-separated) segments
+ [
+ // segments are encoded as you'd expect:
+ // [ generatedCodeColumn, sourceIndex, sourceCodeLine, sourceCodeColumn, nameIndex ]
+
+ // i.e. the first segment begins at column 2, and maps back to the second column
+ // of the second line (both zero-based) of the 0th source, and uses the 0th
+ // name in the `map.names` array
+ [ 2, 0, 2, 2, 0 ],
+
+ // the remaining segments are 4-length rather than 5-length,
+ // because they don't map a name
+ [ 4, 0, 2, 4 ],
+ [ 6, 0, 2, 5 ],
+ [ 7, 0, 2, 7 ]
+ ],
+
+ // the final line contains two segments
+ [
+ [ 2, 1, 10, 19 ],
+ [ 12, 1, 11, 20 ]
+ ]
+]);
+
+var encoded = encode( decoded );
+assert.equal( encoded, ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' );
+```
+
+## Benchmarks
+
+```
+node v20.10.0
+
+amp.js.map - 45120 segments
+
+Decode Memory Usage:
+local code 5815135 bytes
+@jridgewell/sourcemap-codec 1.4.15 5868160 bytes
+sourcemap-codec 5492584 bytes
+source-map-0.6.1 13569984 bytes
+source-map-0.8.0 6390584 bytes
+chrome dev tools 8011136 bytes
+Smallest memory usage is sourcemap-codec
+
+Decode speed:
+decode: local code x 492 ops/sec ±1.22% (90 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 499 ops/sec ±1.16% (89 runs sampled)
+decode: sourcemap-codec x 376 ops/sec ±1.66% (89 runs sampled)
+decode: source-map-0.6.1 x 34.99 ops/sec ±0.94% (48 runs sampled)
+decode: source-map-0.8.0 x 351 ops/sec ±0.07% (95 runs sampled)
+chrome dev tools x 165 ops/sec ±0.91% (86 runs sampled)
+Fastest is decode: @jridgewell/sourcemap-codec 1.4.15
+
+Encode Memory Usage:
+local code 444248 bytes
+@jridgewell/sourcemap-codec 1.4.15 623024 bytes
+sourcemap-codec 8696280 bytes
+source-map-0.6.1 8745176 bytes
+source-map-0.8.0 8736624 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 796 ops/sec ±0.11% (97 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 795 ops/sec ±0.25% (98 runs sampled)
+encode: sourcemap-codec x 231 ops/sec ±0.83% (86 runs sampled)
+encode: source-map-0.6.1 x 166 ops/sec ±0.57% (86 runs sampled)
+encode: source-map-0.8.0 x 203 ops/sec ±0.45% (88 runs sampled)
+Fastest is encode: local code,encode: @jridgewell/sourcemap-codec 1.4.15
+
+
+***
+
+
+babel.min.js.map - 347793 segments
+
+Decode Memory Usage:
+local code 35424960 bytes
+@jridgewell/sourcemap-codec 1.4.15 35424696 bytes
+sourcemap-codec 36033464 bytes
+source-map-0.6.1 62253704 bytes
+source-map-0.8.0 43843920 bytes
+chrome dev tools 45111400 bytes
+Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15
+
+Decode speed:
+decode: local code x 38.18 ops/sec ±5.44% (52 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 38.36 ops/sec ±5.02% (52 runs sampled)
+decode: sourcemap-codec x 34.05 ops/sec ±4.45% (47 runs sampled)
+decode: source-map-0.6.1 x 4.31 ops/sec ±2.76% (15 runs sampled)
+decode: source-map-0.8.0 x 55.60 ops/sec ±0.13% (73 runs sampled)
+chrome dev tools x 16.94 ops/sec ±3.78% (46 runs sampled)
+Fastest is decode: source-map-0.8.0
+
+Encode Memory Usage:
+local code 2606016 bytes
+@jridgewell/sourcemap-codec 1.4.15 2626440 bytes
+sourcemap-codec 21152576 bytes
+source-map-0.6.1 25023928 bytes
+source-map-0.8.0 25256448 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 127 ops/sec ±0.18% (83 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 128 ops/sec ±0.26% (83 runs sampled)
+encode: sourcemap-codec x 29.31 ops/sec ±2.55% (53 runs sampled)
+encode: source-map-0.6.1 x 18.85 ops/sec ±3.19% (36 runs sampled)
+encode: source-map-0.8.0 x 19.34 ops/sec ±1.97% (36 runs sampled)
+Fastest is encode: @jridgewell/sourcemap-codec 1.4.15
+
+
+***
+
+
+preact.js.map - 1992 segments
+
+Decode Memory Usage:
+local code 261696 bytes
+@jridgewell/sourcemap-codec 1.4.15 244296 bytes
+sourcemap-codec 302816 bytes
+source-map-0.6.1 939176 bytes
+source-map-0.8.0 336 bytes
+chrome dev tools 587368 bytes
+Smallest memory usage is source-map-0.8.0
+
+Decode speed:
+decode: local code x 17,782 ops/sec ±0.32% (97 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 17,863 ops/sec ±0.40% (100 runs sampled)
+decode: sourcemap-codec x 12,453 ops/sec ±0.27% (101 runs sampled)
+decode: source-map-0.6.1 x 1,288 ops/sec ±1.05% (96 runs sampled)
+decode: source-map-0.8.0 x 9,289 ops/sec ±0.27% (101 runs sampled)
+chrome dev tools x 4,769 ops/sec ±0.18% (100 runs sampled)
+Fastest is decode: @jridgewell/sourcemap-codec 1.4.15
+
+Encode Memory Usage:
+local code 262944 bytes
+@jridgewell/sourcemap-codec 1.4.15 25544 bytes
+sourcemap-codec 323048 bytes
+source-map-0.6.1 507808 bytes
+source-map-0.8.0 507480 bytes
+Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15
+
+Encode speed:
+encode: local code x 24,207 ops/sec ±0.79% (95 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 24,288 ops/sec ±0.48% (96 runs sampled)
+encode: sourcemap-codec x 6,761 ops/sec ±0.21% (100 runs sampled)
+encode: source-map-0.6.1 x 5,374 ops/sec ±0.17% (99 runs sampled)
+encode: source-map-0.8.0 x 5,633 ops/sec ±0.32% (99 runs sampled)
+Fastest is encode: @jridgewell/sourcemap-codec 1.4.15,encode: local code
+
+
+***
+
+
+react.js.map - 5726 segments
+
+Decode Memory Usage:
+local code 678816 bytes
+@jridgewell/sourcemap-codec 1.4.15 678816 bytes
+sourcemap-codec 816400 bytes
+source-map-0.6.1 2288864 bytes
+source-map-0.8.0 721360 bytes
+chrome dev tools 1012512 bytes
+Smallest memory usage is local code
+
+Decode speed:
+decode: local code x 6,178 ops/sec ±0.19% (98 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 6,261 ops/sec ±0.22% (100 runs sampled)
+decode: sourcemap-codec x 4,472 ops/sec ±0.90% (99 runs sampled)
+decode: source-map-0.6.1 x 449 ops/sec ±0.31% (95 runs sampled)
+decode: source-map-0.8.0 x 3,219 ops/sec ±0.13% (100 runs sampled)
+chrome dev tools x 1,743 ops/sec ±0.20% (99 runs sampled)
+Fastest is decode: @jridgewell/sourcemap-codec 1.4.15
+
+Encode Memory Usage:
+local code 140960 bytes
+@jridgewell/sourcemap-codec 1.4.15 159808 bytes
+sourcemap-codec 969304 bytes
+source-map-0.6.1 930520 bytes
+source-map-0.8.0 930248 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 8,013 ops/sec ±0.19% (100 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 7,989 ops/sec ±0.20% (101 runs sampled)
+encode: sourcemap-codec x 2,472 ops/sec ±0.21% (99 runs sampled)
+encode: source-map-0.6.1 x 2,200 ops/sec ±0.17% (99 runs sampled)
+encode: source-map-0.8.0 x 2,220 ops/sec ±0.37% (99 runs sampled)
+Fastest is encode: local code
+
+
+***
+
+
+vscode.map - 2141001 segments
+
+Decode Memory Usage:
+local code 198955264 bytes
+@jridgewell/sourcemap-codec 1.4.15 199175352 bytes
+sourcemap-codec 199102688 bytes
+source-map-0.6.1 386323432 bytes
+source-map-0.8.0 244116432 bytes
+chrome dev tools 293734280 bytes
+Smallest memory usage is local code
+
+Decode speed:
+decode: local code x 3.90 ops/sec ±22.21% (15 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 3.95 ops/sec ±23.53% (15 runs sampled)
+decode: sourcemap-codec x 3.82 ops/sec ±17.94% (14 runs sampled)
+decode: source-map-0.6.1 x 0.61 ops/sec ±7.81% (6 runs sampled)
+decode: source-map-0.8.0 x 9.54 ops/sec ±0.28% (28 runs sampled)
+chrome dev tools x 2.18 ops/sec ±10.58% (10 runs sampled)
+Fastest is decode: source-map-0.8.0
+
+Encode Memory Usage:
+local code 13509880 bytes
+@jridgewell/sourcemap-codec 1.4.15 13537648 bytes
+sourcemap-codec 32540104 bytes
+source-map-0.6.1 127531040 bytes
+source-map-0.8.0 127535312 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 20.10 ops/sec ±0.19% (38 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 20.26 ops/sec ±0.32% (38 runs sampled)
+encode: sourcemap-codec x 5.44 ops/sec ±1.64% (18 runs sampled)
+encode: source-map-0.6.1 x 2.30 ops/sec ±4.79% (10 runs sampled)
+encode: source-map-0.8.0 x 2.46 ops/sec ±6.53% (10 runs sampled)
+Fastest is encode: @jridgewell/sourcemap-codec 1.4.15
+```
+
+# License
+
+MIT
diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
new file mode 100644
index 0000000..532bab3
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
@@ -0,0 +1,423 @@
+// src/vlq.ts
+var comma = ",".charCodeAt(0);
+var semicolon = ";".charCodeAt(0);
+var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+var intToChar = new Uint8Array(64);
+var charToInt = new Uint8Array(128);
+for (let i = 0; i < chars.length; i++) {
+ const c = chars.charCodeAt(i);
+ intToChar[i] = c;
+ charToInt[c] = i;
+}
+function decodeInteger(reader, relative) {
+ let value = 0;
+ let shift = 0;
+ let integer = 0;
+ do {
+ const c = reader.next();
+ integer = charToInt[c];
+ value |= (integer & 31) << shift;
+ shift += 5;
+ } while (integer & 32);
+ const shouldNegate = value & 1;
+ value >>>= 1;
+ if (shouldNegate) {
+ value = -2147483648 | -value;
+ }
+ return relative + value;
+}
+function encodeInteger(builder, num, relative) {
+ let delta = num - relative;
+ delta = delta < 0 ? -delta << 1 | 1 : delta << 1;
+ do {
+ let clamped = delta & 31;
+ delta >>>= 5;
+ if (delta > 0) clamped |= 32;
+ builder.write(intToChar[clamped]);
+ } while (delta > 0);
+ return num;
+}
+function hasMoreVlq(reader, max) {
+ if (reader.pos >= max) return false;
+ return reader.peek() !== comma;
+}
+
+// src/strings.ts
+var bufLength = 1024 * 16;
+var 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;
+ }
+};
+var StringWriter = class {
+ constructor() {
+ this.pos = 0;
+ this.out = "";
+ this.buffer = new Uint8Array(bufLength);
+ }
+ write(v) {
+ const { buffer } = this;
+ buffer[this.pos++] = v;
+ if (this.pos === bufLength) {
+ this.out += td.decode(buffer);
+ this.pos = 0;
+ }
+ }
+ flush() {
+ const { buffer, out, pos } = this;
+ return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;
+ }
+};
+var StringReader = class {
+ constructor(buffer) {
+ this.pos = 0;
+ this.buffer = buffer;
+ }
+ next() {
+ return this.buffer.charCodeAt(this.pos++);
+ }
+ peek() {
+ return this.buffer.charCodeAt(this.pos);
+ }
+ indexOf(char) {
+ const { buffer, pos } = this;
+ const idx = buffer.indexOf(char, pos);
+ return idx === -1 ? buffer.length : idx;
+ }
+};
+
+// src/scopes.ts
+var EMPTY = [];
+function decodeOriginalScopes(input) {
+ const { length } = input;
+ const reader = new StringReader(input);
+ const scopes = [];
+ const stack = [];
+ let line = 0;
+ for (; reader.pos < length; reader.pos++) {
+ line = decodeInteger(reader, line);
+ const column = decodeInteger(reader, 0);
+ if (!hasMoreVlq(reader, length)) {
+ const last = stack.pop();
+ last[2] = line;
+ last[3] = column;
+ continue;
+ }
+ const kind = decodeInteger(reader, 0);
+ const fields = decodeInteger(reader, 0);
+ const hasName = fields & 1;
+ const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];
+ let vars = EMPTY;
+ if (hasMoreVlq(reader, length)) {
+ vars = [];
+ do {
+ const varsIndex = decodeInteger(reader, 0);
+ vars.push(varsIndex);
+ } while (hasMoreVlq(reader, length));
+ }
+ scope.vars = vars;
+ scopes.push(scope);
+ stack.push(scope);
+ }
+ return scopes;
+}
+function encodeOriginalScopes(scopes) {
+ const writer = new StringWriter();
+ for (let i = 0; i < scopes.length; ) {
+ i = _encodeOriginalScopes(scopes, i, writer, [0]);
+ }
+ return writer.flush();
+}
+function _encodeOriginalScopes(scopes, index, writer, state) {
+ const scope = scopes[index];
+ const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;
+ if (index > 0) writer.write(comma);
+ state[0] = encodeInteger(writer, startLine, state[0]);
+ encodeInteger(writer, startColumn, 0);
+ encodeInteger(writer, kind, 0);
+ const fields = scope.length === 6 ? 1 : 0;
+ encodeInteger(writer, fields, 0);
+ if (scope.length === 6) encodeInteger(writer, scope[5], 0);
+ for (const v of vars) {
+ encodeInteger(writer, v, 0);
+ }
+ for (index++; index < scopes.length; ) {
+ const next = scopes[index];
+ const { 0: l, 1: c } = next;
+ if (l > endLine || l === endLine && c >= endColumn) {
+ break;
+ }
+ index = _encodeOriginalScopes(scopes, index, writer, state);
+ }
+ writer.write(comma);
+ state[0] = encodeInteger(writer, endLine, state[0]);
+ encodeInteger(writer, endColumn, 0);
+ return index;
+}
+function decodeGeneratedRanges(input) {
+ const { length } = input;
+ const reader = new StringReader(input);
+ const ranges = [];
+ const stack = [];
+ let genLine = 0;
+ let definitionSourcesIndex = 0;
+ let definitionScopeIndex = 0;
+ let callsiteSourcesIndex = 0;
+ let callsiteLine = 0;
+ let callsiteColumn = 0;
+ let bindingLine = 0;
+ let bindingColumn = 0;
+ do {
+ const semi = reader.indexOf(";");
+ let genColumn = 0;
+ for (; reader.pos < semi; reader.pos++) {
+ genColumn = decodeInteger(reader, genColumn);
+ if (!hasMoreVlq(reader, semi)) {
+ const last = stack.pop();
+ last[2] = genLine;
+ last[3] = genColumn;
+ continue;
+ }
+ const fields = decodeInteger(reader, 0);
+ const hasDefinition = fields & 1;
+ const hasCallsite = fields & 2;
+ const hasScope = fields & 4;
+ let callsite = null;
+ let bindings = EMPTY;
+ let range;
+ if (hasDefinition) {
+ const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);
+ definitionScopeIndex = decodeInteger(
+ reader,
+ definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0
+ );
+ definitionSourcesIndex = defSourcesIndex;
+ range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];
+ } else {
+ range = [genLine, genColumn, 0, 0];
+ }
+ range.isScope = !!hasScope;
+ if (hasCallsite) {
+ const prevCsi = callsiteSourcesIndex;
+ const prevLine = callsiteLine;
+ callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);
+ const sameSource = prevCsi === callsiteSourcesIndex;
+ callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);
+ callsiteColumn = decodeInteger(
+ reader,
+ sameSource && prevLine === callsiteLine ? callsiteColumn : 0
+ );
+ callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];
+ }
+ range.callsite = callsite;
+ if (hasMoreVlq(reader, semi)) {
+ bindings = [];
+ do {
+ bindingLine = genLine;
+ bindingColumn = genColumn;
+ const expressionsCount = decodeInteger(reader, 0);
+ let expressionRanges;
+ if (expressionsCount < -1) {
+ expressionRanges = [[decodeInteger(reader, 0)]];
+ for (let i = -1; i > expressionsCount; i--) {
+ const prevBl = bindingLine;
+ bindingLine = decodeInteger(reader, bindingLine);
+ bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);
+ const expression = decodeInteger(reader, 0);
+ expressionRanges.push([expression, bindingLine, bindingColumn]);
+ }
+ } else {
+ expressionRanges = [[expressionsCount]];
+ }
+ bindings.push(expressionRanges);
+ } while (hasMoreVlq(reader, semi));
+ }
+ range.bindings = bindings;
+ ranges.push(range);
+ stack.push(range);
+ }
+ genLine++;
+ reader.pos = semi + 1;
+ } while (reader.pos < length);
+ return ranges;
+}
+function encodeGeneratedRanges(ranges) {
+ if (ranges.length === 0) return "";
+ const writer = new StringWriter();
+ for (let i = 0; i < ranges.length; ) {
+ i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);
+ }
+ return writer.flush();
+}
+function _encodeGeneratedRanges(ranges, index, writer, state) {
+ const range = ranges[index];
+ const {
+ 0: startLine,
+ 1: startColumn,
+ 2: endLine,
+ 3: endColumn,
+ isScope,
+ callsite,
+ bindings
+ } = range;
+ if (state[0] < startLine) {
+ catchupLine(writer, state[0], startLine);
+ state[0] = startLine;
+ state[1] = 0;
+ } else if (index > 0) {
+ writer.write(comma);
+ }
+ state[1] = encodeInteger(writer, range[1], state[1]);
+ const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);
+ encodeInteger(writer, fields, 0);
+ if (range.length === 6) {
+ const { 4: sourcesIndex, 5: scopesIndex } = range;
+ if (sourcesIndex !== state[2]) {
+ state[3] = 0;
+ }
+ state[2] = encodeInteger(writer, sourcesIndex, state[2]);
+ state[3] = encodeInteger(writer, scopesIndex, state[3]);
+ }
+ if (callsite) {
+ const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;
+ if (sourcesIndex !== state[4]) {
+ state[5] = 0;
+ state[6] = 0;
+ } else if (callLine !== state[5]) {
+ state[6] = 0;
+ }
+ state[4] = encodeInteger(writer, sourcesIndex, state[4]);
+ state[5] = encodeInteger(writer, callLine, state[5]);
+ state[6] = encodeInteger(writer, callColumn, state[6]);
+ }
+ if (bindings) {
+ for (const binding of bindings) {
+ if (binding.length > 1) encodeInteger(writer, -binding.length, 0);
+ const expression = binding[0][0];
+ encodeInteger(writer, expression, 0);
+ let bindingStartLine = startLine;
+ let bindingStartColumn = startColumn;
+ for (let i = 1; i < binding.length; i++) {
+ const expRange = binding[i];
+ bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);
+ bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);
+ encodeInteger(writer, expRange[0], 0);
+ }
+ }
+ }
+ for (index++; index < ranges.length; ) {
+ const next = ranges[index];
+ const { 0: l, 1: c } = next;
+ if (l > endLine || l === endLine && c >= endColumn) {
+ break;
+ }
+ index = _encodeGeneratedRanges(ranges, index, writer, state);
+ }
+ if (state[0] < endLine) {
+ catchupLine(writer, state[0], endLine);
+ state[0] = endLine;
+ state[1] = 0;
+ } else {
+ writer.write(comma);
+ }
+ state[1] = encodeInteger(writer, endColumn, state[1]);
+ return index;
+}
+function catchupLine(writer, lastLine, line) {
+ do {
+ writer.write(semicolon);
+ } while (++lastLine < line);
+}
+
+// src/sourcemap-codec.ts
+function decode(mappings) {
+ const { length } = mappings;
+ const reader = new StringReader(mappings);
+ const decoded = [];
+ let genColumn = 0;
+ let sourcesIndex = 0;
+ let sourceLine = 0;
+ let sourceColumn = 0;
+ let namesIndex = 0;
+ do {
+ const semi = reader.indexOf(";");
+ const line = [];
+ let sorted = true;
+ let lastCol = 0;
+ genColumn = 0;
+ while (reader.pos < semi) {
+ let seg;
+ genColumn = decodeInteger(reader, genColumn);
+ if (genColumn < lastCol) sorted = false;
+ lastCol = genColumn;
+ if (hasMoreVlq(reader, semi)) {
+ sourcesIndex = decodeInteger(reader, sourcesIndex);
+ sourceLine = decodeInteger(reader, sourceLine);
+ sourceColumn = decodeInteger(reader, sourceColumn);
+ if (hasMoreVlq(reader, semi)) {
+ namesIndex = decodeInteger(reader, namesIndex);
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];
+ } else {
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];
+ }
+ } else {
+ seg = [genColumn];
+ }
+ line.push(seg);
+ reader.pos++;
+ }
+ if (!sorted) sort(line);
+ decoded.push(line);
+ reader.pos = semi + 1;
+ } while (reader.pos <= length);
+ return decoded;
+}
+function sort(line) {
+ line.sort(sortComparator);
+}
+function sortComparator(a, b) {
+ return a[0] - b[0];
+}
+function encode(decoded) {
+ const writer = new StringWriter();
+ let sourcesIndex = 0;
+ let sourceLine = 0;
+ let sourceColumn = 0;
+ let namesIndex = 0;
+ for (let i = 0; i < decoded.length; i++) {
+ const line = decoded[i];
+ if (i > 0) writer.write(semicolon);
+ if (line.length === 0) continue;
+ let genColumn = 0;
+ for (let j = 0; j < line.length; j++) {
+ const segment = line[j];
+ if (j > 0) writer.write(comma);
+ genColumn = encodeInteger(writer, segment[0], genColumn);
+ if (segment.length === 1) continue;
+ sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);
+ sourceLine = encodeInteger(writer, segment[2], sourceLine);
+ sourceColumn = encodeInteger(writer, segment[3], sourceColumn);
+ if (segment.length === 4) continue;
+ namesIndex = encodeInteger(writer, segment[4], namesIndex);
+ }
+ }
+ return writer.flush();
+}
+export {
+ decode,
+ decodeGeneratedRanges,
+ decodeOriginalScopes,
+ encode,
+ encodeGeneratedRanges,
+ encodeOriginalScopes
+};
+//# sourceMappingURL=sourcemap-codec.mjs.map
diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map
new file mode 100644
index 0000000..c276844
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../src/vlq.ts", "../src/strings.ts", "../src/scopes.ts", "../src/sourcemap-codec.ts"],
+ "mappings": "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",
+ "names": []
+}
diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
new file mode 100644
index 0000000..2d8e459
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js
@@ -0,0 +1,464 @@
+(function (global, factory) {
+ if (typeof exports === 'object' && typeof module !== 'undefined') {
+ factory(module);
+ module.exports = def(module);
+ } else if (typeof define === 'function' && define.amd) {
+ define(['module'], function(mod) {
+ factory.apply(this, arguments);
+ mod.exports = def(mod);
+ });
+ } else {
+ const mod = { exports: {} };
+ factory(mod);
+ global = typeof globalThis !== 'undefined' ? globalThis : global || self;
+ global.sourcemapCodec = def(mod);
+ }
+ function def(m) { return 'default' in m.exports ? m.exports.default : m.exports; }
+})(this, (function (module) {
+"use strict";
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+};
+var __copyProps = (to, from, except, desc) => {
+ if (from && typeof from === "object" || typeof from === "function") {
+ for (let key of __getOwnPropNames(from))
+ if (!__hasOwnProp.call(to, key) && key !== except)
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+ }
+ return to;
+};
+var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+
+// src/sourcemap-codec.ts
+var sourcemap_codec_exports = {};
+__export(sourcemap_codec_exports, {
+ decode: () => decode,
+ decodeGeneratedRanges: () => decodeGeneratedRanges,
+ decodeOriginalScopes: () => decodeOriginalScopes,
+ encode: () => encode,
+ encodeGeneratedRanges: () => encodeGeneratedRanges,
+ encodeOriginalScopes: () => encodeOriginalScopes
+});
+module.exports = __toCommonJS(sourcemap_codec_exports);
+
+// src/vlq.ts
+var comma = ",".charCodeAt(0);
+var semicolon = ";".charCodeAt(0);
+var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+var intToChar = new Uint8Array(64);
+var charToInt = new Uint8Array(128);
+for (let i = 0; i < chars.length; i++) {
+ const c = chars.charCodeAt(i);
+ intToChar[i] = c;
+ charToInt[c] = i;
+}
+function decodeInteger(reader, relative) {
+ let value = 0;
+ let shift = 0;
+ let integer = 0;
+ do {
+ const c = reader.next();
+ integer = charToInt[c];
+ value |= (integer & 31) << shift;
+ shift += 5;
+ } while (integer & 32);
+ const shouldNegate = value & 1;
+ value >>>= 1;
+ if (shouldNegate) {
+ value = -2147483648 | -value;
+ }
+ return relative + value;
+}
+function encodeInteger(builder, num, relative) {
+ let delta = num - relative;
+ delta = delta < 0 ? -delta << 1 | 1 : delta << 1;
+ do {
+ let clamped = delta & 31;
+ delta >>>= 5;
+ if (delta > 0) clamped |= 32;
+ builder.write(intToChar[clamped]);
+ } while (delta > 0);
+ return num;
+}
+function hasMoreVlq(reader, max) {
+ if (reader.pos >= max) return false;
+ return reader.peek() !== comma;
+}
+
+// src/strings.ts
+var bufLength = 1024 * 16;
+var 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;
+ }
+};
+var StringWriter = class {
+ constructor() {
+ this.pos = 0;
+ this.out = "";
+ this.buffer = new Uint8Array(bufLength);
+ }
+ write(v) {
+ const { buffer } = this;
+ buffer[this.pos++] = v;
+ if (this.pos === bufLength) {
+ this.out += td.decode(buffer);
+ this.pos = 0;
+ }
+ }
+ flush() {
+ const { buffer, out, pos } = this;
+ return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;
+ }
+};
+var StringReader = class {
+ constructor(buffer) {
+ this.pos = 0;
+ this.buffer = buffer;
+ }
+ next() {
+ return this.buffer.charCodeAt(this.pos++);
+ }
+ peek() {
+ return this.buffer.charCodeAt(this.pos);
+ }
+ indexOf(char) {
+ const { buffer, pos } = this;
+ const idx = buffer.indexOf(char, pos);
+ return idx === -1 ? buffer.length : idx;
+ }
+};
+
+// src/scopes.ts
+var EMPTY = [];
+function decodeOriginalScopes(input) {
+ const { length } = input;
+ const reader = new StringReader(input);
+ const scopes = [];
+ const stack = [];
+ let line = 0;
+ for (; reader.pos < length; reader.pos++) {
+ line = decodeInteger(reader, line);
+ const column = decodeInteger(reader, 0);
+ if (!hasMoreVlq(reader, length)) {
+ const last = stack.pop();
+ last[2] = line;
+ last[3] = column;
+ continue;
+ }
+ const kind = decodeInteger(reader, 0);
+ const fields = decodeInteger(reader, 0);
+ const hasName = fields & 1;
+ const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind];
+ let vars = EMPTY;
+ if (hasMoreVlq(reader, length)) {
+ vars = [];
+ do {
+ const varsIndex = decodeInteger(reader, 0);
+ vars.push(varsIndex);
+ } while (hasMoreVlq(reader, length));
+ }
+ scope.vars = vars;
+ scopes.push(scope);
+ stack.push(scope);
+ }
+ return scopes;
+}
+function encodeOriginalScopes(scopes) {
+ const writer = new StringWriter();
+ for (let i = 0; i < scopes.length; ) {
+ i = _encodeOriginalScopes(scopes, i, writer, [0]);
+ }
+ return writer.flush();
+}
+function _encodeOriginalScopes(scopes, index, writer, state) {
+ const scope = scopes[index];
+ const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;
+ if (index > 0) writer.write(comma);
+ state[0] = encodeInteger(writer, startLine, state[0]);
+ encodeInteger(writer, startColumn, 0);
+ encodeInteger(writer, kind, 0);
+ const fields = scope.length === 6 ? 1 : 0;
+ encodeInteger(writer, fields, 0);
+ if (scope.length === 6) encodeInteger(writer, scope[5], 0);
+ for (const v of vars) {
+ encodeInteger(writer, v, 0);
+ }
+ for (index++; index < scopes.length; ) {
+ const next = scopes[index];
+ const { 0: l, 1: c } = next;
+ if (l > endLine || l === endLine && c >= endColumn) {
+ break;
+ }
+ index = _encodeOriginalScopes(scopes, index, writer, state);
+ }
+ writer.write(comma);
+ state[0] = encodeInteger(writer, endLine, state[0]);
+ encodeInteger(writer, endColumn, 0);
+ return index;
+}
+function decodeGeneratedRanges(input) {
+ const { length } = input;
+ const reader = new StringReader(input);
+ const ranges = [];
+ const stack = [];
+ let genLine = 0;
+ let definitionSourcesIndex = 0;
+ let definitionScopeIndex = 0;
+ let callsiteSourcesIndex = 0;
+ let callsiteLine = 0;
+ let callsiteColumn = 0;
+ let bindingLine = 0;
+ let bindingColumn = 0;
+ do {
+ const semi = reader.indexOf(";");
+ let genColumn = 0;
+ for (; reader.pos < semi; reader.pos++) {
+ genColumn = decodeInteger(reader, genColumn);
+ if (!hasMoreVlq(reader, semi)) {
+ const last = stack.pop();
+ last[2] = genLine;
+ last[3] = genColumn;
+ continue;
+ }
+ const fields = decodeInteger(reader, 0);
+ const hasDefinition = fields & 1;
+ const hasCallsite = fields & 2;
+ const hasScope = fields & 4;
+ let callsite = null;
+ let bindings = EMPTY;
+ let range;
+ if (hasDefinition) {
+ const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);
+ definitionScopeIndex = decodeInteger(
+ reader,
+ definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0
+ );
+ definitionSourcesIndex = defSourcesIndex;
+ range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex];
+ } else {
+ range = [genLine, genColumn, 0, 0];
+ }
+ range.isScope = !!hasScope;
+ if (hasCallsite) {
+ const prevCsi = callsiteSourcesIndex;
+ const prevLine = callsiteLine;
+ callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);
+ const sameSource = prevCsi === callsiteSourcesIndex;
+ callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);
+ callsiteColumn = decodeInteger(
+ reader,
+ sameSource && prevLine === callsiteLine ? callsiteColumn : 0
+ );
+ callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];
+ }
+ range.callsite = callsite;
+ if (hasMoreVlq(reader, semi)) {
+ bindings = [];
+ do {
+ bindingLine = genLine;
+ bindingColumn = genColumn;
+ const expressionsCount = decodeInteger(reader, 0);
+ let expressionRanges;
+ if (expressionsCount < -1) {
+ expressionRanges = [[decodeInteger(reader, 0)]];
+ for (let i = -1; i > expressionsCount; i--) {
+ const prevBl = bindingLine;
+ bindingLine = decodeInteger(reader, bindingLine);
+ bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);
+ const expression = decodeInteger(reader, 0);
+ expressionRanges.push([expression, bindingLine, bindingColumn]);
+ }
+ } else {
+ expressionRanges = [[expressionsCount]];
+ }
+ bindings.push(expressionRanges);
+ } while (hasMoreVlq(reader, semi));
+ }
+ range.bindings = bindings;
+ ranges.push(range);
+ stack.push(range);
+ }
+ genLine++;
+ reader.pos = semi + 1;
+ } while (reader.pos < length);
+ return ranges;
+}
+function encodeGeneratedRanges(ranges) {
+ if (ranges.length === 0) return "";
+ const writer = new StringWriter();
+ for (let i = 0; i < ranges.length; ) {
+ i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);
+ }
+ return writer.flush();
+}
+function _encodeGeneratedRanges(ranges, index, writer, state) {
+ const range = ranges[index];
+ const {
+ 0: startLine,
+ 1: startColumn,
+ 2: endLine,
+ 3: endColumn,
+ isScope,
+ callsite,
+ bindings
+ } = range;
+ if (state[0] < startLine) {
+ catchupLine(writer, state[0], startLine);
+ state[0] = startLine;
+ state[1] = 0;
+ } else if (index > 0) {
+ writer.write(comma);
+ }
+ state[1] = encodeInteger(writer, range[1], state[1]);
+ const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0);
+ encodeInteger(writer, fields, 0);
+ if (range.length === 6) {
+ const { 4: sourcesIndex, 5: scopesIndex } = range;
+ if (sourcesIndex !== state[2]) {
+ state[3] = 0;
+ }
+ state[2] = encodeInteger(writer, sourcesIndex, state[2]);
+ state[3] = encodeInteger(writer, scopesIndex, state[3]);
+ }
+ if (callsite) {
+ const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite;
+ if (sourcesIndex !== state[4]) {
+ state[5] = 0;
+ state[6] = 0;
+ } else if (callLine !== state[5]) {
+ state[6] = 0;
+ }
+ state[4] = encodeInteger(writer, sourcesIndex, state[4]);
+ state[5] = encodeInteger(writer, callLine, state[5]);
+ state[6] = encodeInteger(writer, callColumn, state[6]);
+ }
+ if (bindings) {
+ for (const binding of bindings) {
+ if (binding.length > 1) encodeInteger(writer, -binding.length, 0);
+ const expression = binding[0][0];
+ encodeInteger(writer, expression, 0);
+ let bindingStartLine = startLine;
+ let bindingStartColumn = startColumn;
+ for (let i = 1; i < binding.length; i++) {
+ const expRange = binding[i];
+ bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine);
+ bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn);
+ encodeInteger(writer, expRange[0], 0);
+ }
+ }
+ }
+ for (index++; index < ranges.length; ) {
+ const next = ranges[index];
+ const { 0: l, 1: c } = next;
+ if (l > endLine || l === endLine && c >= endColumn) {
+ break;
+ }
+ index = _encodeGeneratedRanges(ranges, index, writer, state);
+ }
+ if (state[0] < endLine) {
+ catchupLine(writer, state[0], endLine);
+ state[0] = endLine;
+ state[1] = 0;
+ } else {
+ writer.write(comma);
+ }
+ state[1] = encodeInteger(writer, endColumn, state[1]);
+ return index;
+}
+function catchupLine(writer, lastLine, line) {
+ do {
+ writer.write(semicolon);
+ } while (++lastLine < line);
+}
+
+// src/sourcemap-codec.ts
+function decode(mappings) {
+ const { length } = mappings;
+ const reader = new StringReader(mappings);
+ const decoded = [];
+ let genColumn = 0;
+ let sourcesIndex = 0;
+ let sourceLine = 0;
+ let sourceColumn = 0;
+ let namesIndex = 0;
+ do {
+ const semi = reader.indexOf(";");
+ const line = [];
+ let sorted = true;
+ let lastCol = 0;
+ genColumn = 0;
+ while (reader.pos < semi) {
+ let seg;
+ genColumn = decodeInteger(reader, genColumn);
+ if (genColumn < lastCol) sorted = false;
+ lastCol = genColumn;
+ if (hasMoreVlq(reader, semi)) {
+ sourcesIndex = decodeInteger(reader, sourcesIndex);
+ sourceLine = decodeInteger(reader, sourceLine);
+ sourceColumn = decodeInteger(reader, sourceColumn);
+ if (hasMoreVlq(reader, semi)) {
+ namesIndex = decodeInteger(reader, namesIndex);
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];
+ } else {
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];
+ }
+ } else {
+ seg = [genColumn];
+ }
+ line.push(seg);
+ reader.pos++;
+ }
+ if (!sorted) sort(line);
+ decoded.push(line);
+ reader.pos = semi + 1;
+ } while (reader.pos <= length);
+ return decoded;
+}
+function sort(line) {
+ line.sort(sortComparator);
+}
+function sortComparator(a, b) {
+ return a[0] - b[0];
+}
+function encode(decoded) {
+ const writer = new StringWriter();
+ let sourcesIndex = 0;
+ let sourceLine = 0;
+ let sourceColumn = 0;
+ let namesIndex = 0;
+ for (let i = 0; i < decoded.length; i++) {
+ const line = decoded[i];
+ if (i > 0) writer.write(semicolon);
+ if (line.length === 0) continue;
+ let genColumn = 0;
+ for (let j = 0; j < line.length; j++) {
+ const segment = line[j];
+ if (j > 0) writer.write(comma);
+ genColumn = encodeInteger(writer, segment[0], genColumn);
+ if (segment.length === 1) continue;
+ sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);
+ sourceLine = encodeInteger(writer, segment[2], sourceLine);
+ sourceColumn = encodeInteger(writer, segment[3], sourceColumn);
+ if (segment.length === 4) continue;
+ namesIndex = encodeInteger(writer, segment[4], namesIndex);
+ }
+ }
+ return writer.flush();
+}
+}));
+//# sourceMappingURL=sourcemap-codec.umd.js.map
diff --git a/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map
new file mode 100644
index 0000000..abc18d2
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map
@@ -0,0 +1,6 @@
+{
+ "version": 3,
+ "sources": ["../src/sourcemap-codec.ts", "../src/vlq.ts", "../src/strings.ts", "../src/scopes.ts"],
+ "mappings": "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",
+ "names": []
+}
diff --git a/node_modules/@jridgewell/sourcemap-codec/package.json b/node_modules/@jridgewell/sourcemap-codec/package.json
new file mode 100644
index 0000000..da55137
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/package.json
@@ -0,0 +1,63 @@
+{
+ "name": "@jridgewell/sourcemap-codec",
+ "version": "1.5.5",
+ "description": "Encode/decode sourcemap mappings",
+ "keywords": [
+ "sourcemap",
+ "vlq"
+ ],
+ "main": "dist/sourcemap-codec.umd.js",
+ "module": "dist/sourcemap-codec.mjs",
+ "types": "types/sourcemap-codec.d.cts",
+ "files": [
+ "dist",
+ "src",
+ "types"
+ ],
+ "exports": {
+ ".": [
+ {
+ "import": {
+ "types": "./types/sourcemap-codec.d.mts",
+ "default": "./dist/sourcemap-codec.mjs"
+ },
+ "default": {
+ "types": "./types/sourcemap-codec.d.cts",
+ "default": "./dist/sourcemap-codec.umd.js"
+ }
+ },
+ "./dist/sourcemap-codec.umd.js"
+ ],
+ "./package.json": "./package.json"
+ },
+ "scripts": {
+ "benchmark": "run-s build:code benchmark:*",
+ "benchmark:install": "cd benchmark && npm install",
+ "benchmark:only": "node --expose-gc benchmark/index.js",
+ "build": "run-s -n build:code build:types",
+ "build:code": "node ../../esbuild.mjs sourcemap-codec.ts",
+ "build:types": "run-s build:types:force build:types:emit build:types:mts",
+ "build:types:force": "rimraf tsconfig.build.tsbuildinfo",
+ "build:types:emit": "tsc --project tsconfig.build.json",
+ "build:types:mts": "node ../../mts-types.mjs",
+ "clean": "run-s -n clean:code clean:types",
+ "clean:code": "tsc --build --clean tsconfig.build.json",
+ "clean:types": "rimraf dist types",
+ "test": "run-s -n test:types test:only test:format",
+ "test:format": "prettier --check '{src,test}/**/*.ts'",
+ "test:only": "mocha",
+ "test:types": "eslint '{src,test}/**/*.ts'",
+ "lint": "run-s -n lint:types lint:format",
+ "lint:format": "npm run test:format -- --write",
+ "lint:types": "npm run test:types -- --fix",
+ "prepublishOnly": "npm run-s -n build test"
+ },
+ "homepage": "https://github.com/jridgewell/sourcemaps/tree/main/packages/sourcemap-codec",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jridgewell/sourcemaps.git",
+ "directory": "packages/sourcemap-codec"
+ },
+ "author": "Justin Ridgewell ",
+ "license": "MIT"
+}
diff --git a/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts b/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts
new file mode 100644
index 0000000..d194c2f
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/src/scopes.ts
@@ -0,0 +1,345 @@
+import { StringReader, StringWriter } from './strings';
+import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq';
+
+const EMPTY: any[] = [];
+
+type Line = number;
+type Column = number;
+type Kind = number;
+type Name = number;
+type Var = number;
+type SourcesIndex = number;
+type ScopesIndex = number;
+
+type Mix = (A & O) | (B & O);
+
+export type OriginalScope = Mix<
+ [Line, Column, Line, Column, Kind],
+ [Line, Column, Line, Column, Kind, Name],
+ { vars: Var[] }
+>;
+
+export type GeneratedRange = Mix<
+ [Line, Column, Line, Column],
+ [Line, Column, Line, Column, SourcesIndex, ScopesIndex],
+ {
+ callsite: CallSite | null;
+ bindings: Binding[];
+ isScope: boolean;
+ }
+>;
+export type CallSite = [SourcesIndex, Line, Column];
+type Binding = BindingExpressionRange[];
+export type BindingExpressionRange = [Name] | [Name, Line, Column];
+
+export function decodeOriginalScopes(input: string): OriginalScope[] {
+ const { length } = input;
+ const reader = new StringReader(input);
+ const scopes: OriginalScope[] = [];
+ const stack: OriginalScope[] = [];
+ let line = 0;
+
+ for (; reader.pos < length; reader.pos++) {
+ line = decodeInteger(reader, line);
+ const column = decodeInteger(reader, 0);
+
+ if (!hasMoreVlq(reader, length)) {
+ const last = stack.pop()!;
+ last[2] = line;
+ last[3] = column;
+ continue;
+ }
+
+ const kind = decodeInteger(reader, 0);
+ const fields = decodeInteger(reader, 0);
+ const hasName = fields & 0b0001;
+
+ const scope: OriginalScope = (
+ hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]
+ ) as OriginalScope;
+
+ let vars: Var[] = EMPTY;
+ if (hasMoreVlq(reader, length)) {
+ vars = [];
+ do {
+ const varsIndex = decodeInteger(reader, 0);
+ vars.push(varsIndex);
+ } while (hasMoreVlq(reader, length));
+ }
+ scope.vars = vars;
+
+ scopes.push(scope);
+ stack.push(scope);
+ }
+
+ return scopes;
+}
+
+export function encodeOriginalScopes(scopes: OriginalScope[]): string {
+ const writer = new StringWriter();
+
+ for (let i = 0; i < scopes.length; ) {
+ i = _encodeOriginalScopes(scopes, i, writer, [0]);
+ }
+
+ return writer.flush();
+}
+
+function _encodeOriginalScopes(
+ scopes: OriginalScope[],
+ index: number,
+ writer: StringWriter,
+ state: [
+ number, // GenColumn
+ ],
+): number {
+ const scope = scopes[index];
+ const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope;
+
+ if (index > 0) writer.write(comma);
+
+ state[0] = encodeInteger(writer, startLine, state[0]);
+ encodeInteger(writer, startColumn, 0);
+ encodeInteger(writer, kind, 0);
+
+ const fields = scope.length === 6 ? 0b0001 : 0;
+ encodeInteger(writer, fields, 0);
+ if (scope.length === 6) encodeInteger(writer, scope[5], 0);
+
+ for (const v of vars) {
+ encodeInteger(writer, v, 0);
+ }
+
+ for (index++; index < scopes.length; ) {
+ const next = scopes[index];
+ const { 0: l, 1: c } = next;
+ if (l > endLine || (l === endLine && c >= endColumn)) {
+ break;
+ }
+ index = _encodeOriginalScopes(scopes, index, writer, state);
+ }
+
+ writer.write(comma);
+ state[0] = encodeInteger(writer, endLine, state[0]);
+ encodeInteger(writer, endColumn, 0);
+
+ return index;
+}
+
+export function decodeGeneratedRanges(input: string): GeneratedRange[] {
+ const { length } = input;
+ const reader = new StringReader(input);
+ const ranges: GeneratedRange[] = [];
+ const stack: GeneratedRange[] = [];
+
+ let genLine = 0;
+ let definitionSourcesIndex = 0;
+ let definitionScopeIndex = 0;
+ let callsiteSourcesIndex = 0;
+ let callsiteLine = 0;
+ let callsiteColumn = 0;
+ let bindingLine = 0;
+ let bindingColumn = 0;
+
+ do {
+ const semi = reader.indexOf(';');
+ let genColumn = 0;
+
+ for (; reader.pos < semi; reader.pos++) {
+ genColumn = decodeInteger(reader, genColumn);
+
+ if (!hasMoreVlq(reader, semi)) {
+ const last = stack.pop()!;
+ last[2] = genLine;
+ last[3] = genColumn;
+ continue;
+ }
+
+ const fields = decodeInteger(reader, 0);
+ const hasDefinition = fields & 0b0001;
+ const hasCallsite = fields & 0b0010;
+ const hasScope = fields & 0b0100;
+
+ let callsite: CallSite | null = null;
+ let bindings: Binding[] = EMPTY;
+ let range: GeneratedRange;
+ if (hasDefinition) {
+ const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex);
+ definitionScopeIndex = decodeInteger(
+ reader,
+ definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0,
+ );
+
+ definitionSourcesIndex = defSourcesIndex;
+ range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex] as GeneratedRange;
+ } else {
+ range = [genLine, genColumn, 0, 0] as GeneratedRange;
+ }
+
+ range.isScope = !!hasScope;
+
+ if (hasCallsite) {
+ const prevCsi = callsiteSourcesIndex;
+ const prevLine = callsiteLine;
+ callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex);
+ const sameSource = prevCsi === callsiteSourcesIndex;
+ callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0);
+ callsiteColumn = decodeInteger(
+ reader,
+ sameSource && prevLine === callsiteLine ? callsiteColumn : 0,
+ );
+
+ callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn];
+ }
+ range.callsite = callsite;
+
+ if (hasMoreVlq(reader, semi)) {
+ bindings = [];
+ do {
+ bindingLine = genLine;
+ bindingColumn = genColumn;
+ const expressionsCount = decodeInteger(reader, 0);
+ let expressionRanges: BindingExpressionRange[];
+ if (expressionsCount < -1) {
+ expressionRanges = [[decodeInteger(reader, 0)]];
+ for (let i = -1; i > expressionsCount; i--) {
+ const prevBl = bindingLine;
+ bindingLine = decodeInteger(reader, bindingLine);
+ bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0);
+ const expression = decodeInteger(reader, 0);
+ expressionRanges.push([expression, bindingLine, bindingColumn]);
+ }
+ } else {
+ expressionRanges = [[expressionsCount]];
+ }
+ bindings.push(expressionRanges);
+ } while (hasMoreVlq(reader, semi));
+ }
+ range.bindings = bindings;
+
+ ranges.push(range);
+ stack.push(range);
+ }
+
+ genLine++;
+ reader.pos = semi + 1;
+ } while (reader.pos < length);
+
+ return ranges;
+}
+
+export function encodeGeneratedRanges(ranges: GeneratedRange[]): string {
+ if (ranges.length === 0) return '';
+
+ const writer = new StringWriter();
+
+ for (let i = 0; i < ranges.length; ) {
+ i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]);
+ }
+
+ return writer.flush();
+}
+
+function _encodeGeneratedRanges(
+ ranges: GeneratedRange[],
+ index: number,
+ writer: StringWriter,
+ state: [
+ number, // GenLine
+ number, // GenColumn
+ number, // DefSourcesIndex
+ number, // DefScopesIndex
+ number, // CallSourcesIndex
+ number, // CallLine
+ number, // CallColumn
+ ],
+): number {
+ const range = ranges[index];
+ const {
+ 0: startLine,
+ 1: startColumn,
+ 2: endLine,
+ 3: endColumn,
+ isScope,
+ callsite,
+ bindings,
+ } = range;
+
+ if (state[0] < startLine) {
+ catchupLine(writer, state[0], startLine);
+ state[0] = startLine;
+ state[1] = 0;
+ } else if (index > 0) {
+ writer.write(comma);
+ }
+
+ state[1] = encodeInteger(writer, range[1], state[1]);
+
+ const fields =
+ (range.length === 6 ? 0b0001 : 0) | (callsite ? 0b0010 : 0) | (isScope ? 0b0100 : 0);
+ encodeInteger(writer, fields, 0);
+
+ if (range.length === 6) {
+ const { 4: sourcesIndex, 5: scopesIndex } = range;
+ if (sourcesIndex !== state[2]) {
+ state[3] = 0;
+ }
+ state[2] = encodeInteger(writer, sourcesIndex, state[2]);
+ state[3] = encodeInteger(writer, scopesIndex, state[3]);
+ }
+
+ if (callsite) {
+ const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite!;
+ if (sourcesIndex !== state[4]) {
+ state[5] = 0;
+ state[6] = 0;
+ } else if (callLine !== state[5]) {
+ state[6] = 0;
+ }
+ state[4] = encodeInteger(writer, sourcesIndex, state[4]);
+ state[5] = encodeInteger(writer, callLine, state[5]);
+ state[6] = encodeInteger(writer, callColumn, state[6]);
+ }
+
+ if (bindings) {
+ for (const binding of bindings) {
+ if (binding.length > 1) encodeInteger(writer, -binding.length, 0);
+ const expression = binding[0][0];
+ encodeInteger(writer, expression, 0);
+ let bindingStartLine = startLine;
+ let bindingStartColumn = startColumn;
+ for (let i = 1; i < binding.length; i++) {
+ const expRange = binding[i];
+ bindingStartLine = encodeInteger(writer, expRange[1]!, bindingStartLine);
+ bindingStartColumn = encodeInteger(writer, expRange[2]!, bindingStartColumn);
+ encodeInteger(writer, expRange[0]!, 0);
+ }
+ }
+ }
+
+ for (index++; index < ranges.length; ) {
+ const next = ranges[index];
+ const { 0: l, 1: c } = next;
+ if (l > endLine || (l === endLine && c >= endColumn)) {
+ break;
+ }
+ index = _encodeGeneratedRanges(ranges, index, writer, state);
+ }
+
+ if (state[0] < endLine) {
+ catchupLine(writer, state[0], endLine);
+ state[0] = endLine;
+ state[1] = 0;
+ } else {
+ writer.write(comma);
+ }
+ state[1] = encodeInteger(writer, endColumn, state[1]);
+
+ return index;
+}
+
+function catchupLine(writer: StringWriter, lastLine: number, line: number) {
+ do {
+ writer.write(semicolon);
+ } while (++lastLine < line);
+}
diff --git a/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts b/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts
new file mode 100644
index 0000000..a81f894
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/src/sourcemap-codec.ts
@@ -0,0 +1,111 @@
+import { comma, decodeInteger, encodeInteger, hasMoreVlq, semicolon } from './vlq';
+import { StringWriter, StringReader } from './strings';
+
+export {
+ decodeOriginalScopes,
+ encodeOriginalScopes,
+ decodeGeneratedRanges,
+ encodeGeneratedRanges,
+} from './scopes';
+export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes';
+
+export type SourceMapSegment =
+ | [number]
+ | [number, number, number, number]
+ | [number, number, number, number, number];
+export type SourceMapLine = SourceMapSegment[];
+export type SourceMapMappings = SourceMapLine[];
+
+export function decode(mappings: string): SourceMapMappings {
+ const { length } = mappings;
+ const reader = new StringReader(mappings);
+ const decoded: SourceMapMappings = [];
+ let genColumn = 0;
+ let sourcesIndex = 0;
+ let sourceLine = 0;
+ let sourceColumn = 0;
+ let namesIndex = 0;
+
+ do {
+ const semi = reader.indexOf(';');
+ const line: SourceMapLine = [];
+ let sorted = true;
+ let lastCol = 0;
+ genColumn = 0;
+
+ while (reader.pos < semi) {
+ let seg: SourceMapSegment;
+
+ genColumn = decodeInteger(reader, genColumn);
+ if (genColumn < lastCol) sorted = false;
+ lastCol = genColumn;
+
+ if (hasMoreVlq(reader, semi)) {
+ sourcesIndex = decodeInteger(reader, sourcesIndex);
+ sourceLine = decodeInteger(reader, sourceLine);
+ sourceColumn = decodeInteger(reader, sourceColumn);
+
+ if (hasMoreVlq(reader, semi)) {
+ namesIndex = decodeInteger(reader, namesIndex);
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];
+ } else {
+ seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];
+ }
+ } else {
+ seg = [genColumn];
+ }
+
+ line.push(seg);
+ reader.pos++;
+ }
+
+ if (!sorted) sort(line);
+ decoded.push(line);
+ reader.pos = semi + 1;
+ } while (reader.pos <= length);
+
+ return decoded;
+}
+
+function sort(line: SourceMapSegment[]) {
+ line.sort(sortComparator);
+}
+
+function sortComparator(a: SourceMapSegment, b: SourceMapSegment): number {
+ return a[0] - b[0];
+}
+
+export function encode(decoded: SourceMapMappings): string;
+export function encode(decoded: Readonly): string;
+export function encode(decoded: Readonly): string {
+ const writer = new StringWriter();
+ let sourcesIndex = 0;
+ let sourceLine = 0;
+ let sourceColumn = 0;
+ let namesIndex = 0;
+
+ for (let i = 0; i < decoded.length; i++) {
+ const line = decoded[i];
+ if (i > 0) writer.write(semicolon);
+ if (line.length === 0) continue;
+
+ let genColumn = 0;
+
+ for (let j = 0; j < line.length; j++) {
+ const segment = line[j];
+ if (j > 0) writer.write(comma);
+
+ genColumn = encodeInteger(writer, segment[0], genColumn);
+
+ if (segment.length === 1) continue;
+ sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);
+ sourceLine = encodeInteger(writer, segment[2], sourceLine);
+ sourceColumn = encodeInteger(writer, segment[3], sourceColumn);
+
+ if (segment.length === 4) continue;
+ namesIndex = encodeInteger(writer, segment[4], namesIndex);
+ }
+ }
+
+ return writer.flush();
+}
diff --git a/node_modules/@jridgewell/sourcemap-codec/src/strings.ts b/node_modules/@jridgewell/sourcemap-codec/src/strings.ts
new file mode 100644
index 0000000..d161965
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/src/strings.ts
@@ -0,0 +1,65 @@
+const bufLength = 1024 * 16;
+
+// Provide a fallback for older environments.
+const td =
+ typeof TextDecoder !== 'undefined'
+ ? /* #__PURE__ */ new TextDecoder()
+ : typeof Buffer !== 'undefined'
+ ? {
+ decode(buf: Uint8Array): string {
+ const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
+ return out.toString();
+ },
+ }
+ : {
+ decode(buf: Uint8Array): string {
+ let out = '';
+ for (let i = 0; i < buf.length; i++) {
+ out += String.fromCharCode(buf[i]);
+ }
+ return out;
+ },
+ };
+
+export class StringWriter {
+ pos = 0;
+ private out = '';
+ private buffer = new Uint8Array(bufLength);
+
+ write(v: number): void {
+ const { buffer } = this;
+ buffer[this.pos++] = v;
+ if (this.pos === bufLength) {
+ this.out += td.decode(buffer);
+ this.pos = 0;
+ }
+ }
+
+ flush(): string {
+ const { buffer, out, pos } = this;
+ return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;
+ }
+}
+
+export class StringReader {
+ pos = 0;
+ declare private buffer: string;
+
+ constructor(buffer: string) {
+ this.buffer = buffer;
+ }
+
+ next(): number {
+ return this.buffer.charCodeAt(this.pos++);
+ }
+
+ peek(): number {
+ return this.buffer.charCodeAt(this.pos);
+ }
+
+ indexOf(char: string): number {
+ const { buffer, pos } = this;
+ const idx = buffer.indexOf(char, pos);
+ return idx === -1 ? buffer.length : idx;
+ }
+}
diff --git a/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts b/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts
new file mode 100644
index 0000000..a42c681
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts
@@ -0,0 +1,55 @@
+import type { StringReader, StringWriter } from './strings';
+
+export const comma = ','.charCodeAt(0);
+export 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;
+}
+
+export function decodeInteger(reader: StringReader, relative: number): number {
+ let value = 0;
+ let shift = 0;
+ let integer = 0;
+
+ do {
+ const c = reader.next();
+ integer = charToInt[c];
+ value |= (integer & 31) << shift;
+ shift += 5;
+ } while (integer & 32);
+
+ const shouldNegate = value & 1;
+ value >>>= 1;
+
+ if (shouldNegate) {
+ value = -0x80000000 | -value;
+ }
+
+ return relative + value;
+}
+
+export function encodeInteger(builder: StringWriter, num: number, relative: number): number {
+ let delta = num - relative;
+
+ delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;
+ do {
+ let clamped = delta & 0b011111;
+ delta >>>= 5;
+ if (delta > 0) clamped |= 0b100000;
+ builder.write(intToChar[clamped]);
+ } while (delta > 0);
+
+ return num;
+}
+
+export function hasMoreVlq(reader: StringReader, max: number) {
+ if (reader.pos >= max) return false;
+ return reader.peek() !== comma;
+}
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts
new file mode 100644
index 0000000..c583c75
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts
@@ -0,0 +1,50 @@
+type Line = number;
+type Column = number;
+type Kind = number;
+type Name = number;
+type Var = number;
+type SourcesIndex = number;
+type ScopesIndex = number;
+type Mix = (A & O) | (B & O);
+export type OriginalScope = Mix<[
+ Line,
+ Column,
+ Line,
+ Column,
+ Kind
+], [
+ Line,
+ Column,
+ Line,
+ Column,
+ Kind,
+ Name
+], {
+ vars: Var[];
+}>;
+export type GeneratedRange = Mix<[
+ Line,
+ Column,
+ Line,
+ Column
+], [
+ Line,
+ Column,
+ Line,
+ Column,
+ SourcesIndex,
+ ScopesIndex
+], {
+ callsite: CallSite | null;
+ bindings: Binding[];
+ isScope: boolean;
+}>;
+export type CallSite = [SourcesIndex, Line, Column];
+type Binding = BindingExpressionRange[];
+export type BindingExpressionRange = [Name] | [Name, Line, Column];
+export declare function decodeOriginalScopes(input: string): OriginalScope[];
+export declare function encodeOriginalScopes(scopes: OriginalScope[]): string;
+export declare function decodeGeneratedRanges(input: string): GeneratedRange[];
+export declare function encodeGeneratedRanges(ranges: GeneratedRange[]): string;
+export {};
+//# sourceMappingURL=scopes.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map
new file mode 100644
index 0000000..630e647
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.cts.map
@@ -0,0 +1 @@
+{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAKA,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;CAAC,EAClC;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,IAAI;CAAC,EACxC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,GAAG,CAC9B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;CAAC,EAC5B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,YAAY;IAAE,WAAW;CAAC,EACvD;IACE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK,OAAO,GAAG,sBAAsB,EAAE,CAAC;AACxC,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAyCnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAQpE;AA2CD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAoGrE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAUtE"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts
new file mode 100644
index 0000000..c583c75
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts
@@ -0,0 +1,50 @@
+type Line = number;
+type Column = number;
+type Kind = number;
+type Name = number;
+type Var = number;
+type SourcesIndex = number;
+type ScopesIndex = number;
+type Mix = (A & O) | (B & O);
+export type OriginalScope = Mix<[
+ Line,
+ Column,
+ Line,
+ Column,
+ Kind
+], [
+ Line,
+ Column,
+ Line,
+ Column,
+ Kind,
+ Name
+], {
+ vars: Var[];
+}>;
+export type GeneratedRange = Mix<[
+ Line,
+ Column,
+ Line,
+ Column
+], [
+ Line,
+ Column,
+ Line,
+ Column,
+ SourcesIndex,
+ ScopesIndex
+], {
+ callsite: CallSite | null;
+ bindings: Binding[];
+ isScope: boolean;
+}>;
+export type CallSite = [SourcesIndex, Line, Column];
+type Binding = BindingExpressionRange[];
+export type BindingExpressionRange = [Name] | [Name, Line, Column];
+export declare function decodeOriginalScopes(input: string): OriginalScope[];
+export declare function encodeOriginalScopes(scopes: OriginalScope[]): string;
+export declare function decodeGeneratedRanges(input: string): GeneratedRange[];
+export declare function encodeGeneratedRanges(ranges: GeneratedRange[]): string;
+export {};
+//# sourceMappingURL=scopes.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map
new file mode 100644
index 0000000..630e647
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/scopes.d.mts.map
@@ -0,0 +1 @@
+{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAKA,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,IAAI,GAAG,MAAM,CAAC;AACnB,KAAK,GAAG,GAAG,MAAM,CAAC;AAClB,KAAK,YAAY,GAAG,MAAM,CAAC;AAC3B,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,aAAa,GAAG,GAAG,CAC7B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;CAAC,EAClC;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,IAAI;CAAC,EACxC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,GAAG,CAC9B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;CAAC,EAC5B;IAAC,IAAI;IAAE,MAAM;IAAE,IAAI;IAAE,MAAM;IAAE,YAAY;IAAE,WAAW;CAAC,EACvD;IACE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB,CACF,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,KAAK,OAAO,GAAG,sBAAsB,EAAE,CAAC;AACxC,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAEnE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAyCnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAQpE;AA2CD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAoGrE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAUtE"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts
new file mode 100644
index 0000000..5f35e22
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts
@@ -0,0 +1,9 @@
+export { decodeOriginalScopes, encodeOriginalScopes, decodeGeneratedRanges, encodeGeneratedRanges, } from './scopes.cts';
+export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes.cts';
+export type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
+export type SourceMapLine = SourceMapSegment[];
+export type SourceMapMappings = SourceMapLine[];
+export declare function decode(mappings: string): SourceMapMappings;
+export declare function encode(decoded: SourceMapMappings): string;
+export declare function encode(decoded: Readonly): string;
+//# sourceMappingURL=sourcemap-codec.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map
new file mode 100644
index 0000000..7123d52
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.cts.map
@@ -0,0 +1 @@
+{"version":3,"file":"sourcemap-codec.d.ts","sourceRoot":"","sources":["../src/sourcemap-codec.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GACxB,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiD1D;AAUD,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC;AAC3D,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
new file mode 100644
index 0000000..199fb9f
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
@@ -0,0 +1,9 @@
+export { decodeOriginalScopes, encodeOriginalScopes, decodeGeneratedRanges, encodeGeneratedRanges, } from './scopes.mts';
+export type { OriginalScope, GeneratedRange, CallSite, BindingExpressionRange } from './scopes.mts';
+export type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
+export type SourceMapLine = SourceMapSegment[];
+export type SourceMapMappings = SourceMapLine[];
+export declare function decode(mappings: string): SourceMapMappings;
+export declare function encode(decoded: SourceMapMappings): string;
+export declare function encode(decoded: Readonly): string;
+//# sourceMappingURL=sourcemap-codec.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map
new file mode 100644
index 0000000..7123d52
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts.map
@@ -0,0 +1 @@
+{"version":3,"file":"sourcemap-codec.d.ts","sourceRoot":"","sources":["../src/sourcemap-codec.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEhG,MAAM,MAAM,gBAAgB,GACxB,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAChC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;AAC/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;AAEhD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAiD1D;AAUD,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC;AAC3D,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts
new file mode 100644
index 0000000..62faceb
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts
@@ -0,0 +1,16 @@
+export declare class StringWriter {
+ pos: number;
+ private out;
+ private buffer;
+ write(v: number): void;
+ flush(): string;
+}
+export declare class StringReader {
+ pos: number;
+ private buffer;
+ constructor(buffer: string);
+ next(): number;
+ peek(): number;
+ indexOf(char: string): number;
+}
+//# sourceMappingURL=strings.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map
new file mode 100644
index 0000000..d3602da
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.cts.map
@@ -0,0 +1 @@
+{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAuBA,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAA6B;IAE3C,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAStB,KAAK,IAAI,MAAM;CAIhB;AAED,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,QAAgB,MAAM,CAAS;gBAEnB,MAAM,EAAE,MAAM;IAI1B,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAK9B"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts
new file mode 100644
index 0000000..62faceb
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts
@@ -0,0 +1,16 @@
+export declare class StringWriter {
+ pos: number;
+ private out;
+ private buffer;
+ write(v: number): void;
+ flush(): string;
+}
+export declare class StringReader {
+ pos: number;
+ private buffer;
+ constructor(buffer: string);
+ next(): number;
+ peek(): number;
+ indexOf(char: string): number;
+}
+//# sourceMappingURL=strings.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map
new file mode 100644
index 0000000..d3602da
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/strings.d.mts.map
@@ -0,0 +1 @@
+{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../src/strings.ts"],"names":[],"mappings":"AAuBA,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,MAAM,CAA6B;IAE3C,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAStB,KAAK,IAAI,MAAM;CAIhB;AAED,qBAAa,YAAY;IACvB,GAAG,SAAK;IACR,QAAgB,MAAM,CAAS;gBAEnB,MAAM,EAAE,MAAM;IAI1B,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAId,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAK9B"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts
new file mode 100644
index 0000000..dbd6602
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts
@@ -0,0 +1,7 @@
+import type { StringReader, StringWriter } from './strings.cts';
+export declare const comma: number;
+export declare const semicolon: number;
+export declare function decodeInteger(reader: StringReader, relative: number): number;
+export declare function encodeInteger(builder: StringWriter, num: number, relative: number): number;
+export declare function hasMoreVlq(reader: StringReader, max: number): boolean;
+//# sourceMappingURL=vlq.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map
new file mode 100644
index 0000000..6fdc356
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.cts.map
@@ -0,0 +1 @@
+{"version":3,"file":"vlq.d.ts","sourceRoot":"","sources":["../src/vlq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,KAAK,QAAoB,CAAC;AACvC,eAAO,MAAM,SAAS,QAAoB,CAAC;AAY3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1F;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,WAG3D"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts
new file mode 100644
index 0000000..2c739bc
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts
@@ -0,0 +1,7 @@
+import type { StringReader, StringWriter } from './strings.mts';
+export declare const comma: number;
+export declare const semicolon: number;
+export declare function decodeInteger(reader: StringReader, relative: number): number;
+export declare function encodeInteger(builder: StringWriter, num: number, relative: number): number;
+export declare function hasMoreVlq(reader: StringReader, max: number): boolean;
+//# sourceMappingURL=vlq.d.ts.map
\ No newline at end of file
diff --git a/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map
new file mode 100644
index 0000000..6fdc356
--- /dev/null
+++ b/node_modules/@jridgewell/sourcemap-codec/types/vlq.d.mts.map
@@ -0,0 +1 @@
+{"version":3,"file":"vlq.d.ts","sourceRoot":"","sources":["../src/vlq.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,KAAK,QAAoB,CAAC;AACvC,eAAO,MAAM,SAAS,QAAoB,CAAC;AAY3C,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1F;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,WAG3D"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/trace-mapping/LICENSE b/node_modules/@jridgewell/trace-mapping/LICENSE
new file mode 100644
index 0000000..37bb488
--- /dev/null
+++ b/node_modules/@jridgewell/trace-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/trace-mapping/README.md b/node_modules/@jridgewell/trace-mapping/README.md
new file mode 100644
index 0000000..8286cee
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/README.md
@@ -0,0 +1,193 @@
+# @jridgewell/trace-mapping
+
+> Trace the original position through a source map
+
+`trace-mapping` allows you to take the line and column of an output file and trace it to the
+original location in the source file through a source map.
+
+You may already be familiar with the [`source-map`][source-map] package's `SourceMapConsumer`. This
+provides the same `originalPositionFor` and `generatedPositionFor` API, without requiring WASM.
+
+## Installation
+
+```sh
+npm install @jridgewell/trace-mapping
+```
+
+## Usage
+
+```typescript
+import { TraceMap, originalPositionFor, generatedPositionFor } from '@jridgewell/trace-mapping';
+
+const tracer = new TraceMap({
+ version: 3,
+ sources: ['input.js'],
+ names: ['foo'],
+ mappings: 'KAyCIA',
+});
+
+// Lines start at line 1, columns at column 0.
+const traced = originalPositionFor(tracer, { line: 1, column: 5 });
+assert.deepEqual(traced, {
+ source: 'input.js',
+ line: 42,
+ column: 4,
+ name: 'foo',
+});
+
+const generated = generatedPositionFor(tracer, {
+ source: 'input.js',
+ line: 42,
+ column: 4,
+});
+assert.deepEqual(generated, {
+ line: 1,
+ column: 5,
+});
+```
+
+We also provide a lower level API to get the actual segment that matches our line and column. Unlike
+`originalPositionFor`, `traceSegment` uses a 0-base for `line`:
+
+```typescript
+import { traceSegment } from '@jridgewell/trace-mapping';
+
+// line is 0-base.
+const traced = traceSegment(tracer, /* line */ 0, /* column */ 5);
+
+// Segments are [outputColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]
+// Again, line is 0-base and so is sourceLine
+assert.deepEqual(traced, [5, 0, 41, 4, 0]);
+```
+
+### SectionedSourceMaps
+
+The sourcemap spec defines a special `sections` field that's designed to handle concatenation of
+output code with associated sourcemaps. This type of sourcemap is rarely used (no major build tool
+produces it), but if you are hand coding a concatenation you may need it. We provide an `AnyMap`
+helper that can receive either a regular sourcemap or a `SectionedSourceMap` and returns a
+`TraceMap` instance:
+
+```typescript
+import { AnyMap } from '@jridgewell/trace-mapping';
+const fooOutput = 'foo';
+const barOutput = 'bar';
+const output = [fooOutput, barOutput].join('\n');
+
+const sectioned = new AnyMap({
+ version: 3,
+ sections: [
+ {
+ // 0-base line and column
+ offset: { line: 0, column: 0 },
+ // fooOutput's sourcemap
+ map: {
+ version: 3,
+ sources: ['foo.js'],
+ names: ['foo'],
+ mappings: 'AAAAA',
+ },
+ },
+ {
+ // barOutput's sourcemap will not affect the first line, only the second
+ offset: { line: 1, column: 0 },
+ map: {
+ version: 3,
+ sources: ['bar.js'],
+ names: ['bar'],
+ mappings: 'AAAAA',
+ },
+ },
+ ],
+});
+
+const traced = originalPositionFor(sectioned, {
+ line: 2,
+ column: 0,
+});
+
+assert.deepEqual(traced, {
+ source: 'bar.js',
+ line: 1,
+ column: 0,
+ name: 'bar',
+});
+```
+
+## Benchmarks
+
+```
+node v18.0.0
+
+amp.js.map
+trace-mapping: decoded JSON input x 183 ops/sec ±0.41% (87 runs sampled)
+trace-mapping: encoded JSON input x 384 ops/sec ±0.89% (89 runs sampled)
+trace-mapping: decoded Object input x 3,085 ops/sec ±0.24% (100 runs sampled)
+trace-mapping: encoded Object input x 452 ops/sec ±0.80% (84 runs sampled)
+source-map-js: encoded Object input x 88.82 ops/sec ±0.45% (77 runs sampled)
+source-map-0.6.1: encoded Object input x 38.39 ops/sec ±1.88% (52 runs sampled)
+Fastest is trace-mapping: decoded Object input
+
+trace-mapping: decoded originalPositionFor x 4,025,347 ops/sec ±0.15% (97 runs sampled)
+trace-mapping: encoded originalPositionFor x 3,333,136 ops/sec ±1.26% (90 runs sampled)
+source-map-js: encoded originalPositionFor x 824,978 ops/sec ±1.06% (94 runs sampled)
+source-map-0.6.1: encoded originalPositionFor x 741,300 ops/sec ±0.93% (92 runs sampled)
+source-map-0.8.0: encoded originalPositionFor x 2,587,603 ops/sec ±0.75% (97 runs sampled)
+Fastest is trace-mapping: decoded originalPositionFor
+
+***
+
+babel.min.js.map
+trace-mapping: decoded JSON input x 17.43 ops/sec ±8.81% (33 runs sampled)
+trace-mapping: encoded JSON input x 34.18 ops/sec ±4.67% (50 runs sampled)
+trace-mapping: decoded Object input x 1,010 ops/sec ±0.41% (98 runs sampled)
+trace-mapping: encoded Object input x 39.45 ops/sec ±4.01% (52 runs sampled)
+source-map-js: encoded Object input x 6.57 ops/sec ±3.04% (21 runs sampled)
+source-map-0.6.1: encoded Object input x 4.23 ops/sec ±2.93% (15 runs sampled)
+Fastest is trace-mapping: decoded Object input
+
+trace-mapping: decoded originalPositionFor x 7,576,265 ops/sec ±0.74% (96 runs sampled)
+trace-mapping: encoded originalPositionFor x 5,019,743 ops/sec ±0.74% (94 runs sampled)
+source-map-js: encoded originalPositionFor x 3,396,137 ops/sec ±42.32% (95 runs sampled)
+source-map-0.6.1: encoded originalPositionFor x 3,753,176 ops/sec ±0.72% (95 runs sampled)
+source-map-0.8.0: encoded originalPositionFor x 6,423,633 ops/sec ±0.74% (95 runs sampled)
+Fastest is trace-mapping: decoded originalPositionFor
+
+***
+
+preact.js.map
+trace-mapping: decoded JSON input x 3,499 ops/sec ±0.18% (98 runs sampled)
+trace-mapping: encoded JSON input x 6,078 ops/sec ±0.25% (99 runs sampled)
+trace-mapping: decoded Object input x 254,788 ops/sec ±0.13% (100 runs sampled)
+trace-mapping: encoded Object input x 14,063 ops/sec ±0.27% (94 runs sampled)
+source-map-js: encoded Object input x 2,465 ops/sec ±0.25% (98 runs sampled)
+source-map-0.6.1: encoded Object input x 1,174 ops/sec ±1.90% (95 runs sampled)
+Fastest is trace-mapping: decoded Object input
+
+trace-mapping: decoded originalPositionFor x 7,720,171 ops/sec ±0.14% (97 runs sampled)
+trace-mapping: encoded originalPositionFor x 6,864,485 ops/sec ±0.16% (101 runs sampled)
+source-map-js: encoded originalPositionFor x 2,387,219 ops/sec ±0.28% (98 runs sampled)
+source-map-0.6.1: encoded originalPositionFor x 1,565,339 ops/sec ±0.32% (101 runs sampled)
+source-map-0.8.0: encoded originalPositionFor x 3,819,732 ops/sec ±0.38% (98 runs sampled)
+Fastest is trace-mapping: decoded originalPositionFor
+
+***
+
+react.js.map
+trace-mapping: decoded JSON input x 1,719 ops/sec ±0.19% (99 runs sampled)
+trace-mapping: encoded JSON input x 4,284 ops/sec ±0.51% (99 runs sampled)
+trace-mapping: decoded Object input x 94,668 ops/sec ±0.08% (99 runs sampled)
+trace-mapping: encoded Object input x 5,287 ops/sec ±0.24% (99 runs sampled)
+source-map-js: encoded Object input x 814 ops/sec ±0.20% (98 runs sampled)
+source-map-0.6.1: encoded Object input x 429 ops/sec ±0.24% (94 runs sampled)
+Fastest is trace-mapping: decoded Object input
+
+trace-mapping: decoded originalPositionFor x 28,927,989 ops/sec ±0.61% (94 runs sampled)
+trace-mapping: encoded originalPositionFor x 27,394,475 ops/sec ±0.55% (97 runs sampled)
+source-map-js: encoded originalPositionFor x 16,856,730 ops/sec ±0.45% (96 runs sampled)
+source-map-0.6.1: encoded originalPositionFor x 12,258,950 ops/sec ±0.41% (97 runs sampled)
+source-map-0.8.0: encoded originalPositionFor x 22,272,990 ops/sec ±0.58% (95 runs sampled)
+Fastest is trace-mapping: decoded originalPositionFor
+```
+
+[source-map]: https://www.npmjs.com/package/source-map
diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
new file mode 100644
index 0000000..8fce400
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs
@@ -0,0 +1,514 @@
+import { encode, decode } from '@jridgewell/sourcemap-codec';
+import resolveUri from '@jridgewell/resolve-uri';
+
+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 resolveUri(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 = 0;
+const SOURCES_INDEX = 1;
+const SOURCE_LINE = 2;
+const SOURCE_COLUMN = 3;
+const NAMES_INDEX = 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] < line[j - 1][COLUMN]) {
+ return false;
+ }
+ }
+ return true;
+}
+function sortSegments(line, owned) {
+ if (!owned)
+ line = line.slice();
+ return line.sort(sortComparator);
+}
+function sortComparator(a, b) {
+ return a[COLUMN] - b[COLUMN];
+}
+
+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] - 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; i++, index++) {
+ if (haystack[i][COLUMN] !== needle)
+ break;
+ }
+ return index;
+}
+function lowerBound(haystack, needle, index) {
+ for (let i = index - 1; i >= 0; i--, index--) {
+ if (haystack[i][COLUMN] !== 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] === 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];
+ const sourceLine = seg[SOURCE_LINE];
+ const sourceColumn = seg[SOURCE_COLUMN];
+ 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.
+ const index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine));
+ insert(originalLine, (memo.lastIndex = index + 1), [sourceColumn, i, seg[COLUMN]]);
+ }
+ }
+ return sources;
+}
+function insert(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 = typeof map === 'string' ? JSON.parse(map) : map;
+ if (!('sections' in parsed))
+ return new TraceMap(parsed, mapUrl);
+ const mappings = [];
+ const sources = [];
+ const sourcesContent = [];
+ const names = [];
+ const { sections } = parsed;
+ let i = 0;
+ for (; i < sections.length - 1; i++) {
+ const no = sections[i + 1].offset;
+ addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, no.line, no.column);
+ }
+ if (sections.length > 0) {
+ addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, Infinity, Infinity);
+ }
+ const joined = {
+ version: 3,
+ file: parsed.file,
+ names,
+ sources,
+ sourcesContent,
+ mappings,
+ };
+ return presortedDecodedMap(joined);
+};
+function addSection(section, mapUrl, mappings, sources, sourcesContent, names, stopLine, stopColumn) {
+ const map = AnyMap(section.map, mapUrl);
+ const { line: lineOffset, column: columnOffset } = section.offset;
+ const sourcesOffset = sources.length;
+ const namesOffset = names.length;
+ const decoded = decodedMappings(map);
+ const { resolvedSources } = map;
+ append(sources, resolvedSources);
+ append(sourcesContent, map.sourcesContent || fillSourcesContent(resolvedSources.length));
+ append(names, map.names);
+ // If this section jumps forwards several lines, we need to add lines to the output mappings catch up.
+ for (let i = mappings.length; i <= lineOffset; i++)
+ mappings.push([]);
+ // 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.
+ const stopI = stopLine - lineOffset;
+ const len = Math.min(decoded.length, stopI + 1);
+ for (let i = 0; i < len; i++) {
+ const line = decoded[i];
+ // On the 0th loop, the line will already exist due to a previous section, or the line catch up
+ // loop above.
+ const out = i === 0 ? mappings[lineOffset] : (mappings[lineOffset + i] = []);
+ // 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;
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ const column = cOffset + seg[COLUMN];
+ // If this segment steps into the column range that the next section's map controls, we need
+ // to stop early.
+ if (i === stopI && column >= stopColumn)
+ break;
+ if (seg.length === 1) {
+ out.push([column]);
+ continue;
+ }
+ const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];
+ const sourceLine = seg[SOURCE_LINE];
+ const sourceColumn = seg[SOURCE_COLUMN];
+ if (seg.length === 4) {
+ out.push([column, sourcesIndex, sourceLine, sourceColumn]);
+ continue;
+ }
+ out.push([column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]);
+ }
+ }
+}
+function append(arr, other) {
+ for (let i = 0; i < other.length; i++)
+ arr.push(other[i]);
+}
+// Sourcemaps don't need to have sourcesContent, and if they don't, we need to create an array of
+// equal length to the sources. This is because the sources and sourcesContent are paired arrays,
+// where `sourcesContent[i]` is the content of the `sources[i]` file. If we didn't, then joined
+// sourcemap would desynchronize the sources/contents.
+function fillSourcesContent(len) {
+ const sourcesContent = [];
+ for (let i = 0; i < len; i++)
+ sourcesContent[i] = null;
+ return sourcesContent;
+}
+
+const INVALID_ORIGINAL_MAPPING = Object.freeze({
+ source: null,
+ line: null,
+ column: null,
+ name: null,
+});
+const INVALID_GENERATED_MAPPING = Object.freeze({
+ line: null,
+ column: null,
+});
+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;
+/**
+ * Returns the encoded (VLQ string) form of the SourceMap's mappings field.
+ */
+let encodedMappings;
+/**
+ * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
+ */
+let decodedMappings;
+/**
+ * A low-level API to find the segment associated with a generated line/column (think, from a
+ * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.
+ */
+let traceSegment;
+/**
+ * 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.
+ */
+let originalPositionFor;
+/**
+ * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided
+ * the found mapping is from the same source and line as the originalPositionFor mapping.
+ *
+ * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1`
+ * using the same needle that would return `id` when calling `originalPositionFor`.
+ */
+let generatedPositionFor;
+/**
+ * Iterates each mapping in generated position order.
+ */
+let eachMapping;
+/**
+ * A helper that skips sorting of the input map's mappings array, which can be expensive for larger
+ * maps.
+ */
+let presortedDecodedMap;
+/**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+let decodedMap;
+/**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+let encodedMap;
+class TraceMap {
+ constructor(map, mapUrl) {
+ this._decodedMemo = memoizedState();
+ this._bySources = undefined;
+ this._bySourceMemos = undefined;
+ const isString = typeof map === 'string';
+ if (!isString && map.constructor === TraceMap)
+ 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;
+ if (sourceRoot || mapUrl) {
+ const from = resolve(sourceRoot || '', stripFilename(mapUrl));
+ this.resolvedSources = sources.map((s) => resolve(s || '', from));
+ }
+ else {
+ this.resolvedSources = sources.map((s) => s || '');
+ }
+ const { mappings } = parsed;
+ if (typeof mappings === 'string') {
+ this._encoded = mappings;
+ this._decoded = undefined;
+ }
+ else {
+ this._encoded = undefined;
+ this._decoded = maybeSort(mappings, isString);
+ }
+ }
+}
+(() => {
+ encodedMappings = (map) => {
+ var _a;
+ return ((_a = map._encoded) !== null && _a !== void 0 ? _a : (map._encoded = encode(map._decoded)));
+ };
+ decodedMappings = (map) => {
+ return (map._decoded || (map._decoded = decode(map._encoded)));
+ };
+ traceSegment = (map, line, column) => {
+ 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 null;
+ return traceSegmentInternal(decoded[line], map._decodedMemo, line, column, GREATEST_LOWER_BOUND);
+ };
+ originalPositionFor = (map, { line, column, bias }) => {
+ 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 INVALID_ORIGINAL_MAPPING;
+ const segment = traceSegmentInternal(decoded[line], map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);
+ if (segment == null)
+ return INVALID_ORIGINAL_MAPPING;
+ if (segment.length == 1)
+ return INVALID_ORIGINAL_MAPPING;
+ const { names, resolvedSources } = map;
+ return {
+ source: resolvedSources[segment[SOURCES_INDEX]],
+ line: segment[SOURCE_LINE] + 1,
+ column: segment[SOURCE_COLUMN],
+ name: segment.length === 5 ? names[segment[NAMES_INDEX]] : null,
+ };
+ };
+ generatedPositionFor = (map, { source, line, column, bias }) => {
+ 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 INVALID_GENERATED_MAPPING;
+ const generated = (map._bySources || (map._bySources = buildBySources(decodedMappings(map), (map._bySourceMemos = sources.map(memoizedState)))));
+ const memos = map._bySourceMemos;
+ const segments = generated[sourceIndex][line];
+ if (segments == null)
+ return INVALID_GENERATED_MAPPING;
+ const segment = traceSegmentInternal(segments, memos[sourceIndex], line, column, bias || GREATEST_LOWER_BOUND);
+ if (segment == null)
+ return INVALID_GENERATED_MAPPING;
+ return {
+ line: segment[REV_GENERATED_LINE] + 1,
+ column: segment[REV_GENERATED_COLUMN],
+ };
+ };
+ 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,
+ });
+ }
+ }
+ };
+ presortedDecodedMap = (map, mapUrl) => {
+ const clone = Object.assign({}, map);
+ clone.mappings = [];
+ const tracer = new TraceMap(clone, mapUrl);
+ tracer._decoded = map.mappings;
+ return tracer;
+ };
+ decodedMap = (map) => {
+ return {
+ version: 3,
+ file: map.file,
+ names: map.names,
+ sourceRoot: map.sourceRoot,
+ sources: map.sources,
+ sourcesContent: map.sourcesContent,
+ mappings: decodedMappings(map),
+ };
+ };
+ encodedMap = (map) => {
+ return {
+ version: 3,
+ file: map.file,
+ names: map.names,
+ sourceRoot: map.sourceRoot,
+ sources: map.sources,
+ sourcesContent: map.sourcesContent,
+ mappings: encodedMappings(map),
+ };
+ };
+})();
+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 null;
+ return segments[index];
+}
+
+export { AnyMap, GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap, decodedMap, decodedMappings, eachMapping, encodedMap, encodedMappings, generatedPositionFor, originalPositionFor, presortedDecodedMap, traceSegment };
+//# sourceMappingURL=trace-mapping.mjs.map
diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map
new file mode 100644
index 0000000..fec7769
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"trace-mapping.mjs","sources":["../../src/resolve.ts","../../src/strip-filename.ts","../../src/sourcemap-segment.ts","../../src/sort.ts","../../src/binary-search.ts","../../src/by-source.ts","../../src/any-map.ts","../../src/trace-mapping.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["bsFound"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
new file mode 100644
index 0000000..8b755bd
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js
@@ -0,0 +1,528 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/sourcemap-codec'), require('@jridgewell/resolve-uri')) :
+ typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/sourcemap-codec', '@jridgewell/resolve-uri'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.traceMapping = {}, global.sourcemapCodec, global.resolveURI));
+})(this, (function (exports, sourcemapCodec, resolveUri) { 'use strict';
+
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
+
+ var resolveUri__default = /*#__PURE__*/_interopDefaultLegacy(resolveUri);
+
+ 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 resolveUri__default["default"](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 = 0;
+ const SOURCES_INDEX = 1;
+ const SOURCE_LINE = 2;
+ const SOURCE_COLUMN = 3;
+ const NAMES_INDEX = 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] < line[j - 1][COLUMN]) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function sortSegments(line, owned) {
+ if (!owned)
+ line = line.slice();
+ return line.sort(sortComparator);
+ }
+ function sortComparator(a, b) {
+ return a[COLUMN] - b[COLUMN];
+ }
+
+ 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] - 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; i++, index++) {
+ if (haystack[i][COLUMN] !== needle)
+ break;
+ }
+ return index;
+ }
+ function lowerBound(haystack, needle, index) {
+ for (let i = index - 1; i >= 0; i--, index--) {
+ if (haystack[i][COLUMN] !== 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] === 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];
+ const sourceLine = seg[SOURCE_LINE];
+ const sourceColumn = seg[SOURCE_COLUMN];
+ 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.
+ const index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine));
+ insert(originalLine, (memo.lastIndex = index + 1), [sourceColumn, i, seg[COLUMN]]);
+ }
+ }
+ return sources;
+ }
+ function insert(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 = typeof map === 'string' ? JSON.parse(map) : map;
+ if (!('sections' in parsed))
+ return new TraceMap(parsed, mapUrl);
+ const mappings = [];
+ const sources = [];
+ const sourcesContent = [];
+ const names = [];
+ const { sections } = parsed;
+ let i = 0;
+ for (; i < sections.length - 1; i++) {
+ const no = sections[i + 1].offset;
+ addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, no.line, no.column);
+ }
+ if (sections.length > 0) {
+ addSection(sections[i], mapUrl, mappings, sources, sourcesContent, names, Infinity, Infinity);
+ }
+ const joined = {
+ version: 3,
+ file: parsed.file,
+ names,
+ sources,
+ sourcesContent,
+ mappings,
+ };
+ return exports.presortedDecodedMap(joined);
+ };
+ function addSection(section, mapUrl, mappings, sources, sourcesContent, names, stopLine, stopColumn) {
+ const map = AnyMap(section.map, mapUrl);
+ const { line: lineOffset, column: columnOffset } = section.offset;
+ const sourcesOffset = sources.length;
+ const namesOffset = names.length;
+ const decoded = exports.decodedMappings(map);
+ const { resolvedSources } = map;
+ append(sources, resolvedSources);
+ append(sourcesContent, map.sourcesContent || fillSourcesContent(resolvedSources.length));
+ append(names, map.names);
+ // If this section jumps forwards several lines, we need to add lines to the output mappings catch up.
+ for (let i = mappings.length; i <= lineOffset; i++)
+ mappings.push([]);
+ // 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.
+ const stopI = stopLine - lineOffset;
+ const len = Math.min(decoded.length, stopI + 1);
+ for (let i = 0; i < len; i++) {
+ const line = decoded[i];
+ // On the 0th loop, the line will already exist due to a previous section, or the line catch up
+ // loop above.
+ const out = i === 0 ? mappings[lineOffset] : (mappings[lineOffset + i] = []);
+ // 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;
+ for (let j = 0; j < line.length; j++) {
+ const seg = line[j];
+ const column = cOffset + seg[COLUMN];
+ // If this segment steps into the column range that the next section's map controls, we need
+ // to stop early.
+ if (i === stopI && column >= stopColumn)
+ break;
+ if (seg.length === 1) {
+ out.push([column]);
+ continue;
+ }
+ const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX];
+ const sourceLine = seg[SOURCE_LINE];
+ const sourceColumn = seg[SOURCE_COLUMN];
+ if (seg.length === 4) {
+ out.push([column, sourcesIndex, sourceLine, sourceColumn]);
+ continue;
+ }
+ out.push([column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]);
+ }
+ }
+ }
+ function append(arr, other) {
+ for (let i = 0; i < other.length; i++)
+ arr.push(other[i]);
+ }
+ // Sourcemaps don't need to have sourcesContent, and if they don't, we need to create an array of
+ // equal length to the sources. This is because the sources and sourcesContent are paired arrays,
+ // where `sourcesContent[i]` is the content of the `sources[i]` file. If we didn't, then joined
+ // sourcemap would desynchronize the sources/contents.
+ function fillSourcesContent(len) {
+ const sourcesContent = [];
+ for (let i = 0; i < len; i++)
+ sourcesContent[i] = null;
+ return sourcesContent;
+ }
+
+ const INVALID_ORIGINAL_MAPPING = Object.freeze({
+ source: null,
+ line: null,
+ column: null,
+ name: null,
+ });
+ const INVALID_GENERATED_MAPPING = Object.freeze({
+ line: null,
+ column: null,
+ });
+ 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;
+ /**
+ * Returns the encoded (VLQ string) form of the SourceMap's mappings field.
+ */
+ exports.encodedMappings = void 0;
+ /**
+ * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
+ */
+ exports.decodedMappings = void 0;
+ /**
+ * A low-level API to find the segment associated with a generated line/column (think, from a
+ * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.
+ */
+ exports.traceSegment = void 0;
+ /**
+ * 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.
+ */
+ exports.originalPositionFor = void 0;
+ /**
+ * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided
+ * the found mapping is from the same source and line as the originalPositionFor mapping.
+ *
+ * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1`
+ * using the same needle that would return `id` when calling `originalPositionFor`.
+ */
+ exports.generatedPositionFor = void 0;
+ /**
+ * Iterates each mapping in generated position order.
+ */
+ exports.eachMapping = void 0;
+ /**
+ * A helper that skips sorting of the input map's mappings array, which can be expensive for larger
+ * maps.
+ */
+ exports.presortedDecodedMap = void 0;
+ /**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ exports.decodedMap = void 0;
+ /**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+ exports.encodedMap = void 0;
+ class TraceMap {
+ constructor(map, mapUrl) {
+ this._decodedMemo = memoizedState();
+ this._bySources = undefined;
+ this._bySourceMemos = undefined;
+ const isString = typeof map === 'string';
+ if (!isString && map.constructor === TraceMap)
+ 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;
+ if (sourceRoot || mapUrl) {
+ const from = resolve(sourceRoot || '', stripFilename(mapUrl));
+ this.resolvedSources = sources.map((s) => resolve(s || '', from));
+ }
+ else {
+ this.resolvedSources = sources.map((s) => s || '');
+ }
+ const { mappings } = parsed;
+ if (typeof mappings === 'string') {
+ this._encoded = mappings;
+ this._decoded = undefined;
+ }
+ else {
+ this._encoded = undefined;
+ this._decoded = maybeSort(mappings, isString);
+ }
+ }
+ }
+ (() => {
+ exports.encodedMappings = (map) => {
+ var _a;
+ return ((_a = map._encoded) !== null && _a !== void 0 ? _a : (map._encoded = sourcemapCodec.encode(map._decoded)));
+ };
+ exports.decodedMappings = (map) => {
+ return (map._decoded || (map._decoded = sourcemapCodec.decode(map._encoded)));
+ };
+ exports.traceSegment = (map, line, column) => {
+ const decoded = exports.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 null;
+ return traceSegmentInternal(decoded[line], map._decodedMemo, line, column, GREATEST_LOWER_BOUND);
+ };
+ exports.originalPositionFor = (map, { line, column, bias }) => {
+ line--;
+ if (line < 0)
+ throw new Error(LINE_GTR_ZERO);
+ if (column < 0)
+ throw new Error(COL_GTR_EQ_ZERO);
+ const decoded = exports.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 INVALID_ORIGINAL_MAPPING;
+ const segment = traceSegmentInternal(decoded[line], map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);
+ if (segment == null)
+ return INVALID_ORIGINAL_MAPPING;
+ if (segment.length == 1)
+ return INVALID_ORIGINAL_MAPPING;
+ const { names, resolvedSources } = map;
+ return {
+ source: resolvedSources[segment[SOURCES_INDEX]],
+ line: segment[SOURCE_LINE] + 1,
+ column: segment[SOURCE_COLUMN],
+ name: segment.length === 5 ? names[segment[NAMES_INDEX]] : null,
+ };
+ };
+ exports.generatedPositionFor = (map, { source, line, column, bias }) => {
+ 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 INVALID_GENERATED_MAPPING;
+ const generated = (map._bySources || (map._bySources = buildBySources(exports.decodedMappings(map), (map._bySourceMemos = sources.map(memoizedState)))));
+ const memos = map._bySourceMemos;
+ const segments = generated[sourceIndex][line];
+ if (segments == null)
+ return INVALID_GENERATED_MAPPING;
+ const segment = traceSegmentInternal(segments, memos[sourceIndex], line, column, bias || GREATEST_LOWER_BOUND);
+ if (segment == null)
+ return INVALID_GENERATED_MAPPING;
+ return {
+ line: segment[REV_GENERATED_LINE] + 1,
+ column: segment[REV_GENERATED_COLUMN],
+ };
+ };
+ exports.eachMapping = (map, cb) => {
+ const decoded = exports.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,
+ });
+ }
+ }
+ };
+ exports.presortedDecodedMap = (map, mapUrl) => {
+ const clone = Object.assign({}, map);
+ clone.mappings = [];
+ const tracer = new TraceMap(clone, mapUrl);
+ tracer._decoded = map.mappings;
+ return tracer;
+ };
+ exports.decodedMap = (map) => {
+ return {
+ version: 3,
+ file: map.file,
+ names: map.names,
+ sourceRoot: map.sourceRoot,
+ sources: map.sources,
+ sourcesContent: map.sourcesContent,
+ mappings: exports.decodedMappings(map),
+ };
+ };
+ exports.encodedMap = (map) => {
+ return {
+ version: 3,
+ file: map.file,
+ names: map.names,
+ sourceRoot: map.sourceRoot,
+ sources: map.sources,
+ sourcesContent: map.sourcesContent,
+ mappings: exports.encodedMappings(map),
+ };
+ };
+ })();
+ 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 null;
+ return segments[index];
+ }
+
+ exports.AnyMap = AnyMap;
+ exports.GREATEST_LOWER_BOUND = GREATEST_LOWER_BOUND;
+ exports.LEAST_UPPER_BOUND = LEAST_UPPER_BOUND;
+ exports.TraceMap = TraceMap;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
+//# sourceMappingURL=trace-mapping.umd.js.map
diff --git a/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map
new file mode 100644
index 0000000..4ef72e7
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"trace-mapping.umd.js","sources":["../../src/resolve.ts","../../src/strip-filename.ts","../../src/sourcemap-segment.ts","../../src/sort.ts","../../src/binary-search.ts","../../src/by-source.ts","../../src/any-map.ts","../../src/trace-mapping.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["resolveUri","presortedDecodedMap","decodedMappings","encodedMappings","traceSegment","originalPositionFor","generatedPositionFor","eachMapping","decodedMap","encodedMap","encode","decode","bsFound"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts
new file mode 100644
index 0000000..08bca6b
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/any-map.d.ts
@@ -0,0 +1,8 @@
+import { TraceMap } from './trace-mapping';
+import type { SectionedSourceMapInput } from './types';
+declare type AnyMap = {
+ new (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;
+ (map: SectionedSourceMapInput, mapUrl?: string | null): TraceMap;
+};
+export declare const AnyMap: AnyMap;
+export {};
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts
new file mode 100644
index 0000000..88820e5
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/binary-search.d.ts
@@ -0,0 +1,32 @@
+import type { SourceMapSegment, ReverseSegment } from './sourcemap-segment';
+export declare type MemoState = {
+ lastKey: number;
+ lastNeedle: number;
+ lastIndex: number;
+};
+export declare let found: boolean;
+/**
+ * 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]);
+ * ```
+ */
+export declare function binarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, low: number, high: number): number;
+export declare function upperBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number;
+export declare function lowerBound(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, index: number): number;
+export declare function memoizedState(): MemoState;
+/**
+ * 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.
+ */
+export declare function memoizedBinarySearch(haystack: SourceMapSegment[] | ReverseSegment[], needle: number, state: MemoState, key: number): number;
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts
new file mode 100644
index 0000000..8d1e538
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/by-source.d.ts
@@ -0,0 +1,7 @@
+import type { ReverseSegment, SourceMapSegment } from './sourcemap-segment';
+import type { MemoState } from './binary-search';
+export declare type Source = {
+ __proto__: null;
+ [line: number]: Exclude[];
+};
+export default function buildBySources(decoded: readonly SourceMapSegment[][], memos: MemoState[]): Source[];
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts
new file mode 100644
index 0000000..cf7d4f8
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/resolve.d.ts
@@ -0,0 +1 @@
+export default function resolve(input: string, base: string | undefined): string;
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts
new file mode 100644
index 0000000..2bfb5dc
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/sort.d.ts
@@ -0,0 +1,2 @@
+import type { SourceMapSegment } from './sourcemap-segment';
+export default function maybeSort(mappings: SourceMapSegment[][], owned: boolean): SourceMapSegment[][];
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts
new file mode 100644
index 0000000..6d70924
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/sourcemap-segment.d.ts
@@ -0,0 +1,16 @@
+declare type GeneratedColumn = number;
+declare type SourcesIndex = number;
+declare type SourceLine = number;
+declare type SourceColumn = number;
+declare type NamesIndex = number;
+declare type GeneratedLine = number;
+export declare type SourceMapSegment = [GeneratedColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn] | [GeneratedColumn, SourcesIndex, SourceLine, SourceColumn, NamesIndex];
+export declare type ReverseSegment = [SourceColumn, GeneratedLine, GeneratedColumn];
+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 declare const REV_GENERATED_LINE = 1;
+export declare const REV_GENERATED_COLUMN = 2;
+export {};
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts
new file mode 100644
index 0000000..bead5c1
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/strip-filename.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Removes everything after the last "/", but leaves the slash.
+ */
+export default function stripFilename(path: string | undefined | null): string;
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts
new file mode 100644
index 0000000..8cd4574
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/trace-mapping.d.ts
@@ -0,0 +1,70 @@
+import type { SourceMapSegment } from './sourcemap-segment';
+import type { SourceMapV3, DecodedSourceMap, EncodedSourceMap, InvalidOriginalMapping, OriginalMapping, InvalidGeneratedMapping, GeneratedMapping, SourceMapInput, Needle, SourceNeedle, SourceMap, EachMapping } from './types';
+export type { SourceMapSegment } from './sourcemap-segment';
+export type { SourceMapInput, SectionedSourceMapInput, DecodedSourceMap, EncodedSourceMap, SectionedSourceMap, InvalidOriginalMapping, OriginalMapping as Mapping, OriginalMapping, InvalidGeneratedMapping, GeneratedMapping, EachMapping, } from './types';
+export declare const LEAST_UPPER_BOUND = -1;
+export declare const GREATEST_LOWER_BOUND = 1;
+/**
+ * Returns the encoded (VLQ string) form of the SourceMap's mappings field.
+ */
+export declare let encodedMappings: (map: TraceMap) => EncodedSourceMap['mappings'];
+/**
+ * Returns the decoded (array of lines of segments) form of the SourceMap's mappings field.
+ */
+export declare let decodedMappings: (map: TraceMap) => Readonly;
+/**
+ * A low-level API to find the segment associated with a generated line/column (think, from a
+ * stack trace). Line and column here are 0-based, unlike `originalPositionFor`.
+ */
+export declare let traceSegment: (map: TraceMap, line: number, column: number) => Readonly | null;
+/**
+ * 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.
+ */
+export declare let originalPositionFor: (map: TraceMap, needle: Needle) => OriginalMapping | InvalidOriginalMapping;
+/**
+ * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided
+ * the found mapping is from the same source and line as the originalPositionFor mapping.
+ *
+ * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1`
+ * using the same needle that would return `id` when calling `originalPositionFor`.
+ */
+export declare let generatedPositionFor: (map: TraceMap, needle: SourceNeedle) => GeneratedMapping | InvalidGeneratedMapping;
+/**
+ * Iterates each mapping in generated position order.
+ */
+export declare let eachMapping: (map: TraceMap, cb: (mapping: EachMapping) => void) => void;
+/**
+ * A helper that skips sorting of the input map's mappings array, which can be expensive for larger
+ * maps.
+ */
+export declare let presortedDecodedMap: (map: DecodedSourceMap, mapUrl?: string) => TraceMap;
+/**
+ * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+export declare let decodedMap: (map: TraceMap) => Omit & {
+ mappings: readonly SourceMapSegment[][];
+};
+/**
+ * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects
+ * a sourcemap, or to JSON.stringify.
+ */
+export declare let encodedMap: (map: TraceMap) => EncodedSourceMap;
+export { AnyMap } from './any-map';
+export declare class TraceMap implements SourceMap {
+ version: SourceMapV3['version'];
+ file: SourceMapV3['file'];
+ names: SourceMapV3['names'];
+ sourceRoot: SourceMapV3['sourceRoot'];
+ sources: SourceMapV3['sources'];
+ sourcesContent: SourceMapV3['sourcesContent'];
+ resolvedSources: string[];
+ private _encoded;
+ private _decoded;
+ private _decodedMemo;
+ private _bySources;
+ private _bySourceMemos;
+ constructor(map: SourceMapInput, mapUrl?: string | null);
+}
diff --git a/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts b/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts
new file mode 100644
index 0000000..2cc90c0
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/dist/types/types.d.ts
@@ -0,0 +1,85 @@
+import type { SourceMapSegment } from './sourcemap-segment';
+import type { TraceMap } from './trace-mapping';
+export interface SourceMapV3 {
+ file?: string | null;
+ names: string[];
+ sourceRoot?: string;
+ sources: (string | null)[];
+ sourcesContent?: (string | null)[];
+ version: 3;
+}
+export interface EncodedSourceMap extends SourceMapV3 {
+ mappings: string;
+}
+export interface DecodedSourceMap extends SourceMapV3 {
+ mappings: SourceMapSegment[][];
+}
+export interface Section {
+ offset: {
+ line: number;
+ column: number;
+ };
+ map: EncodedSourceMap | DecodedSourceMap | SectionedSourceMap;
+}
+export interface SectionedSourceMap {
+ file?: string | null;
+ sections: Section[];
+ version: 3;
+}
+export declare type OriginalMapping = {
+ source: string | null;
+ line: number;
+ column: number;
+ name: string | null;
+};
+export declare type InvalidOriginalMapping = {
+ source: null;
+ line: null;
+ column: null;
+ name: null;
+};
+export declare type GeneratedMapping = {
+ line: number;
+ column: number;
+};
+export declare type InvalidGeneratedMapping = {
+ line: null;
+ column: null;
+};
+export declare type SourceMapInput = string | EncodedSourceMap | DecodedSourceMap | TraceMap;
+export declare type SectionedSourceMapInput = SourceMapInput | SectionedSourceMap;
+export declare type Needle = {
+ line: number;
+ column: number;
+ bias?: 1 | -1;
+};
+export declare type SourceNeedle = {
+ source: string;
+ line: number;
+ column: number;
+ bias?: 1 | -1;
+};
+export declare type EachMapping = {
+ generatedLine: number;
+ generatedColumn: number;
+ source: null;
+ originalLine: null;
+ originalColumn: null;
+ name: null;
+} | {
+ generatedLine: number;
+ generatedColumn: number;
+ source: string | null;
+ originalLine: number;
+ originalColumn: number;
+ name: string | null;
+};
+export declare abstract class SourceMap {
+ version: SourceMapV3['version'];
+ file: SourceMapV3['file'];
+ names: SourceMapV3['names'];
+ sourceRoot: SourceMapV3['sourceRoot'];
+ sources: SourceMapV3['sources'];
+ sourcesContent: SourceMapV3['sourcesContent'];
+ resolvedSources: SourceMapV3['sources'];
+}
diff --git a/node_modules/@jridgewell/trace-mapping/package.json b/node_modules/@jridgewell/trace-mapping/package.json
new file mode 100644
index 0000000..a957780
--- /dev/null
+++ b/node_modules/@jridgewell/trace-mapping/package.json
@@ -0,0 +1,70 @@
+{
+ "name": "@jridgewell/trace-mapping",
+ "version": "0.3.9",
+ "description": "Trace the original position through a source map",
+ "keywords": [
+ "source",
+ "map"
+ ],
+ "main": "dist/trace-mapping.umd.js",
+ "module": "dist/trace-mapping.mjs",
+ "typings": "dist/types/trace-mapping.d.ts",
+ "files": [
+ "dist"
+ ],
+ "exports": {
+ ".": {
+ "browser": "./dist/trace-mapping.umd.js",
+ "require": "./dist/trace-mapping.umd.js",
+ "import": "./dist/trace-mapping.mjs"
+ },
+ "./package.json": "./package.json"
+ },
+ "author": "Justin Ridgewell ",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jridgewell/trace-mapping.git"
+ },
+ "license": "MIT",
+ "scripts": {
+ "benchmark": "run-s build:rollup benchmark:*",
+ "benchmark:install": "cd benchmark && npm install",
+ "benchmark:only": "node benchmark/index.mjs",
+ "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",
+ "prebuild": "rm -rf dist",
+ "prepublishOnly": "npm run preversion",
+ "preversion": "run-s test build",
+ "test": "run-s -n test:lint test:only",
+ "test:debug": "ava debug",
+ "test:lint": "run-s -n test:lint:*",
+ "test:lint:prettier": "prettier --check '{src,test}/**/*.ts' '**/*.md'",
+ "test:lint:ts": "eslint '{src,test}/**/*.ts'",
+ "test:only": "c8 ava",
+ "test:watch": "ava --watch"
+ },
+ "devDependencies": {
+ "@rollup/plugin-typescript": "8.3.0",
+ "@typescript-eslint/eslint-plugin": "5.10.0",
+ "@typescript-eslint/parser": "5.10.0",
+ "ava": "4.0.1",
+ "benchmark": "2.1.4",
+ "c8": "7.11.0",
+ "esbuild": "0.14.14",
+ "esbuild-node-loader": "0.6.4",
+ "eslint": "8.7.0",
+ "eslint-config-prettier": "8.3.0",
+ "npm-run-all": "4.1.5",
+ "prettier": "2.5.1",
+ "rollup": "2.64.0",
+ "typescript": "4.5.4"
+ },
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+}
diff --git a/node_modules/@nodable/entities/README.md b/node_modules/@nodable/entities/README.md
new file mode 100644
index 0000000..18a7fb6
--- /dev/null
+++ b/node_modules/@nodable/entities/README.md
@@ -0,0 +1,41 @@
+# @nodable/entities
+
+Fast, zero-dependency XML/HTML entity encoder and decoder for Node.js.
+
+## Install
+
+```bash
+npm install @nodable/entities
+```
+
+## Quick start
+
+```js
+import { EntityEncoder, EntityDecoder, ALL_ENTITIES } from '@nodable/entities';
+
+// Encode: plain text → entity references
+const enc = new EntityEncoder();
+enc.encode('Hello © 2024 & ');
+// → 'Hello © 2024 & <stuff>'
+
+// Decode: entity references → plain text
+const dec = new EntityDecoder({ namedEntities: ALL_ENTITIES });
+dec.decode('Hello © 2024 & <stuff>');
+// → 'Hello © 2024 & '
+```
+
+## Performance
+
+| | encode | decode |
+|---|---|---|
+| `entities` (npm) | 3.65 M req/s | 1.76 M req/s |
+| `@nodable/entities` | 3.33 M req/s | **5.19 M req/s** |
+
+## Documentation
+
+- [EntityEncoder](docs/EntityEncoder.md) — options, API, recipes
+- [EntityDecoder](docs/EntityDecoder.md) — options, API, security limits, entity sets
+
+## License
+
+MIT
\ No newline at end of file
diff --git a/node_modules/@nodable/entities/package.json b/node_modules/@nodable/entities/package.json
new file mode 100644
index 0000000..b47e260
--- /dev/null
+++ b/node_modules/@nodable/entities/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "@nodable/entities",
+ "version": "2.1.0",
+ "description": "Entity parser for XML, HTML, External entites with security and NCR control",
+ "main": "./src/index.js",
+ "type": "module",
+ "sideEffects": false,
+ "types": "./src/index.d.ts",
+ "scripts": {
+ "test": "node --experimental-vm-modules node_modules/.bin/jest",
+ "test:watch": "node --experimental-vm-modules node_modules/.bin/jest --watch",
+ "test:coverage": "node --experimental-vm-modules node_modules/.bin/jest --coverage",
+ "lint": "eslint src/ test/"
+ },
+ "files": [
+ "src",
+ "README.md"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/nodable/val-parsers.git"
+ },
+ "keywords": [
+ "fast",
+ "xml",
+ "html",
+ "entity",
+ "encode",
+ "decode",
+ "ncr",
+ "security",
+ "performance"
+ ],
+ "author": "Amit Gupta (https://solothought.com)",
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public"
+ },
+ "devDependencies": {
+ "jest": "^29.7.0"
+ },
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/nodable"
+ }
+ ],
+ "jest": {
+ "testMatch": [
+ "**/?(*.)+(spec|test).[jt]s?(x)",
+ "**/*_spec.[jt]s?(x)"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/node_modules/@nodable/entities/src/EntityDecoder.js b/node_modules/@nodable/entities/src/EntityDecoder.js
new file mode 100644
index 0000000..c2aa270
--- /dev/null
+++ b/node_modules/@nodable/entities/src/EntityDecoder.js
@@ -0,0 +1,543 @@
+// ---------------------------------------------------------------------------
+// Built-in named entity map (name → replacement string)
+// No regex, no {regex,val} objects — just flat key/value pairs.
+// ---------------------------------------------------------------------------
+
+import { XML as DEFAULT_XML_ENTITIES } from "./entities.js"
+
+// ---------------------------------------------------------------------------
+// Helpers
+// ---------------------------------------------------------------------------
+
+const SPECIAL_CHARS = new Set('!?\\\\/[]$%{}^&*()<>|+');
+
+/**
+ * Validate that an entity name contains no dangerous characters.
+ * @param {string} name
+ * @returns {string} the name, unchanged
+ * @throws {Error} on invalid characters
+ */
+function validateEntityName(name) {
+ if (name[0] === '#') {
+ throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${name}"`);
+ }
+ for (const ch of name) {
+ if (SPECIAL_CHARS.has(ch)) {
+ throw new Error(`[EntityReplacer] Invalid character '${ch}' in entity name: "${name}"`);
+ }
+ }
+ return name;
+}
+
+/**
+ * Merge one or more entity maps into a flat name→string map.
+ * Accepts either:
+ * - plain string values: { amp: '&' }
+ * - legacy {regex,val} / {regx,val}: { lt: { regex: /.../, val: '<' } }
+ *
+ * Values containing '&' are skipped (recursive expansion risk).
+ *
+ * @param {...object} maps
+ * @returns {Record}
+ */
+function mergeEntityMaps(...maps) {
+ const out = Object.create(null);
+ for (const map of maps) {
+ if (!map) continue;
+ for (const key of Object.keys(map)) {
+ const raw = map[key];
+ if (typeof raw === 'string') {
+ out[key] = raw;
+ } else if (raw && typeof raw === 'object' && raw.val !== undefined) {
+ // Legacy {regex,val} or {regx,val} — extract the string val only
+ const val = raw.val;
+ if (typeof val === 'string') {
+ out[key] = val;
+ }
+ // function vals are not supported in the scanner — skip
+ }
+ }
+ }
+ return out;
+}
+
+// ---------------------------------------------------------------------------
+// applyLimitsTo helpers
+// ---------------------------------------------------------------------------
+
+const LIMIT_TIER_EXTERNAL = 'external'; // input/runtime + persistent external maps
+const LIMIT_TIER_BASE = 'base'; // DEFAULT_XML_ENTITIES + namedEntities (system) maps
+const LIMIT_TIER_ALL = 'all'; // every entity regardless of tier
+
+/**
+ * Resolve `applyLimitsTo` option into a normalised Set of tier strings.
+ * Accepted values: 'external' | 'base' | 'all' | string[]
+ * Default: 'external' (only untrusted injected entities are counted).
+ * @param {string|string[]|undefined} raw
+ * @returns {Set}
+ */
+function parseLimitTiers(raw) {
+ if (!raw || raw === LIMIT_TIER_EXTERNAL) return new Set([LIMIT_TIER_EXTERNAL]);
+ if (raw === LIMIT_TIER_ALL) return new Set([LIMIT_TIER_ALL]);
+ if (raw === LIMIT_TIER_BASE) return new Set([LIMIT_TIER_BASE]);
+ if (Array.isArray(raw)) return new Set(raw);
+ return new Set([LIMIT_TIER_EXTERNAL]); // safe default for unrecognised values
+}
+
+// ---------------------------------------------------------------------------
+// NCR (Numeric Character Reference) classification
+// ---------------------------------------------------------------------------
+
+// Severity order — higher number = stricter action.
+// Used to enforce minimum action levels for specific codepoint ranges.
+const NCR_LEVEL = Object.freeze({ allow: 0, leave: 1, remove: 2, throw: 3 });
+
+// XML 1.0 §2.2: allowed chars are #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
+// Restricted C0: U+0001–U+001F excluding U+0009, U+000A, U+000D
+const XML10_ALLOWED_C0 = new Set([0x09, 0x0A, 0x0D]);
+
+/**
+ * Parse the `ncr` constructor option into flat, hot-path-friendly fields.
+ * @param {object|undefined} ncr
+ * @returns {{ xmlVersion: number, onLevel: number, nullLevel: number }}
+ */
+function parseNCRConfig(ncr) {
+ if (!ncr) {
+ return { xmlVersion: 1.0, onLevel: NCR_LEVEL.allow, nullLevel: NCR_LEVEL.remove };
+ }
+ const xmlVersion = ncr.xmlVersion === 1.1 ? 1.1 : 1.0;
+ const onLevel = NCR_LEVEL[ncr.onNCR] ?? NCR_LEVEL.allow;
+ const nullLevel = NCR_LEVEL[ncr.nullNCR] ?? NCR_LEVEL.remove;
+ // 'allow' is not meaningful for null — clamp to at least 'remove'
+ const clampedNull = Math.max(nullLevel, NCR_LEVEL.remove);
+ return { xmlVersion, onLevel, nullLevel: clampedNull };
+}
+
+// ---------------------------------------------------------------------------
+// EntityReplacer
+// ---------------------------------------------------------------------------
+
+/**
+ * Single-pass, zero-regex entity replacer for XML/HTML content.
+ *
+ * Algorithm: scan the string once for '&', read to ';', resolve via map
+ * or direct codepoint conversion, build output chunks, join once at the end.
+ *
+ * Entity lookup priority (highest → lowest):
+ * 1. input / runtime (DOCTYPE entities for current document)
+ * 2. persistent external (survive across documents)
+ * 3. base named map (DEFAULT_XML_ENTITIES + user-supplied namedEntities)
+ *
+ * Both input and external resolve as the 'external' tier for limit purposes.
+ * Base map entities resolve as the 'base' tier.
+ *
+ * Numeric / hex references (NNN; / HH;) are resolved directly via
+ * String.fromCodePoint() — no map needed. They count as 'base' tier.
+ *
+ * @example
+ * const replacer = new EntityReplacer({ namedEntities: COMMON_HTML });
+ * replacer.setExternalEntities({ brand: 'Acme' });
+ *
+ * const instance = replacer.reset();
+ * instance.addInputEntities({ version: '1.0' });
+ * instance.encode('&brand; v&version; <'); // 'Acme v1.0 <'
+ */
+export default class EntityDecoder {
+ /**
+ * @param {object} [options]
+ * @param {object|null} [options.namedEntities] — extra named entities merged into base map
+ * @param {object} [options.limit] — security limits
+ * @param {number} [options.limit.maxTotalExpansions=0] — 0 = unlimited
+ * @param {number} [options.limit.maxExpandedLength=0] — 0 = unlimited
+ * @param {'external'|'base'|'all'|string[]} [options.limit.applyLimitsTo='external']
+ * Which entity tiers count against the security limits:
+ * - 'external' (default) — only input/runtime + persistent external entities
+ * - 'base' — only DEFAULT_XML_ENTITIES + namedEntities
+ * - 'all' — every entity regardless of tier
+ * - string[] — explicit combination, e.g. ['external', 'base']
+ * @param {((resolved: string, original: string) => string)|null} [options.postCheck=null]
+ * @param {string[]} [options.remove=[]] — entity names (e.g. ['nbsp', '#13']) to delete (replace with empty string)
+ * @param {string[]} [options.leave=[]] — entity names to keep as literal (unchanged in output)
+ * @param {object} [options.ncr] — Numeric Character Reference controls
+ * @param {1.0|1.1} [options.ncr.xmlVersion=1.0]
+ * XML version governing which codepoint ranges are restricted:
+ * - 1.0 — C0 controls U+0001–U+001F (except U+0009/000A/000D) are prohibited
+ * - 1.1 — C0 controls are allowed when written as NCRs; C1 (U+007F–U+009F) decoded as-is
+ * @param {'allow'|'leave'|'remove'|'throw'} [options.ncr.onNCR='allow']
+ * Base action for numeric references. Severity order: allow < leave < remove < throw.
+ * For codepoint ranges that carry a minimum level (surrogates → remove, XML 1.0 C0 → remove),
+ * the effective action is max(onNCR, rangeMinimum).
+ * @param {'remove'|'throw'} [options.ncr.nullNCR='remove']
+ * Action for U+0000 (null). 'allow' and 'leave' are clamped to 'remove' since null is never safe.
+ */
+ constructor(options = {}) {
+ this._limit = options.limit || {};
+ this._maxTotalExpansions = this._limit.maxTotalExpansions || 0;
+ this._maxExpandedLength = this._limit.maxExpandedLength || 0;
+ this._postCheck = typeof options.postCheck === 'function' ? options.postCheck : r => r;
+ this._limitTiers = parseLimitTiers(this._limit.applyLimitsTo ?? LIMIT_TIER_EXTERNAL);
+ this._numericAllowed = options.numericAllowed ?? true;
+ // Base map: DEFAULT_XML_ENTITIES + user-supplied extras. Immutable after construction.
+ this._baseMap = mergeEntityMaps(DEFAULT_XML_ENTITIES, options.namedEntities || null);
+
+ // Persistent external entities — survive across documents.
+ // Stored as a separate map so reset() never touches them.
+ /** @type {Record} */
+ this._externalMap = Object.create(null);
+
+ // Input / runtime entities — current document only, wiped on reset().
+ /** @type {Record} */
+ this._inputMap = Object.create(null);
+
+ // Per-document counters
+ this._totalExpansions = 0;
+ this._expandedLength = 0;
+
+ // --- New: remove / leave sets ---
+ /** @type {Set} */
+ this._removeSet = new Set(options.remove && Array.isArray(options.remove) ? options.remove : []);
+ /** @type {Set} */
+ this._leaveSet = new Set(options.leave && Array.isArray(options.leave) ? options.leave : []);
+
+ // --- NCR config (parsed into flat fields for hot-path speed) ---
+ const ncrCfg = parseNCRConfig(options.ncr);
+ this._ncrXmlVersion = ncrCfg.xmlVersion;
+ this._ncrOnLevel = ncrCfg.onLevel;
+ this._ncrNullLevel = ncrCfg.nullLevel;
+ }
+
+ // -------------------------------------------------------------------------
+ // Persistent external entity registration
+ // -------------------------------------------------------------------------
+
+ /**
+ * Replace the full set of persistent external entities.
+ * All keys are validated — throws on invalid characters.
+ * @param {Record} map
+ */
+ setExternalEntities(map) {
+ if (map) {
+ for (const key of Object.keys(map)) {
+ validateEntityName(key);
+ }
+ }
+ this._externalMap = mergeEntityMaps(map);
+ }
+
+ /**
+ * Add a single persistent external entity.
+ * @param {string} key
+ * @param {string} value
+ */
+ addExternalEntity(key, value) {
+ validateEntityName(key);
+ if (typeof value === 'string' && value.indexOf('&') === -1) {
+ this._externalMap[key] = value;
+ }
+ }
+
+ // -------------------------------------------------------------------------
+ // Input / runtime entity registration (per document)
+ // -------------------------------------------------------------------------
+
+ /**
+ * Inject DOCTYPE entities for the current document.
+ * Also resets per-document expansion counters.
+ * @param {Record} map
+ */
+ addInputEntities(map) {
+ this._totalExpansions = 0;
+ this._expandedLength = 0;
+ this._inputMap = mergeEntityMaps(map);
+ }
+
+ // -------------------------------------------------------------------------
+ // Per-document reset
+ // -------------------------------------------------------------------------
+
+ /**
+ * Wipe input/runtime entities and reset counters.
+ * Call this before processing each new document.
+ * @returns {this}
+ */
+ reset() {
+ this._inputMap = Object.create(null);
+ this._totalExpansions = 0;
+ this._expandedLength = 0;
+ return this;
+ }
+
+ // -------------------------------------------------------------------------
+ // XML version (can be set after construction, e.g. once parser reads )
+ // -------------------------------------------------------------------------
+
+ /**
+ * Update the XML version used for NCR classification.
+ * Call this as soon as the document's `` declaration is parsed.
+ * @param {1.0|1.1|number} version
+ */
+ setXmlVersion(version) {
+ this._ncrXmlVersion = version === 1.1 ? 1.1 : 1.0;
+ }
+
+ // -------------------------------------------------------------------------
+ // Primary API
+ // -------------------------------------------------------------------------
+
+ /**
+ * Replace all entity references in `str` in a single pass.
+ *
+ * @param {string} str
+ * @returns {string}
+ */
+ decode(str) {
+ if (typeof str !== 'string' || str.length === 0) return str;
+ //TODO: check if needed
+ //if (str.indexOf('&') === -1) return str; // fast path — no entities at all
+
+ const original = str;
+ const chunks = [];
+ const len = str.length;
+ let last = 0; // start of next unprocessed literal chunk
+ let i = 0;
+
+ const limitExpansions = this._maxTotalExpansions > 0;
+ const limitLength = this._maxExpandedLength > 0;
+ const checkLimits = limitExpansions || limitLength;
+
+ while (i < len) {
+ // Scan forward to next '&'
+ if (str.charCodeAt(i) !== 38 /* '&' */) { i++; continue; }
+
+ // --- Found '&' at position i ---
+
+ // Scan forward to ';'
+ let j = i + 1;
+ while (j < len && str.charCodeAt(j) !== 59 /* ';' */ && (j - i) <= 32) j++;
+
+ if (j >= len || str.charCodeAt(j) !== 59) {
+ // No closing ';' within window — treat '&' as literal
+ i++;
+ continue;
+ }
+
+ // Raw token between '&' and ';' (exclusive)
+ const token = str.slice(i + 1, j);
+ if (token.length === 0) { i++; continue; }
+
+ let replacement;
+ let tier; // which limit tier this entity belongs to
+
+ if (this._removeSet.has(token)) {
+ // Remove entity: replace with empty string
+ replacement = '';
+ // If entity was unknown (replacement undefined), we still need a tier for limits.
+ // Treat as external tier because it's user-directed removal of an unknown reference.
+ if (tier === undefined) {
+ tier = LIMIT_TIER_EXTERNAL;
+ }
+ } else if (this._leaveSet.has(token)) {
+ // Do not replace — keep original &token; as literal
+ i++;
+ continue;
+ } else if (token.charCodeAt(0) === 35 /* '#' */) {
+ // ---- Numeric / NCR reference ----
+ // NCR classification always runs first — prohibited codepoints must be
+ // caught regardless of numericAllowed.
+ const ncrResult = this._resolveNCR(token);
+ if (ncrResult === undefined) {
+ // 'leave' action — keep original &token; as-is
+ i++;
+ continue;
+ }
+ replacement = ncrResult; // '' for remove, char string for allow
+ tier = LIMIT_TIER_BASE;
+ } else {
+ // ---- Named reference ----
+ const resolved = this._resolveName(token);
+ replacement = resolved?.value;
+ tier = resolved?.tier;
+ }
+
+ if (replacement === undefined) {
+ // Unknown entity — leave as-is, advance past '&' only
+ i++;
+ continue;
+ }
+
+ // Flush literal chunk before this entity
+ if (i > last) chunks.push(str.slice(last, i));
+ chunks.push(replacement);
+ last = j + 1; // skip past ';'
+ i = last;
+
+ // Apply expansion limits only if this tier is being tracked
+ if (checkLimits && this._tierCounts(tier)) {
+ if (limitExpansions) {
+ this._totalExpansions++;
+ if (this._totalExpansions > this._maxTotalExpansions) {
+ throw new Error(
+ `[EntityReplacer] Entity expansion count limit exceeded: ` +
+ `${this._totalExpansions} > ${this._maxTotalExpansions}`
+ );
+ }
+ }
+ if (limitLength) {
+ // delta: replacement.length minus the raw &token; length (token.length + 2 for '&' and ';')
+ const delta = replacement.length - (token.length + 2);
+ if (delta > 0) {
+ this._expandedLength += delta;
+ if (this._expandedLength > this._maxExpandedLength) {
+ throw new Error(
+ `[EntityReplacer] Expanded content length limit exceeded: ` +
+ `${this._expandedLength} > ${this._maxExpandedLength}`
+ );
+ }
+ }
+ }
+ }
+ }
+
+ // Flush trailing literal
+ if (last < len) chunks.push(str.slice(last));
+
+ // If nothing was replaced, chunks is empty — return original
+ const result = chunks.length === 0 ? str : chunks.join('');
+
+ return this._postCheck(result, original);
+ }
+
+ // -------------------------------------------------------------------------
+ // Private: limit tier check
+ // -------------------------------------------------------------------------
+
+ /**
+ * Returns true if a resolved entity of the given tier should count
+ * against the expansion/length limits.
+ * @param {string} tier — LIMIT_TIER_EXTERNAL | LIMIT_TIER_BASE
+ * @returns {boolean}
+ */
+ _tierCounts(tier) {
+ if (this._limitTiers.has(LIMIT_TIER_ALL)) return true;
+ return this._limitTiers.has(tier);
+ }
+
+ // -------------------------------------------------------------------------
+ // Private: entity resolution
+ // -------------------------------------------------------------------------
+
+ /**
+ * Resolve a named entity token (without & and ;).
+ * Priority: inputMap > externalMap > baseMap
+ * Returns the resolved value tagged with its limit tier.
+ *
+ * @param {string} name
+ * @returns {{ value: string, tier: string }|undefined}
+ */
+ _resolveName(name) {
+ // input and external both count as 'external' tier for limit purposes —
+ // they are injected at runtime and are the untrusted surface.
+ if (name in this._inputMap) return { value: this._inputMap[name], tier: LIMIT_TIER_EXTERNAL };
+ if (name in this._externalMap) return { value: this._externalMap[name], tier: LIMIT_TIER_EXTERNAL };
+ if (name in this._baseMap) return { value: this._baseMap[name], tier: LIMIT_TIER_BASE };
+ return undefined;
+ }
+
+ /**
+ * Classify a codepoint and return the minimum action level that must be applied.
+ * Returns -1 when no minimum is imposed (normal allow path).
+ *
+ * Ranges checked (in priority order):
+ * 1. U+0000 — null, governed by nullNCR (always ≥ remove)
+ * 2. U+D800–U+DFFF — surrogates, always prohibited (min: remove)
+ * 3. U+0001–U+001F \ {0x09,0x0A,0x0D} — XML 1.0 restricted C0 (min: remove)
+ * (skipped in XML 1.1 — C0 controls are allowed when written as NCRs)
+ *
+ * @param {number} cp — codepoint
+ * @returns {number} — minimum NCR_LEVEL value, or -1 for no restriction
+ */
+ _classifyNCR(cp) {
+ // 1. Null
+ if (cp === 0) return this._ncrNullLevel;
+
+ // 2. Surrogates — always prohibited, minimum 'remove'
+ if (cp >= 0xD800 && cp <= 0xDFFF) return NCR_LEVEL.remove;
+
+ // 3. XML 1.0 restricted C0 controls
+ if (this._ncrXmlVersion === 1.0) {
+ if (cp >= 0x01 && cp <= 0x1F && !XML10_ALLOWED_C0.has(cp)) return NCR_LEVEL.remove;
+ }
+
+ return -1; // no restriction
+ }
+
+ /**
+ * Execute a resolved NCR action.
+ *
+ * @param {number} action — NCR_LEVEL value
+ * @param {string} token — raw token (e.g. '#38') for error messages
+ * @param {number} cp — codepoint, used only for error messages
+ * @returns {string|undefined}
+ * - decoded character string → 'allow'
+ * - '' → 'remove'
+ * - undefined → 'leave' (caller must skip past '&' only)
+ * - throws Error → 'throw'
+ */
+ _applyNCRAction(action, token, cp) {
+ switch (action) {
+ case NCR_LEVEL.allow: return String.fromCodePoint(cp);
+ case NCR_LEVEL.remove: return '';
+ case NCR_LEVEL.leave: return undefined; // signal: keep literal
+ case NCR_LEVEL.throw:
+ throw new Error(
+ `[EntityDecoder] Prohibited numeric character reference ` +
+ `&${token}; (U+${cp.toString(16).toUpperCase().padStart(4, '0')})`
+ );
+ default: return String.fromCodePoint(cp);
+ }
+ }
+
+ /**
+ * Full NCR resolution pipeline for a numeric token.
+ *
+ * Steps:
+ * 1. Parse the codepoint (decimal or hex).
+ * 2. Validate the raw codepoint range (NaN, <0, >0x10FFFF).
+ * 3. If numericAllowed is false and no minimum restriction applies → leave as-is.
+ * 4. Classify the codepoint to find the minimum required action level.
+ * 5. Resolve effective action = max(onNCR, minimum).
+ * 6. Apply and return.
+ *
+ * @param {string} token — e.g. '#38', '#x26', '#X26'
+ * @returns {string|undefined}
+ * - string (incl. '') — replacement ('' = remove)
+ * - undefined — leave original &token; as-is
+ */
+ _resolveNCR(token) {
+ // Step 1: parse codepoint
+ const second = token.charCodeAt(1);
+ let cp;
+ if (second === 120 /* x */ || second === 88 /* X */) {
+ cp = parseInt(token.slice(2), 16);
+ } else {
+ cp = parseInt(token.slice(1), 10);
+ }
+
+ // Step 2: out-of-range → leave as-is unconditionally
+ if (Number.isNaN(cp) || cp < 0 || cp > 0x10FFFF) return undefined;
+
+ // Step 3: classify to get minimum action level
+ const minimum = this._classifyNCR(cp);
+
+ // Step 4: if numericAllowed is false and no hard minimum → leave
+ if (!this._numericAllowed && minimum < NCR_LEVEL.remove) return undefined;
+
+ // Step 5: effective action = max(configured onNCR, range minimum)
+ const effective = minimum === -1
+ ? this._ncrOnLevel
+ : Math.max(this._ncrOnLevel, minimum);
+
+ // Step 6: apply
+ return this._applyNCRAction(effective, token, cp);
+ }
+}
\ No newline at end of file
diff --git a/node_modules/@nodable/entities/src/EntityEncoder.js b/node_modules/@nodable/entities/src/EntityEncoder.js
new file mode 100644
index 0000000..a53f5a3
--- /dev/null
+++ b/node_modules/@nodable/entities/src/EntityEncoder.js
@@ -0,0 +1,194 @@
+// EntityDecoder.js
+import { trie1, trie2, trie3 } from './entityTries.js';
+
+// Replacement strings indexed by char code — direct array access, no hashing
+const XML_UNSAFE_REPLACEMENT = new Array(128);
+XML_UNSAFE_REPLACEMENT[38] = '&'; // &
+XML_UNSAFE_REPLACEMENT[60] = '<'; // <
+XML_UNSAFE_REPLACEMENT[62] = '>'; // >
+XML_UNSAFE_REPLACEMENT[34] = '"'; // "
+XML_UNSAFE_REPLACEMENT[39] = '''; // '
+
+// Typed bitmask for O(1) "is this ASCII code XML-unsafe?" check
+const IS_XML_UNSAFE = new Uint8Array(128);
+IS_XML_UNSAFE[38] = 1;
+IS_XML_UNSAFE[60] = 1;
+IS_XML_UNSAFE[62] = 1;
+IS_XML_UNSAFE[34] = 1;
+IS_XML_UNSAFE[39] = 1;
+
+// Fast pre-scan: bail out immediately if nothing needs encoding
+const NEEDS_PROCESSING = /[&<>"'\u0080-\uFFFF]/;
+
+export default class EntityEncoder {
+ constructor(options = {}) {
+ this.encodeXmlSafe = options.encodeXmlSafe !== false;
+ this.encodeAllNamed = options.encodeAllNamed !== false;
+ this.maxReplacements = options.maxReplacements || 0;
+ this.replacementsCount = 0;
+ }
+
+ encode(str) {
+ if (typeof str !== 'string' || str.length === 0) return str;
+ if (!NEEDS_PROCESSING.test(str)) return str;
+
+ const maxRep = this.maxReplacements;
+ if (maxRep > 0 && this.replacementsCount >= maxRep) return str;
+
+ // Hoist to locals — avoids `this` property lookup inside the hot loop
+ const encodeXmlSafe = this.encodeXmlSafe;
+ const encodeAllNamed = this.encodeAllNamed;
+
+ const len = str.length;
+
+ let result = '';
+ let last = 0;
+ let i = 0;
+ let limitReached = false;
+
+ // ── Main loop: runs to len-2 so trie3 never needs a bounds check ────────
+ // The last 2 characters are handled by the tail block below.
+ const mainEnd = len - 2; // i <= mainEnd guarantees i+1 and i+2 are valid
+
+ while (i <= mainEnd && !limitReached) {
+ const c0 = str.charCodeAt(i);
+
+ // ── ASCII branch ───────────────────────────────────────────────────
+ if (c0 < 128) {
+ if (encodeXmlSafe && IS_XML_UNSAFE[c0] === 1) {
+ result += str.substring(last, i) + XML_UNSAFE_REPLACEMENT[c0];
+ last = ++i;
+ if (maxRep > 0) {
+ this.replacementsCount++;
+ if (this.replacementsCount >= maxRep) {
+ limitReached = true;
+ break;
+ }
+ }
+ } else {
+ // Bulk-skip: advance to the next interesting position without
+ // touching the outer loop overhead on every safe character
+ i++;
+ while (i <= mainEnd && !limitReached) {
+ const c = str.charCodeAt(i);
+ if (c >= 128 || (encodeXmlSafe && IS_XML_UNSAFE[c] === 1)) break;
+ i++;
+ }
+ }
+ continue;
+ }
+
+ // ── Non-ASCII: integer-keyed trie lookup ───────────────────────────
+ // No bounds checks needed for c1/c2 because i <= mainEnd guarantees
+ // i+1 and i+2 are both within the string.
+ let matchedEntity = null;
+ let advance = 1;
+
+ // Try 3-char match first (longest wins)
+ const mid3 = trie3.get(c0);
+ if (mid3 !== undefined) {
+ const c1 = str.charCodeAt(i + 1);
+ const inner3 = mid3.get(c1);
+ if (inner3 !== undefined) {
+ const c2 = str.charCodeAt(i + 2);
+ const candidate = inner3.get(c2);
+ if (candidate !== undefined) { matchedEntity = candidate; advance = 3; }
+ }
+ }
+
+ // Try 2-char match
+ if (matchedEntity === null) {
+ const inner2 = trie2.get(c0);
+ if (inner2 !== undefined) {
+ const c1 = str.charCodeAt(i + 1);
+ const candidate = inner2.get(c1);
+ if (candidate !== undefined) { matchedEntity = candidate; advance = 2; }
+ }
+ }
+
+ // Try 1-char match
+ if (matchedEntity === null && encodeAllNamed) {
+ const candidate = trie1.get(c0);
+ if (candidate !== undefined) { matchedEntity = candidate; }
+ }
+
+ if (matchedEntity !== null) {
+ result += str.substring(last, i) + matchedEntity;
+ i += advance;
+ last = i;
+ if (maxRep > 0) {
+ this.replacementsCount++;
+ if (this.replacementsCount >= maxRep) {
+ limitReached = true;
+ break;
+ }
+ }
+ } else {
+ i++;
+ }
+ }
+
+ // ── Tail: handle the last 1-2 characters (no 3-char match possible) ────
+ while (i < len && !limitReached) {
+ const c0 = str.charCodeAt(i);
+
+ if (c0 < 128) {
+ if (encodeXmlSafe && IS_XML_UNSAFE[c0] === 1) {
+ result += str.substring(last, i) + XML_UNSAFE_REPLACEMENT[c0];
+ last = ++i;
+ if (maxRep > 0) {
+ this.replacementsCount++;
+ if (this.replacementsCount >= maxRep) {
+ limitReached = true;
+ break;
+ }
+ }
+ } else {
+ i++;
+ }
+ continue;
+ }
+
+ // Non-ASCII tail — only 2-char and 1-char matches are possible here
+ let matchedEntity = null;
+ let advance = 1;
+
+ if (i + 1 < len) {
+ const inner2 = trie2.get(c0);
+ if (inner2 !== undefined) {
+ const c1 = str.charCodeAt(i + 1);
+ const candidate = inner2.get(c1);
+ if (candidate !== undefined) { matchedEntity = candidate; advance = 2; }
+ }
+ }
+
+ if (matchedEntity === null && encodeAllNamed) {
+ const candidate = trie1.get(c0);
+ if (candidate !== undefined) { matchedEntity = candidate; }
+ }
+
+ if (matchedEntity !== null) {
+ result += str.substring(last, i) + matchedEntity;
+ i += advance;
+ last = i;
+ if (maxRep > 0) {
+ this.replacementsCount++;
+ if (this.replacementsCount >= maxRep) {
+ limitReached = true;
+ break;
+ }
+ }
+ } else {
+ i++;
+ }
+ }
+
+ // ── Flush any remaining literal suffix ────────────────────────────────
+ if (last < len) result += str.substring(last);
+ return result;
+ }
+
+ reset() {
+ this.replacementsCount = 0;
+ }
+}
\ No newline at end of file
diff --git a/node_modules/@nodable/entities/src/entities.js b/node_modules/@nodable/entities/src/entities.js
new file mode 100644
index 0000000..46e8a88
--- /dev/null
+++ b/node_modules/@nodable/entities/src/entities.js
@@ -0,0 +1,1177 @@
+// ---------------------------------------------------------------------------
+// Complete HTML5 named entity reference
+// Organized by logical categories for easy maintenance and selective importing
+// ---------------------------------------------------------------------------
+
+/**
+ * Basic Latin & Special Characters
+ * @type {Record}
+ */
+export const BASIC_LATIN = {
+ amp: '&',
+ AMP: '&',
+ lt: '<',
+ LT: '<',
+ gt: '>',
+ GT: '>',
+ quot: '"',
+ QUOT: '"',
+ apos: "'",
+ lsquo: '‘',
+ rsquo: '’',
+ ldquo: '“',
+ rdquo: '”',
+ lsquor: '‚',
+ rsquor: '’',
+ ldquor: '„',
+ bdquo: '„',
+ comma: ',',
+ period: '.',
+ colon: ':',
+ semi: ';',
+ excl: '!',
+ quest: '?',
+ num: '#',
+ dollar: '$',
+ percent: '%',
+ amp: '&',
+ ast: '*',
+ commat: '@',
+ lowbar: '_',
+ verbar: '|',
+ vert: '|',
+ sol: '/',
+ bsol: '\\',
+ lbrace: '{',
+ rbrace: '}',
+ lbrack: '[',
+ rbrack: ']',
+ lpar: '(',
+ rpar: ')',
+ nbsp: '\u00a0',
+ iexcl: '¡',
+ cent: '¢',
+ pound: '£',
+ curren: '¤',
+ yen: '¥',
+ brvbar: '¦',
+ sect: '§',
+ uml: '¨',
+ copy: '©',
+ COPY: '©',
+ ordf: 'ª',
+ laquo: '«',
+ not: '¬',
+ shy: '\u00ad',
+ reg: '®',
+ REG: '®',
+ macr: '¯',
+ deg: '°',
+ plusmn: '±',
+ sup2: '²',
+ sup3: '³',
+ acute: '´',
+ micro: 'µ',
+ para: '¶',
+ middot: '·',
+ cedil: '¸',
+ sup1: '¹',
+ ordm: 'º',
+ raquo: '»',
+ frac14: '¼',
+ frac12: '½',
+ half: '½',
+ frac34: '¾',
+ iquest: '¿',
+ times: '×',
+ div: '÷',
+ divide: '÷',
+};
+
+/**
+ * Latin Extended & Accented Letters (A-Z)
+ * @type {Record}
+ */
+export const LATIN_ACCENTS = {
+ Agrave: 'À',
+ agrave: 'à',
+ Aacute: 'Á',
+ aacute: 'á',
+ Acirc: 'Â',
+ acirc: 'â',
+ Atilde: 'Ã',
+ atilde: 'ã',
+ Auml: 'Ä',
+ auml: 'ä',
+ Aring: 'Å',
+ aring: 'å',
+ AElig: 'Æ',
+ aelig: 'æ',
+ Ccedil: 'Ç',
+ ccedil: 'ç',
+ Egrave: 'È',
+ egrave: 'è',
+ Eacute: 'É',
+ eacute: 'é',
+ Ecirc: 'Ê',
+ ecirc: 'ê',
+ Euml: 'Ë',
+ euml: 'ë',
+ Igrave: 'Ì',
+ igrave: 'ì',
+ Iacute: 'Í',
+ iacute: 'í',
+ Icirc: 'Î',
+ icirc: 'î',
+ Iuml: 'Ï',
+ iuml: 'ï',
+ ETH: 'Ð',
+ eth: 'ð',
+ Ntilde: 'Ñ',
+ ntilde: 'ñ',
+ Ograve: 'Ò',
+ ograve: 'ò',
+ Oacute: 'Ó',
+ oacute: 'ó',
+ Ocirc: 'Ô',
+ ocirc: 'ô',
+ Otilde: 'Õ',
+ otilde: 'õ',
+ Ouml: 'Ö',
+ ouml: 'ö',
+ Oslash: 'Ø',
+ oslash: 'ø',
+ Ugrave: 'Ù',
+ ugrave: 'ù',
+ Uacute: 'Ú',
+ uacute: 'ú',
+ Ucirc: 'Û',
+ ucirc: 'û',
+ Uuml: 'Ü',
+ uuml: 'ü',
+ Yacute: 'Ý',
+ yacute: 'ý',
+ THORN: 'Þ',
+ thorn: 'þ',
+ szlig: 'ß',
+ yuml: 'ÿ',
+ Yuml: 'Ÿ',
+};
+
+/**
+ * Latin Extended (Letters with diacritics)
+ * @type {Record}
+ */
+export const LATIN_EXTENDED = {
+ Amacr: 'Ā',
+ amacr: 'ā',
+ Abreve: 'Ă',
+ abreve: 'ă',
+ Aogon: 'Ą',
+ aogon: 'ą',
+ Cacute: 'Ć',
+ cacute: 'ć',
+ Ccirc: 'Ĉ',
+ ccirc: 'ĉ',
+ Cdot: 'Ċ',
+ cdot: 'ċ',
+ Ccaron: 'Č',
+ ccaron: 'č',
+ Dcaron: 'Ď',
+ dcaron: 'ď',
+ Dstrok: 'Đ',
+ dstrok: 'đ',
+ Emacr: 'Ē',
+ emacr: 'ē',
+ Ecaron: 'Ě',
+ ecaron: 'ě',
+ Edot: 'Ė',
+ edot: 'ė',
+ Eogon: 'Ę',
+ eogon: 'ę',
+ Gcirc: 'Ĝ',
+ gcirc: 'ĝ',
+ Gbreve: 'Ğ',
+ gbreve: 'ğ',
+ Gdot: 'Ġ',
+ gdot: 'ġ',
+ Gcedil: 'Ģ',
+ Hcirc: 'Ĥ',
+ hcirc: 'ĥ',
+ Hstrok: 'Ħ',
+ hstrok: 'ħ',
+ Itilde: 'Ĩ',
+ itilde: 'ĩ',
+ Imacr: 'Ī',
+ imacr: 'ī',
+ Iogon: 'Į',
+ iogon: 'į',
+ Idot: 'İ',
+ IJlig: 'IJ',
+ ijlig: 'ij',
+ Jcirc: 'Ĵ',
+ jcirc: 'ĵ',
+ Kcedil: 'Ķ',
+ kcedil: 'ķ',
+ kgreen: 'ĸ',
+ Lacute: 'Ĺ',
+ lacute: 'ĺ',
+ Lcedil: 'Ļ',
+ lcedil: 'ļ',
+ Lcaron: 'Ľ',
+ lcaron: 'ľ',
+ Lmidot: 'Ŀ',
+ lmidot: 'ŀ',
+ Lstrok: 'Ł',
+ lstrok: 'ł',
+ Nacute: 'Ń',
+ nacute: 'ń',
+ Ncaron: 'Ň',
+ ncaron: 'ň',
+ Ncedil: 'Ņ',
+ ncedil: 'ņ',
+ ENG: 'Ŋ',
+ eng: 'ŋ',
+ Omacr: 'Ō',
+ omacr: 'ō',
+ Odblac: 'Ő',
+ odblac: 'ő',
+ OElig: 'Œ',
+ oelig: 'œ',
+ Racute: 'Ŕ',
+ racute: 'ŕ',
+ Rcaron: 'Ř',
+ rcaron: 'ř',
+ Rcedil: 'Ŗ',
+ rcedil: 'ŗ',
+ Sacute: 'Ś',
+ sacute: 'ś',
+ Scirc: 'Ŝ',
+ scirc: 'ŝ',
+ Scedil: 'Ş',
+ scedil: 'ş',
+ Scaron: 'Š',
+ scaron: 'š',
+ Tcedil: 'Ţ',
+ tcedil: 'ţ',
+ Tcaron: 'Ť',
+ tcaron: 'ť',
+ Tstrok: 'Ŧ',
+ tstrok: 'ŧ',
+ Utilde: 'Ũ',
+ utilde: 'ũ',
+ Umacr: 'Ū',
+ umacr: 'ū',
+ Ubreve: 'Ŭ',
+ ubreve: 'ŭ',
+ Uring: 'Ů',
+ uring: 'ů',
+ Udblac: 'Ű',
+ udblac: 'ű',
+ Uogon: 'Ų',
+ uogon: 'ų',
+ Wcirc: 'Ŵ',
+ wcirc: 'ŵ',
+ Ycirc: 'Ŷ',
+ ycirc: 'ŷ',
+ Zacute: 'Ź',
+ zacute: 'ź',
+ Zdot: 'Ż',
+ zdot: 'ż',
+ Zcaron: 'Ž',
+ zcaron: 'ž',
+};
+
+/**
+ * Greek Letters
+ * @type {Record}
+ */
+export const GREEK = {
+ Alpha: 'Α',
+ alpha: 'α',
+ Beta: 'Β',
+ beta: 'β',
+ Gamma: 'Γ',
+ gamma: 'γ',
+ Delta: 'Δ',
+ delta: 'δ',
+ Epsilon: 'Ε',
+ epsilon: 'ε',
+ epsiv: 'ϵ',
+ varepsilon: 'ϵ',
+ Zeta: 'Ζ',
+ zeta: 'ζ',
+ Eta: 'Η',
+ eta: 'η',
+ Theta: 'Θ',
+ theta: 'θ',
+ thetasym: 'ϑ',
+ vartheta: 'ϑ',
+ Iota: 'Ι',
+ iota: 'ι',
+ Kappa: 'Κ',
+ kappa: 'κ',
+ kappav: 'ϰ',
+ varkappa: 'ϰ',
+ Lambda: 'Λ',
+ lambda: 'λ',
+ Mu: 'Μ',
+ mu: 'μ',
+ Nu: 'Ν',
+ nu: 'ν',
+ Xi: 'Ξ',
+ xi: 'ξ',
+ Omicron: 'Ο',
+ omicron: 'ο',
+ Pi: 'Π',
+ pi: 'π',
+ piv: 'ϖ',
+ varpi: 'ϖ',
+ Rho: 'Ρ',
+ rho: 'ρ',
+ rhov: 'ϱ',
+ varrho: 'ϱ',
+ Sigma: 'Σ',
+ sigma: 'σ',
+ sigmaf: 'ς',
+ sigmav: 'ς',
+ varsigma: 'ς',
+ Tau: 'Τ',
+ tau: 'τ',
+ Upsilon: 'Υ',
+ upsilon: 'υ',
+ upsi: 'υ',
+ Upsi: 'ϒ',
+ upsih: 'ϒ',
+ Phi: 'Φ',
+ phi: 'φ',
+ phiv: 'ϕ',
+ varphi: 'ϕ',
+ Chi: 'Χ',
+ chi: 'χ',
+ Psi: 'Ψ',
+ psi: 'ψ',
+ Omega: 'Ω',
+ omega: 'ω',
+ ohm: 'Ω',
+ Gammad: 'Ϝ',
+ gammad: 'ϝ',
+ digamma: 'ϝ',
+};
+
+/**
+ * Cyrillic Letters
+ * @type {Record}
+ */
+export const CYRILLIC = {
+ Afr: '𝔄',
+ afr: '𝔞',
+ Acy: 'А',
+ acy: 'а',
+ Bcy: 'Б',
+ bcy: 'б',
+ Vcy: 'В',
+ vcy: 'в',
+ Gcy: 'Г',
+ gcy: 'г',
+ Dcy: 'Д',
+ dcy: 'д',
+ IEcy: 'Е',
+ iecy: 'е',
+ IOcy: 'Ё',
+ iocy: 'ё',
+ ZHcy: 'Ж',
+ zhcy: 'ж',
+ Zcy: 'З',
+ zcy: 'з',
+ Icy: 'И',
+ icy: 'и',
+ Jcy: 'Й',
+ jcy: 'й',
+ Kcy: 'К',
+ kcy: 'к',
+ Lcy: 'Л',
+ lcy: 'л',
+ Mcy: 'М',
+ mcy: 'м',
+ Ncy: 'Н',
+ ncy: 'н',
+ Ocy: 'О',
+ ocy: 'о',
+ Pcy: 'П',
+ pcy: 'п',
+ Rcy: 'Р',
+ rcy: 'р',
+ Scy: 'С',
+ scy: 'с',
+ Tcy: 'Т',
+ tcy: 'т',
+ Ucy: 'У',
+ ucy: 'у',
+ Fcy: 'Ф',
+ fcy: 'ф',
+ KHcy: 'Х',
+ khcy: 'х',
+ TScy: 'Ц',
+ tscy: 'ц',
+ CHcy: 'Ч',
+ chcy: 'ч',
+ SHcy: 'Ш',
+ shcy: 'ш',
+ SHCHcy: 'Щ',
+ shchcy: 'щ',
+ HARDcy: 'Ъ',
+ hardcy: 'ъ',
+ Ycy: 'Ы',
+ ycy: 'ы',
+ SOFTcy: 'Ь',
+ softcy: 'ь',
+ Ecy: 'Э',
+ ecy: 'э',
+ YUcy: 'Ю',
+ yucy: 'ю',
+ YAcy: 'Я',
+ yacy: 'я',
+ DJcy: 'Ђ',
+ djcy: 'ђ',
+ GJcy: 'Ѓ',
+ gjcy: 'ѓ',
+ Jukcy: 'Є',
+ jukcy: 'є',
+ DScy: 'Ѕ',
+ dscy: 'ѕ',
+ Iukcy: 'І',
+ iukcy: 'і',
+ YIcy: 'Ї',
+ yicy: 'ї',
+ Jsercy: 'Ј',
+ jsercy: 'ј',
+ LJcy: 'Љ',
+ ljcy: 'љ',
+ NJcy: 'Њ',
+ njcy: 'њ',
+ TSHcy: 'Ћ',
+ tshcy: 'ћ',
+ KJcy: 'Ќ',
+ kjcy: 'ќ',
+ Ubrcy: 'Ў',
+ ubrcy: 'ў',
+ DZcy: 'Џ',
+ dzcy: 'џ',
+};
+
+/**
+ * Mathematical Operators & Relations
+ * @type {Record}
+ */
+export const MATH = {
+ plus: '+',
+ minus: '−',
+ mnplus: '∓',
+ mp: '∓',
+ pm: '±',
+ times: '×',
+ div: '÷',
+ divide: '÷',
+ sdot: '⋅',
+ star: '☆',
+ starf: '★',
+ bigstar: '★',
+ lowast: '∗',
+ ast: '*',
+ midast: '*',
+ compfn: '∘',
+ smallcircle: '∘',
+ bullet: '•',
+ bull: '•',
+ nbsp: '\u00a0',
+ hellip: '…',
+ mldr: '…',
+ prime: '′',
+ Prime: '″',
+ tprime: '‴',
+ bprime: '‵',
+ backprime: '‵',
+ minus: '−',
+ minusd: '∸',
+ dotminus: '∸',
+ plusdo: '∔',
+ dotplus: '∔',
+ plusmn: '±',
+ minusplus: '∓',
+ mnplus: '∓',
+ mp: '∓',
+ setminus: '∖',
+ smallsetminus: '∖',
+ Backslash: '∖',
+ setmn: '∖',
+ ssetmn: '∖',
+ lowbar: '_',
+ verbar: '|',
+ vert: '|',
+ VerticalLine: '|',
+ colon: ':',
+ Colon: '∷',
+ Proportion: '∷',
+ ratio: '∶',
+ equals: '=',
+ ne: '≠',
+ nequiv: '≢',
+ equiv: '≡',
+ Congruent: '≡',
+ sim: '∼',
+ thicksim: '∼',
+ thksim: '∼',
+ sime: '≃',
+ simeq: '≃',
+ TildeEqual: '≃',
+ asymp: '≈',
+ approx: '≈',
+ thickapprox: '≈',
+ thkap: '≈',
+ TildeTilde: '≈',
+ ncong: '≇',
+ cong: '≅',
+ TildeFullEqual: '≅',
+ asympeq: '≍',
+ CupCap: '≍',
+ bump: '≎',
+ Bumpeq: '≎',
+ HumpDownHump: '≎',
+ bumpe: '≏',
+ bumpeq: '≏',
+ HumpEqual: '≏',
+ dotminus: '∸',
+ minusd: '∸',
+ plusdo: '∔',
+ dotplus: '∔',
+ le: '≤',
+ LessEqual: '≤',
+ ge: '≥',
+ GreaterEqual: '≥',
+ lesseqgtr: '⋚',
+ lesseqqgtr: '⪋',
+ greater: '>',
+ less: '<',
+};
+
+/**
+ * Mathematical Operators (Advanced)
+ * @type {Record}
+ */
+export const MATH_ADVANCED = {
+ alefsym: 'ℵ',
+ aleph: 'ℵ',
+ beth: 'ℶ',
+ gimel: 'ℷ',
+ daleth: 'ℸ',
+ forall: '∀',
+ ForAll: '∀',
+ part: '∂',
+ PartialD: '∂',
+ exist: '∃',
+ Exists: '∃',
+ nexist: '∄',
+ nexists: '∄',
+ empty: '∅',
+ emptyset: '∅',
+ emptyv: '∅',
+ varnothing: '∅',
+ nabla: '∇',
+ Del: '∇',
+ isin: '∈',
+ isinv: '∈',
+ in: '∈',
+ Element: '∈',
+ notin: '∉',
+ notinva: '∉',
+ ni: '∋',
+ niv: '∋',
+ SuchThat: '∋',
+ ReverseElement: '∋',
+ notni: '∌',
+ notniva: '∌',
+ prod: '∏',
+ Product: '∏',
+ coprod: '∐',
+ Coproduct: '∐',
+ sum: '∑',
+ Sum: '∑',
+ minus: '−',
+ mp: '∓',
+ plusdo: '∔',
+ dotplus: '∔',
+ setminus: '∖',
+ lowast: '∗',
+ radic: '√',
+ Sqrt: '√',
+ prop: '∝',
+ propto: '∝',
+ Proportional: '∝',
+ varpropto: '∝',
+ infin: '∞',
+ infintie: '⧝',
+ ang: '∠',
+ angle: '∠',
+ angmsd: '∡',
+ measuredangle: '∡',
+ angsph: '∢',
+ mid: '∣',
+ VerticalBar: '∣',
+ nmid: '∤',
+ nsmid: '∤',
+ npar: '∦',
+ parallel: '∥',
+ spar: '∥',
+ nparallel: '∦',
+ nspar: '∦',
+ and: '∧',
+ wedge: '∧',
+ or: '∨',
+ vee: '∨',
+ cap: '∩',
+ cup: '∪',
+ int: '∫',
+ Integral: '∫',
+ conint: '∮',
+ ContourIntegral: '∮',
+ Conint: '∯',
+ DoubleContourIntegral: '∯',
+ Cconint: '∰',
+ there4: '∴',
+ therefore: '∴',
+ Therefore: '∴',
+ becaus: '∵',
+ because: '∵',
+ Because: '∵',
+ ratio: '∶',
+ Proportion: '∷',
+ minusd: '∸',
+ dotminus: '∸',
+ mDDot: '∺',
+ homtht: '∻',
+ sim: '∼',
+ bsimg: '∽',
+ backsim: '∽',
+ ac: '∾',
+ mstpos: '∾',
+ acd: '∿',
+ VerticalTilde: '≀',
+ wr: '≀',
+ wreath: '≀',
+ nsime: '≄',
+ nsimeq: '≄',
+ nsimeq: '≄',
+ ncong: '≇',
+ simne: '≆',
+ ncongdot: '⩭̸',
+ ngsim: '≵',
+ nsim: '≁',
+ napprox: '≉',
+ nap: '≉',
+ ngeq: '≱',
+ nge: '≱',
+ nleq: '≰',
+ nle: '≰',
+ ngtr: '≯',
+ ngt: '≯',
+ nless: '≮',
+ nlt: '≮',
+ nprec: '⊀',
+ npr: '⊀',
+ nsucc: '⊁',
+ nsc: '⊁',
+};
+
+/**
+ * Arrows
+ * @type {Record}
+ */
+export const ARROWS = {
+ larr: '←',
+ leftarrow: '←',
+ LeftArrow: '←',
+ uarr: '↑',
+ uparrow: '↑',
+ UpArrow: '↑',
+ rarr: '→',
+ rightarrow: '→',
+ RightArrow: '→',
+ darr: '↓',
+ downarrow: '↓',
+ DownArrow: '↓',
+ harr: '↔',
+ leftrightarrow: '↔',
+ LeftRightArrow: '↔',
+ varr: '↕',
+ updownarrow: '↕',
+ UpDownArrow: '↕',
+ nwarr: '↖',
+ nwarrow: '↖',
+ UpperLeftArrow: '↖',
+ nearr: '↗',
+ nearrow: '↗',
+ UpperRightArrow: '↗',
+ searr: '↘',
+ searrow: '↘',
+ LowerRightArrow: '↘',
+ swarr: '↙',
+ swarrow: '↙',
+ LowerLeftArrow: '↙',
+ lArr: '⇐',
+ Leftarrow: '⇐',
+ uArr: '⇑',
+ Uparrow: '⇑',
+ rArr: '⇒',
+ Rightarrow: '⇒',
+ dArr: '⇓',
+ Downarrow: '⇓',
+ hArr: '⇔',
+ Leftrightarrow: '⇔',
+ iff: '⇔',
+ vArr: '⇕',
+ Updownarrow: '⇕',
+ lAarr: '⇚',
+ Lleftarrow: '⇚',
+ rAarr: '⇛',
+ Rrightarrow: '⇛',
+ lrarr: '⇆',
+ leftrightarrows: '⇆',
+ rlarr: '⇄',
+ rightleftarrows: '⇄',
+ lrhar: '⇋',
+ leftrightharpoons: '⇋',
+ ReverseEquilibrium: '⇋',
+ rlhar: '⇌',
+ rightleftharpoons: '⇌',
+ Equilibrium: '⇌',
+ udarr: '⇅',
+ UpArrowDownArrow: '⇅',
+ duarr: '⇵',
+ DownArrowUpArrow: '⇵',
+ llarr: '⇇',
+ leftleftarrows: '⇇',
+ rrarr: '⇉',
+ rightrightarrows: '⇉',
+ ddarr: '⇊',
+ downdownarrows: '⇊',
+ har: '↽',
+ lhard: '↽',
+ leftharpoondown: '↽',
+ lharu: '↼',
+ leftharpoonup: '↼',
+ rhard: '⇁',
+ rightharpoondown: '⇁',
+ rharu: '⇀',
+ rightharpoonup: '⇀',
+ lsh: '↰',
+ Lsh: '↰',
+ rsh: '↱',
+ Rsh: '↱',
+ ldsh: '↲',
+ rdsh: '↳',
+ hookleftarrow: '↩',
+ hookrightarrow: '↪',
+ mapstoleft: '↤',
+ mapstoup: '↥',
+ map: '↦',
+ mapsto: '↦',
+ mapstodown: '↧',
+ crarr: '↵',
+ nwarrow: '↖',
+ nearrow: '↗',
+ searrow: '↘',
+ swarrow: '↙',
+ nleftarrow: '↚',
+ nleftrightarrow: '↮',
+ nrightarrow: '↛',
+ nrarr: '↛',
+ larrtl: '↢',
+ rarrtl: '↣',
+ leftarrowtail: '↢',
+ rightarrowtail: '↣',
+ twoheadleftarrow: '↞',
+ twoheadrightarrow: '↠',
+ Larr: '↞',
+ Rarr: '↠',
+ larrhk: '↩',
+ rarrhk: '↪',
+ larrlp: '↫',
+ looparrowleft: '↫',
+ rarrlp: '↬',
+ looparrowright: '↬',
+ harrw: '↭',
+ leftrightsquigarrow: '↭',
+ nrarrw: '↝̸',
+ rarrw: '↝',
+ rightsquigarrow: '↝',
+ larrbfs: '⤟',
+ rarrbfs: '⤠',
+ nvHarr: '⤄',
+ nvlArr: '⤂',
+ nvrArr: '⤃',
+ larrfs: '⤝',
+ rarrfs: '⤞',
+ Map: '⤅',
+ larrsim: '⥳',
+ rarrsim: '⥴',
+ harrcir: '⥈',
+ Uarrocir: '⥉',
+ lurdshar: '⥊',
+ ldrdhar: '⥧',
+ ldrushar: '⥋',
+ rdldhar: '⥩',
+ lrhard: '⥭',
+ rlhar: '⇌',
+ uharr: '↾',
+ uharl: '↿',
+ dharr: '⇂',
+ dharl: '⇃',
+ Uarr: '↟',
+ Darr: '↡',
+ zigrarr: '⇝',
+ nwArr: '⇖',
+ neArr: '⇗',
+ seArr: '⇘',
+ swArr: '⇙',
+ nharr: '↮',
+ nhArr: '⇎',
+ nlarr: '↚',
+ nlArr: '⇍',
+ nrarr: '↛',
+ nrArr: '⇏',
+ larrb: '⇤',
+ LeftArrowBar: '⇤',
+ rarrb: '⇥',
+ RightArrowBar: '⇥',
+};
+
+/**
+ * Geometric Shapes
+ * @type {Record}
+ */
+export const SHAPES = {
+ square: '□',
+ Square: '□',
+ squ: '□',
+ squf: '▪',
+ squarf: '▪',
+ blacksquar: '▪',
+ blacksquare: '▪',
+ FilledVerySmallSquare: '▪',
+ blk34: '▓',
+ blk12: '▒',
+ blk14: '░',
+ block: '█',
+ srect: '▭',
+ rect: '▭',
+ sdot: '⋅',
+ sdotb: '⊡',
+ dotsquare: '⊡',
+ triangle: '▵',
+ tri: '▵',
+ trine: '▵',
+ utri: '▵',
+ triangledown: '▿',
+ dtri: '▿',
+ tridown: '▿',
+ triangleleft: '◃',
+ ltri: '◃',
+ triangleright: '▹',
+ rtri: '▹',
+ blacktriangle: '▴',
+ utrif: '▴',
+ blacktriangledown: '▾',
+ dtrif: '▾',
+ blacktriangleleft: '◂',
+ ltrif: '◂',
+ blacktriangleright: '▸',
+ rtrif: '▸',
+ loz: '◊',
+ lozenge: '◊',
+ blacklozenge: '⧫',
+ lozf: '⧫',
+ bigcirc: '◯',
+ xcirc: '◯',
+ circ: 'ˆ',
+ Circle: '○',
+ cir: '○',
+ o: '○',
+ bullet: '•',
+ bull: '•',
+ hellip: '…',
+ mldr: '…',
+ nldr: '‥',
+ boxh: '─',
+ HorizontalLine: '─',
+ boxv: '│',
+ boxdr: '┌',
+ boxdl: '┐',
+ boxur: '└',
+ boxul: '┘',
+ boxvr: '├',
+ boxvl: '┤',
+ boxhd: '┬',
+ boxhu: '┴',
+ boxvh: '┼',
+ boxH: '═',
+ boxV: '║',
+ boxdR: '╒',
+ boxDr: '╓',
+ boxDR: '╔',
+ boxDl: '╕',
+ boxdL: '╖',
+ boxDL: '╗',
+ boxuR: '╘',
+ boxUr: '╙',
+ boxUR: '╚',
+ boxUl: '╜',
+ boxuL: '╛',
+ boxUL: '╝',
+ boxvR: '╞',
+ boxVr: '╟',
+ boxVR: '╠',
+ boxVl: '╢',
+ boxvL: '╡',
+ boxVL: '╣',
+ boxHd: '╤',
+ boxhD: '╥',
+ boxHD: '╦',
+ boxHu: '╧',
+ boxhU: '╨',
+ boxHU: '╩',
+ boxvH: '╪',
+ boxVh: '╫',
+ boxVH: '╬',
+};
+
+/**
+ * Punctuation & Diacritics
+ * @type {Record}
+ */
+export const PUNCTUATION = {
+ excl: '!',
+ iexcl: '¡',
+ brvbar: '¦',
+ sect: '§',
+ uml: '¨',
+ copy: '©',
+ ordf: 'ª',
+ laquo: '«',
+ not: '¬',
+ shy: '\u00ad',
+ reg: '®',
+ macr: '¯',
+ deg: '°',
+ plusmn: '±',
+ sup2: '²',
+ sup3: '³',
+ acute: '´',
+ micro: 'µ',
+ para: '¶',
+ middot: '·',
+ cedil: '¸',
+ sup1: '¹',
+ ordm: 'º',
+ raquo: '»',
+ frac14: '¼',
+ frac12: '½',
+ frac34: '¾',
+ iquest: '¿',
+ nbsp: '\u00a0',
+ comma: ',',
+ period: '.',
+ colon: ':',
+ semi: ';',
+ vert: '|',
+ Verbar: '‖',
+ verbar: '|',
+ dblac: '˝',
+ circ: 'ˆ',
+ caron: 'ˇ',
+ breve: '˘',
+ dot: '˙',
+ ring: '˚',
+ ogon: '˛',
+ tilde: '˜',
+ DiacriticalGrave: '`',
+ DiacriticalAcute: '´',
+ DiacriticalTilde: '˜',
+ DiacriticalDot: '˙',
+ DiacriticalDoubleAcute: '˝',
+ grave: '`',
+ acute: '´',
+};
+
+/**
+ * Currency Symbols
+ * @type {Record}
+ */
+export const CURRENCY = {
+ cent: '¢',
+ pound: '£',
+ curren: '¤',
+ yen: '¥',
+ euro: '€',
+ dollar: '$',
+ euro: '€',
+ fnof: 'ƒ',
+ inr: '₹',
+ af: '؋',
+ birr: 'ብር',
+ peso: '₱',
+ rub: '₽',
+ won: '₩',
+ yuan: '¥',
+ cedil: '¸',
+};
+
+/**
+ * Fractions
+ * @type {Record}
+ */
+export const FRACTIONS = {
+ frac12: '½',
+ half: '½',
+ frac13: '⅓',
+ frac14: '¼',
+ frac15: '⅕',
+ frac16: '⅙',
+ frac18: '⅛',
+ frac23: '⅔',
+ frac25: '⅖',
+ frac34: '¾',
+ frac35: '⅗',
+ frac38: '⅜',
+ frac45: '⅘',
+ frac56: '⅚',
+ frac58: '⅝',
+ frac78: '⅞',
+ frasl: '⁄',
+};
+
+/**
+ * Miscellaneous Symbols
+ * @type {Record}
+ */
+export const MISC_SYMBOLS = {
+ trade: '™',
+ TRADE: '™',
+ telrec: '⌕',
+ target: '⌖',
+ ulcorn: '⌜',
+ ulcorner: '⌜',
+ urcorn: '⌝',
+ urcorner: '⌝',
+ dlcorn: '⌞',
+ llcorner: '⌞',
+ drcorn: '⌟',
+ lrcorner: '⌟',
+ intercal: '⊺',
+ intcal: '⊺',
+ oplus: '⊕',
+ CirclePlus: '⊕',
+ ominus: '⊖',
+ CircleMinus: '⊖',
+ otimes: '⊗',
+ CircleTimes: '⊗',
+ osol: '⊘',
+ odot: '⊙',
+ CircleDot: '⊙',
+ oast: '⊛',
+ circledast: '⊛',
+ odash: '⊝',
+ circleddash: '⊝',
+ ocirc: '⊚',
+ circledcirc: '⊚',
+ boxplus: '⊞',
+ plusb: '⊞',
+ boxminus: '⊟',
+ minusb: '⊟',
+ boxtimes: '⊠',
+ timesb: '⊠',
+ boxdot: '⊡',
+ sdotb: '⊡',
+ veebar: '⊻',
+ vee: '∨',
+ barvee: '⊽',
+ and: '∧',
+ wedge: '∧',
+ Cap: '⋒',
+ Cup: '⋓',
+ Fork: '⋔',
+ pitchfork: '⋔',
+ epar: '⋕',
+ ltlarr: '⥶',
+ nvap: '≍⃒',
+ nvsim: '∼⃒',
+ nvge: '≥⃒',
+ nvle: '≤⃒',
+ nvlt: '<⃒',
+ nvgt: '>⃒',
+ nvltrie: '⊴⃒',
+ nvrtrie: '⊵⃒',
+ Vdash: '⊩',
+ dashv: '⊣',
+ vDash: '⊨',
+ Vdash: '⊩',
+ Vvdash: '⊪',
+ nvdash: '⊬',
+ nvDash: '⊭',
+ nVdash: '⊮',
+ nVDash: '⊯',
+};
+
+/**
+ * All entities combined (if you need everything)
+ * @type {Record}
+ */
+export const ALL_ENTITIES = {
+ ...BASIC_LATIN,
+ ...LATIN_ACCENTS,
+ ...LATIN_EXTENDED,
+ ...GREEK,
+ ...CYRILLIC,
+ ...MATH,
+ ...MATH_ADVANCED,
+ ...ARROWS,
+ ...SHAPES,
+ ...PUNCTUATION,
+ ...CURRENCY,
+ ...FRACTIONS,
+ ...MISC_SYMBOLS,
+};
+
+export const XML = {
+ amp: "&",
+ apos: "'",
+ gt: ">",
+ lt: "<",
+ quot: "\""
+}
+export const COMMON_HTML = {
+ nbsp: '\u00a0',
+ copy: '\u00a9',
+ reg: '\u00ae',
+ trade: '\u2122',
+ mdash: '\u2014',
+ ndash: '\u2013',
+ hellip: '\u2026',
+ laquo: '\u00ab',
+ raquo: '\u00bb',
+ lsquo: '\u2018',
+ rsquo: '\u2019',
+ ldquo: '\u201c',
+ rdquo: '\u201d',
+ bull: '\u2022',
+ para: '\u00b6',
+ sect: '\u00a7',
+ deg: '\u00b0',
+ frac12: '\u00bd',
+ frac14: '\u00bc',
+ frac34: '\u00be',
+}
+// ---------------------------------------------------------------------------
+// Note: NUMERIC_ENTITIES (NNN; / HH;) are handled by the scanner directly
+// via String.fromCodePoint() without any map lookup.
+// ---------------------------------------------------------------------------
\ No newline at end of file
diff --git a/node_modules/@nodable/entities/src/entityTries.js b/node_modules/@nodable/entities/src/entityTries.js
new file mode 100644
index 0000000..9565ebd
--- /dev/null
+++ b/node_modules/@nodable/entities/src/entityTries.js
@@ -0,0 +1,49 @@
+// entityTries.js
+// Builds integer-keyed tries so the decoder never allocates a string object
+// during lookup — every key is a plain charCode number.
+//
+// trie1: Map
+// trie2: Map>
+// trie3: Map>>
+
+import { ALL_ENTITIES } from './entities.js';
+
+// Reverse map: character sequence → "&name;"
+const CHAR_TO_ENTITY = new Map();
+for (const [name, chars] of Object.entries(ALL_ENTITIES)) {
+ CHAR_TO_ENTITY.set(chars, `&${name};`);
+}
+
+export const trie1 = new Map(); // code0 → entity string
+export const trie2 = new Map(); // code0 → Map → entity string
+export const trie3 = new Map(); // code0 → Map → Map → entity string
+
+for (const [chars, entity] of CHAR_TO_ENTITY) {
+ const len = chars.length;
+
+ if (len === 1) {
+ const c0 = chars.charCodeAt(0);
+ // Keep shortest match only if no longer match already claimed this code
+ // (longer matches are inserted in the same pass so we just overwrite —
+ // trie1 is only consulted after trie2/trie3 both miss, so no conflict)
+ trie1.set(c0, entity);
+
+ } else if (len === 2) {
+ const c0 = chars.charCodeAt(0);
+ const c1 = chars.charCodeAt(1);
+ let inner = trie2.get(c0);
+ if (inner === undefined) { inner = new Map(); trie2.set(c0, inner); }
+ inner.set(c1, entity);
+
+ } else if (len === 3) {
+ const c0 = chars.charCodeAt(0);
+ const c1 = chars.charCodeAt(1);
+ const c2 = chars.charCodeAt(2);
+ let mid = trie3.get(c0);
+ if (mid === undefined) { mid = new Map(); trie3.set(c0, mid); }
+ let inner = mid.get(c1);
+ if (inner === undefined) { inner = new Map(); mid.set(c1, inner); }
+ inner.set(c2, entity);
+ }
+ // HTML5 has no named entity whose character sequence is longer than 3 chars
+}
\ No newline at end of file
diff --git a/node_modules/@nodable/entities/src/index.d.ts b/node_modules/@nodable/entities/src/index.d.ts
new file mode 100644
index 0000000..5528d44
--- /dev/null
+++ b/node_modules/@nodable/entities/src/index.d.ts
@@ -0,0 +1,264 @@
+// ---------------------------------------------------------------------------
+// @nodable/entities — TypeScript declarations
+// ---------------------------------------------------------------------------
+
+/** A function-based entity replacement value (used for numeric refs). */
+export type EntityValFn = (match: string, captured: string, ...rest: unknown[]) => string;
+
+// ---------------------------------------------------------------------------
+// Encoder options
+// ---------------------------------------------------------------------------
+
+export interface EntityEncoderOptions {
+ /**
+ * Whether to encode XML unsafe characters: `&`, `<`, `>`, `"`, `'`.
+ * @default true
+ */
+ encodeXmlSafe?: boolean;
+
+ /**
+ * Whether to encode non‑ASCII characters (e.g. `é` → `é`) using the
+ * built‑in named entity trie.
+ * @default true
+ */
+ encodeAllNamed?: boolean;
+
+ /**
+ * Maximum number of replacements performed **cumulatively** across all
+ * `encode()` calls. `0` means unlimited.
+ *
+ * Use `reset()` to reset the internal counter.
+ * @default 0
+ */
+ maxReplacements?: number;
+}
+
+// ---------------------------------------------------------------------------
+// EntityEncoder class
+// ---------------------------------------------------------------------------
+
+/**
+ * High‑performance encoder that replaces characters with XML/HTML entities.
+ *
+ * - Escapes XML unsafe characters (`&`, `<`, `>`, `"`, `'`) when `encodeXmlSafe` is true.
+ * - Replaces non‑ASCII characters (e.g. `é`, `©`) with named entities using
+ * a compact trie‑based lookup when `encodeAllNamed` is true.
+ * - Supports a cumulative replacement limit (`maxReplacements`) that persists
+ * across multiple `encode()` calls until `reset()` is called.
+ *
+ * @example
+ * const encoder = new EntityEncoder({ encodeXmlSafe: true, encodeAllNamed: true });
+ * encoder.encode(''); // "<foo>"
+ * encoder.encode('© 2025'); // "© 2025"
+ *
+ * // With limit
+ * const limited = new EntityEncoder({ maxReplacements: 2 });
+ * limited.encode('<>&'); // "<>&" (third replacement omitted)
+ * limited.reset(); // reset counter
+ */
+export class EntityEncoder {
+ constructor(options?: EntityEncoderOptions);
+
+ /**
+ * Encode a string by replacing XML‑unsafe characters and (optionally)
+ * non‑ASCII characters with named entities.
+ *
+ * If `maxReplacements` is set and the cumulative limit has been reached,
+ * the input string is returned unchanged.
+ *
+ * @returns Encoded string (may be identical to input if no replacements needed
+ * or the limit has been exhausted).
+ */
+ encode(str: string): string;
+
+ /**
+ * Reset the internal replacement counter.
+ * Does **not** change `encodeXmlSafe`, `encodeAllNamed`, or `maxReplacements`.
+ */
+ reset(): void;
+}
+
+// ---------------------------------------------------------------------------
+// Constructor options for EntityDecoder (existing)
+// ---------------------------------------------------------------------------
+
+/**
+ * Controls which entity categories count toward the expansion limits.
+ *
+ * - `'external'` — only untrusted / injected entities (default)
+ * - `'base'` — only built‑in XML entities + user‑supplied `namedEntities`
+ * - `'all'` — all entities regardless of tier
+ * - `string[]` — explicit combination, e.g. `['external', 'base']`
+ */
+export type ApplyLimitsTo = 'external' | 'base' | 'all' | Array<'external' | 'base'>;
+
+export interface EntityDecoderLimitOptions {
+ /**
+ * Maximum number of entity references expanded **per document**.
+ * `0` means unlimited.
+ * @default 0
+ */
+ maxTotalExpansions?: number;
+
+ /**
+ * Maximum number of characters **added** by entity expansion per document.
+ * `0` means unlimited.
+ * @default 0
+ */
+ maxExpandedLength?: number;
+
+ /**
+ * Which entity tiers count toward the expansion limits.
+ *
+ * - `'external'` (default) – only input/runtime + persistent external entities
+ * - `'base'` – only built‑in XML + `namedEntities`
+ * - `'all'` – every entity regardless of tier
+ * - `string[]` – explicit combination, e.g. `['external', 'base']`
+ *
+ * @default 'external'
+ */
+ applyLimitsTo?: ApplyLimitsTo;
+}
+
+export interface EntityDecoderNCROptions {
+ /**
+ * XML version used for NCR classification.
+ * @default 1.0
+ */
+ xmlVersion?: 1.0 | 1.1;
+
+ /**
+ * Base action for all numeric references.
+ * @default 'allow'
+ */
+ onNCR?: 'allow' | 'leave' | 'remove' | 'throw';
+
+ /**
+ * Action for null NCR (U+0000).
+ * @default 'remove'
+ */
+ nullNCR?: 'remove' | 'throw';
+}
+
+export interface EntityDecoderOptions {
+ /**
+ * Extra named entities merged into the **base map** (trusted, counts as `'base'` tier).
+ * These are combined with the built‑in XML entities (`lt`, `gt`, `quot`, `apos`).
+ * Values containing `&` are silently skipped to prevent recursive expansion.
+ *
+ * @default null
+ */
+ namedEntities?: Record | null;
+
+
+ /**
+ * Hook called once on the fully decoded string (after all replacements).
+ *
+ * - Receives `(resolved, original)` and **must return a string**.
+ * - To reject expansion, return `original`.
+ * - To sanitize, return a cleaned version of `resolved`.
+ *
+ * @example
+ * postCheck: (resolved, original) =>
+ * /<[a-z]/i.test(resolved) ? original : resolved
+ */
+ postCheck?: ((resolved: string, original: string) => string) | null;
+
+ /**
+ * Whether numeric character references (`NNN;`, `HH;`) are allowed.
+ * @default true
+ */
+ numericAllowed?: boolean;
+
+ /**
+ * Array of entity names or numeric references to leave unexpanded.
+ * @default []
+ */
+ leave?: string[];
+
+ /**
+ * Array of entity names or numeric references to remove.
+ * @default []
+ */
+ remove?: string[];
+
+ /**
+ * Security limits for entity expansion.
+ */
+ limit?: EntityDecoderLimitOptions;
+
+ /**
+ * Numeric Character Reference (NCR) policy.
+ */
+ ncr?: EntityDecoderNCROptions;
+}
+
+// ---------------------------------------------------------------------------
+// EntityDecoder class (default export)
+// ---------------------------------------------------------------------------
+
+/**
+ * Single‑pass, zero‑regex entity decoder for XML/HTML content.
+ *
+ * ## Entity lookup priority (highest → lowest)
+ * 1. **input / runtime** – injected via `addInputEntities()` (DOCTYPE per document)
+ * 2. **persistent external** – set via `setExternalEntities()` / `addExternalEntity()`
+ * 3. **base map** – built‑in XML entities + user‑supplied `namedEntities`
+ *
+ * Numeric references (`NNN;`, `HH;`) are resolved directly and count as the `'base'` tier.
+ *
+ * @example
+ * const decoder = new EntityDecoder({
+ * namedEntities: COMMON_HTML,
+ * maxTotalExpansions: 100
+ * });
+ * decoder.setExternalEntities({ brand: 'Acme' });
+ *
+ * decoder.addInputEntities({ version: '1.0' });
+ * decoder.decode('&brand; v&version; <'); // 'Acme v1.0 <'
+ *
+ * decoder.reset(); // clears input entities + counters, keeps external entities
+ */
+export default class EntityDecoder {
+ constructor(options?: EntityDecoderOptions);
+
+ setExternalEntities(
+ map: Record
+ ): void;
+
+ addExternalEntity(key: string, value: string): void;
+
+ addInputEntities(
+ map: Record<
+ string,
+ | string
+ | { regx: RegExp; val: string | EntityValFn }
+ | { regex: RegExp; val: string | EntityValFn }
+ >
+ ): void;
+
+ reset(): this;
+
+ decode(str: string): string;
+}
+
+// ---------------------------------------------------------------------------
+// Named entity group exports (for use with `namedEntities` option)
+// ---------------------------------------------------------------------------
+
+export const COMMON_HTML: Record;
+export const ALL_ENTITIES: Record;
+export const XML: Record;
+export const BASIC_LATIN: Record;
+export const LATIN_ACCENTS: Record;
+export const LATIN_EXTENDED: Record;
+export const GREEK: Record;
+export const CYRILLIC: Record;
+export const MATH: Record;
+export const MATH_ADVANCED: Record;
+export const ARROWS: Record;
+export const SHAPES: Record;
+export const PUNCTUATION: Record;
+export const CURRENCY: Record;
+export const FRACTIONS: Record;
+export const MISC_SYMBOLS: Record;
\ No newline at end of file
diff --git a/node_modules/@nodable/entities/src/index.js b/node_modules/@nodable/entities/src/index.js
new file mode 100644
index 0000000..2db6c14
--- /dev/null
+++ b/node_modules/@nodable/entities/src/index.js
@@ -0,0 +1,29 @@
+/**
+ * @nodable/entities
+ *
+ * Standalone, zero-dependency XML/HTML entity replacement.
+ *
+
+ */
+
+export { default as EntityDecoder } from './EntityDecoder.js';
+export {
+ COMMON_HTML,
+ XML,
+ ALL_ENTITIES,
+ ARROWS,
+ BASIC_LATIN,
+ CURRENCY,
+ MATH,
+ MATH_ADVANCED,
+ CYRILLIC,
+ FRACTIONS,
+ GREEK,
+ LATIN_ACCENTS,
+ LATIN_EXTENDED,
+ MISC_SYMBOLS,
+ PUNCTUATION,
+ SHAPES,
+} from './entities.js';
+
+export { default as EntityEncoder } from './EntityEncoder.js';
\ No newline at end of file
diff --git a/node_modules/@tsconfig/node10/LICENSE b/node_modules/@tsconfig/node10/LICENSE
new file mode 100644
index 0000000..48ea661
--- /dev/null
+++ b/node_modules/@tsconfig/node10/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Microsoft Corporation.
+
+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/@tsconfig/node10/README.md b/node_modules/@tsconfig/node10/README.md
new file mode 100644
index 0000000..1d7df8a
--- /dev/null
+++ b/node_modules/@tsconfig/node10/README.md
@@ -0,0 +1,38 @@
+### A base TSConfig for working with Node 10.
+
+Add the package to your `"devDependencies"`:
+
+```sh
+npm install --save-dev @tsconfig/node10
+yarn add --dev @tsconfig/node10
+```
+
+Add to your `tsconfig.json`:
+
+```json
+"extends": "@tsconfig/node10/tsconfig.json"
+```
+
+---
+
+The `tsconfig.json`:
+
+```jsonc
+{
+ "$schema": "https://www.schemastore.org/tsconfig",
+
+ "compilerOptions": {
+ "lib": ["es2018"],
+ "module": "commonjs",
+ "target": "es2018",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "moduleResolution": "node"
+ }
+}
+
+```
+
+You can find the [code here](https://github.com/tsconfig/bases/blob/master/bases/node10.json).
diff --git a/node_modules/@tsconfig/node10/package.json b/node_modules/@tsconfig/node10/package.json
new file mode 100644
index 0000000..7a7729e
--- /dev/null
+++ b/node_modules/@tsconfig/node10/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "@tsconfig/node10",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/tsconfig/bases.git",
+ "directory": "bases"
+ },
+ "license": "MIT",
+ "description": "A base TSConfig for working with Node 10.",
+ "keywords": [
+ "tsconfig",
+ "node10"
+ ],
+ "version": "1.0.12"
+}
\ No newline at end of file
diff --git a/node_modules/@tsconfig/node10/tsconfig.json b/node_modules/@tsconfig/node10/tsconfig.json
new file mode 100644
index 0000000..ec3fba3
--- /dev/null
+++ b/node_modules/@tsconfig/node10/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://www.schemastore.org/tsconfig",
+
+ "compilerOptions": {
+ "lib": ["es2018"],
+ "module": "commonjs",
+ "target": "es2018",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "moduleResolution": "node"
+ }
+}
diff --git a/node_modules/@tsconfig/node12/LICENSE b/node_modules/@tsconfig/node12/LICENSE
new file mode 100644
index 0000000..48ea661
--- /dev/null
+++ b/node_modules/@tsconfig/node12/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Microsoft Corporation.
+
+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/@tsconfig/node12/README.md b/node_modules/@tsconfig/node12/README.md
new file mode 100644
index 0000000..6352ccd
--- /dev/null
+++ b/node_modules/@tsconfig/node12/README.md
@@ -0,0 +1,40 @@
+### A base TSConfig for working with Node 12.
+
+Add the package to your `"devDependencies"`:
+
+```sh
+npm install --save-dev @tsconfig/node12
+yarn add --dev @tsconfig/node12
+```
+
+Add to your `tsconfig.json`:
+
+```json
+"extends": "@tsconfig/node12/tsconfig.json"
+```
+
+---
+
+The `tsconfig.json`:
+
+```jsonc
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Node 12",
+
+ "compilerOptions": {
+ "lib": ["es2019", "es2020.promise", "es2020.bigint", "es2020.string"],
+ "module": "commonjs",
+ "target": "es2019",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node"
+ }
+}
+
+```
+
+You can find the [code here](https://github.com/tsconfig/bases/blob/master/bases/node12.json).
diff --git a/node_modules/@tsconfig/node12/package.json b/node_modules/@tsconfig/node12/package.json
new file mode 100644
index 0000000..56aad61
--- /dev/null
+++ b/node_modules/@tsconfig/node12/package.json
@@ -0,0 +1 @@
+{"name":"@tsconfig/node12","repository":{"type":"git","url":"https://github.com/tsconfig/bases.git","directory":"bases"},"license":"MIT","description":"A base TSConfig for working with Node 12.","keywords":["tsconfig","node12"],"version":"1.0.11"}
\ No newline at end of file
diff --git a/node_modules/@tsconfig/node12/tsconfig.json b/node_modules/@tsconfig/node12/tsconfig.json
new file mode 100644
index 0000000..eeaf944
--- /dev/null
+++ b/node_modules/@tsconfig/node12/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Node 12",
+
+ "compilerOptions": {
+ "lib": ["es2019", "es2020.promise", "es2020.bigint", "es2020.string"],
+ "module": "commonjs",
+ "target": "es2019",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node"
+ }
+}
diff --git a/node_modules/@tsconfig/node14/LICENSE b/node_modules/@tsconfig/node14/LICENSE
new file mode 100644
index 0000000..48ea661
--- /dev/null
+++ b/node_modules/@tsconfig/node14/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Microsoft Corporation.
+
+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/@tsconfig/node14/README.md b/node_modules/@tsconfig/node14/README.md
new file mode 100644
index 0000000..dad7f02
--- /dev/null
+++ b/node_modules/@tsconfig/node14/README.md
@@ -0,0 +1,40 @@
+### A base TSConfig for working with Node 14.
+
+Add the package to your `"devDependencies"`:
+
+```sh
+npm install --save-dev @tsconfig/node14
+yarn add --dev @tsconfig/node14
+```
+
+Add to your `tsconfig.json`:
+
+```json
+"extends": "@tsconfig/node14/tsconfig.json"
+```
+
+---
+
+The `tsconfig.json`:
+
+```jsonc
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Node 14",
+
+ "compilerOptions": {
+ "lib": ["es2020"],
+ "module": "commonjs",
+ "target": "es2020",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node"
+ }
+}
+
+```
+
+You can find the [code here](https://github.com/tsconfig/bases/blob/master/bases/node14.json).
diff --git a/node_modules/@tsconfig/node14/package.json b/node_modules/@tsconfig/node14/package.json
new file mode 100644
index 0000000..742f97b
--- /dev/null
+++ b/node_modules/@tsconfig/node14/package.json
@@ -0,0 +1 @@
+{"name":"@tsconfig/node14","repository":{"type":"git","url":"https://github.com/tsconfig/bases.git","directory":"bases"},"license":"MIT","description":"A base TSConfig for working with Node 14.","keywords":["tsconfig","node14"],"version":"1.0.3"}
\ No newline at end of file
diff --git a/node_modules/@tsconfig/node14/tsconfig.json b/node_modules/@tsconfig/node14/tsconfig.json
new file mode 100644
index 0000000..d1d7551
--- /dev/null
+++ b/node_modules/@tsconfig/node14/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Node 14",
+
+ "compilerOptions": {
+ "lib": ["es2020"],
+ "module": "commonjs",
+ "target": "es2020",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node"
+ }
+}
diff --git a/node_modules/@tsconfig/node16/LICENSE b/node_modules/@tsconfig/node16/LICENSE
new file mode 100644
index 0000000..48ea661
--- /dev/null
+++ b/node_modules/@tsconfig/node16/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) Microsoft Corporation.
+
+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/@tsconfig/node16/README.md b/node_modules/@tsconfig/node16/README.md
new file mode 100644
index 0000000..2946b2f
--- /dev/null
+++ b/node_modules/@tsconfig/node16/README.md
@@ -0,0 +1,40 @@
+### A base TSConfig for working with Node 16.
+
+Add the package to your `"devDependencies"`:
+
+```sh
+npm install --save-dev @tsconfig/node16
+yarn add --dev @tsconfig/node16
+```
+
+Add to your `tsconfig.json`:
+
+```json
+"extends": "@tsconfig/node16/tsconfig.json"
+```
+
+---
+
+The `tsconfig.json`:
+
+```jsonc
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Node 16",
+
+ "compilerOptions": {
+ "lib": ["es2021"],
+ "module": "Node16",
+ "target": "es2021",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node"
+ }
+}
+
+```
+
+You can find the [code here](https://github.com/tsconfig/bases/blob/master/bases/node16.json).
diff --git a/node_modules/@tsconfig/node16/package.json b/node_modules/@tsconfig/node16/package.json
new file mode 100644
index 0000000..8ccc97f
--- /dev/null
+++ b/node_modules/@tsconfig/node16/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "@tsconfig/node16",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/tsconfig/bases.git",
+ "directory": "bases"
+ },
+ "license": "MIT",
+ "description": "A base TSConfig for working with Node 16.",
+ "keywords": [
+ "tsconfig",
+ "node16"
+ ],
+ "version": "1.0.4"
+}
\ No newline at end of file
diff --git a/node_modules/@tsconfig/node16/tsconfig.json b/node_modules/@tsconfig/node16/tsconfig.json
new file mode 100644
index 0000000..2671912
--- /dev/null
+++ b/node_modules/@tsconfig/node16/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Node 16",
+
+ "compilerOptions": {
+ "lib": ["es2021"],
+ "module": "Node16",
+ "target": "es2021",
+
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node"
+ }
+}
diff --git a/node_modules/@types/minio/LICENSE b/node_modules/@types/minio/LICENSE
new file mode 100644
index 0000000..9e841e7
--- /dev/null
+++ b/node_modules/@types/minio/LICENSE
@@ -0,0 +1,21 @@
+ MIT License
+
+ Copyright (c) Microsoft Corporation.
+
+ 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/@types/minio/README.md b/node_modules/@types/minio/README.md
new file mode 100644
index 0000000..4a3394f
--- /dev/null
+++ b/node_modules/@types/minio/README.md
@@ -0,0 +1,16 @@
+# Installation
+> `npm install --save @types/minio`
+
+# Summary
+This package contains type definitions for minio (https://github.com/minio/minio-js#readme).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/minio.
+
+### Additional Details
+ * Last updated: Mon, 22 May 2023 19:32:54 GMT
+ * Dependencies: [@types/node](https://npmjs.com/package/@types/node)
+ * Global values: none
+
+# Credits
+These definitions were written by [Barin Britva](https://github.com/barinbritva), [Lubomir Kaplan](https://github.com/castorw), [Panagiotis Kapros](https://github.com/loremaps), [Ben Watkins](https://github.com/OutdatedVersion), [Seohyun Yoon](https://github.com/seohyun0120), and [Trim21](https://github.com/trim21).
diff --git a/node_modules/@types/minio/index.d.ts b/node_modules/@types/minio/index.d.ts
new file mode 100644
index 0000000..07bf9cc
--- /dev/null
+++ b/node_modules/@types/minio/index.d.ts
@@ -0,0 +1,772 @@
+// Type definitions for minio 7.1
+// Project: https://github.com/minio/minio-js#readme
+// Definitions by: Barin Britva
+// Lubomir Kaplan
+// Panagiotis Kapros
+// Ben Watkins
+// Seohyun Yoon
+// Trim21
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+// Import from dependencies
+import { Readable as ReadableStream } from 'stream';
+import { EventEmitter } from 'events';
+import { RequestOptions } from 'https';
+
+// Exports only from typings
+export type Region =
+ | 'us-east-1'
+ | 'us-west-1'
+ | 'us-west-2'
+ | 'eu-west-1'
+ | 'eu-central-1'
+ | 'ap-southeast-1'
+ | 'ap-northeast-1'
+ | 'ap-southeast-2'
+ | 'sa-east-1'
+ | 'cn-north-1'
+ | string;
+export type NotificationEvent =
+ | 's3:ObjectCreated:*'
+ | 's3:ObjectCreated:Put'
+ | 's3:ObjectCreated:Post'
+ | 's3:ObjectCreated:Copy'
+ | 's3:ObjectCreated:CompleteMultipartUpload'
+ | 's3:ObjectRemoved:*'
+ | 's3:ObjectRemoved:Delete'
+ | 's3:ObjectRemoved:DeleteMarkerCreated'
+ | 's3:ReducedRedundancyLostObject'
+ | 's3:TestEvent'
+ | 's3:ObjectRestore:Post'
+ | 's3:ObjectRestore:Completed'
+ | 's3:Replication:OperationFailedReplication'
+ | 's3:Replication:OperationMissedThreshold'
+ | 's3:Replication:OperationReplicatedAfterThreshold'
+ | 's3:Replication:OperationNotTracked'
+ | string;
+export type Mode = 'COMPLIANCE' | 'GOVERNANCE';
+export type LockUnit = 'Days' | 'Years';
+export type LegalHoldStatus = 'ON' | 'OFF';
+export type NoResultCallback = (error: Error | null) => void;
+export type ResultCallback = (error: Error | null, result: T) => void;
+export type VersioningConfig = Record;
+export type TagList = Record;
+export type EmptyObject = Record;
+export type VersionIdentificator = Pick;
+export type Lifecycle = LifecycleConfig | null | '';
+export type Lock = LockConfig | EmptyObject;
+export type Encryption = EncryptionConfig | EmptyObject;
+export type Retention = RetentionOptions | EmptyObject;
+export type IsoDate = string;
+
+export interface ClientOptions {
+ endPoint: string;
+ accessKey: string;
+ secretKey: string;
+ useSSL?: boolean | undefined;
+ port?: number | undefined;
+ region?: Region | undefined;
+ transport?: any;
+ sessionToken?: string | undefined;
+ partSize?: number | undefined;
+ pathStyle?: boolean | undefined;
+}
+
+export interface BucketItemFromList {
+ name: string;
+ creationDate: Date;
+}
+
+export interface BucketItemCopy {
+ etag: string;
+ lastModified: Date;
+}
+
+export interface BucketItem {
+ name: string;
+ prefix: string;
+ size: number;
+ etag: string;
+ lastModified: Date;
+}
+
+export interface BucketItemWithMetadata extends BucketItem {
+ metadata: ItemBucketMetadata | ItemBucketMetadataList;
+}
+
+export interface BucketItemStat {
+ size: number;
+ etag: string;
+ lastModified: Date;
+ metaData: ItemBucketMetadata;
+}
+
+export interface IncompleteUploadedBucketItem {
+ key: string;
+ uploadId: string;
+ size: number;
+}
+
+export interface BucketStream extends ReadableStream {
+ on(event: 'data', listener: (item: T) => void): this;
+ on(event: 'end' | 'pause' | 'readable' | 'resume' | 'close', listener: () => void): this;
+ on(event: 'error', listener: (err: Error) => void): this;
+ on(event: string | symbol, listener: (...args: any[]) => void): this;
+}
+
+export interface PostPolicyResult {
+ postURL: string;
+ formData: {
+ [key: string]: any;
+ };
+}
+
+export interface MetadataItem {
+ Key: string;
+ Value: string;
+}
+
+export interface ItemBucketMetadataList {
+ Items: MetadataItem[];
+}
+
+export interface ItemBucketMetadata {
+ [key: string]: any;
+}
+
+export interface UploadedObjectInfo {
+ etag: string;
+ versionId: string | null;
+}
+
+export interface Tag {
+ Key: string;
+ Value: string;
+}
+
+export interface LifecycleConfig {
+ Rule: LifecycleRule[];
+}
+
+export interface LifecycleRule {
+ [key: string]: any;
+}
+
+export interface LockConfig {
+ mode: Mode;
+ unit: LockUnit;
+ validity: number;
+}
+
+export interface EncryptionConfig {
+ Rule: EncryptionRule[];
+}
+
+export interface EncryptionRule {
+ [key: string]: any;
+}
+
+export interface ReplicationConfig {
+ role: string;
+ rules: [];
+}
+
+export interface ReplicationConfig {
+ [key: string]: any;
+}
+
+export interface RetentionOptions {
+ versionId: string;
+ mode?: Mode;
+ retainUntilDate?: IsoDate;
+ governanceBypass?: boolean;
+}
+
+export interface LegalHoldOptions {
+ versionId: string;
+ status: LegalHoldStatus;
+}
+
+export interface InputSerialization {
+ CompressionType?: 'NONE' | 'GZIP' | 'BZIP2';
+ CSV?: {
+ AllowQuotedRecordDelimiter?: boolean;
+ Comments?: string;
+ FieldDelimiter?: string;
+ FileHeaderInfo?: 'NONE' | 'IGNORE' | 'USE';
+ QuoteCharacter?: string;
+ QuoteEscapeCharacter?: string;
+ RecordDelimiter?: string;
+ };
+ JSON?: {
+ Type: 'DOCUMENT' | 'LINES';
+ };
+ Parquet?: EmptyObject;
+}
+
+export interface OutputSerialization {
+ CSV?: {
+ FieldDelimiter?: string;
+ QuoteCharacter?: string;
+ QuoteEscapeCharacter?: string;
+ QuoteFields?: string;
+ RecordDelimiter?: string;
+ };
+ JSON?: {
+ RecordDelimiter?: string;
+ };
+}
+
+export interface SelectOptions {
+ expression: string;
+ expressionType?: string;
+ inputSerialization: InputSerialization;
+ outputSerialization: OutputSerialization;
+ requestProgress?: { Enabled: boolean };
+ scanRange?: { Start: number; End: number };
+}
+
+export interface SourceObjectStats {
+ size: number;
+ metaData: string;
+ lastModicied: Date;
+ versionId: string;
+ etag: string;
+}
+
+// No need to export this. But without it - linter error.
+export class TargetConfig {
+ setId(id: any): void;
+ addEvent(newEvent: any): void;
+ addFilterSuffix(suffix: any): void;
+ addFilterPrefix(prefix: any): void;
+}
+
+export interface MakeBucketOpt {
+ ObjectLocking: boolean;
+}
+
+export interface RemoveOptions {
+ versionId?: string;
+ governanceBypass?: boolean;
+}
+
+// Exports from library
+export class Client {
+ constructor(options: ClientOptions);
+
+ // Bucket operations
+ makeBucket(bucketName: string, region: Region, makeOpts: MakeBucketOpt, callback: NoResultCallback): void;
+ makeBucket(bucketName: string, region: Region, callback: NoResultCallback): void;
+ makeBucket(bucketName: string, callback: NoResultCallback): void;
+ makeBucket(bucketName: string, region?: Region, makeOpts?: MakeBucketOpt): Promise;
+
+ listBuckets(callback: ResultCallback): void;
+ listBuckets(): Promise;
+
+ bucketExists(bucketName: string, callback: ResultCallback): void;
+ bucketExists(bucketName: string): Promise;
+
+ removeBucket(bucketName: string, callback: NoResultCallback): void;
+ removeBucket(bucketName: string): Promise;
+
+ listObjects(bucketName: string, prefix?: string, recursive?: boolean): BucketStream;
+
+ listObjectsV2(
+ bucketName: string,
+ prefix?: string,
+ recursive?: boolean,
+ startAfter?: string,
+ ): BucketStream;
+
+ listIncompleteUploads(
+ bucketName: string,
+ prefix?: string,
+ recursive?: boolean,
+ ): BucketStream;
+
+ getBucketVersioning(bucketName: string, callback: ResultCallback): void;
+ getBucketVersioning(bucketName: string): Promise;
+
+ setBucketVersioning(bucketName: string, versioningConfig: any, callback: NoResultCallback): void;
+ setBucketVersioning(bucketName: string, versioningConfig: any): Promise;
+
+ getBucketTagging(bucketName: string, callback: ResultCallback): void;
+ getBucketTagging(bucketName: string): Promise;
+
+ setBucketTagging(bucketName: string, tags: TagList, callback: NoResultCallback): void;
+ setBucketTagging(bucketName: string, tags: TagList): Promise;
+
+ removeBucketTagging(bucketName: string, callback: NoResultCallback): void;
+ removeBucketTagging(bucketName: string): Promise;
+
+ setBucketLifecycle(bucketName: string, lifecycleConfig: Lifecycle, callback: NoResultCallback): void;
+ setBucketLifecycle(bucketName: string, lifecycleConfig: Lifecycle): Promise;
+
+ getBucketLifecycle(bucketName: string, callback: ResultCallback): void;
+ getBucketLifecycle(bucketName: string): Promise;
+
+ removeBucketLifecycle(bucketName: string, callback: NoResultCallback): void;
+ removeBucketLifecycle(bucketName: string): Promise;
+
+ setObjectLockConfig(bucketName: string, callback: NoResultCallback): void;
+ setObjectLockConfig(bucketName: string, lockConfig: Lock, callback: NoResultCallback): void;
+ setObjectLockConfig(bucketName: string, lockConfig?: Lock): Promise;
+
+ getObjectLockConfig(bucketName: string, callback: ResultCallback): void;
+ getObjectLockConfig(bucketName: string): Promise;
+
+ getBucketEncryption(bucketName: string, callback: ResultCallback): void;
+ getBucketEncryption(bucketName: string): Promise;
+
+ setBucketEncryption(bucketName: string, encryptionConfig: Encryption, callback: NoResultCallback): void;
+ setBucketEncryption(bucketName: string, encryptionConfig: Encryption): Promise;
+
+ removeBucketEncryption(bucketName: string, callback: NoResultCallback): void;
+ removeBucketEncryption(bucketName: string): Promise;
+
+ setBucketReplication(bucketName: string, replicationConfig: ReplicationConfig, callback: NoResultCallback): void;
+ setBucketReplication(bucketName: string, replicationConfig: ReplicationConfig): Promise;
+
+ getBucketReplication(bucketName: string, callback: ResultCallback): void;
+ getBucketReplication(bucketName: string): Promise;
+
+ removeBucketReplication(bucketName: string, callback: NoResultCallback): void;
+ removeBucketReplication(bucketName: string): Promise;
+
+ // Object operations
+ getObject(bucketName: string, objectName: string, callback: ResultCallback): void;
+ getObject(bucketName: string, objectName: string): Promise;
+
+ getPartialObject(
+ bucketName: string,
+ objectName: string,
+ offset: number,
+ callback: ResultCallback,
+ ): void;
+ getPartialObject(
+ bucketName: string,
+ objectName: string,
+ offset: number,
+ length: number,
+ callback: ResultCallback,
+ ): void;
+ getPartialObject(bucketName: string, objectName: string, offset: number, length?: number): Promise;
+
+ fGetObject(bucketName: string, objectName: string, filePath: string, callback: NoResultCallback): void;
+ fGetObject(bucketName: string, objectName: string, filePath: string): Promise;
+
+ putObject(
+ bucketName: string,
+ objectName: string,
+ stream: ReadableStream | Buffer | string,
+ callback: ResultCallback,
+ ): void;
+ putObject(
+ bucketName: string,
+ objectName: string,
+ stream: ReadableStream | Buffer | string,
+ size: number,
+ callback: ResultCallback,
+ ): void;
+ putObject(
+ bucketName: string,
+ objectName: string,
+ stream: ReadableStream | Buffer | string,
+ size: number,
+ metaData: ItemBucketMetadata,
+ callback: ResultCallback,
+ ): void;
+ putObject(
+ bucketName: string,
+ objectName: string,
+ stream: ReadableStream | Buffer | string,
+ size?: number,
+ metaData?: ItemBucketMetadata,
+ ): Promise;
+ putObject(
+ bucketName: string,
+ objectName: string,
+ stream: ReadableStream | Buffer | string,
+ metaData?: ItemBucketMetadata,
+ ): Promise;
+
+ fPutObject(
+ bucketName: string,
+ objectName: string,
+ filePath: string,
+ metaData: ItemBucketMetadata,
+ callback: ResultCallback,
+ ): void;
+ fPutObject(
+ bucketName: string,
+ objectName: string,
+ filePath: string,
+ metaData?: ItemBucketMetadata,
+ ): Promise;
+
+ copyObject(
+ bucketName: string,
+ objectName: string,
+ sourceObject: string,
+ conditions: CopyConditions,
+ callback: ResultCallback,
+ ): void;
+ copyObject(
+ bucketName: string,
+ objectName: string,
+ sourceObject: string,
+ conditions: CopyConditions,
+ ): Promise;
+
+ statObject(bucketName: string, objectName: string, callback: ResultCallback): void;
+ statObject(bucketName: string, objectName: string): Promise;
+
+ removeObject(bucketName: string, objectName: string, removeOpts: RemoveOptions, callback: NoResultCallback): void;
+ removeObject(bucketName: string, objectName: string, callback: NoResultCallback): void;
+ removeObject(bucketName: string, objectName: string, removeOpts?: RemoveOptions): Promise;
+
+ removeObjects(bucketName: string, objectsList: string[], callback: NoResultCallback): void;
+ removeObjects(bucketName: string, objectsList: string[]): Promise;
+
+ removeIncompleteUpload(bucketName: string, objectName: string, callback: NoResultCallback): void;
+ removeIncompleteUpload(bucketName: string, objectName: string): Promise;
+
+ putObjectRetention(bucketName: string, objectName: string, callback: NoResultCallback): void;
+ putObjectRetention(
+ bucketName: string,
+ objectName: string,
+ retentionOptions: Retention,
+ callback: NoResultCallback,
+ ): void;
+ putObjectRetention(bucketName: string, objectName: string, retentionOptions?: Retention): Promise;
+
+ getObjectRetention(
+ bucketName: string,
+ objectName: string,
+ options: VersionIdentificator,
+ callback: ResultCallback,
+ ): void;
+ getObjectRetention(bucketName: string, objectName: string, options: VersionIdentificator): Promise;
+
+ // It seems, putObjectTagging is deprecated in favor or setObjectTagging - there is no such a method in the library source code
+ /**
+ * @deprecated Use setObjectTagging instead.
+ */
+ putObjectTagging(bucketName: string, objectName: string, tags: TagList, callback: NoResultCallback): void;
+ /**
+ * @deprecated Use setObjectTagging instead.
+ */
+ putObjectTagging(
+ bucketName: string,
+ objectName: string,
+ tags: TagList,
+ putOptions: VersionIdentificator,
+ callback: NoResultCallback,
+ ): void;
+ /**
+ * @deprecated Use setObjectTagging instead.
+ */
+ putObjectTagging(
+ bucketName: string,
+ objectName: string,
+ tags: TagList,
+ putOptions?: VersionIdentificator,
+ ): Promise;
+
+ setObjectTagging(bucketName: string, objectName: string, tags: TagList, callback: NoResultCallback): void;
+ setObjectTagging(
+ bucketName: string,
+ objectName: string,
+ tags: TagList,
+ putOptions: VersionIdentificator,
+ callback: NoResultCallback,
+ ): void;
+ setObjectTagging(
+ bucketName: string,
+ objectName: string,
+ tags: TagList,
+ putOptions?: VersionIdentificator,
+ ): Promise;
+
+ removeObjectTagging(bucketName: string, objectName: string, callback: NoResultCallback): void;
+ removeObjectTagging(
+ bucketName: string,
+ objectName: string,
+ removeOptions: VersionIdentificator,
+ callback: NoResultCallback,
+ ): void;
+ removeObjectTagging(bucketName: string, objectName: string, removeOptions?: VersionIdentificator): Promise;
+
+ getObjectTagging(bucketName: string, objectName: string, callback: ResultCallback): void;
+ getObjectTagging(
+ bucketName: string,
+ objectName: string,
+ getOptions: VersionIdentificator,
+ callback: ResultCallback,
+ ): void;
+ getObjectTagging(bucketName: string, objectName: string, getOptions?: VersionIdentificator): Promise;
+
+ getObjectLegalHold(bucketName: string, objectName: string, callback: ResultCallback): void;
+ getObjectLegalHold(
+ bucketName: string,
+ objectName: string,
+ getOptions: VersionIdentificator,
+ callback: ResultCallback,
+ ): void;
+ getObjectLegalHold(
+ bucketName: string,
+ objectName: string,
+ getOptions?: VersionIdentificator,
+ ): Promise;
+
+ setObjectLegalHold(bucketName: string, objectName: string, callback: NoResultCallback): void;
+ setObjectLegalHold(
+ bucketName: string,
+ objectName: string,
+ setOptions: LegalHoldOptions,
+ callback: NoResultCallback,
+ ): void;
+ setObjectLegalHold(bucketName: string, objectName: string, setOptions?: LegalHoldOptions): Promise;
+
+ composeObject(
+ destObjConfig: CopyDestinationOptions,
+ sourceObjList: CopySourceOptions[],
+ callback: ResultCallback,
+ ): void;
+ composeObject(
+ destObjConfig: CopyDestinationOptions,
+ sourceObjList: CopySourceOptions[],
+ ): Promise;
+
+ selectObjectContent(
+ bucketName: string,
+ objectName: string,
+ selectOpts: SelectOptions,
+ callback: NoResultCallback,
+ ): void;
+ selectObjectContent(bucketName: string, objectName: string, selectOpts: SelectOptions): Promise;
+
+ // Presigned operations
+ presignedUrl(httpMethod: string, bucketName: string, objectName: string, callback: ResultCallback): void;
+ presignedUrl(
+ httpMethod: string,
+ bucketName: string,
+ objectName: string,
+ expiry: number,
+ callback: ResultCallback,
+ ): void;
+ presignedUrl(
+ httpMethod: string,
+ bucketName: string,
+ objectName: string,
+ expiry: number,
+ reqParams: { [key: string]: any },
+ callback: ResultCallback,
+ ): void;
+ presignedUrl(
+ httpMethod: string,
+ bucketName: string,
+ objectName: string,
+ expiry: number,
+ reqParams: { [key: string]: any },
+ requestDate: Date,
+ callback: ResultCallback,
+ ): void;
+ presignedUrl(
+ httpMethod: string,
+ bucketName: string,
+ objectName: string,
+ expiry?: number,
+ reqParams?: { [key: string]: any },
+ requestDate?: Date,
+ ): Promise;
+
+ presignedGetObject(bucketName: string, objectName: string, callback: ResultCallback): void;
+ presignedGetObject(bucketName: string, objectName: string, expiry: number, callback: ResultCallback): void;
+ presignedGetObject(
+ bucketName: string,
+ objectName: string,
+ expiry: number,
+ respHeaders: { [key: string]: any },
+ callback: ResultCallback,
+ ): void;
+ presignedGetObject(
+ bucketName: string,
+ objectName: string,
+ expiry: number,
+ respHeaders: { [key: string]: any },
+ requestDate: Date,
+ callback: ResultCallback,
+ ): void;
+ presignedGetObject(
+ bucketName: string,
+ objectName: string,
+ expiry?: number,
+ respHeaders?: { [key: string]: any },
+ requestDate?: Date,
+ ): Promise;
+
+ presignedPutObject(bucketName: string, objectName: string, callback: ResultCallback): void;
+ presignedPutObject(bucketName: string, objectName: string, expiry: number, callback: ResultCallback): void;
+ presignedPutObject(bucketName: string, objectName: string, expiry?: number): Promise;
+
+ presignedPostPolicy(policy: PostPolicy, callback: ResultCallback): void;
+ presignedPostPolicy(policy: PostPolicy): Promise;
+
+ // Bucket Policy & Notification operations
+ getBucketNotification(bucketName: string, callback: ResultCallback): void;
+ getBucketNotification(bucketName: string): Promise;
+
+ setBucketNotification(
+ bucketName: string,
+ bucketNotificationConfig: NotificationConfig,
+ callback: NoResultCallback,
+ ): void;
+ setBucketNotification(bucketName: string, bucketNotificationConfig: NotificationConfig): Promise;
+
+ removeAllBucketNotification(bucketName: string, callback: NoResultCallback): void;
+ removeAllBucketNotification(bucketName: string): Promise;
+
+ getBucketPolicy(bucketName: string, callback: ResultCallback): void;
+ getBucketPolicy(bucketName: string): Promise;
+
+ setBucketPolicy(bucketName: string, bucketPolicy: string, callback: NoResultCallback): void;
+ setBucketPolicy(bucketName: string, bucketPolicy: string): Promise;
+
+ listenBucketNotification(
+ bucketName: string,
+ prefix: string,
+ suffix: string,
+ events: NotificationEvent[],
+ ): NotificationPoller;
+
+ // Custom Settings
+ setS3TransferAccelerate(endpoint: string): void;
+
+ // Other
+ newPostPolicy(): PostPolicy;
+ setRequestOptions(options: RequestOptions): void;
+
+ // Minio extensions that aren't necessary present for Amazon S3 compatible storage servers
+ extensions: {
+ listObjectsV2WithMetadata(
+ bucketName: string,
+ prefix?: string,
+ recursive?: boolean,
+ startAfter?: string,
+ ): BucketStream;
+ };
+}
+
+export namespace Policy {
+ const NONE: 'none';
+ const READONLY: 'readonly';
+ const WRITEONLY: 'writeonly';
+ const READWRITE: 'readwrite';
+}
+
+export class CopyConditions {
+ setModified(date: Date): void;
+ setUnmodified(date: Date): void;
+ setMatchETag(etag: string): void;
+ setMatchETagExcept(etag: string): void;
+}
+
+export class PostPolicy {
+ setExpires(date: Date): void;
+ setKey(objectName: string): void;
+ setKeyStartsWith(prefix: string): void;
+ setBucket(bucketName: string): void;
+ setContentType(type: string): void;
+ setContentTypeStartsWith(prefix: string): void;
+ setContentLengthRange(min: number, max: number): void;
+ setContentDisposition(disposition: string): void;
+ setUserMetaData(metadata: Record): void;
+}
+
+export class NotificationPoller extends EventEmitter {
+ stop(): void;
+ start(): void;
+ // must to be public?
+ checkForChanges(): void;
+}
+
+export class NotificationConfig {
+ add(target: TopicConfig | QueueConfig | CloudFunctionConfig): void;
+}
+
+export class TopicConfig extends TargetConfig {
+ constructor(arn: string);
+}
+
+export class QueueConfig extends TargetConfig {
+ constructor(arn: string);
+}
+
+export class CloudFunctionConfig extends TargetConfig {
+ constructor(arn: string);
+}
+
+export class CopySourceOptions {
+ constructor(options: {
+ Bucket: string;
+ Object: string;
+ VersionID?: string;
+ MatchETag?: string;
+ NoMatchETag?: string;
+ MatchModifiedSince?: string;
+ MatchUnmodifiedSince?: string;
+ MatchRange?: boolean;
+ Start?: number;
+ End?: number;
+ Encryption?: {
+ type: string;
+ SSEAlgorithm?: string;
+ KMSMasterKeyID?: string;
+ };
+ });
+
+ getHeaders(): Record;
+ validate(): boolean;
+}
+
+export class CopyDestinationOptions {
+ constructor(options: {
+ Bucket: string;
+ Object: string;
+ Encryption?: {
+ type: string;
+ SSEAlgorithm?: string;
+ KMSMasterKeyID?: string;
+ };
+ UserMetadata?: Record;
+ UserTags?: Record | string;
+ LegalHold?: LegalHoldStatus;
+ RetainUntilDate?: string;
+ Mode?: Mode;
+ });
+
+ getHeaders(): Record;
+ validate(): boolean;
+}
+
+export function buildARN(
+ partition: string,
+ service: string,
+ region: string,
+ accountId: string,
+ resource: string,
+): string;
+
+export const ObjectCreatedAll: NotificationEvent; // s3:ObjectCreated:*'
+export const ObjectCreatedPut: NotificationEvent; // s3:ObjectCreated:Put
+export const ObjectCreatedPost: NotificationEvent; // s3:ObjectCreated:Post
+export const ObjectCreatedCopy: NotificationEvent; // s3:ObjectCreated:Copy
+export const ObjectCreatedCompleteMultipartUpload: NotificationEvent; // s3:ObjectCreated:CompleteMultipartUpload
+export const ObjectRemovedAll: NotificationEvent; // s3:ObjectRemoved:*
+export const ObjectRemovedDelete: NotificationEvent; // s3:ObjectRemoved:Delete
+export const ObjectRemovedDeleteMarkerCreated: NotificationEvent; // s3:ObjectRemoved:DeleteMarkerCreated
+export const ObjectReducedRedundancyLostObject: NotificationEvent; // s3:ReducedRedundancyLostObject
diff --git a/node_modules/@types/minio/package.json b/node_modules/@types/minio/package.json
new file mode 100644
index 0000000..5a62af1
--- /dev/null
+++ b/node_modules/@types/minio/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "@types/minio",
+ "version": "7.1.0",
+ "description": "TypeScript definitions for minio",
+ "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/minio",
+ "license": "MIT",
+ "contributors": [
+ {
+ "name": "Barin Britva",
+ "url": "https://github.com/barinbritva",
+ "githubUsername": "barinbritva"
+ },
+ {
+ "name": "Lubomir Kaplan",
+ "url": "https://github.com/castorw",
+ "githubUsername": "castorw"
+ },
+ {
+ "name": "Panagiotis Kapros",
+ "url": "https://github.com/loremaps",
+ "githubUsername": "loremaps"
+ },
+ {
+ "name": "Ben Watkins",
+ "url": "https://github.com/OutdatedVersion",
+ "githubUsername": "OutdatedVersion"
+ },
+ {
+ "name": "Seohyun Yoon",
+ "url": "https://github.com/seohyun0120",
+ "githubUsername": "seohyun0120"
+ },
+ {
+ "name": "Trim21",
+ "url": "https://github.com/trim21",
+ "githubUsername": "trim21"
+ }
+ ],
+ "main": "",
+ "types": "index.d.ts",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
+ "directory": "types/minio"
+ },
+ "scripts": {},
+ "dependencies": {
+ "@types/node": "*"
+ },
+ "typesPublisherContentHash": "946994b096be4d21329eab0e7d791ac920a0173d9d3e0723ba6f55c560a2fe41",
+ "typeScriptVersion": "4.3"
+}
\ No newline at end of file
diff --git a/node_modules/@types/node/LICENSE b/node_modules/@types/node/LICENSE
new file mode 100644
index 0000000..9e841e7
--- /dev/null
+++ b/node_modules/@types/node/LICENSE
@@ -0,0 +1,21 @@
+ MIT License
+
+ Copyright (c) Microsoft Corporation.
+
+ 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/@types/node/README.md b/node_modules/@types/node/README.md
new file mode 100644
index 0000000..83c5c7b
--- /dev/null
+++ b/node_modules/@types/node/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/node`
+
+# Summary
+This package contains type definitions for node (https://nodejs.org/).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
+
+### Additional Details
+ * Last updated: Fri, 10 Apr 2026 03:39:58 GMT
+ * Dependencies: [undici-types](https://npmjs.com/package/undici-types)
+
+# Credits
+These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [Alberto Schiabel](https://github.com/jkomyno), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [David Junger](https://github.com/touffy), [Mohsen Azimi](https://github.com/mohsen1), [Nikita Galkin](https://github.com/galkin), [Sebastian Silbermann](https://github.com/eps1lon), [Wilco Bakker](https://github.com/WilcoBakker), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), [Dmitry Semigradsky](https://github.com/Semigradsky), [René](https://github.com/Renegade334), and [Yagiz Nizipli](https://github.com/anonrig).
diff --git a/node_modules/@types/node/assert.d.ts b/node_modules/@types/node/assert.d.ts
new file mode 100644
index 0000000..c4cc77e
--- /dev/null
+++ b/node_modules/@types/node/assert.d.ts
@@ -0,0 +1,950 @@
+declare module "node:assert" {
+ import strict = require("node:assert/strict");
+ /**
+ * An alias of {@link assert.ok}.
+ * @since v0.5.9
+ * @param value The input that is checked for being truthy.
+ */
+ function assert(value: unknown, message?: string | Error): asserts value;
+ const kOptions: unique symbol;
+ namespace assert {
+ type AssertMethodNames =
+ | "deepEqual"
+ | "deepStrictEqual"
+ | "doesNotMatch"
+ | "doesNotReject"
+ | "doesNotThrow"
+ | "equal"
+ | "fail"
+ | "ifError"
+ | "match"
+ | "notDeepEqual"
+ | "notDeepStrictEqual"
+ | "notEqual"
+ | "notStrictEqual"
+ | "ok"
+ | "partialDeepStrictEqual"
+ | "rejects"
+ | "strictEqual"
+ | "throws";
+ interface AssertOptions {
+ /**
+ * If set to `'full'`, shows the full diff in assertion errors.
+ * @default 'simple'
+ */
+ diff?: "simple" | "full" | undefined;
+ /**
+ * If set to `true`, non-strict methods behave like their
+ * corresponding strict methods.
+ * @default true
+ */
+ strict?: boolean | undefined;
+ /**
+ * If set to `true`, skips prototype and constructor
+ * comparison in deep equality checks.
+ * @since v24.9.0
+ * @default false
+ */
+ skipPrototype?: boolean | undefined;
+ }
+ interface Assert extends Pick {
+ readonly [kOptions]: AssertOptions & { strict: false };
+ }
+ interface AssertStrict extends Pick {
+ readonly [kOptions]: AssertOptions & { strict: true };
+ }
+ /**
+ * The `Assert` class allows creating independent assertion instances with custom options.
+ * @since v24.6.0
+ */
+ var Assert: {
+ /**
+ * Creates a new assertion instance. The `diff` option controls the verbosity of diffs in assertion error messages.
+ *
+ * ```js
+ * const { Assert } = require('node:assert');
+ * const assertInstance = new Assert({ diff: 'full' });
+ * assertInstance.deepStrictEqual({ a: 1 }, { a: 2 });
+ * // Shows a full diff in the error message.
+ * ```
+ *
+ * **Important**: When destructuring assertion methods from an `Assert` instance,
+ * the methods lose their connection to the instance's configuration options (such
+ * as `diff`, `strict`, and `skipPrototype` settings).
+ * The destructured methods will fall back to default behavior instead.
+ *
+ * ```js
+ * const myAssert = new Assert({ diff: 'full' });
+ *
+ * // This works as expected - uses 'full' diff
+ * myAssert.strictEqual({ a: 1 }, { b: { c: 1 } });
+ *
+ * // This loses the 'full' diff setting - falls back to default 'simple' diff
+ * const { strictEqual } = myAssert;
+ * strictEqual({ a: 1 }, { b: { c: 1 } });
+ * ```
+ *
+ * The `skipPrototype` option affects all deep equality methods:
+ *
+ * ```js
+ * class Foo {
+ * constructor(a) {
+ * this.a = a;
+ * }
+ * }
+ *
+ * class Bar {
+ * constructor(a) {
+ * this.a = a;
+ * }
+ * }
+ *
+ * const foo = new Foo(1);
+ * const bar = new Bar(1);
+ *
+ * // Default behavior - fails due to different constructors
+ * const assert1 = new Assert();
+ * assert1.deepStrictEqual(foo, bar); // AssertionError
+ *
+ * // Skip prototype comparison - passes if properties are equal
+ * const assert2 = new Assert({ skipPrototype: true });
+ * assert2.deepStrictEqual(foo, bar); // OK
+ * ```
+ *
+ * When destructured, methods lose access to the instance's `this` context and revert to default assertion behavior
+ * (diff: 'simple', non-strict mode).
+ * To maintain custom options when using destructured methods, avoid
+ * destructuring and call methods directly on the instance.
+ * @since v24.6.0
+ */
+ new(
+ options?: AssertOptions & { strict?: true | undefined },
+ ): AssertStrict;
+ new(
+ options: AssertOptions,
+ ): Assert;
+ };
+ interface AssertionErrorOptions {
+ /**
+ * If provided, the error message is set to this value.
+ */
+ message?: string | undefined;
+ /**
+ * The `actual` property on the error instance.
+ */
+ actual?: unknown;
+ /**
+ * The `expected` property on the error instance.
+ */
+ expected?: unknown;
+ /**
+ * The `operator` property on the error instance.
+ */
+ operator?: string | undefined;
+ /**
+ * If provided, the generated stack trace omits frames before this function.
+ */
+ stackStartFn?: Function | undefined;
+ /**
+ * If set to `'full'`, shows the full diff in assertion errors.
+ * @default 'simple'
+ */
+ diff?: "simple" | "full" | undefined;
+ }
+ /**
+ * Indicates the failure of an assertion. All errors thrown by the `node:assert` module will be instances of the `AssertionError` class.
+ */
+ class AssertionError extends Error {
+ constructor(options: AssertionErrorOptions);
+ /**
+ * Set to the `actual` argument for methods such as {@link assert.strictEqual()}.
+ */
+ actual: unknown;
+ /**
+ * Set to the `expected` argument for methods such as {@link assert.strictEqual()}.
+ */
+ expected: unknown;
+ /**
+ * Indicates if the message was auto-generated (`true`) or not.
+ */
+ generatedMessage: boolean;
+ /**
+ * Value is always `ERR_ASSERTION` to show that the error is an assertion error.
+ */
+ code: "ERR_ASSERTION";
+ /**
+ * Set to the passed in operator value.
+ */
+ operator: string;
+ }
+ type AssertPredicate = RegExp | (new() => object) | ((thrown: unknown) => boolean) | object | Error;
+ /**
+ * Throws an `AssertionError` with the provided error message or a default
+ * error message. If the `message` parameter is an instance of an `Error` then
+ * it will be thrown instead of the `AssertionError`.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.fail();
+ * // AssertionError [ERR_ASSERTION]: Failed
+ *
+ * assert.fail('boom');
+ * // AssertionError [ERR_ASSERTION]: boom
+ *
+ * assert.fail(new TypeError('need array'));
+ * // TypeError: need array
+ * ```
+ * @since v0.1.21
+ * @param [message='Failed']
+ */
+ function fail(message?: string | Error): never;
+ /**
+ * Tests if `value` is truthy. It is equivalent to `assert.equal(!!value, true, message)`.
+ *
+ * If `value` is not truthy, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is `undefined`, a default
+ * error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown instead of the `AssertionError`.
+ * If no arguments are passed in at all `message` will be set to the string:`` 'No value argument passed to `assert.ok()`' ``.
+ *
+ * Be aware that in the `repl` the error message will be different to the one
+ * thrown in a file! See below for further details.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.ok(true);
+ * // OK
+ * assert.ok(1);
+ * // OK
+ *
+ * assert.ok();
+ * // AssertionError: No value argument passed to `assert.ok()`
+ *
+ * assert.ok(false, 'it\'s false');
+ * // AssertionError: it's false
+ *
+ * // In the repl:
+ * assert.ok(typeof 123 === 'string');
+ * // AssertionError: false == true
+ *
+ * // In a file (e.g. test.js):
+ * assert.ok(typeof 123 === 'string');
+ * // AssertionError: The expression evaluated to a falsy value:
+ * //
+ * // assert.ok(typeof 123 === 'string')
+ *
+ * assert.ok(false);
+ * // AssertionError: The expression evaluated to a falsy value:
+ * //
+ * // assert.ok(false)
+ *
+ * assert.ok(0);
+ * // AssertionError: The expression evaluated to a falsy value:
+ * //
+ * // assert.ok(0)
+ * ```
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * // Using `assert()` works the same:
+ * assert(2 + 2 > 5);;
+ * // AssertionError: The expression evaluated to a falsy value:
+ * //
+ * // assert(2 + 2 > 5)
+ * ```
+ * @since v0.1.21
+ */
+ function ok(value: unknown, message?: string | Error): asserts value;
+ /**
+ * **Strict assertion mode**
+ *
+ * An alias of {@link strictEqual}.
+ *
+ * **Legacy assertion mode**
+ *
+ * > Stability: 3 - Legacy: Use {@link strictEqual} instead.
+ *
+ * Tests shallow, coercive equality between the `actual` and `expected` parameters
+ * using the [`==` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality). `NaN` is specially handled
+ * and treated as being identical if both sides are `NaN`.
+ *
+ * ```js
+ * import assert from 'node:assert';
+ *
+ * assert.equal(1, 1);
+ * // OK, 1 == 1
+ * assert.equal(1, '1');
+ * // OK, 1 == '1'
+ * assert.equal(NaN, NaN);
+ * // OK
+ *
+ * assert.equal(1, 2);
+ * // AssertionError: 1 == 2
+ * assert.equal({ a: { b: 1 } }, { a: { b: 1 } });
+ * // AssertionError: { a: { b: 1 } } == { a: { b: 1 } }
+ * ```
+ *
+ * If the values are not equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a default
+ * error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown instead of the `AssertionError`.
+ * @since v0.1.21
+ */
+ function equal(actual: unknown, expected: unknown, message?: string | Error): void;
+ /**
+ * **Strict assertion mode**
+ *
+ * An alias of {@link notStrictEqual}.
+ *
+ * **Legacy assertion mode**
+ *
+ * > Stability: 3 - Legacy: Use {@link notStrictEqual} instead.
+ *
+ * Tests shallow, coercive inequality with the [`!=` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Inequality). `NaN` is
+ * specially handled and treated as being identical if both sides are `NaN`.
+ *
+ * ```js
+ * import assert from 'node:assert';
+ *
+ * assert.notEqual(1, 2);
+ * // OK
+ *
+ * assert.notEqual(1, 1);
+ * // AssertionError: 1 != 1
+ *
+ * assert.notEqual(1, '1');
+ * // AssertionError: 1 != '1'
+ * ```
+ *
+ * If the values are equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a default error
+ * message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown instead of the `AssertionError`.
+ * @since v0.1.21
+ */
+ function notEqual(actual: unknown, expected: unknown, message?: string | Error): void;
+ /**
+ * **Strict assertion mode**
+ *
+ * An alias of {@link deepStrictEqual}.
+ *
+ * **Legacy assertion mode**
+ *
+ * > Stability: 3 - Legacy: Use {@link deepStrictEqual} instead.
+ *
+ * Tests for deep equality between the `actual` and `expected` parameters. Consider
+ * using {@link deepStrictEqual} instead. {@link deepEqual} can have
+ * surprising results.
+ *
+ * _Deep equality_ means that the enumerable "own" properties of child objects
+ * are also recursively evaluated by the following rules.
+ * @since v0.1.21
+ */
+ function deepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
+ /**
+ * **Strict assertion mode**
+ *
+ * An alias of {@link notDeepStrictEqual}.
+ *
+ * **Legacy assertion mode**
+ *
+ * > Stability: 3 - Legacy: Use {@link notDeepStrictEqual} instead.
+ *
+ * Tests for any deep inequality. Opposite of {@link deepEqual}.
+ *
+ * ```js
+ * import assert from 'node:assert';
+ *
+ * const obj1 = {
+ * a: {
+ * b: 1,
+ * },
+ * };
+ * const obj2 = {
+ * a: {
+ * b: 2,
+ * },
+ * };
+ * const obj3 = {
+ * a: {
+ * b: 1,
+ * },
+ * };
+ * const obj4 = { __proto__: obj1 };
+ *
+ * assert.notDeepEqual(obj1, obj1);
+ * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
+ *
+ * assert.notDeepEqual(obj1, obj2);
+ * // OK
+ *
+ * assert.notDeepEqual(obj1, obj3);
+ * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
+ *
+ * assert.notDeepEqual(obj1, obj4);
+ * // OK
+ * ```
+ *
+ * If the values are deeply equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a default
+ * error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown
+ * instead of the `AssertionError`.
+ * @since v0.1.21
+ */
+ function notDeepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
+ /**
+ * Tests strict equality between the `actual` and `expected` parameters as
+ * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.strictEqual(1, 2);
+ * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
+ * //
+ * // 1 !== 2
+ *
+ * assert.strictEqual(1, 1);
+ * // OK
+ *
+ * assert.strictEqual('Hello foobar', 'Hello World!');
+ * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
+ * // + actual - expected
+ * //
+ * // + 'Hello foobar'
+ * // - 'Hello World!'
+ * // ^
+ *
+ * const apples = 1;
+ * const oranges = 2;
+ * assert.strictEqual(apples, oranges, `apples ${apples} !== oranges ${oranges}`);
+ * // AssertionError [ERR_ASSERTION]: apples 1 !== oranges 2
+ *
+ * assert.strictEqual(1, '1', new TypeError('Inputs are not identical'));
+ * // TypeError: Inputs are not identical
+ * ```
+ *
+ * If the values are not strictly equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a
+ * default error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown
+ * instead of the `AssertionError`.
+ * @since v0.1.21
+ */
+ function strictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
+ /**
+ * Tests strict inequality between the `actual` and `expected` parameters as
+ * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.notStrictEqual(1, 2);
+ * // OK
+ *
+ * assert.notStrictEqual(1, 1);
+ * // AssertionError [ERR_ASSERTION]: Expected "actual" to be strictly unequal to:
+ * //
+ * // 1
+ *
+ * assert.notStrictEqual(1, '1');
+ * // OK
+ * ```
+ *
+ * If the values are strictly equal, an `AssertionError` is thrown with a `message` property set equal to the value of the `message` parameter. If the `message` parameter is undefined, a
+ * default error message is assigned. If the `message` parameter is an instance of an `Error` then it will be thrown
+ * instead of the `AssertionError`.
+ * @since v0.1.21
+ */
+ function notStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
+ /**
+ * Tests for deep equality between the `actual` and `expected` parameters.
+ * "Deep" equality means that the enumerable "own" properties of child objects
+ * are recursively evaluated also by the following rules.
+ * @since v1.2.0
+ */
+ function deepStrictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
+ /**
+ * Tests for deep strict inequality. Opposite of {@link deepStrictEqual}.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.notDeepStrictEqual({ a: 1 }, { a: '1' });
+ * // OK
+ * ```
+ *
+ * If the values are deeply and strictly equal, an `AssertionError` is thrown
+ * with a `message` property set equal to the value of the `message` parameter. If
+ * the `message` parameter is undefined, a default error message is assigned. If
+ * the `message` parameter is an instance of an `Error` then it will be thrown
+ * instead of the `AssertionError`.
+ * @since v1.2.0
+ */
+ function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
+ /**
+ * Expects the function `fn` to throw an error.
+ *
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
+ * a validation object where each property will be tested for strict deep equality,
+ * or an instance of error where each property will be tested for strict deep
+ * equality including the non-enumerable `message` and `name` properties. When
+ * using an object, it is also possible to use a regular expression, when
+ * validating against a string property. See below for examples.
+ *
+ * If specified, `message` will be appended to the message provided by the `AssertionError` if the `fn` call fails to throw or in case the error validation
+ * fails.
+ *
+ * Custom validation object/error instance:
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * const err = new TypeError('Wrong value');
+ * err.code = 404;
+ * err.foo = 'bar';
+ * err.info = {
+ * nested: true,
+ * baz: 'text',
+ * };
+ * err.reg = /abc/i;
+ *
+ * assert.throws(
+ * () => {
+ * throw err;
+ * },
+ * {
+ * name: 'TypeError',
+ * message: 'Wrong value',
+ * info: {
+ * nested: true,
+ * baz: 'text',
+ * },
+ * // Only properties on the validation object will be tested for.
+ * // Using nested objects requires all properties to be present. Otherwise
+ * // the validation is going to fail.
+ * },
+ * );
+ *
+ * // Using regular expressions to validate error properties:
+ * assert.throws(
+ * () => {
+ * throw err;
+ * },
+ * {
+ * // The `name` and `message` properties are strings and using regular
+ * // expressions on those will match against the string. If they fail, an
+ * // error is thrown.
+ * name: /^TypeError$/,
+ * message: /Wrong/,
+ * foo: 'bar',
+ * info: {
+ * nested: true,
+ * // It is not possible to use regular expressions for nested properties!
+ * baz: 'text',
+ * },
+ * // The `reg` property contains a regular expression and only if the
+ * // validation object contains an identical regular expression, it is going
+ * // to pass.
+ * reg: /abc/i,
+ * },
+ * );
+ *
+ * // Fails due to the different `message` and `name` properties:
+ * assert.throws(
+ * () => {
+ * const otherErr = new Error('Not found');
+ * // Copy all enumerable properties from `err` to `otherErr`.
+ * for (const [key, value] of Object.entries(err)) {
+ * otherErr[key] = value;
+ * }
+ * throw otherErr;
+ * },
+ * // The error's `message` and `name` properties will also be checked when using
+ * // an error as validation object.
+ * err,
+ * );
+ * ```
+ *
+ * Validate instanceof using constructor:
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.throws(
+ * () => {
+ * throw new Error('Wrong value');
+ * },
+ * Error,
+ * );
+ * ```
+ *
+ * Validate error message using [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions):
+ *
+ * Using a regular expression runs `.toString` on the error object, and will
+ * therefore also include the error name.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.throws(
+ * () => {
+ * throw new Error('Wrong value');
+ * },
+ * /^Error: Wrong value$/,
+ * );
+ * ```
+ *
+ * Custom error validation:
+ *
+ * The function must return `true` to indicate all internal validations passed.
+ * It will otherwise fail with an `AssertionError`.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.throws(
+ * () => {
+ * throw new Error('Wrong value');
+ * },
+ * (err) => {
+ * assert(err instanceof Error);
+ * assert(/value/.test(err));
+ * // Avoid returning anything from validation functions besides `true`.
+ * // Otherwise, it's not clear what part of the validation failed. Instead,
+ * // throw an error about the specific validation that failed (as done in this
+ * // example) and add as much helpful debugging information to that error as
+ * // possible.
+ * return true;
+ * },
+ * 'unexpected error',
+ * );
+ * ```
+ *
+ * `error` cannot be a string. If a string is provided as the second
+ * argument, then `error` is assumed to be omitted and the string will be used for `message` instead. This can lead to easy-to-miss mistakes. Using the same
+ * message as the thrown error message is going to result in an `ERR_AMBIGUOUS_ARGUMENT` error. Please read the example below carefully if using
+ * a string as the second argument gets considered:
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * function throwingFirst() {
+ * throw new Error('First');
+ * }
+ *
+ * function throwingSecond() {
+ * throw new Error('Second');
+ * }
+ *
+ * function notThrowing() {}
+ *
+ * // The second argument is a string and the input function threw an Error.
+ * // The first case will not throw as it does not match for the error message
+ * // thrown by the input function!
+ * assert.throws(throwingFirst, 'Second');
+ * // In the next example the message has no benefit over the message from the
+ * // error and since it is not clear if the user intended to actually match
+ * // against the error message, Node.js throws an `ERR_AMBIGUOUS_ARGUMENT` error.
+ * assert.throws(throwingSecond, 'Second');
+ * // TypeError [ERR_AMBIGUOUS_ARGUMENT]
+ *
+ * // The string is only used (as message) in case the function does not throw:
+ * assert.throws(notThrowing, 'Second');
+ * // AssertionError [ERR_ASSERTION]: Missing expected exception: Second
+ *
+ * // If it was intended to match for the error message do this instead:
+ * // It does not throw because the error messages match.
+ * assert.throws(throwingSecond, /Second$/);
+ *
+ * // If the error message does not match, an AssertionError is thrown.
+ * assert.throws(throwingFirst, /Second$/);
+ * // AssertionError [ERR_ASSERTION]
+ * ```
+ *
+ * Due to the confusing error-prone notation, avoid a string as the second
+ * argument.
+ * @since v0.1.21
+ */
+ function throws(block: () => unknown, message?: string | Error): void;
+ function throws(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
+ /**
+ * Asserts that the function `fn` does not throw an error.
+ *
+ * Using `assert.doesNotThrow()` is actually not useful because there
+ * is no benefit in catching an error and then rethrowing it. Instead, consider
+ * adding a comment next to the specific code path that should not throw and keep
+ * error messages as expressive as possible.
+ *
+ * When `assert.doesNotThrow()` is called, it will immediately call the `fn` function.
+ *
+ * If an error is thrown and it is the same type as that specified by the `error` parameter, then an `AssertionError` is thrown. If the error is of a
+ * different type, or if the `error` parameter is undefined, the error is
+ * propagated back to the caller.
+ *
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), or a validation
+ * function. See {@link throws} for more details.
+ *
+ * The following, for instance, will throw the `TypeError` because there is no
+ * matching error type in the assertion:
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.doesNotThrow(
+ * () => {
+ * throw new TypeError('Wrong value');
+ * },
+ * SyntaxError,
+ * );
+ * ```
+ *
+ * However, the following will result in an `AssertionError` with the message
+ * 'Got unwanted exception...':
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.doesNotThrow(
+ * () => {
+ * throw new TypeError('Wrong value');
+ * },
+ * TypeError,
+ * );
+ * ```
+ *
+ * If an `AssertionError` is thrown and a value is provided for the `message` parameter, the value of `message` will be appended to the `AssertionError` message:
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.doesNotThrow(
+ * () => {
+ * throw new TypeError('Wrong value');
+ * },
+ * /Wrong value/,
+ * 'Whoops',
+ * );
+ * // Throws: AssertionError: Got unwanted exception: Whoops
+ * ```
+ * @since v0.1.21
+ */
+ function doesNotThrow(block: () => unknown, message?: string | Error): void;
+ function doesNotThrow(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
+ /**
+ * Throws `value` if `value` is not `undefined` or `null`. This is useful when
+ * testing the `error` argument in callbacks. The stack trace contains all frames
+ * from the error passed to `ifError()` including the potential new frames for `ifError()` itself.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.ifError(null);
+ * // OK
+ * assert.ifError(0);
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0
+ * assert.ifError('error');
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error'
+ * assert.ifError(new Error());
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error
+ *
+ * // Create some random error frames.
+ * let err;
+ * (function errorFrame() {
+ * err = new Error('test error');
+ * })();
+ *
+ * (function ifErrorFrame() {
+ * assert.ifError(err);
+ * })();
+ * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error
+ * // at ifErrorFrame
+ * // at errorFrame
+ * ```
+ * @since v0.1.97
+ */
+ function ifError(value: unknown): asserts value is null | undefined;
+ /**
+ * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
+ * calls the function and awaits the returned promise to complete. It will then
+ * check that the promise is rejected.
+ *
+ * If `asyncFn` is a function and it throws an error synchronously, `assert.rejects()` will return a rejected `Promise` with that error. If the
+ * function does not return a promise, `assert.rejects()` will return a rejected `Promise` with an [ERR_INVALID_RETURN_VALUE](https://nodejs.org/docs/latest-v25.x/api/errors.html#err_invalid_return_value)
+ * error. In both cases the error handler is skipped.
+ *
+ * Besides the async nature to await the completion behaves identically to {@link throws}.
+ *
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
+ * an object where each property will be tested for, or an instance of error where
+ * each property will be tested for including the non-enumerable `message` and `name` properties.
+ *
+ * If specified, `message` will be the message provided by the `{@link AssertionError}` if the `asyncFn` fails to reject.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * await assert.rejects(
+ * async () => {
+ * throw new TypeError('Wrong value');
+ * },
+ * {
+ * name: 'TypeError',
+ * message: 'Wrong value',
+ * },
+ * );
+ * ```
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * await assert.rejects(
+ * async () => {
+ * throw new TypeError('Wrong value');
+ * },
+ * (err) => {
+ * assert.strictEqual(err.name, 'TypeError');
+ * assert.strictEqual(err.message, 'Wrong value');
+ * return true;
+ * },
+ * );
+ * ```
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.rejects(
+ * Promise.reject(new Error('Wrong value')),
+ * Error,
+ * ).then(() => {
+ * // ...
+ * });
+ * ```
+ *
+ * `error` cannot be a string. If a string is provided as the second argument, then `error` is assumed to
+ * be omitted and the string will be used for `message` instead. This can lead to easy-to-miss mistakes. Please read the
+ * example in {@link throws} carefully if using a string as the second argument gets considered.
+ * @since v10.0.0
+ */
+ function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise;
+ function rejects(
+ block: (() => Promise) | Promise,
+ error: AssertPredicate,
+ message?: string | Error,
+ ): Promise;
+ /**
+ * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
+ * calls the function and awaits the returned promise to complete. It will then
+ * check that the promise is not rejected.
+ *
+ * If `asyncFn` is a function and it throws an error synchronously, `assert.doesNotReject()` will return a rejected `Promise` with that error. If
+ * the function does not return a promise, `assert.doesNotReject()` will return a
+ * rejected `Promise` with an [ERR_INVALID_RETURN_VALUE](https://nodejs.org/docs/latest-v25.x/api/errors.html#err_invalid_return_value) error. In both cases
+ * the error handler is skipped.
+ *
+ * Using `assert.doesNotReject()` is actually not useful because there is little
+ * benefit in catching a rejection and then rejecting it again. Instead, consider
+ * adding a comment next to the specific code path that should not reject and keep
+ * error messages as expressive as possible.
+ *
+ * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
+ * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), or a validation
+ * function. See {@link throws} for more details.
+ *
+ * Besides the async nature to await the completion behaves identically to {@link doesNotThrow}.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * await assert.doesNotReject(
+ * async () => {
+ * throw new TypeError('Wrong value');
+ * },
+ * SyntaxError,
+ * );
+ * ```
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.doesNotReject(Promise.reject(new TypeError('Wrong value')))
+ * .then(() => {
+ * // ...
+ * });
+ * ```
+ * @since v10.0.0
+ */
+ function doesNotReject(
+ block: (() => Promise) | Promise,
+ message?: string | Error,
+ ): Promise;
+ function doesNotReject(
+ block: (() => Promise) | Promise,
+ error: AssertPredicate,
+ message?: string | Error,
+ ): Promise;
+ /**
+ * Expects the `string` input to match the regular expression.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.match('I will fail', /pass/);
+ * // AssertionError [ERR_ASSERTION]: The input did not match the regular ...
+ *
+ * assert.match(123, /pass/);
+ * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
+ *
+ * assert.match('I will pass', /pass/);
+ * // OK
+ * ```
+ *
+ * If the values do not match, or if the `string` argument is of another type than `string`, an `{@link AssertionError}` is thrown with a `message` property set equal
+ * to the value of the `message` parameter. If the `message` parameter is
+ * undefined, a default error message is assigned. If the `message` parameter is an
+ * instance of an [Error](https://nodejs.org/docs/latest-v25.x/api/errors.html#class-error) then it will be thrown instead of the `{@link AssertionError}`.
+ * @since v13.6.0, v12.16.0
+ */
+ function match(value: string, regExp: RegExp, message?: string | Error): void;
+ /**
+ * Expects the `string` input not to match the regular expression.
+ *
+ * ```js
+ * import assert from 'node:assert/strict';
+ *
+ * assert.doesNotMatch('I will fail', /fail/);
+ * // AssertionError [ERR_ASSERTION]: The input was expected to not match the ...
+ *
+ * assert.doesNotMatch(123, /pass/);
+ * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
+ *
+ * assert.doesNotMatch('I will pass', /different/);
+ * // OK
+ * ```
+ *
+ * If the values do match, or if the `string` argument is of another type than `string`, an `{@link AssertionError}` is thrown with a `message` property set equal
+ * to the value of the `message` parameter. If the `message` parameter is
+ * undefined, a default error message is assigned. If the `message` parameter is an
+ * instance of an [Error](https://nodejs.org/docs/latest-v25.x/api/errors.html#class-error) then it will be thrown instead of the `{@link AssertionError}`.
+ * @since v13.6.0, v12.16.0
+ */
+ function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
+ /**
+ * Tests for partial deep equality between the `actual` and `expected` parameters.
+ * "Deep" equality means that the enumerable "own" properties of child objects
+ * are recursively evaluated also by the following rules. "Partial" equality means
+ * that only properties that exist on the `expected` parameter are going to be
+ * compared.
+ *
+ * This method always passes the same test cases as `assert.deepStrictEqual()`,
+ * behaving as a super set of it.
+ * @since v22.13.0
+ */
+ function partialDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
+ }
+ namespace assert {
+ export { strict };
+ }
+ export = assert;
+}
+declare module "assert" {
+ import assert = require("node:assert");
+ export = assert;
+}
diff --git a/node_modules/@types/node/assert/strict.d.ts b/node_modules/@types/node/assert/strict.d.ts
new file mode 100644
index 0000000..7a9dcf5
--- /dev/null
+++ b/node_modules/@types/node/assert/strict.d.ts
@@ -0,0 +1,59 @@
+declare module "node:assert/strict" {
+ import {
+ Assert,
+ AssertionError,
+ AssertionErrorOptions,
+ AssertOptions,
+ AssertPredicate,
+ AssertStrict,
+ deepStrictEqual,
+ doesNotMatch,
+ doesNotReject,
+ doesNotThrow,
+ fail,
+ ifError,
+ match,
+ notDeepStrictEqual,
+ notStrictEqual,
+ ok,
+ partialDeepStrictEqual,
+ rejects,
+ strictEqual,
+ throws,
+ } from "node:assert";
+ function strict(value: unknown, message?: string | Error): asserts value;
+ namespace strict {
+ export {
+ Assert,
+ AssertionError,
+ AssertionErrorOptions,
+ AssertOptions,
+ AssertPredicate,
+ AssertStrict,
+ deepStrictEqual,
+ deepStrictEqual as deepEqual,
+ doesNotMatch,
+ doesNotReject,
+ doesNotThrow,
+ fail,
+ ifError,
+ match,
+ notDeepStrictEqual,
+ notDeepStrictEqual as notDeepEqual,
+ notStrictEqual,
+ notStrictEqual as notEqual,
+ ok,
+ partialDeepStrictEqual,
+ rejects,
+ strict,
+ strictEqual,
+ strictEqual as equal,
+ throws,
+ };
+ }
+ export = strict;
+}
+declare module "assert/strict" {
+ import strict = require("node:assert/strict");
+ export = strict;
+}
diff --git a/node_modules/@types/node/async_hooks.d.ts b/node_modules/@types/node/async_hooks.d.ts
new file mode 100644
index 0000000..bb82b8a
--- /dev/null
+++ b/node_modules/@types/node/async_hooks.d.ts
@@ -0,0 +1,603 @@
+declare module "node:async_hooks" {
+ /**
+ * ```js
+ * import { executionAsyncId } from 'node:async_hooks';
+ * import fs from 'node:fs';
+ *
+ * console.log(executionAsyncId()); // 1 - bootstrap
+ * const path = '.';
+ * fs.open(path, 'r', (err, fd) => {
+ * console.log(executionAsyncId()); // 6 - open()
+ * });
+ * ```
+ *
+ * The ID returned from `executionAsyncId()` is related to execution timing, not
+ * causality (which is covered by `triggerAsyncId()`):
+ *
+ * ```js
+ * const server = net.createServer((conn) => {
+ * // Returns the ID of the server, not of the new connection, because the
+ * // callback runs in the execution scope of the server's MakeCallback().
+ * async_hooks.executionAsyncId();
+ *
+ * }).listen(port, () => {
+ * // Returns the ID of a TickObject (process.nextTick()) because all
+ * // callbacks passed to .listen() are wrapped in a nextTick().
+ * async_hooks.executionAsyncId();
+ * });
+ * ```
+ *
+ * Promise contexts may not get precise `executionAsyncIds` by default.
+ * See the section on [promise execution tracking](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#promise-execution-tracking).
+ * @since v8.1.0
+ * @return The `asyncId` of the current execution context. Useful to track when something calls.
+ */
+ function executionAsyncId(): number;
+ /**
+ * Resource objects returned by `executionAsyncResource()` are most often internal
+ * Node.js handle objects with undocumented APIs. Using any functions or properties
+ * on the object is likely to crash your application and should be avoided.
+ *
+ * Using `executionAsyncResource()` in the top-level execution context will
+ * return an empty object as there is no handle or request object to use,
+ * but having an object representing the top-level can be helpful.
+ *
+ * ```js
+ * import { open } from 'node:fs';
+ * import { executionAsyncId, executionAsyncResource } from 'node:async_hooks';
+ *
+ * console.log(executionAsyncId(), executionAsyncResource()); // 1 {}
+ * open(new URL(import.meta.url), 'r', (err, fd) => {
+ * console.log(executionAsyncId(), executionAsyncResource()); // 7 FSReqWrap
+ * });
+ * ```
+ *
+ * This can be used to implement continuation local storage without the
+ * use of a tracking `Map` to store the metadata:
+ *
+ * ```js
+ * import { createServer } from 'node:http';
+ * import {
+ * executionAsyncId,
+ * executionAsyncResource,
+ * createHook,
+ * } from 'node:async_hooks';
+ * const sym = Symbol('state'); // Private symbol to avoid pollution
+ *
+ * createHook({
+ * init(asyncId, type, triggerAsyncId, resource) {
+ * const cr = executionAsyncResource();
+ * if (cr) {
+ * resource[sym] = cr[sym];
+ * }
+ * },
+ * }).enable();
+ *
+ * const server = createServer((req, res) => {
+ * executionAsyncResource()[sym] = { state: req.url };
+ * setTimeout(function() {
+ * res.end(JSON.stringify(executionAsyncResource()[sym]));
+ * }, 100);
+ * }).listen(3000);
+ * ```
+ * @since v13.9.0, v12.17.0
+ * @return The resource representing the current execution. Useful to store data within the resource.
+ */
+ function executionAsyncResource(): object;
+ /**
+ * ```js
+ * const server = net.createServer((conn) => {
+ * // The resource that caused (or triggered) this callback to be called
+ * // was that of the new connection. Thus the return value of triggerAsyncId()
+ * // is the asyncId of "conn".
+ * async_hooks.triggerAsyncId();
+ *
+ * }).listen(port, () => {
+ * // Even though all callbacks passed to .listen() are wrapped in a nextTick()
+ * // the callback itself exists because the call to the server's .listen()
+ * // was made. So the return value would be the ID of the server.
+ * async_hooks.triggerAsyncId();
+ * });
+ * ```
+ *
+ * Promise contexts may not get valid `triggerAsyncId`s by default. See
+ * the section on [promise execution tracking](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#promise-execution-tracking).
+ * @return The ID of the resource responsible for calling the callback that is currently being executed.
+ */
+ function triggerAsyncId(): number;
+ interface HookCallbacks {
+ /**
+ * The [`init` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#initasyncid-type-triggerasyncid-resource).
+ */
+ init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void;
+ /**
+ * The [`before` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#beforeasyncid).
+ */
+ before?(asyncId: number): void;
+ /**
+ * The [`after` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#afterasyncid).
+ */
+ after?(asyncId: number): void;
+ /**
+ * The [`promiseResolve` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#promiseresolveasyncid).
+ */
+ promiseResolve?(asyncId: number): void;
+ /**
+ * The [`destroy` callback](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#destroyasyncid).
+ */
+ destroy?(asyncId: number): void;
+ /**
+ * Whether the hook should track `Promise`s. Cannot be `false` if
+ * `promiseResolve` is set.
+ * @default true
+ */
+ trackPromises?: boolean | undefined;
+ }
+ interface AsyncHook {
+ /**
+ * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop.
+ */
+ enable(): this;
+ /**
+ * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled.
+ */
+ disable(): this;
+ }
+ /**
+ * Registers functions to be called for different lifetime events of each async
+ * operation.
+ *
+ * The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the
+ * respective asynchronous event during a resource's lifetime.
+ *
+ * All callbacks are optional. For example, if only resource cleanup needs to
+ * be tracked, then only the `destroy` callback needs to be passed. The
+ * specifics of all functions that can be passed to `callbacks` is in the
+ * [Hook Callbacks](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#hook-callbacks) section.
+ *
+ * ```js
+ * import { createHook } from 'node:async_hooks';
+ *
+ * const asyncHook = createHook({
+ * init(asyncId, type, triggerAsyncId, resource) { },
+ * destroy(asyncId) { },
+ * });
+ * ```
+ *
+ * The callbacks will be inherited via the prototype chain:
+ *
+ * ```js
+ * class MyAsyncCallbacks {
+ * init(asyncId, type, triggerAsyncId, resource) { }
+ * destroy(asyncId) {}
+ * }
+ *
+ * class MyAddedCallbacks extends MyAsyncCallbacks {
+ * before(asyncId) { }
+ * after(asyncId) { }
+ * }
+ *
+ * const asyncHook = async_hooks.createHook(new MyAddedCallbacks());
+ * ```
+ *
+ * Because promises are asynchronous resources whose lifecycle is tracked
+ * via the async hooks mechanism, the `init()`, `before()`, `after()`, and
+ * `destroy()` callbacks _must not_ be async functions that return promises.
+ * @since v8.1.0
+ * @param options The [Hook Callbacks](https://nodejs.org/docs/latest-v25.x/api/async_hooks.html#hook-callbacks) to register
+ * @returns Instance used for disabling and enabling hooks
+ */
+ function createHook(options: HookCallbacks): AsyncHook;
+ interface AsyncResourceOptions {
+ /**
+ * The ID of the execution context that created this async event.
+ * @default executionAsyncId()
+ */
+ triggerAsyncId?: number | undefined;
+ /**
+ * Disables automatic `emitDestroy` when the object is garbage collected.
+ * This usually does not need to be set (even if `emitDestroy` is called
+ * manually), unless the resource's `asyncId` is retrieved and the
+ * sensitive API's `emitDestroy` is called with it.
+ * @default false
+ */
+ requireManualDestroy?: boolean | undefined;
+ }
+ /**
+ * The class `AsyncResource` is designed to be extended by the embedder's async
+ * resources. Using this, users can easily trigger the lifetime events of their
+ * own resources.
+ *
+ * The `init` hook will trigger when an `AsyncResource` is instantiated.
+ *
+ * The following is an overview of the `AsyncResource` API.
+ *
+ * ```js
+ * import { AsyncResource, executionAsyncId } from 'node:async_hooks';
+ *
+ * // AsyncResource() is meant to be extended. Instantiating a
+ * // new AsyncResource() also triggers init. If triggerAsyncId is omitted then
+ * // async_hook.executionAsyncId() is used.
+ * const asyncResource = new AsyncResource(
+ * type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false },
+ * );
+ *
+ * // Run a function in the execution context of the resource. This will
+ * // * establish the context of the resource
+ * // * trigger the AsyncHooks before callbacks
+ * // * call the provided function `fn` with the supplied arguments
+ * // * trigger the AsyncHooks after callbacks
+ * // * restore the original execution context
+ * asyncResource.runInAsyncScope(fn, thisArg, ...args);
+ *
+ * // Call AsyncHooks destroy callbacks.
+ * asyncResource.emitDestroy();
+ *
+ * // Return the unique ID assigned to the AsyncResource instance.
+ * asyncResource.asyncId();
+ *
+ * // Return the trigger ID for the AsyncResource instance.
+ * asyncResource.triggerAsyncId();
+ * ```
+ */
+ class AsyncResource {
+ /**
+ * AsyncResource() is meant to be extended. Instantiating a
+ * new AsyncResource() also triggers init. If triggerAsyncId is omitted then
+ * async_hook.executionAsyncId() is used.
+ * @param type The type of async event.
+ * @param triggerAsyncId The ID of the execution context that created
+ * this async event (default: `executionAsyncId()`), or an
+ * AsyncResourceOptions object (since v9.3.0)
+ */
+ constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions);
+ /**
+ * Binds the given function to the current execution context.
+ * @since v14.8.0, v12.19.0
+ * @param fn The function to bind to the current execution context.
+ * @param type An optional name to associate with the underlying `AsyncResource`.
+ */
+ static bind any, ThisArg>(
+ fn: Func,
+ type?: string,
+ thisArg?: ThisArg,
+ ): Func;
+ /**
+ * Binds the given function to execute to this `AsyncResource`'s scope.
+ * @since v14.8.0, v12.19.0
+ * @param fn The function to bind to the current `AsyncResource`.
+ */
+ bind any>(fn: Func): Func;
+ /**
+ * Call the provided function with the provided arguments in the execution context
+ * of the async resource. This will establish the context, trigger the AsyncHooks
+ * before callbacks, call the function, trigger the AsyncHooks after callbacks, and
+ * then restore the original execution context.
+ * @since v9.6.0
+ * @param fn The function to call in the execution context of this async resource.
+ * @param thisArg The receiver to be used for the function call.
+ * @param args Optional arguments to pass to the function.
+ */
+ runInAsyncScope(
+ fn: (this: This, ...args: any[]) => Result,
+ thisArg?: This,
+ ...args: any[]
+ ): Result;
+ /**
+ * Call all `destroy` hooks. This should only ever be called once. An error will
+ * be thrown if it is called more than once. This **must** be manually called. If
+ * the resource is left to be collected by the GC then the `destroy` hooks will
+ * never be called.
+ * @return A reference to `asyncResource`.
+ */
+ emitDestroy(): this;
+ /**
+ * @return The unique `asyncId` assigned to the resource.
+ */
+ asyncId(): number;
+ /**
+ * @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor.
+ */
+ triggerAsyncId(): number;
+ }
+ interface AsyncLocalStorageOptions {
+ /**
+ * The default value to be used when no store is provided.
+ */
+ defaultValue?: any;
+ /**
+ * A name for the `AsyncLocalStorage` value.
+ */
+ name?: string | undefined;
+ }
+ /**
+ * This class creates stores that stay coherent through asynchronous operations.
+ *
+ * While you can create your own implementation on top of the `node:async_hooks` module, `AsyncLocalStorage` should be preferred as it is a performant and memory
+ * safe implementation that involves significant optimizations that are non-obvious
+ * to implement.
+ *
+ * The following example uses `AsyncLocalStorage` to build a simple logger
+ * that assigns IDs to incoming HTTP requests and includes them in messages
+ * logged within each request.
+ *
+ * ```js
+ * import http from 'node:http';
+ * import { AsyncLocalStorage } from 'node:async_hooks';
+ *
+ * const asyncLocalStorage = new AsyncLocalStorage();
+ *
+ * function logWithId(msg) {
+ * const id = asyncLocalStorage.getStore();
+ * console.log(`${id !== undefined ? id : '-'}:`, msg);
+ * }
+ *
+ * let idSeq = 0;
+ * http.createServer((req, res) => {
+ * asyncLocalStorage.run(idSeq++, () => {
+ * logWithId('start');
+ * // Imagine any chain of async operations here
+ * setImmediate(() => {
+ * logWithId('finish');
+ * res.end();
+ * });
+ * });
+ * }).listen(8080);
+ *
+ * http.get('http://localhost:8080');
+ * http.get('http://localhost:8080');
+ * // Prints:
+ * // 0: start
+ * // 0: finish
+ * // 1: start
+ * // 1: finish
+ * ```
+ *
+ * Each instance of `AsyncLocalStorage` maintains an independent storage context.
+ * Multiple instances can safely exist simultaneously without risk of interfering
+ * with each other's data.
+ * @since v13.10.0, v12.17.0
+ */
+ class AsyncLocalStorage {
+ /**
+ * Creates a new instance of `AsyncLocalStorage`. Store is only provided within a
+ * `run()` call or after an `enterWith()` call.
+ */
+ constructor(options?: AsyncLocalStorageOptions);
+ /**
+ * Binds the given function to the current execution context.
+ * @since v19.8.0
+ * @param fn The function to bind to the current execution context.
+ * @return A new function that calls `fn` within the captured execution context.
+ */
+ static bind any>(fn: Func): Func;
+ /**
+ * Captures the current execution context and returns a function that accepts a
+ * function as an argument. Whenever the returned function is called, it
+ * calls the function passed to it within the captured context.
+ *
+ * ```js
+ * const asyncLocalStorage = new AsyncLocalStorage();
+ * const runInAsyncScope = asyncLocalStorage.run(123, () => AsyncLocalStorage.snapshot());
+ * const result = asyncLocalStorage.run(321, () => runInAsyncScope(() => asyncLocalStorage.getStore()));
+ * console.log(result); // returns 123
+ * ```
+ *
+ * AsyncLocalStorage.snapshot() can replace the use of AsyncResource for simple
+ * async context tracking purposes, for example:
+ *
+ * ```js
+ * class Foo {
+ * #runInAsyncScope = AsyncLocalStorage.snapshot();
+ *
+ * get() { return this.#runInAsyncScope(() => asyncLocalStorage.getStore()); }
+ * }
+ *
+ * const foo = asyncLocalStorage.run(123, () => new Foo());
+ * console.log(asyncLocalStorage.run(321, () => foo.get())); // returns 123
+ * ```
+ * @since v19.8.0
+ * @return A new function with the signature `(fn: (...args) : R, ...args) : R`.
+ */
+ static snapshot(): (fn: (...args: TArgs) => R, ...args: TArgs) => R;
+ /**
+ * Disables the instance of `AsyncLocalStorage`. All subsequent calls
+ * to `asyncLocalStorage.getStore()` will return `undefined` until `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again.
+ *
+ * When calling `asyncLocalStorage.disable()`, all current contexts linked to the
+ * instance will be exited.
+ *
+ * Calling `asyncLocalStorage.disable()` is required before the `asyncLocalStorage` can be garbage collected. This does not apply to stores
+ * provided by the `asyncLocalStorage`, as those objects are garbage collected
+ * along with the corresponding async resources.
+ *
+ * Use this method when the `asyncLocalStorage` is not in use anymore
+ * in the current process.
+ * @since v13.10.0, v12.17.0
+ * @experimental
+ */
+ disable(): void;
+ /**
+ * Returns the current store.
+ * If called outside of an asynchronous context initialized by
+ * calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it
+ * returns `undefined`.
+ * @since v13.10.0, v12.17.0
+ */
+ getStore(): T | undefined;
+ /**
+ * The name of the `AsyncLocalStorage` instance if provided.
+ * @since v24.0.0
+ */
+ readonly name: string;
+ /**
+ * Runs a function synchronously within a context and returns its
+ * return value. The store is not accessible outside of the callback function.
+ * The store is accessible to any asynchronous operations created within the
+ * callback.
+ *
+ * The optional `args` are passed to the callback function.
+ *
+ * If the callback function throws an error, the error is thrown by `run()` too.
+ * The stacktrace is not impacted by this call and the context is exited.
+ *
+ * Example:
+ *
+ * ```js
+ * const store = { id: 2 };
+ * try {
+ * asyncLocalStorage.run(store, () => {
+ * asyncLocalStorage.getStore(); // Returns the store object
+ * setTimeout(() => {
+ * asyncLocalStorage.getStore(); // Returns the store object
+ * }, 200);
+ * throw new Error();
+ * });
+ * } catch (e) {
+ * asyncLocalStorage.getStore(); // Returns undefined
+ * // The error will be caught here
+ * }
+ * ```
+ * @since v13.10.0, v12.17.0
+ */
+ run(store: T, callback: () => R): R;
+ run(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R;
+ /**
+ * Runs a function synchronously outside of a context and returns its
+ * return value. The store is not accessible within the callback function or
+ * the asynchronous operations created within the callback. Any `getStore()` call done within the callback function will always return `undefined`.
+ *
+ * The optional `args` are passed to the callback function.
+ *
+ * If the callback function throws an error, the error is thrown by `exit()` too.
+ * The stacktrace is not impacted by this call and the context is re-entered.
+ *
+ * Example:
+ *
+ * ```js
+ * // Within a call to run
+ * try {
+ * asyncLocalStorage.getStore(); // Returns the store object or value
+ * asyncLocalStorage.exit(() => {
+ * asyncLocalStorage.getStore(); // Returns undefined
+ * throw new Error();
+ * });
+ * } catch (e) {
+ * asyncLocalStorage.getStore(); // Returns the same object or value
+ * // The error will be caught here
+ * }
+ * ```
+ * @since v13.10.0, v12.17.0
+ * @experimental
+ */
+ exit(callback: (...args: TArgs) => R, ...args: TArgs): R;
+ /**
+ * Transitions into the context for the remainder of the current
+ * synchronous execution and then persists the store through any following
+ * asynchronous calls.
+ *
+ * Example:
+ *
+ * ```js
+ * const store = { id: 1 };
+ * // Replaces previous store with the given store object
+ * asyncLocalStorage.enterWith(store);
+ * asyncLocalStorage.getStore(); // Returns the store object
+ * someAsyncOperation(() => {
+ * asyncLocalStorage.getStore(); // Returns the same object
+ * });
+ * ```
+ *
+ * This transition will continue for the _entire_ synchronous execution.
+ * This means that if, for example, the context is entered within an event
+ * handler subsequent event handlers will also run within that context unless
+ * specifically bound to another context with an `AsyncResource`. That is why `run()` should be preferred over `enterWith()` unless there are strong reasons
+ * to use the latter method.
+ *
+ * ```js
+ * const store = { id: 1 };
+ *
+ * emitter.on('my-event', () => {
+ * asyncLocalStorage.enterWith(store);
+ * });
+ * emitter.on('my-event', () => {
+ * asyncLocalStorage.getStore(); // Returns the same object
+ * });
+ *
+ * asyncLocalStorage.getStore(); // Returns undefined
+ * emitter.emit('my-event');
+ * asyncLocalStorage.getStore(); // Returns the same object
+ * ```
+ * @since v13.11.0, v12.17.0
+ * @experimental
+ */
+ enterWith(store: T): void;
+ }
+ /**
+ * @since v17.2.0, v16.14.0
+ * @return A map of provider types to the corresponding numeric id.
+ * This map contains all the event types that might be emitted by the `async_hooks.init()` event.
+ */
+ namespace asyncWrapProviders {
+ const NONE: number;
+ const DIRHANDLE: number;
+ const DNSCHANNEL: number;
+ const ELDHISTOGRAM: number;
+ const FILEHANDLE: number;
+ const FILEHANDLECLOSEREQ: number;
+ const FIXEDSIZEBLOBCOPY: number;
+ const FSEVENTWRAP: number;
+ const FSREQCALLBACK: number;
+ const FSREQPROMISE: number;
+ const GETADDRINFOREQWRAP: number;
+ const GETNAMEINFOREQWRAP: number;
+ const HEAPSNAPSHOT: number;
+ const HTTP2SESSION: number;
+ const HTTP2STREAM: number;
+ const HTTP2PING: number;
+ const HTTP2SETTINGS: number;
+ const HTTPINCOMINGMESSAGE: number;
+ const HTTPCLIENTREQUEST: number;
+ const JSSTREAM: number;
+ const JSUDPWRAP: number;
+ const MESSAGEPORT: number;
+ const PIPECONNECTWRAP: number;
+ const PIPESERVERWRAP: number;
+ const PIPEWRAP: number;
+ const PROCESSWRAP: number;
+ const PROMISE: number;
+ const QUERYWRAP: number;
+ const SHUTDOWNWRAP: number;
+ const SIGNALWRAP: number;
+ const STATWATCHER: number;
+ const STREAMPIPE: number;
+ const TCPCONNECTWRAP: number;
+ const TCPSERVERWRAP: number;
+ const TCPWRAP: number;
+ const TTYWRAP: number;
+ const UDPSENDWRAP: number;
+ const UDPWRAP: number;
+ const SIGINTWATCHDOG: number;
+ const WORKER: number;
+ const WORKERHEAPSNAPSHOT: number;
+ const WRITEWRAP: number;
+ const ZLIB: number;
+ const CHECKPRIMEREQUEST: number;
+ const PBKDF2REQUEST: number;
+ const KEYPAIRGENREQUEST: number;
+ const KEYGENREQUEST: number;
+ const KEYEXPORTREQUEST: number;
+ const CIPHERREQUEST: number;
+ const DERIVEBITSREQUEST: number;
+ const HASHREQUEST: number;
+ const RANDOMBYTESREQUEST: number;
+ const RANDOMPRIMEREQUEST: number;
+ const SCRYPTREQUEST: number;
+ const SIGNREQUEST: number;
+ const TLSWRAP: number;
+ const VERIFYREQUEST: number;
+ }
+}
+declare module "async_hooks" {
+ export * from "node:async_hooks";
+}
diff --git a/node_modules/@types/node/buffer.buffer.d.ts b/node_modules/@types/node/buffer.buffer.d.ts
new file mode 100644
index 0000000..a6c4b25
--- /dev/null
+++ b/node_modules/@types/node/buffer.buffer.d.ts
@@ -0,0 +1,466 @@
+declare module "node:buffer" {
+ type ImplicitArrayBuffer> = T extends
+ { valueOf(): infer V extends ArrayBufferLike } ? V : T;
+ global {
+ interface BufferConstructor {
+ // see buffer.d.ts for implementation shared with all TypeScript versions
+
+ /**
+ * Allocates a new buffer containing the given {str}.
+ *
+ * @param str String to store in buffer.
+ * @param encoding encoding to use, optional. Default is 'utf8'
+ * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead.
+ */
+ new(str: string, encoding?: BufferEncoding): Buffer;
+ /**
+ * Allocates a new buffer of {size} octets.
+ *
+ * @param size count of octets to allocate.
+ * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`).
+ */
+ new(size: number): Buffer;
+ /**
+ * Allocates a new buffer containing the given {array} of octets.
+ *
+ * @param array The octets to store.
+ * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.
+ */
+ new(array: ArrayLike): Buffer;
+ /**
+ * Produces a Buffer backed by the same allocated memory as
+ * the given {ArrayBuffer}/{SharedArrayBuffer}.
+ *
+ * @param arrayBuffer The ArrayBuffer with which to share memory.
+ * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead.
+ */
+ new(arrayBuffer: TArrayBuffer): Buffer;
+ /**
+ * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`.
+ * Array entries outside that range will be truncated to fit into it.
+ *
+ * ```js
+ * import { Buffer } from 'node:buffer';
+ *
+ * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'.
+ * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
+ * ```
+ *
+ * If `array` is an `Array`-like object (that is, one with a `length` property of
+ * type `number`), it is treated as if it is an array, unless it is a `Buffer` or
+ * a `Uint8Array`. This means all other `TypedArray` variants get treated as an
+ * `Array`. To create a `Buffer` from the bytes backing a `TypedArray`, use
+ * `Buffer.copyBytesFrom()`.
+ *
+ * A `TypeError` will be thrown if `array` is not an `Array` or another type
+ * appropriate for `Buffer.from()` variants.
+ *
+ * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal
+ * `Buffer` pool like `Buffer.allocUnsafe()` does.
+ * @since v5.10.0
+ */
+ from(array: WithImplicitCoercion