Explorar el Código

chore: stop tracking local env and dependencies

Y7000\张扬阳 hace 2 semanas
padre
commit
3eed182235
Se han modificado 100 ficheros con 4 adiciones y 16881 borrados
  1. 0 17
      .env
  2. 2 2
      .env.example
  3. 2 0
      .gitignore
  4. 0 16
      node_modules/.bin/download-msgpackr-prebuilds
  5. 0 17
      node_modules/.bin/download-msgpackr-prebuilds.cmd
  6. 0 28
      node_modules/.bin/download-msgpackr-prebuilds.ps1
  7. 0 16
      node_modules/.bin/drizzle-kit
  8. 0 17
      node_modules/.bin/drizzle-kit.cmd
  9. 0 28
      node_modules/.bin/drizzle-kit.ps1
  10. 0 16
      node_modules/.bin/esbuild
  11. 0 17
      node_modules/.bin/esbuild.cmd
  12. 0 28
      node_modules/.bin/esbuild.ps1
  13. 0 16
      node_modules/.bin/fxparser
  14. 0 17
      node_modules/.bin/fxparser.cmd
  15. 0 28
      node_modules/.bin/fxparser.ps1
  16. 0 16
      node_modules/.bin/node-gyp-build-optional-packages
  17. 0 16
      node_modules/.bin/node-gyp-build-optional-packages-optional
  18. 0 17
      node_modules/.bin/node-gyp-build-optional-packages-optional.cmd
  19. 0 28
      node_modules/.bin/node-gyp-build-optional-packages-optional.ps1
  20. 0 16
      node_modules/.bin/node-gyp-build-optional-packages-test
  21. 0 17
      node_modules/.bin/node-gyp-build-optional-packages-test.cmd
  22. 0 28
      node_modules/.bin/node-gyp-build-optional-packages-test.ps1
  23. 0 17
      node_modules/.bin/node-gyp-build-optional-packages.cmd
  24. 0 28
      node_modules/.bin/node-gyp-build-optional-packages.ps1
  25. 0 16
      node_modules/.bin/semver
  26. 0 17
      node_modules/.bin/semver.cmd
  27. 0 28
      node_modules/.bin/semver.ps1
  28. 0 16
      node_modules/.bin/tsc
  29. 0 17
      node_modules/.bin/tsc.cmd
  30. 0 28
      node_modules/.bin/tsc.ps1
  31. 0 16
      node_modules/.bin/tsserver
  32. 0 17
      node_modules/.bin/tsserver.cmd
  33. 0 28
      node_modules/.bin/tsserver.ps1
  34. 0 16
      node_modules/.bin/tsx
  35. 0 17
      node_modules/.bin/tsx.cmd
  36. 0 28
      node_modules/.bin/tsx.ps1
  37. 0 16
      node_modules/.bin/uuid
  38. 0 17
      node_modules/.bin/uuid.cmd
  39. 0 28
      node_modules/.bin/uuid.ps1
  40. 0 16
      node_modules/.bin/which
  41. 0 17
      node_modules/.bin/which.cmd
  42. 0 28
      node_modules/.bin/which.ps1
  43. 0 2000
      node_modules/.package-lock.json
  44. 0 1
      node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json
  45. 0 464
      node_modules/@drizzle-team/brocli/README.md
  46. 0 1509
      node_modules/@drizzle-team/brocli/index.cjs
  47. 0 0
      node_modules/@drizzle-team/brocli/index.cjs.map
  48. 0 298
      node_modules/@drizzle-team/brocli/index.d.cts
  49. 0 298
      node_modules/@drizzle-team/brocli/index.d.ts
  50. 0 1485
      node_modules/@drizzle-team/brocli/index.js
  51. 0 0
      node_modules/@drizzle-team/brocli/index.js.map
  52. 0 59
      node_modules/@drizzle-team/brocli/package.json
  53. 0 21
      node_modules/@esbuild-kit/core-utils/LICENSE
  54. 0 11
      node_modules/@esbuild-kit/core-utils/README.md
  55. 0 32
      node_modules/@esbuild-kit/core-utils/dist/index.d.ts
  56. 0 1
      node_modules/@esbuild-kit/core-utils/dist/index.js
  57. 0 16
      node_modules/@esbuild-kit/core-utils/node_modules/.bin/esbuild
  58. 0 17
      node_modules/@esbuild-kit/core-utils/node_modules/.bin/esbuild.cmd
  59. 0 28
      node_modules/@esbuild-kit/core-utils/node_modules/.bin/esbuild.ps1
  60. 0 3
      node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64/README.md
  61. BIN
      node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64/esbuild.exe
  62. 0 17
      node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64/package.json
  63. 0 21
      node_modules/@esbuild-kit/core-utils/node_modules/esbuild/LICENSE.md
  64. 0 3
      node_modules/@esbuild-kit/core-utils/node_modules/esbuild/README.md
  65. 0 221
      node_modules/@esbuild-kit/core-utils/node_modules/esbuild/bin/esbuild
  66. 0 287
      node_modules/@esbuild-kit/core-utils/node_modules/esbuild/install.js
  67. 0 660
      node_modules/@esbuild-kit/core-utils/node_modules/esbuild/lib/main.d.ts
  68. 0 2393
      node_modules/@esbuild-kit/core-utils/node_modules/esbuild/lib/main.js
  69. 0 42
      node_modules/@esbuild-kit/core-utils/node_modules/esbuild/package.json
  70. 0 33
      node_modules/@esbuild-kit/core-utils/package.json
  71. 0 21
      node_modules/@esbuild-kit/esm-loader/LICENSE
  72. 0 155
      node_modules/@esbuild-kit/esm-loader/README.md
  73. 0 11
      node_modules/@esbuild-kit/esm-loader/dist/index.js
  74. 0 31
      node_modules/@esbuild-kit/esm-loader/package.json
  75. 0 3
      node_modules/@esbuild/win32-x64/README.md
  76. BIN
      node_modules/@esbuild/win32-x64/esbuild.exe
  77. 0 20
      node_modules/@esbuild/win32-x64/package.json
  78. 0 23
      node_modules/@ioredis/commands/LICENSE
  79. 0 43
      node_modules/@ioredis/commands/README.md
  80. 0 2578
      node_modules/@ioredis/commands/built/commands.json
  81. 0 34
      node_modules/@ioredis/commands/built/index.d.ts
  82. 0 217
      node_modules/@ioredis/commands/built/index.js
  83. 0 52
      node_modules/@ioredis/commands/package.json
  84. 0 1
      node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/README.md
  85. 0 0
      node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/index.js
  86. BIN
      node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/node.abi115.node
  87. BIN
      node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/node.napi.node
  88. 0 17
      node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/package.json
  89. 0 41
      node_modules/@nodable/entities/README.md
  90. 0 54
      node_modules/@nodable/entities/package.json
  91. 0 543
      node_modules/@nodable/entities/src/EntityDecoder.js
  92. 0 194
      node_modules/@nodable/entities/src/EntityEncoder.js
  93. 0 1177
      node_modules/@nodable/entities/src/entities.js
  94. 0 49
      node_modules/@nodable/entities/src/entityTries.js
  95. 0 264
      node_modules/@nodable/entities/src/index.d.ts
  96. 0 29
      node_modules/@nodable/entities/src/index.js
  97. 0 21
      node_modules/@types/fluent-ffmpeg/LICENSE
  98. 0 15
      node_modules/@types/fluent-ffmpeg/README.md
  99. 0 508
      node_modules/@types/fluent-ffmpeg/index.d.ts
  100. 0 48
      node_modules/@types/fluent-ffmpeg/package.json

+ 0 - 17
.env

@@ -1,17 +0,0 @@
-# --- Database ---
-DATABASE_URL="postgresql://knowledge:MkhCJGAnJKyFYL2A@60.204.184.98:30032/knowledge"
-
-# --- MinIO Configuration ---
-MINIO_ENDPOINT="127.0.0.1"
-MINIO_PORT=9000
-MINIO_USE_SSL=false
-MINIO_ACCESS_KEY="minioadmin"
-MINIO_SECRET_KEY="minioadminpassword"
-
-# --- Redis Configuration (for BullMQ) ---
-REDIS_HOST="127.0.0.1"
-REDIS_PORT=6379
-
-# --- Auth.js ---
-AUTH_SECRET="GjjUROlF4Wwr9q4nYL0HhJ/Jj3hxGNDjDYMMSysBcGs="
-AUTH_TRUST_HOST=true

+ 2 - 2
.env.example

@@ -1,5 +1,5 @@
-DATABASE_URL="postgresql://knowledge:MkhCJGAnJKyFYL2A@60.204.184.98:30032/knowledge"
-MEDIA_BUCKET_NAME="zyy"
+DATABASE_URL="postgresql://user:password@localhost:5432/knowledge"
+MEDIA_BUCKET_NAME="knowledge-media"
 MEDIA_URL_EXPIRY_SECONDS=3600
 AUTH_SECRET="replace-with-a-long-random-secret"
 AUTH_TRUST_HOST=true

+ 2 - 0
.gitignore

@@ -1,6 +1,8 @@
 node_modules/
 dist/
 .next/
+.env
+.env.local
 next-dev.log
 next-dev.err.log
 media-worker.log

+ 0 - 16
node_modules/.bin/download-msgpackr-prebuilds

@@ -1,16 +0,0 @@
-#!/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/../msgpackr-extract/bin/download-prebuilds.js" "$@"
-else 
-  exec node  "$basedir/../msgpackr-extract/bin/download-prebuilds.js" "$@"
-fi

+ 0 - 17
node_modules/.bin/download-msgpackr-prebuilds.cmd

@@ -1,17 +0,0 @@
-@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%\..\msgpackr-extract\bin\download-prebuilds.js" %*

+ 0 - 28
node_modules/.bin/download-msgpackr-prebuilds.ps1

@@ -1,28 +0,0 @@
-#!/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/../msgpackr-extract/bin/download-prebuilds.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../msgpackr-extract/bin/download-prebuilds.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../msgpackr-extract/bin/download-prebuilds.js" $args
-  } else {
-    & "node$exe"  "$basedir/../msgpackr-extract/bin/download-prebuilds.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/drizzle-kit

@@ -1,16 +0,0 @@
-#!/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/../drizzle-kit/bin.cjs" "$@"
-else 
-  exec node  "$basedir/../drizzle-kit/bin.cjs" "$@"
-fi

+ 0 - 17
node_modules/.bin/drizzle-kit.cmd

@@ -1,17 +0,0 @@
-@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%\..\drizzle-kit\bin.cjs" %*

+ 0 - 28
node_modules/.bin/drizzle-kit.ps1

@@ -1,28 +0,0 @@
-#!/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/../drizzle-kit/bin.cjs" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../drizzle-kit/bin.cjs" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../drizzle-kit/bin.cjs" $args
-  } else {
-    & "node$exe"  "$basedir/../drizzle-kit/bin.cjs" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/esbuild

@@ -1,16 +0,0 @@
-#!/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/../esbuild/bin/esbuild" "$@"
-else 
-  exec node  "$basedir/../esbuild/bin/esbuild" "$@"
-fi

+ 0 - 17
node_modules/.bin/esbuild.cmd

@@ -1,17 +0,0 @@
-@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%\..\esbuild\bin\esbuild" %*

+ 0 - 28
node_modules/.bin/esbuild.ps1

@@ -1,28 +0,0 @@
-#!/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/../esbuild/bin/esbuild" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../esbuild/bin/esbuild" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../esbuild/bin/esbuild" $args
-  } else {
-    & "node$exe"  "$basedir/../esbuild/bin/esbuild" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/fxparser

@@ -1,16 +0,0 @@
-#!/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

+ 0 - 17
node_modules/.bin/fxparser.cmd

@@ -1,17 +0,0 @@
-@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" %*

+ 0 - 28
node_modules/.bin/fxparser.ps1

@@ -1,28 +0,0 @@
-#!/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

+ 0 - 16
node_modules/.bin/node-gyp-build-optional-packages

@@ -1,16 +0,0 @@
-#!/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/../node-gyp-build-optional-packages/bin.js" "$@"
-else 
-  exec node  "$basedir/../node-gyp-build-optional-packages/bin.js" "$@"
-fi

+ 0 - 16
node_modules/.bin/node-gyp-build-optional-packages-optional

@@ -1,16 +0,0 @@
-#!/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/../node-gyp-build-optional-packages/optional.js" "$@"
-else 
-  exec node  "$basedir/../node-gyp-build-optional-packages/optional.js" "$@"
-fi

+ 0 - 17
node_modules/.bin/node-gyp-build-optional-packages-optional.cmd

@@ -1,17 +0,0 @@
-@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%\..\node-gyp-build-optional-packages\optional.js" %*

+ 0 - 28
node_modules/.bin/node-gyp-build-optional-packages-optional.ps1

@@ -1,28 +0,0 @@
-#!/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/../node-gyp-build-optional-packages/optional.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../node-gyp-build-optional-packages/optional.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../node-gyp-build-optional-packages/optional.js" $args
-  } else {
-    & "node$exe"  "$basedir/../node-gyp-build-optional-packages/optional.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/node-gyp-build-optional-packages-test

@@ -1,16 +0,0 @@
-#!/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/../node-gyp-build-optional-packages/build-test.js" "$@"
-else 
-  exec node  "$basedir/../node-gyp-build-optional-packages/build-test.js" "$@"
-fi

+ 0 - 17
node_modules/.bin/node-gyp-build-optional-packages-test.cmd

@@ -1,17 +0,0 @@
-@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%\..\node-gyp-build-optional-packages\build-test.js" %*

+ 0 - 28
node_modules/.bin/node-gyp-build-optional-packages-test.ps1

@@ -1,28 +0,0 @@
-#!/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/../node-gyp-build-optional-packages/build-test.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../node-gyp-build-optional-packages/build-test.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../node-gyp-build-optional-packages/build-test.js" $args
-  } else {
-    & "node$exe"  "$basedir/../node-gyp-build-optional-packages/build-test.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 17
node_modules/.bin/node-gyp-build-optional-packages.cmd

@@ -1,17 +0,0 @@
-@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%\..\node-gyp-build-optional-packages\bin.js" %*

+ 0 - 28
node_modules/.bin/node-gyp-build-optional-packages.ps1

@@ -1,28 +0,0 @@
-#!/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/../node-gyp-build-optional-packages/bin.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../node-gyp-build-optional-packages/bin.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../node-gyp-build-optional-packages/bin.js" $args
-  } else {
-    & "node$exe"  "$basedir/../node-gyp-build-optional-packages/bin.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/semver

@@ -1,16 +0,0 @@
-#!/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/../semver/bin/semver.js" "$@"
-else 
-  exec node  "$basedir/../semver/bin/semver.js" "$@"
-fi

+ 0 - 17
node_modules/.bin/semver.cmd

@@ -1,17 +0,0 @@
-@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%\..\semver\bin\semver.js" %*

+ 0 - 28
node_modules/.bin/semver.ps1

@@ -1,28 +0,0 @@
-#!/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/../semver/bin/semver.js" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../semver/bin/semver.js" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../semver/bin/semver.js" $args
-  } else {
-    & "node$exe"  "$basedir/../semver/bin/semver.js" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/tsc

@@ -1,16 +0,0 @@
-#!/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

+ 0 - 17
node_modules/.bin/tsc.cmd

@@ -1,17 +0,0 @@
-@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" %*

+ 0 - 28
node_modules/.bin/tsc.ps1

@@ -1,28 +0,0 @@
-#!/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

+ 0 - 16
node_modules/.bin/tsserver

@@ -1,16 +0,0 @@
-#!/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

+ 0 - 17
node_modules/.bin/tsserver.cmd

@@ -1,17 +0,0 @@
-@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" %*

+ 0 - 28
node_modules/.bin/tsserver.ps1

@@ -1,28 +0,0 @@
-#!/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

+ 0 - 16
node_modules/.bin/tsx

@@ -1,16 +0,0 @@
-#!/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/../tsx/dist/cli.mjs" "$@"
-else 
-  exec node  "$basedir/../tsx/dist/cli.mjs" "$@"
-fi

+ 0 - 17
node_modules/.bin/tsx.cmd

@@ -1,17 +0,0 @@
-@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%\..\tsx\dist\cli.mjs" %*

+ 0 - 28
node_modules/.bin/tsx.ps1

@@ -1,28 +0,0 @@
-#!/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/../tsx/dist/cli.mjs" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../tsx/dist/cli.mjs" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../tsx/dist/cli.mjs" $args
-  } else {
-    & "node$exe"  "$basedir/../tsx/dist/cli.mjs" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/uuid

@@ -1,16 +0,0 @@
-#!/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/../uuid/dist/esm/bin/uuid" "$@"
-else 
-  exec node  "$basedir/../uuid/dist/esm/bin/uuid" "$@"
-fi

+ 0 - 17
node_modules/.bin/uuid.cmd

@@ -1,17 +0,0 @@
-@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%\..\uuid\dist\esm\bin\uuid" %*

+ 0 - 28
node_modules/.bin/uuid.ps1

@@ -1,28 +0,0 @@
-#!/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/../uuid/dist/esm/bin/uuid" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../uuid/dist/esm/bin/uuid" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../uuid/dist/esm/bin/uuid" $args
-  } else {
-    & "node$exe"  "$basedir/../uuid/dist/esm/bin/uuid" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 16
node_modules/.bin/which

@@ -1,16 +0,0 @@
-#!/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/../which/bin/which" "$@"
-else 
-  exec node  "$basedir/../which/bin/which" "$@"
-fi

+ 0 - 17
node_modules/.bin/which.cmd

@@ -1,17 +0,0 @@
-@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%\..\which\bin\which" %*

+ 0 - 28
node_modules/.bin/which.ps1

@@ -1,28 +0,0 @@
-#!/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/../which/bin/which" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../which/bin/which" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../which/bin/which" $args
-  } else {
-    & "node$exe"  "$basedir/../which/bin/which" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 2000
node_modules/.package-lock.json

@@ -1,2000 +0,0 @@
-{
-  "name": "zhishiku",
-  "version": "1.0.0",
-  "lockfileVersion": 3,
-  "requires": true,
-  "packages": {
-    "node_modules/@alloc/quick-lru": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
-      "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=10"
-      },
-      "funding": {
-        "url": "https://github.com/sponsors/sindresorhus"
-      }
-    },
-    "node_modules/@auth/core": {
-      "version": "0.41.2",
-      "resolved": "https://registry.npmjs.org/@auth/core/-/core-0.41.2.tgz",
-      "integrity": "sha512-Hx5MNBxN2fJTbJKGUKAA0wca43D0Akl3TvufY54Gn8lop7F+34vU1zA1pn0vQfIoVuLIrpfc2nkyjwIaPJMW7w==",
-      "license": "ISC",
-      "dependencies": {
-        "@panva/hkdf": "^1.2.1",
-        "jose": "^6.0.6",
-        "oauth4webapi": "^3.3.0",
-        "preact": "10.24.3",
-        "preact-render-to-string": "6.5.11"
-      },
-      "peerDependencies": {
-        "@simplewebauthn/browser": "^9.0.1",
-        "@simplewebauthn/server": "^9.0.2",
-        "nodemailer": "^7.0.7"
-      },
-      "peerDependenciesMeta": {
-        "@simplewebauthn/browser": {
-          "optional": true
-        },
-        "@simplewebauthn/server": {
-          "optional": true
-        },
-        "nodemailer": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/@drizzle-team/brocli": {
-      "version": "0.10.2",
-      "resolved": "https://registry.npmjs.org/@drizzle-team/brocli/-/brocli-0.10.2.tgz",
-      "integrity": "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==",
-      "dev": true,
-      "license": "Apache-2.0"
-    },
-    "node_modules/@emnapi/runtime": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
-      "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "tslib": "^2.4.0"
-      }
-    },
-    "node_modules/@esbuild-kit/core-utils": {
-      "version": "3.3.2",
-      "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.3.2.tgz",
-      "integrity": "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==",
-      "deprecated": "Merged into tsx: https://tsx.is",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "esbuild": "~0.18.20",
-        "source-map-support": "^0.5.21"
-      }
-    },
-    "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64": {
-      "version": "0.18.20",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
-      "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/@esbuild-kit/core-utils/node_modules/esbuild": {
-      "version": "0.18.20",
-      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
-      "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
-      "dev": true,
-      "hasInstallScript": true,
-      "license": "MIT",
-      "bin": {
-        "esbuild": "bin/esbuild"
-      },
-      "engines": {
-        "node": ">=12"
-      },
-      "optionalDependencies": {
-        "@esbuild/android-arm": "0.18.20",
-        "@esbuild/android-arm64": "0.18.20",
-        "@esbuild/android-x64": "0.18.20",
-        "@esbuild/darwin-arm64": "0.18.20",
-        "@esbuild/darwin-x64": "0.18.20",
-        "@esbuild/freebsd-arm64": "0.18.20",
-        "@esbuild/freebsd-x64": "0.18.20",
-        "@esbuild/linux-arm": "0.18.20",
-        "@esbuild/linux-arm64": "0.18.20",
-        "@esbuild/linux-ia32": "0.18.20",
-        "@esbuild/linux-loong64": "0.18.20",
-        "@esbuild/linux-mips64el": "0.18.20",
-        "@esbuild/linux-ppc64": "0.18.20",
-        "@esbuild/linux-riscv64": "0.18.20",
-        "@esbuild/linux-s390x": "0.18.20",
-        "@esbuild/linux-x64": "0.18.20",
-        "@esbuild/netbsd-x64": "0.18.20",
-        "@esbuild/openbsd-x64": "0.18.20",
-        "@esbuild/sunos-x64": "0.18.20",
-        "@esbuild/win32-arm64": "0.18.20",
-        "@esbuild/win32-ia32": "0.18.20",
-        "@esbuild/win32-x64": "0.18.20"
-      }
-    },
-    "node_modules/@esbuild-kit/esm-loader": {
-      "version": "2.6.5",
-      "resolved": "https://registry.npmjs.org/@esbuild-kit/esm-loader/-/esm-loader-2.6.5.tgz",
-      "integrity": "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==",
-      "deprecated": "Merged into tsx: https://tsx.is",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@esbuild-kit/core-utils": "^3.3.2",
-        "get-tsconfig": "^4.7.0"
-      }
-    },
-    "node_modules/@esbuild/win32-x64": {
-      "version": "0.25.12",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
-      "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=18"
-      }
-    },
-    "node_modules/@img/colour": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
-      "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
-      "license": "MIT",
-      "optional": true,
-      "engines": {
-        "node": ">=18"
-      }
-    },
-    "node_modules/@img/sharp-win32-x64": {
-      "version": "0.34.5",
-      "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz",
-      "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==",
-      "cpu": [
-        "x64"
-      ],
-      "license": "Apache-2.0 AND LGPL-3.0-or-later",
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/libvips"
-      }
-    },
-    "node_modules/@ioredis/commands": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.5.1.tgz",
-      "integrity": "sha512-JH8ZL/ywcJyR9MmJ5BNqZllXNZQqQbnVZOqpPQqE1vHiFgAw4NHbvE0FOduNU8IX9babitBT46571OnPTT0Zcw==",
-      "license": "MIT"
-    },
-    "node_modules/@jridgewell/gen-mapping": {
-      "version": "0.3.13",
-      "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
-      "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
-      "license": "MIT",
-      "dependencies": {
-        "@jridgewell/sourcemap-codec": "^1.5.0",
-        "@jridgewell/trace-mapping": "^0.3.24"
-      }
-    },
-    "node_modules/@jridgewell/remapping": {
-      "version": "2.3.5",
-      "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
-      "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@jridgewell/gen-mapping": "^0.3.5",
-        "@jridgewell/trace-mapping": "^0.3.24"
-      }
-    },
-    "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==",
-      "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==",
-      "license": "MIT"
-    },
-    "node_modules/@jridgewell/trace-mapping": {
-      "version": "0.3.31",
-      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
-      "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
-      "license": "MIT",
-      "dependencies": {
-        "@jridgewell/resolve-uri": "^3.1.0",
-        "@jridgewell/sourcemap-codec": "^1.4.14"
-      }
-    },
-    "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz",
-      "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==",
-      "cpu": [
-        "x64"
-      ],
-      "license": "MIT",
-      "optional": true,
-      "os": [
-        "win32"
-      ]
-    },
-    "node_modules/@next/env": {
-      "version": "15.5.15",
-      "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.15.tgz",
-      "integrity": "sha512-vcmyu5/MyFzN7CdqRHO3uHO44p/QPCZkuTUXroeUmhNP8bL5PHFEhik22JUazt+CDDoD6EpBYRCaS2pISL+/hg==",
-      "license": "MIT"
-    },
-    "node_modules/@next/swc-win32-x64-msvc": {
-      "version": "15.5.15",
-      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.15.tgz",
-      "integrity": "sha512-nFucjVdwlFqxh/JG3hWSJ4p8+YJV7Ii8aPDuBQULB6DzUF4UNZETXLfEUk+oI2zEznWWULPt7MeuTE6xtK1HSA==",
-      "cpu": [
-        "x64"
-      ],
-      "license": "MIT",
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">= 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/@panva/hkdf": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz",
-      "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==",
-      "license": "MIT",
-      "funding": {
-        "url": "https://github.com/sponsors/panva"
-      }
-    },
-    "node_modules/@swc/helpers": {
-      "version": "0.5.15",
-      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz",
-      "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==",
-      "license": "Apache-2.0",
-      "dependencies": {
-        "tslib": "^2.8.0"
-      }
-    },
-    "node_modules/@tailwindcss/node": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz",
-      "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==",
-      "license": "MIT",
-      "dependencies": {
-        "@jridgewell/remapping": "^2.3.5",
-        "enhanced-resolve": "^5.19.0",
-        "jiti": "^2.6.1",
-        "lightningcss": "1.32.0",
-        "magic-string": "^0.30.21",
-        "source-map-js": "^1.2.1",
-        "tailwindcss": "4.2.2"
-      }
-    },
-    "node_modules/@tailwindcss/oxide": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz",
-      "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==",
-      "license": "MIT",
-      "engines": {
-        "node": ">= 20"
-      },
-      "optionalDependencies": {
-        "@tailwindcss/oxide-android-arm64": "4.2.2",
-        "@tailwindcss/oxide-darwin-arm64": "4.2.2",
-        "@tailwindcss/oxide-darwin-x64": "4.2.2",
-        "@tailwindcss/oxide-freebsd-x64": "4.2.2",
-        "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2",
-        "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2",
-        "@tailwindcss/oxide-linux-arm64-musl": "4.2.2",
-        "@tailwindcss/oxide-linux-x64-gnu": "4.2.2",
-        "@tailwindcss/oxide-linux-x64-musl": "4.2.2",
-        "@tailwindcss/oxide-wasm32-wasi": "4.2.2",
-        "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2",
-        "@tailwindcss/oxide-win32-x64-msvc": "4.2.2"
-      }
-    },
-    "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz",
-      "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==",
-      "cpu": [
-        "x64"
-      ],
-      "license": "MIT",
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">= 20"
-      }
-    },
-    "node_modules/@tailwindcss/postcss": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.2.tgz",
-      "integrity": "sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@alloc/quick-lru": "^5.2.0",
-        "@tailwindcss/node": "4.2.2",
-        "@tailwindcss/oxide": "4.2.2",
-        "postcss": "^8.5.6",
-        "tailwindcss": "4.2.2"
-      }
-    },
-    "node_modules/@tailwindcss/postcss/node_modules/postcss": {
-      "version": "8.5.10",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz",
-      "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==",
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/postcss"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "nanoid": "^3.3.11",
-        "picocolors": "^1.1.1",
-        "source-map-js": "^1.2.1"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      }
-    },
-    "node_modules/@types/fluent-ffmpeg": {
-      "version": "2.1.28",
-      "resolved": "https://registry.npmjs.org/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.28.tgz",
-      "integrity": "sha512-5ovxsDwBcPfJ+eYs1I/ZpcYCnkce7pvH9AHSvrZllAp1ZPpTRDZAFjF3TRFbukxSgIYTTNYePbS0rKUmaxVbXw==",
-      "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==",
-      "license": "MIT",
-      "dependencies": {
-        "undici-types": "~7.19.0"
-      }
-    },
-    "node_modules/@types/pg": {
-      "version": "8.20.0",
-      "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.20.0.tgz",
-      "integrity": "sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==",
-      "devOptional": true,
-      "license": "MIT",
-      "dependencies": {
-        "@types/node": "*",
-        "pg-protocol": "*",
-        "pg-types": "^2.2.0"
-      }
-    },
-    "node_modules/@types/react": {
-      "version": "19.2.14",
-      "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
-      "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "csstype": "^3.2.2"
-      }
-    },
-    "node_modules/@types/react-dom": {
-      "version": "19.2.3",
-      "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
-      "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
-      "dev": true,
-      "license": "MIT",
-      "peerDependencies": {
-        "@types/react": "^19.2.0"
-      }
-    },
-    "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/bcryptjs": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz",
-      "integrity": "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==",
-      "license": "BSD-3-Clause",
-      "bin": {
-        "bcrypt": "bin/bcrypt"
-      }
-    },
-    "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/buffer-from": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
-      "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/bullmq": {
-      "version": "5.74.1",
-      "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.74.1.tgz",
-      "integrity": "sha512-GfJEos2zoOGM9xqkB7VZouwwFuejKFqm667cBcmbBekJXKqqXWk4QYP3Uy2pzgUwCbg1cR7GgGmGczM7fnhWSA==",
-      "license": "MIT",
-      "dependencies": {
-        "cron-parser": "4.9.0",
-        "ioredis": "5.10.1",
-        "msgpackr": "1.11.5",
-        "node-abort-controller": "3.1.1",
-        "semver": "7.7.4",
-        "tslib": "2.8.1",
-        "uuid": "11.1.0"
-      }
-    },
-    "node_modules/caniuse-lite": {
-      "version": "1.0.30001788",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz",
-      "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==",
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/browserslist"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "CC-BY-4.0"
-    },
-    "node_modules/class-variance-authority": {
-      "version": "0.7.1",
-      "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
-      "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
-      "license": "Apache-2.0",
-      "dependencies": {
-        "clsx": "^2.1.1"
-      },
-      "funding": {
-        "url": "https://polar.sh/cva"
-      }
-    },
-    "node_modules/client-only": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
-      "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
-      "license": "MIT"
-    },
-    "node_modules/clsx": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
-      "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=6"
-      }
-    },
-    "node_modules/cluster-key-slot": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz",
-      "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==",
-      "license": "Apache-2.0",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/cron-parser": {
-      "version": "4.9.0",
-      "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz",
-      "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==",
-      "license": "MIT",
-      "dependencies": {
-        "luxon": "^3.2.1"
-      },
-      "engines": {
-        "node": ">=12.0.0"
-      }
-    },
-    "node_modules/csstype": {
-      "version": "3.2.3",
-      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
-      "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
-      "dev": true,
-      "license": "MIT"
-    },
-    "node_modules/debug": {
-      "version": "4.4.3",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
-      "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
-      "license": "MIT",
-      "dependencies": {
-        "ms": "^2.1.3"
-      },
-      "engines": {
-        "node": ">=6.0"
-      },
-      "peerDependenciesMeta": {
-        "supports-color": {
-          "optional": true
-        }
-      }
-    },
-    "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/denque": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
-      "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
-      "license": "Apache-2.0",
-      "engines": {
-        "node": ">=0.10"
-      }
-    },
-    "node_modules/detect-libc": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
-      "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
-      "license": "Apache-2.0",
-      "engines": {
-        "node": ">=8"
-      }
-    },
-    "node_modules/dotenv": {
-      "version": "17.4.2",
-      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz",
-      "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==",
-      "license": "BSD-2-Clause",
-      "engines": {
-        "node": ">=12"
-      },
-      "funding": {
-        "url": "https://dotenvx.com"
-      }
-    },
-    "node_modules/drizzle-kit": {
-      "version": "0.31.10",
-      "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.31.10.tgz",
-      "integrity": "sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "@drizzle-team/brocli": "^0.10.2",
-        "@esbuild-kit/esm-loader": "^2.5.5",
-        "esbuild": "^0.25.4",
-        "tsx": "^4.21.0"
-      },
-      "bin": {
-        "drizzle-kit": "bin.cjs"
-      }
-    },
-    "node_modules/drizzle-orm": {
-      "version": "0.45.2",
-      "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.45.2.tgz",
-      "integrity": "sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==",
-      "license": "Apache-2.0",
-      "peerDependencies": {
-        "@aws-sdk/client-rds-data": ">=3",
-        "@cloudflare/workers-types": ">=4",
-        "@electric-sql/pglite": ">=0.2.0",
-        "@libsql/client": ">=0.10.0",
-        "@libsql/client-wasm": ">=0.10.0",
-        "@neondatabase/serverless": ">=0.10.0",
-        "@op-engineering/op-sqlite": ">=2",
-        "@opentelemetry/api": "^1.4.1",
-        "@planetscale/database": ">=1.13",
-        "@prisma/client": "*",
-        "@tidbcloud/serverless": "*",
-        "@types/better-sqlite3": "*",
-        "@types/pg": "*",
-        "@types/sql.js": "*",
-        "@upstash/redis": ">=1.34.7",
-        "@vercel/postgres": ">=0.8.0",
-        "@xata.io/client": "*",
-        "better-sqlite3": ">=7",
-        "bun-types": "*",
-        "expo-sqlite": ">=14.0.0",
-        "gel": ">=2",
-        "knex": "*",
-        "kysely": "*",
-        "mysql2": ">=2",
-        "pg": ">=8",
-        "postgres": ">=3",
-        "sql.js": ">=1",
-        "sqlite3": ">=5"
-      },
-      "peerDependenciesMeta": {
-        "@aws-sdk/client-rds-data": {
-          "optional": true
-        },
-        "@cloudflare/workers-types": {
-          "optional": true
-        },
-        "@electric-sql/pglite": {
-          "optional": true
-        },
-        "@libsql/client": {
-          "optional": true
-        },
-        "@libsql/client-wasm": {
-          "optional": true
-        },
-        "@neondatabase/serverless": {
-          "optional": true
-        },
-        "@op-engineering/op-sqlite": {
-          "optional": true
-        },
-        "@opentelemetry/api": {
-          "optional": true
-        },
-        "@planetscale/database": {
-          "optional": true
-        },
-        "@prisma/client": {
-          "optional": true
-        },
-        "@tidbcloud/serverless": {
-          "optional": true
-        },
-        "@types/better-sqlite3": {
-          "optional": true
-        },
-        "@types/pg": {
-          "optional": true
-        },
-        "@types/sql.js": {
-          "optional": true
-        },
-        "@upstash/redis": {
-          "optional": true
-        },
-        "@vercel/postgres": {
-          "optional": true
-        },
-        "@xata.io/client": {
-          "optional": true
-        },
-        "better-sqlite3": {
-          "optional": true
-        },
-        "bun-types": {
-          "optional": true
-        },
-        "expo-sqlite": {
-          "optional": true
-        },
-        "gel": {
-          "optional": true
-        },
-        "knex": {
-          "optional": true
-        },
-        "kysely": {
-          "optional": true
-        },
-        "mysql2": {
-          "optional": true
-        },
-        "pg": {
-          "optional": true
-        },
-        "postgres": {
-          "optional": true
-        },
-        "prisma": {
-          "optional": true
-        },
-        "sql.js": {
-          "optional": true
-        },
-        "sqlite3": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/enhanced-resolve": {
-      "version": "5.20.1",
-      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
-      "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
-      "license": "MIT",
-      "dependencies": {
-        "graceful-fs": "^4.2.4",
-        "tapable": "^2.3.0"
-      },
-      "engines": {
-        "node": ">=10.13.0"
-      }
-    },
-    "node_modules/esbuild": {
-      "version": "0.25.12",
-      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
-      "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
-      "dev": true,
-      "hasInstallScript": true,
-      "license": "MIT",
-      "bin": {
-        "esbuild": "bin/esbuild"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "optionalDependencies": {
-        "@esbuild/aix-ppc64": "0.25.12",
-        "@esbuild/android-arm": "0.25.12",
-        "@esbuild/android-arm64": "0.25.12",
-        "@esbuild/android-x64": "0.25.12",
-        "@esbuild/darwin-arm64": "0.25.12",
-        "@esbuild/darwin-x64": "0.25.12",
-        "@esbuild/freebsd-arm64": "0.25.12",
-        "@esbuild/freebsd-x64": "0.25.12",
-        "@esbuild/linux-arm": "0.25.12",
-        "@esbuild/linux-arm64": "0.25.12",
-        "@esbuild/linux-ia32": "0.25.12",
-        "@esbuild/linux-loong64": "0.25.12",
-        "@esbuild/linux-mips64el": "0.25.12",
-        "@esbuild/linux-ppc64": "0.25.12",
-        "@esbuild/linux-riscv64": "0.25.12",
-        "@esbuild/linux-s390x": "0.25.12",
-        "@esbuild/linux-x64": "0.25.12",
-        "@esbuild/netbsd-arm64": "0.25.12",
-        "@esbuild/netbsd-x64": "0.25.12",
-        "@esbuild/openbsd-arm64": "0.25.12",
-        "@esbuild/openbsd-x64": "0.25.12",
-        "@esbuild/openharmony-arm64": "0.25.12",
-        "@esbuild/sunos-x64": "0.25.12",
-        "@esbuild/win32-arm64": "0.25.12",
-        "@esbuild/win32-ia32": "0.25.12",
-        "@esbuild/win32-x64": "0.25.12"
-      }
-    },
-    "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/fluent-ffmpeg": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.3.tgz",
-      "integrity": "sha512-Be3narBNt2s6bsaqP6Jzq91heDgOEaDCJAXcE3qcma/EJBSy5FB4cvO31XBInuAuKBx8Kptf8dkhjK0IOru39Q==",
-      "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
-      "license": "MIT",
-      "dependencies": {
-        "async": "^0.2.9",
-        "which": "^1.1.1"
-      },
-      "engines": {
-        "node": ">=18"
-      }
-    },
-    "node_modules/fluent-ffmpeg/node_modules/async": {
-      "version": "0.2.10",
-      "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
-      "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
-    },
-    "node_modules/get-tsconfig": {
-      "version": "4.14.0",
-      "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz",
-      "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "resolve-pkg-maps": "^1.0.0"
-      },
-      "funding": {
-        "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
-      }
-    },
-    "node_modules/graceful-fs": {
-      "version": "4.2.11",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
-      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
-      "license": "ISC"
-    },
-    "node_modules/hls.js": {
-      "version": "1.6.16",
-      "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.16.tgz",
-      "integrity": "sha512-VSIRpLfRwlAAdGL4wiTucx2ScRipo0ed1FBatWkyt832jC4CReKstga6yIhYVwGu9LOBjuX9wzmRMeQdBJtzEA==",
-      "license": "Apache-2.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/ioredis": {
-      "version": "5.10.1",
-      "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.10.1.tgz",
-      "integrity": "sha512-HuEDBTI70aYdx1v6U97SbNx9F1+svQKBDo30o0b9fw055LMepzpOOd0Ccg9Q6tbqmBSJaMuY0fB7yw9/vjBYCA==",
-      "license": "MIT",
-      "dependencies": {
-        "@ioredis/commands": "1.5.1",
-        "cluster-key-slot": "^1.1.0",
-        "debug": "^4.3.4",
-        "denque": "^2.1.0",
-        "lodash.defaults": "^4.2.0",
-        "lodash.isarguments": "^3.1.0",
-        "redis-errors": "^1.2.0",
-        "redis-parser": "^3.0.0",
-        "standard-as-callback": "^2.1.0"
-      },
-      "engines": {
-        "node": ">=12.22.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/ioredis"
-      }
-    },
-    "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/isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
-      "license": "ISC"
-    },
-    "node_modules/jiti": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
-      "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
-      "license": "MIT",
-      "bin": {
-        "jiti": "lib/jiti-cli.mjs"
-      }
-    },
-    "node_modules/jose": {
-      "version": "6.2.2",
-      "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.2.tgz",
-      "integrity": "sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==",
-      "license": "MIT",
-      "funding": {
-        "url": "https://github.com/sponsors/panva"
-      }
-    },
-    "node_modules/lightningcss": {
-      "version": "1.32.0",
-      "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
-      "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
-      "license": "MPL-2.0",
-      "dependencies": {
-        "detect-libc": "^2.0.3"
-      },
-      "engines": {
-        "node": ">= 12.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/parcel"
-      },
-      "optionalDependencies": {
-        "lightningcss-android-arm64": "1.32.0",
-        "lightningcss-darwin-arm64": "1.32.0",
-        "lightningcss-darwin-x64": "1.32.0",
-        "lightningcss-freebsd-x64": "1.32.0",
-        "lightningcss-linux-arm-gnueabihf": "1.32.0",
-        "lightningcss-linux-arm64-gnu": "1.32.0",
-        "lightningcss-linux-arm64-musl": "1.32.0",
-        "lightningcss-linux-x64-gnu": "1.32.0",
-        "lightningcss-linux-x64-musl": "1.32.0",
-        "lightningcss-win32-arm64-msvc": "1.32.0",
-        "lightningcss-win32-x64-msvc": "1.32.0"
-      }
-    },
-    "node_modules/lightningcss-win32-x64-msvc": {
-      "version": "1.32.0",
-      "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
-      "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
-      "cpu": [
-        "x64"
-      ],
-      "license": "MPL-2.0",
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">= 12.0.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/parcel"
-      }
-    },
-    "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/lodash.defaults": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
-      "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
-      "license": "MIT"
-    },
-    "node_modules/lodash.isarguments": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
-      "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==",
-      "license": "MIT"
-    },
-    "node_modules/lucide-react": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.8.0.tgz",
-      "integrity": "sha512-WuvlsjngSk7TnTBJ1hsCy3ql9V9VOdcPkd3PKcSmM34vJD8KG6molxz7m7zbYFgICwsanQWmJ13JlYs4Zp7Arw==",
-      "license": "ISC",
-      "peerDependencies": {
-        "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
-      }
-    },
-    "node_modules/luxon": {
-      "version": "3.7.2",
-      "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
-      "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=12"
-      }
-    },
-    "node_modules/magic-string": {
-      "version": "0.30.21",
-      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
-      "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@jridgewell/sourcemap-codec": "^1.5.5"
-      }
-    },
-    "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/ms": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
-      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
-      "license": "MIT"
-    },
-    "node_modules/msgpackr": {
-      "version": "1.11.5",
-      "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.5.tgz",
-      "integrity": "sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==",
-      "license": "MIT",
-      "optionalDependencies": {
-        "msgpackr-extract": "^3.0.2"
-      }
-    },
-    "node_modules/msgpackr-extract": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz",
-      "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==",
-      "hasInstallScript": true,
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "node-gyp-build-optional-packages": "5.2.2"
-      },
-      "bin": {
-        "download-msgpackr-prebuilds": "bin/download-prebuilds.js"
-      },
-      "optionalDependencies": {
-        "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3",
-        "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3",
-        "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3",
-        "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3",
-        "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3",
-        "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3"
-      }
-    },
-    "node_modules/nanoid": {
-      "version": "3.3.11",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
-      "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
-      "funding": [
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "bin": {
-        "nanoid": "bin/nanoid.cjs"
-      },
-      "engines": {
-        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
-      }
-    },
-    "node_modules/next": {
-      "version": "15.5.15",
-      "resolved": "https://registry.npmjs.org/next/-/next-15.5.15.tgz",
-      "integrity": "sha512-VSqCrJwtLVGwAVE0Sb/yikrQfkwkZW9p+lL/J4+xe+G3ZA+QnWPqgcfH1tDUEuk9y+pthzzVFp4L/U8JerMfMQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@next/env": "15.5.15",
-        "@swc/helpers": "0.5.15",
-        "caniuse-lite": "^1.0.30001579",
-        "postcss": "8.4.31",
-        "styled-jsx": "5.1.6"
-      },
-      "bin": {
-        "next": "dist/bin/next"
-      },
-      "engines": {
-        "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
-      },
-      "optionalDependencies": {
-        "@next/swc-darwin-arm64": "15.5.15",
-        "@next/swc-darwin-x64": "15.5.15",
-        "@next/swc-linux-arm64-gnu": "15.5.15",
-        "@next/swc-linux-arm64-musl": "15.5.15",
-        "@next/swc-linux-x64-gnu": "15.5.15",
-        "@next/swc-linux-x64-musl": "15.5.15",
-        "@next/swc-win32-arm64-msvc": "15.5.15",
-        "@next/swc-win32-x64-msvc": "15.5.15",
-        "sharp": "^0.34.3"
-      },
-      "peerDependencies": {
-        "@opentelemetry/api": "^1.1.0",
-        "@playwright/test": "^1.51.1",
-        "babel-plugin-react-compiler": "*",
-        "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
-        "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0",
-        "sass": "^1.3.0"
-      },
-      "peerDependenciesMeta": {
-        "@opentelemetry/api": {
-          "optional": true
-        },
-        "@playwright/test": {
-          "optional": true
-        },
-        "babel-plugin-react-compiler": {
-          "optional": true
-        },
-        "sass": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/next-auth": {
-      "version": "5.0.0-beta.31",
-      "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-5.0.0-beta.31.tgz",
-      "integrity": "sha512-1OBgCKPzo+S7UWWMp3xgvGvIJ0OpV7B3vR4ZDRqD9a4Ch+OT6dakLXG9ivhtmIWVa71nTSXattOHyCg8sNi8/Q==",
-      "license": "ISC",
-      "dependencies": {
-        "@auth/core": "0.41.2"
-      },
-      "peerDependencies": {
-        "@simplewebauthn/browser": "^9.0.1",
-        "@simplewebauthn/server": "^9.0.2",
-        "next": "^14.0.0-0 || ^15.0.0 || ^16.0.0",
-        "nodemailer": "^7.0.7",
-        "react": "^18.2.0 || ^19.0.0"
-      },
-      "peerDependenciesMeta": {
-        "@simplewebauthn/browser": {
-          "optional": true
-        },
-        "@simplewebauthn/server": {
-          "optional": true
-        },
-        "nodemailer": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/node-abort-controller": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
-      "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==",
-      "license": "MIT"
-    },
-    "node_modules/node-gyp-build-optional-packages": {
-      "version": "5.2.2",
-      "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
-      "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==",
-      "license": "MIT",
-      "optional": true,
-      "dependencies": {
-        "detect-libc": "^2.0.1"
-      },
-      "bin": {
-        "node-gyp-build-optional-packages": "bin.js",
-        "node-gyp-build-optional-packages-optional": "optional.js",
-        "node-gyp-build-optional-packages-test": "build-test.js"
-      }
-    },
-    "node_modules/oauth4webapi": {
-      "version": "3.8.5",
-      "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.5.tgz",
-      "integrity": "sha512-A8jmyUckVhRJj5lspguklcl90Ydqk61H3dcU0oLhH3Yv13KpAliKTt5hknpGGPZSSfOwGyraNEFmofDYH+1kSg==",
-      "license": "MIT",
-      "funding": {
-        "url": "https://github.com/sponsors/panva"
-      }
-    },
-    "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/pg": {
-      "version": "8.20.0",
-      "resolved": "https://registry.npmjs.org/pg/-/pg-8.20.0.tgz",
-      "integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==",
-      "license": "MIT",
-      "dependencies": {
-        "pg-connection-string": "^2.12.0",
-        "pg-pool": "^3.13.0",
-        "pg-protocol": "^1.13.0",
-        "pg-types": "2.2.0",
-        "pgpass": "1.0.5"
-      },
-      "engines": {
-        "node": ">= 16.0.0"
-      },
-      "optionalDependencies": {
-        "pg-cloudflare": "^1.3.0"
-      },
-      "peerDependencies": {
-        "pg-native": ">=3.0.1"
-      },
-      "peerDependenciesMeta": {
-        "pg-native": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/pg-cloudflare": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz",
-      "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==",
-      "license": "MIT",
-      "optional": true
-    },
-    "node_modules/pg-connection-string": {
-      "version": "2.12.0",
-      "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.12.0.tgz",
-      "integrity": "sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==",
-      "license": "MIT"
-    },
-    "node_modules/pg-int8": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
-      "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
-      "license": "ISC",
-      "engines": {
-        "node": ">=4.0.0"
-      }
-    },
-    "node_modules/pg-pool": {
-      "version": "3.13.0",
-      "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.13.0.tgz",
-      "integrity": "sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==",
-      "license": "MIT",
-      "peerDependencies": {
-        "pg": ">=8.0"
-      }
-    },
-    "node_modules/pg-protocol": {
-      "version": "1.13.0",
-      "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.13.0.tgz",
-      "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==",
-      "license": "MIT"
-    },
-    "node_modules/pg-types": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
-      "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
-      "license": "MIT",
-      "dependencies": {
-        "pg-int8": "1.0.1",
-        "postgres-array": "~2.0.0",
-        "postgres-bytea": "~1.0.0",
-        "postgres-date": "~1.0.4",
-        "postgres-interval": "^1.1.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/pgpass": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
-      "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
-      "license": "MIT",
-      "dependencies": {
-        "split2": "^4.1.0"
-      }
-    },
-    "node_modules/picocolors": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
-      "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
-      "license": "ISC"
-    },
-    "node_modules/postcss": {
-      "version": "8.4.31",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
-      "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
-      "funding": [
-        {
-          "type": "opencollective",
-          "url": "https://opencollective.com/postcss/"
-        },
-        {
-          "type": "tidelift",
-          "url": "https://tidelift.com/funding/github/npm/postcss"
-        },
-        {
-          "type": "github",
-          "url": "https://github.com/sponsors/ai"
-        }
-      ],
-      "license": "MIT",
-      "dependencies": {
-        "nanoid": "^3.3.6",
-        "picocolors": "^1.0.0",
-        "source-map-js": "^1.0.2"
-      },
-      "engines": {
-        "node": "^10 || ^12 || >=14"
-      }
-    },
-    "node_modules/postgres-array": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
-      "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/postgres-bytea": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz",
-      "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/postgres-date": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
-      "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/postgres-interval": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
-      "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
-      "license": "MIT",
-      "dependencies": {
-        "xtend": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/preact": {
-      "version": "10.24.3",
-      "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz",
-      "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==",
-      "license": "MIT",
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/preact"
-      }
-    },
-    "node_modules/preact-render-to-string": {
-      "version": "6.5.11",
-      "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz",
-      "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==",
-      "license": "MIT",
-      "peerDependencies": {
-        "preact": ">=10"
-      }
-    },
-    "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/react": {
-      "version": "19.2.5",
-      "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
-      "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/react-dom": {
-      "version": "19.2.5",
-      "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
-      "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",
-      "license": "MIT",
-      "dependencies": {
-        "scheduler": "^0.27.0"
-      },
-      "peerDependencies": {
-        "react": "^19.2.5"
-      }
-    },
-    "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/redis-errors": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
-      "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/redis-parser": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
-      "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==",
-      "license": "MIT",
-      "dependencies": {
-        "redis-errors": "^1.0.0"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
-    "node_modules/resolve-pkg-maps": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
-      "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
-      "dev": true,
-      "license": "MIT",
-      "funding": {
-        "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
-      }
-    },
-    "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/scheduler": {
-      "version": "0.27.0",
-      "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
-      "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
-      "license": "MIT"
-    },
-    "node_modules/semver": {
-      "version": "7.7.4",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
-      "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
-      "license": "ISC",
-      "bin": {
-        "semver": "bin/semver.js"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/sharp": {
-      "version": "0.34.5",
-      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz",
-      "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==",
-      "hasInstallScript": true,
-      "license": "Apache-2.0",
-      "optional": true,
-      "dependencies": {
-        "@img/colour": "^1.0.0",
-        "detect-libc": "^2.1.2",
-        "semver": "^7.7.3"
-      },
-      "engines": {
-        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
-      },
-      "funding": {
-        "url": "https://opencollective.com/libvips"
-      },
-      "optionalDependencies": {
-        "@img/sharp-darwin-arm64": "0.34.5",
-        "@img/sharp-darwin-x64": "0.34.5",
-        "@img/sharp-libvips-darwin-arm64": "1.2.4",
-        "@img/sharp-libvips-darwin-x64": "1.2.4",
-        "@img/sharp-libvips-linux-arm": "1.2.4",
-        "@img/sharp-libvips-linux-arm64": "1.2.4",
-        "@img/sharp-libvips-linux-ppc64": "1.2.4",
-        "@img/sharp-libvips-linux-riscv64": "1.2.4",
-        "@img/sharp-libvips-linux-s390x": "1.2.4",
-        "@img/sharp-libvips-linux-x64": "1.2.4",
-        "@img/sharp-libvips-linuxmusl-arm64": "1.2.4",
-        "@img/sharp-libvips-linuxmusl-x64": "1.2.4",
-        "@img/sharp-linux-arm": "0.34.5",
-        "@img/sharp-linux-arm64": "0.34.5",
-        "@img/sharp-linux-ppc64": "0.34.5",
-        "@img/sharp-linux-riscv64": "0.34.5",
-        "@img/sharp-linux-s390x": "0.34.5",
-        "@img/sharp-linux-x64": "0.34.5",
-        "@img/sharp-linuxmusl-arm64": "0.34.5",
-        "@img/sharp-linuxmusl-x64": "0.34.5",
-        "@img/sharp-wasm32": "0.34.5",
-        "@img/sharp-win32-arm64": "0.34.5",
-        "@img/sharp-win32-ia32": "0.34.5",
-        "@img/sharp-win32-x64": "0.34.5"
-      }
-    },
-    "node_modules/source-map": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-      "dev": true,
-      "license": "BSD-3-Clause",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/source-map-js": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
-      "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
-      "license": "BSD-3-Clause",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
-    "node_modules/source-map-support": {
-      "version": "0.5.21",
-      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
-      "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "buffer-from": "^1.0.0",
-        "source-map": "^0.6.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/split2": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
-      "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
-      "license": "ISC",
-      "engines": {
-        "node": ">= 10.x"
-      }
-    },
-    "node_modules/standard-as-callback": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz",
-      "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==",
-      "license": "MIT"
-    },
-    "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/styled-jsx": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
-      "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
-      "license": "MIT",
-      "dependencies": {
-        "client-only": "0.0.1"
-      },
-      "engines": {
-        "node": ">= 12.0.0"
-      },
-      "peerDependencies": {
-        "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
-      },
-      "peerDependenciesMeta": {
-        "@babel/core": {
-          "optional": true
-        },
-        "babel-plugin-macros": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/tailwind-merge": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz",
-      "integrity": "sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==",
-      "license": "MIT",
-      "funding": {
-        "type": "github",
-        "url": "https://github.com/sponsors/dcastil"
-      }
-    },
-    "node_modules/tailwindcss": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz",
-      "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==",
-      "license": "MIT"
-    },
-    "node_modules/tapable": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz",
-      "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=6"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/webpack"
-      }
-    },
-    "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/tslib": {
-      "version": "2.8.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
-      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
-      "license": "0BSD"
-    },
-    "node_modules/tsx": {
-      "version": "4.21.0",
-      "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
-      "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
-      "dev": true,
-      "license": "MIT",
-      "dependencies": {
-        "esbuild": "~0.27.0",
-        "get-tsconfig": "^4.7.5"
-      },
-      "bin": {
-        "tsx": "dist/cli.mjs"
-      },
-      "engines": {
-        "node": ">=18.0.0"
-      },
-      "optionalDependencies": {
-        "fsevents": "~2.3.3"
-      }
-    },
-    "node_modules/tsx/node_modules/@esbuild/win32-x64": {
-      "version": "0.27.7",
-      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
-      "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
-      "cpu": [
-        "x64"
-      ],
-      "dev": true,
-      "license": "MIT",
-      "optional": true,
-      "os": [
-        "win32"
-      ],
-      "engines": {
-        "node": ">=18"
-      }
-    },
-    "node_modules/tsx/node_modules/esbuild": {
-      "version": "0.27.7",
-      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
-      "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
-      "dev": true,
-      "hasInstallScript": true,
-      "license": "MIT",
-      "bin": {
-        "esbuild": "bin/esbuild"
-      },
-      "engines": {
-        "node": ">=18"
-      },
-      "optionalDependencies": {
-        "@esbuild/aix-ppc64": "0.27.7",
-        "@esbuild/android-arm": "0.27.7",
-        "@esbuild/android-arm64": "0.27.7",
-        "@esbuild/android-x64": "0.27.7",
-        "@esbuild/darwin-arm64": "0.27.7",
-        "@esbuild/darwin-x64": "0.27.7",
-        "@esbuild/freebsd-arm64": "0.27.7",
-        "@esbuild/freebsd-x64": "0.27.7",
-        "@esbuild/linux-arm": "0.27.7",
-        "@esbuild/linux-arm64": "0.27.7",
-        "@esbuild/linux-ia32": "0.27.7",
-        "@esbuild/linux-loong64": "0.27.7",
-        "@esbuild/linux-mips64el": "0.27.7",
-        "@esbuild/linux-ppc64": "0.27.7",
-        "@esbuild/linux-riscv64": "0.27.7",
-        "@esbuild/linux-s390x": "0.27.7",
-        "@esbuild/linux-x64": "0.27.7",
-        "@esbuild/netbsd-arm64": "0.27.7",
-        "@esbuild/netbsd-x64": "0.27.7",
-        "@esbuild/openbsd-arm64": "0.27.7",
-        "@esbuild/openbsd-x64": "0.27.7",
-        "@esbuild/openharmony-arm64": "0.27.7",
-        "@esbuild/sunos-x64": "0.27.7",
-        "@esbuild/win32-arm64": "0.27.7",
-        "@esbuild/win32-ia32": "0.27.7",
-        "@esbuild/win32-x64": "0.27.7"
-      }
-    },
-    "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",
-      "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==",
-      "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/uuid": {
-      "version": "11.1.0",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz",
-      "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
-      "funding": [
-        "https://github.com/sponsors/broofa",
-        "https://github.com/sponsors/ctavan"
-      ],
-      "license": "MIT",
-      "bin": {
-        "uuid": "dist/esm/bin/uuid"
-      }
-    },
-    "node_modules/which": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-      "license": "ISC",
-      "dependencies": {
-        "isexe": "^2.0.0"
-      },
-      "bin": {
-        "which": "bin/which"
-      }
-    },
-    "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/xtend": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
-      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.4"
-      }
-    }
-  }
-}

+ 0 - 1
node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json

@@ -1 +0,0 @@
-{"version":"4.1.4","results":[[":tests/auth/permission.test.ts",{"duration":979.8820999999999,"failed":false}]]}

+ 0 - 464
node_modules/@drizzle-team/brocli/README.md

@@ -1,464 +0,0 @@
-# Brocli 🥦
-Modern type-safe way of building CLIs with TypeScript or JavaScript  
-by [Drizzle Team](https://drizzle.team)  
-
-```ts
-import { command, string, boolean, run } from "@drizzle-team/brocli";
-
-const push = command({
-  name: "push",
-  options: {
-    dialect: string().enum("postgresql", "mysql", "sqlite"),
-    databaseSchema: string().required(),
-    databaseUrl: string().required(),
-    strict: boolean().default(false),
-  },
-  handler: (opts) => {
-    ...
-  },
-});
-
-run([push]); // parse shell arguments and run command
-```
- 
-### Why?
-Brocli is meant to solve a list of challenges we've faced while building 
-[Drizzle ORM](https://orm.drizzle.team) CLI companion for generating and running SQL schema migrations:
-- [x] Explicit, straightforward and discoverable API
-- [x] Typed options(arguments) with built in validation
-- [x] Ability to reuse options(or option sets) across commands
-- [x] Transformer hook to decouple runtime config consumption from command business logic
-- [x] `--version`, `-v` as either string or callback
-- [x] Command hooks to run common stuff before/after command
-- [x] Explicit global params passthrough
-- [x] Testability, the most important part for us to iterate without breaking
-- [x] Themes, simple API to style global/command helps
-- [x] Docs generation API to eliminate docs drifting
-
-### Learn by examples
-If you need API referece - [see here](#api-reference), this list of practical example 
-is meant to a be a zero to hero walk through for you to learn Brocli 🚀  
-
-Simple echo command with positional argument:
-```ts
-import { run, command, positional } from "@drizzle-team/brocli";
-
-const echo = command({
-  name: "echo",
-  options: {
-    text: positional().desc("Text to echo").default("echo"),
-  },
-  handler: (opts) => {
-    console.log(opts.text);
-  },
-});
-
-run([echo])
-```
-```bash
-~ bun run index.ts echo
-echo
-
-~ bun run index.ts echo text
-text
-```
-
-Print version with `--version -v`:
-```ts
-...
-
-run([echo], {
-  version: "1.0.0",
-);
-```
-```bash
-~ bun run index.ts --version
-1.0.0
-```
-  
-Version accepts async callback for you to do any kind of io if necessary before printing cli version:  
-```ts
-import { run, command, positional } from "@drizzle-team/brocli";
-
-const version = async () => {
-  // you can run async here, for example fetch version of runtime-dependend library
-
-  const envVersion = process.env.CLI_VERSION;
-  console.log(chalk.gray(envVersion), "\n");
-};
-
-const echo = command({ ... });
-
-run([echo], {
-  version: version,
-);
-```
-
-
-
-  
-  
-
-
-# API reference
-[**`command`**](#command)  
-- [`command → name`](#command-name)
-- [`command → desc`](#command-desc)
-- [`command → shortDesc`](#command-shortDesc)
-- [`command → aliases`](#command-aliases)
-- [`command → options`](#command-options)
-- [`command → transform`](#command-transform)
-- [`command → handler`](#command-handler)
-- [`command → help`](#command-help)
-- [`command → hidden`](#command-hidden)
-- [`command → metadata`](#command-metadata)
-
-[**`options`**](#options)  
-- [`string`](#options-string)
-- [`boolean`](#options-boolean)
-- [`number`](#options-number)
-- [`enum`](#options-enum)
-- [`positional`](#options-positional)
-- [`required`](#options-required)
-- [`alias`](#options-alias)
-- [`desc`](#options-desc)
-- [`default`](#options-default)
-- [`hidden`](#options-hidden)
-
-  
-[**`run`**](#run)
-- [`string`](#options-string)
-
-  
-Brocli **`command`** declaration has:  
-`name` - command name, will be listed in `help`  
-`desc` - optional description, will be listed in the command `help`  
-`shortDesc` - optional short description, will be listed in the all commands/all subcommands `help`   
-`aliases` - command name aliases  
-`hidden` - flag to hide command from `help`  
-`help` - command help text or a callback to print help text with dynamically provided config  
-`options` - typed list of shell arguments to be parsed and provided to `transform` or `handler`    
-`transform` - optional hook, will be called before handler to modify CLI params  
-`handler` - called with either typed `options` or `transform` params, place to run your command business logic  
-`metadata` - optional meta information for docs generation flow
-
-`name`, `desc`, `shortDesc` and `metadata` are provided to docs generation step  
-  
-  
-```ts
-import { command, string, boolean } from "@drizzle-team/brocli";
-
-
-
-const push = command({
-  name: "push",
-  options: {
-    dialect: string().enum("postgresql", "mysql", "sqlite"),
-    databaseSchema: string().required(),
-    databaseUrl: string().required(),
-    strict: boolean().default(false),
-  },
-  transform: (opts) => {
-  },
-  handler: (opts) => {
-    ...
-  },
-});
-```
-
-
-
-```ts
-import { command } from "@drizzle-team/brocli";
-
-const cmd = command({
-  name: "cmd",
-  options: {
-    dialect: string().enum("postgresql", "mysql", "sqlite"),
-    schema: string().required(),
-    url: string().required(),
-  },
-  handler: (opts) => {
-    ...
-  },
-});
-
-```
-
-### Option builder
-Initial builder functions:
-
--   `string(name?: string)` - defines option as a string-type option which requires data to be passed as `--option=value` or `--option value`    
-    -   `name` - name by which option is passed in cli args  
-    If not specified, defaults to key of this option    
-    :warning: - must not contain `=` character, not be in `--help`,`-h`,`--version`,`-v` and be unique per each command  
-    :speech_balloon: - will be automatically prefixed with `-` if one character long, `--` if longer  
-    If you wish to have only single hyphen as a prefix on multi character name - simply specify name with it: `string('-longname')`  
-
--   `number(name?: string)` - defines option as a number-type option which requires data to be passed as `--option=value` or `--option value`    
-    -   `name` - name by which option is passed in cli args  
-    If not specified, defaults to key of this option    
-    :warning: - must not contain `=` character, not be in `--help`,`-h`,`--version`,`-v` and be unique per each command  
-    :speech_balloon: - will be automatically prefixed with `-` if one character long, `--` if longer  
-    If you wish to have only single hyphen as a prefix on multi character name - simply specify name with it: `number('-longname')`  
-
--   `boolean(name?: string)` - defines option as a boolean-type option which requires data to be passed as `--option`  
-    -   `name` - name by which option is passed in cli args  
-    If not specified, defaults to key of this option    
-    :warning: - must not contain `=` character, not be in `--help`,`-h`,`--version`,`-v` and be unique per each command  
-    :speech_balloon: - will be automatically prefixed with `-` if one character long, `--` if longer  
-    If you wish to have only single hyphen as a prefix on multi character name - simply specify name with it: `boolean('-longname')`  
-
--   `positional(displayName?: string)` - defines option as a positional-type option which requires data to be passed after a command as `command value`    
-    -   `displayName` - name by which option is passed in cli args  
-    If not specified, defaults to key of this option  
-    :warning: - does not consume options and data that starts with  
-    
-Extensions: 
-
--   `.alias(...aliases: string[])` - defines aliases for option  
-     -   `aliases` - aliases by which option is passed in cli args  
-    :warning: - must not contain `=` character, not be in `--help`,`-h`,`--version`,`-v` and be unique per each command  
-    :speech_balloon: - will be automatically prefixed with `-` if one character long, `--` if longer  
-    If you wish to have only single hyphen as a prefix on multi character alias - simply specify alias with it: `.alias('-longname')`  
-
--   `.desc(description: string)` - defines description for option to be displayed in `help` command  
-
--   `.required()` - sets option as required, which means that application will print an error if it is not present in cli args  
-
--   `.default(value: string | boolean)` - sets default value for option which will be assigned to it in case it is not present in cli args
-
--   `.hidden()` - sets option as hidden - option will be omitted from being displayed in `help` command
-
--   `.enum(values: [string, ...string[]])` - limits values of string to one of specified here  
-    -   `values` - allowed enum values  
-
--   `.int()` - ensures that number is an integer  
-
--   `.min(value: number)` - specified minimal allowed value for numbers  
-    -   `value` - minimal allowed value  
-    :warning: - does not limit defaults
-
--   `.max(value: number)` - specified maximal allowed value for numbers  
-    -   `value` - maximal allowed value  
-    :warning: - does not limit defaults
-
-### Creating handlers
-
-Normally, you can write handlers right in the `command()` function, however there might be cases where you'd want to define your handlers separately.  
-For such cases, you'd want to infer type of `options` that will be passes inside your handler.  
-You can do it using `TypeOf` type:  
-
-```Typescript
-import { string, boolean, type TypeOf } from '@drizzle-team/brocli'
-
-const commandOptions = {
-    opt1: string(),
-    opt2: boolean('flag').alias('f'),
-    // And so on... 
-}
-
-export const commandHandler = (options: TypeOf<typeof commandOptions>) => {
-    // Your logic goes here...
-}
-```
-
-Or by using `handler(options, myHandler () => {...})`
-
-```Typescript
-import { string, boolean, handler } from '@drizzle-team/brocli'
-
-const commandOptions = {
-    opt1: string(),
-    opt2: boolean('flag').alias('f'),
-    // And so on... 
-}
-
-export const commandHandler = handler(commandOptions, (options) => {
-    // Your logic goes here...
-});
-```
-
-### Defining commands
-
-To define commands, use `command()` function:  
-
-```Typescript
-import { command, type Command, string, boolean, type TypeOf } from '@drizzle-team/brocli'
-
-const commandOptions = {
-    opt1: string(),
-    opt2: boolean('flag').alias('f'),
-    // And so on... 
-}
-
-const commands: Command[] = []
-
-commands.push(command({
-    name: 'command', 
-    aliases: ['c', 'cmd'],
-    desc: 'Description goes here',
-    shortDesc: 'Short description'
-    hidden: false,
-    options: commandOptions,
-    transform: (options) => {
-        // Preprocess options here...
-        return processedOptions
-    },
-    handler: (processedOptions) => {
-        // Your logic goes here...
-    },
-    help: () => 'This command works like this: ...',
-    subcommands: [
-        command(
-            // You can define subcommands like this
-        )
-    ]
-}));
-```
-
-Parameters:  
-
--   `name` - name by which command is searched in cli args  
-    :warning: - must not start with `-` character, be equal to [`true`, `false`, `0`, `1`] (case-insensitive) and be unique per command collection  
-
--   `aliases` - aliases by which command is searched in cli args  
-    :warning: - must not start with `-` character, be equal to [`true`, `false`, `0`, `1`] (case-insensitive) and be unique per command collection  
-
--   `desc` - description for command to be displayed in `help` command  
-
--   `shortDesc` - short description for command to be displayed in `help` command  
-
--   `hidden` - sets command as hidden - if `true`, command will be omitted from being displayed in `help` command  
-
--   `options` - object containing command options created using `string` and `boolean` functions  
-
--   `transform` - optional function to preprocess options before they are passed to handler    
-    :warning: - type of return mutates type of handler's input  
-
--   `handler` - function, which will be executed in case of successful option parse  
-    :warning: - must be present if your command doesn't have subcommands  
-    If command has subcommands but no handler, help for this command is going to be called instead of handler
-
--   `help` - function or string, which will be executed or printed when help is called for this command  
-    :warning: - if passed, takes prevalence over theme's `commandHelp` event  
-
--   `subcommands` - subcommands for command    
-    :warning: - command can't have subcommands and `positional` options at the same time  
-
--   `metadata` - any data that you want to attach to command to later use in docs generation step  
-
-### Running commands
-
-After defining commands, you're going to need to execute `run` function to start command execution
-
-```Typescript
-import { command, type Command, run, string, boolean, type TypeOf } from '@drizzle-team/brocli'
-
-const commandOptions = {
-    opt1: string(),
-    opt2: boolean('flag').alias('f'),
-    // And so on... 
-}
-
-const commandHandler = (options: TypeOf<typeof commandOptions>) => {
-    // Your logic goes here...
-}
-
-const commands: Command[] = []
-
-commands.push(command({
-    name: 'command', 
-    aliases: ['c', 'cmd'],
-    desc: 'Description goes here',
-    hidden: false,
-    options: commandOptions,
-    handler: commandHandler,
-}));
-
-// And so on...
-
-run(commands, {
-    name: 'mysoft',
-    description: 'MySoft CLI',
-    omitKeysOfUndefinedOptions: true,
-    argSource: customEnvironmentArgvStorage,
-    version: '1.0.0',
-    help: () => {
-        console.log('Command list:');
-        commands.forEach(c => console.log('This command does ... and has options ...'));
-    },
-	theme: async (event) => {
-		if (event.type === 'commandHelp') {
-			await myCustomUniversalCommandHelp(event.command);
-
-			return true;
-		}
-
-		if (event.type === 'unknownError') {
-			console.log('Something went wrong...');
-
-			return true;
-		}
-
-		return false;
-	},
-    hook: (event, command) => {
-        if(event === 'before') console.log(`Command '${command.name}' started`)
-        if(event === 'after') console.log(`Command '${command.name}' succesfully finished it's work`)
-    }
-})
-```
-
-Parameters:
-
--   `name` - name that's used to invoke your application from cli.  
-Used for themes that print usage examples, example:  
-`app do-task --help` results in `Usage: app do-task <positional> [flags] ...`  
-Default: `undefined`
-
--   `description` - description of your app  
-Used for themes, example:  
-`myapp --help` results in  
-```
-MyApp CLI
-
-Usage: myapp [command]...
-```  
-Default: `undefined`
-
--   `omitKeysOfUndefinedOptions` - flag that determines whether undefined options will be passed to transform\handler or not  
-Default: `false`  
-
--   `argSource` - location of array of args in your environment  
-:warning: - first two items of this storage will be ignored as they typically contain executable and executed file paths  
-Default: `process.argv`
-
--   `version` - string or handler used to print your app version  
-:warning: - if passed, takes prevalence over theme's version event
-
--   `help` - string or handler used to print your app's global help    
-:warning: - if passed, takes prevalence over theme's `globalHelp` event
-
--   `theme(event: BroCliEvent)` - function that's used to customize messages that are printed on various events    
-Return:  
-    `true` | `Promise<true>` if you consider event processed  
-    `false` | `Promise<false>` to redirect event to default theme  
-
--   `hook(event: EventType, command: Command)` - function that's used to execute code before and after every command's `transform` and `handler` execution  
-
-### Additional functions
-
--   `commandsInfo(commands: Command[])` - get simplified representation of your command collection  
-Can be used to generate docs  
-
--   `test(command: Command, args: string)` - test behaviour for command with specified arguments  
-:warning: - if command has `transform`, it will get called, however `handler` won't  
-
--   `getCommandNameWithParents(command: Command)` - get subcommand's name with parent command names  
-
-## CLI
-
-In `BroCLI`, command doesn't have to be the first argument, instead it may be passed in any order.  
-To make this possible, hovewer, option that's passed right before command should have an explicit value, even if it is a flag: `--verbose true <command-name>` (does not apply to reserved flags: [ `--help` | `-h` | `--version` | `-v`])    
-Options are parsed in strict mode, meaning that having any unrecognized options will result in an error.     

+ 0 - 1509
node_modules/@drizzle-team/brocli/index.cjs

@@ -1,1509 +0,0 @@
-"use strict";
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __commonJS = (cb, mod) => function __require() {
-  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
-};
-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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
-  // If the importer is in node compatibility mode or this is not an ESM
-  // file that has been converted to a CommonJS file using a Babel-
-  // compatible transform (i.e. "__esModule" has not been set), then set
-  // "default" to the CommonJS "module.exports" for node compatibility.
-  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
-  mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js
-var require_clone = __commonJS({
-  "node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js"(exports2, module2) {
-    "use strict";
-    var clone2 = function() {
-      "use strict";
-      function _instanceof(obj, type) {
-        return type != null && obj instanceof type;
-      }
-      var nativeMap;
-      try {
-        nativeMap = Map;
-      } catch (_) {
-        nativeMap = function() {
-        };
-      }
-      var nativeSet;
-      try {
-        nativeSet = Set;
-      } catch (_) {
-        nativeSet = function() {
-        };
-      }
-      var nativePromise;
-      try {
-        nativePromise = Promise;
-      } catch (_) {
-        nativePromise = function() {
-        };
-      }
-      function clone3(parent, circular, depth, prototype, includeNonEnumerable) {
-        if (typeof circular === "object") {
-          depth = circular.depth;
-          prototype = circular.prototype;
-          includeNonEnumerable = circular.includeNonEnumerable;
-          circular = circular.circular;
-        }
-        var allParents = [];
-        var allChildren = [];
-        var useBuffer = typeof Buffer != "undefined";
-        if (typeof circular == "undefined")
-          circular = true;
-        if (typeof depth == "undefined")
-          depth = Infinity;
-        function _clone(parent2, depth2) {
-          if (parent2 === null)
-            return null;
-          if (depth2 === 0)
-            return parent2;
-          var child;
-          var proto;
-          if (typeof parent2 != "object") {
-            return parent2;
-          }
-          if (_instanceof(parent2, nativeMap)) {
-            child = new nativeMap();
-          } else if (_instanceof(parent2, nativeSet)) {
-            child = new nativeSet();
-          } else if (_instanceof(parent2, nativePromise)) {
-            child = new nativePromise(function(resolve, reject) {
-              parent2.then(function(value) {
-                resolve(_clone(value, depth2 - 1));
-              }, function(err) {
-                reject(_clone(err, depth2 - 1));
-              });
-            });
-          } else if (clone3.__isArray(parent2)) {
-            child = [];
-          } else if (clone3.__isRegExp(parent2)) {
-            child = new RegExp(parent2.source, __getRegExpFlags(parent2));
-            if (parent2.lastIndex) child.lastIndex = parent2.lastIndex;
-          } else if (clone3.__isDate(parent2)) {
-            child = new Date(parent2.getTime());
-          } else if (useBuffer && Buffer.isBuffer(parent2)) {
-            if (Buffer.allocUnsafe) {
-              child = Buffer.allocUnsafe(parent2.length);
-            } else {
-              child = new Buffer(parent2.length);
-            }
-            parent2.copy(child);
-            return child;
-          } else if (_instanceof(parent2, Error)) {
-            child = Object.create(parent2);
-          } else {
-            if (typeof prototype == "undefined") {
-              proto = Object.getPrototypeOf(parent2);
-              child = Object.create(proto);
-            } else {
-              child = Object.create(prototype);
-              proto = prototype;
-            }
-          }
-          if (circular) {
-            var index = allParents.indexOf(parent2);
-            if (index != -1) {
-              return allChildren[index];
-            }
-            allParents.push(parent2);
-            allChildren.push(child);
-          }
-          if (_instanceof(parent2, nativeMap)) {
-            parent2.forEach(function(value, key) {
-              var keyChild = _clone(key, depth2 - 1);
-              var valueChild = _clone(value, depth2 - 1);
-              child.set(keyChild, valueChild);
-            });
-          }
-          if (_instanceof(parent2, nativeSet)) {
-            parent2.forEach(function(value) {
-              var entryChild = _clone(value, depth2 - 1);
-              child.add(entryChild);
-            });
-          }
-          for (var i in parent2) {
-            var attrs;
-            if (proto) {
-              attrs = Object.getOwnPropertyDescriptor(proto, i);
-            }
-            if (attrs && attrs.set == null) {
-              continue;
-            }
-            child[i] = _clone(parent2[i], depth2 - 1);
-          }
-          if (Object.getOwnPropertySymbols) {
-            var symbols = Object.getOwnPropertySymbols(parent2);
-            for (var i = 0; i < symbols.length; i++) {
-              var symbol = symbols[i];
-              var descriptor = Object.getOwnPropertyDescriptor(parent2, symbol);
-              if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
-                continue;
-              }
-              child[symbol] = _clone(parent2[symbol], depth2 - 1);
-              if (!descriptor.enumerable) {
-                Object.defineProperty(child, symbol, {
-                  enumerable: false
-                });
-              }
-            }
-          }
-          if (includeNonEnumerable) {
-            var allPropertyNames = Object.getOwnPropertyNames(parent2);
-            for (var i = 0; i < allPropertyNames.length; i++) {
-              var propertyName = allPropertyNames[i];
-              var descriptor = Object.getOwnPropertyDescriptor(parent2, propertyName);
-              if (descriptor && descriptor.enumerable) {
-                continue;
-              }
-              child[propertyName] = _clone(parent2[propertyName], depth2 - 1);
-              Object.defineProperty(child, propertyName, {
-                enumerable: false
-              });
-            }
-          }
-          return child;
-        }
-        return _clone(parent, depth);
-      }
-      clone3.clonePrototype = function clonePrototype(parent) {
-        if (parent === null)
-          return null;
-        var c = function() {
-        };
-        c.prototype = parent;
-        return new c();
-      };
-      function __objToStr(o) {
-        return Object.prototype.toString.call(o);
-      }
-      clone3.__objToStr = __objToStr;
-      function __isDate(o) {
-        return typeof o === "object" && __objToStr(o) === "[object Date]";
-      }
-      clone3.__isDate = __isDate;
-      function __isArray(o) {
-        return typeof o === "object" && __objToStr(o) === "[object Array]";
-      }
-      clone3.__isArray = __isArray;
-      function __isRegExp(o) {
-        return typeof o === "object" && __objToStr(o) === "[object RegExp]";
-      }
-      clone3.__isRegExp = __isRegExp;
-      function __getRegExpFlags(re) {
-        var flags = "";
-        if (re.global) flags += "g";
-        if (re.ignoreCase) flags += "i";
-        if (re.multiline) flags += "m";
-        return flags;
-      }
-      clone3.__getRegExpFlags = __getRegExpFlags;
-      return clone3;
-    }();
-    if (typeof module2 === "object" && module2.exports) {
-      module2.exports = clone2;
-    }
-  }
-});
-
-// node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/quote.js
-var require_quote = __commonJS({
-  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/quote.js"(exports2, module2) {
-    "use strict";
-    module2.exports = function quote(xs) {
-      return xs.map(function(s) {
-        if (s && typeof s === "object") {
-          return s.op.replace(/(.)/g, "\\$1");
-        }
-        if (/["\s]/.test(s) && !/'/.test(s)) {
-          return "'" + s.replace(/(['\\])/g, "\\$1") + "'";
-        }
-        if (/["'\s]/.test(s)) {
-          return '"' + s.replace(/(["\\$`!])/g, "\\$1") + '"';
-        }
-        return String(s).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g, "$1\\$2");
-      }).join(" ");
-    };
-  }
-});
-
-// node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/parse.js
-var require_parse = __commonJS({
-  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/parse.js"(exports2, module2) {
-    "use strict";
-    var CONTROL = "(?:" + [
-      "\\|\\|",
-      "\\&\\&",
-      ";;",
-      "\\|\\&",
-      "\\<\\(",
-      "\\<\\<\\<",
-      ">>",
-      ">\\&",
-      "<\\&",
-      "[&;()|<>]"
-    ].join("|") + ")";
-    var controlRE = new RegExp("^" + CONTROL + "$");
-    var META = "|&;()<> \\t";
-    var SINGLE_QUOTE = '"((\\\\"|[^"])*?)"';
-    var DOUBLE_QUOTE = "'((\\\\'|[^'])*?)'";
-    var hash = /^#$/;
-    var SQ = "'";
-    var DQ = '"';
-    var DS = "$";
-    var TOKEN = "";
-    var mult = 4294967296;
-    for (i = 0; i < 4; i++) {
-      TOKEN += (mult * Math.random()).toString(16);
-    }
-    var i;
-    var startsWithToken = new RegExp("^" + TOKEN);
-    function matchAll(s, r) {
-      var origIndex = r.lastIndex;
-      var matches = [];
-      var matchObj;
-      while (matchObj = r.exec(s)) {
-        matches.push(matchObj);
-        if (r.lastIndex === matchObj.index) {
-          r.lastIndex += 1;
-        }
-      }
-      r.lastIndex = origIndex;
-      return matches;
-    }
-    function getVar(env, pre, key) {
-      var r = typeof env === "function" ? env(key) : env[key];
-      if (typeof r === "undefined" && key != "") {
-        r = "";
-      } else if (typeof r === "undefined") {
-        r = "$";
-      }
-      if (typeof r === "object") {
-        return pre + TOKEN + JSON.stringify(r) + TOKEN;
-      }
-      return pre + r;
-    }
-    function parseInternal(string2, env, opts) {
-      if (!opts) {
-        opts = {};
-      }
-      var BS = opts.escape || "\\";
-      var BAREWORD = "(\\" + BS + `['"` + META + `]|[^\\s'"` + META + "])+";
-      var chunker = new RegExp([
-        "(" + CONTROL + ")",
-        // control chars
-        "(" + BAREWORD + "|" + SINGLE_QUOTE + "|" + DOUBLE_QUOTE + ")+"
-      ].join("|"), "g");
-      var matches = matchAll(string2, chunker);
-      if (matches.length === 0) {
-        return [];
-      }
-      if (!env) {
-        env = {};
-      }
-      var commented = false;
-      return matches.map(function(match) {
-        var s = match[0];
-        if (!s || commented) {
-          return void 0;
-        }
-        if (controlRE.test(s)) {
-          return { op: s };
-        }
-        var quote = false;
-        var esc = false;
-        var out = "";
-        var isGlob = false;
-        var i2;
-        function parseEnvVar() {
-          i2 += 1;
-          var varend;
-          var varname;
-          var char = s.charAt(i2);
-          if (char === "{") {
-            i2 += 1;
-            if (s.charAt(i2) === "}") {
-              throw new Error("Bad substitution: " + s.slice(i2 - 2, i2 + 1));
-            }
-            varend = s.indexOf("}", i2);
-            if (varend < 0) {
-              throw new Error("Bad substitution: " + s.slice(i2));
-            }
-            varname = s.slice(i2, varend);
-            i2 = varend;
-          } else if (/[*@#?$!_-]/.test(char)) {
-            varname = char;
-            i2 += 1;
-          } else {
-            var slicedFromI = s.slice(i2);
-            varend = slicedFromI.match(/[^\w\d_]/);
-            if (!varend) {
-              varname = slicedFromI;
-              i2 = s.length;
-            } else {
-              varname = slicedFromI.slice(0, varend.index);
-              i2 += varend.index - 1;
-            }
-          }
-          return getVar(env, "", varname);
-        }
-        for (i2 = 0; i2 < s.length; i2++) {
-          var c = s.charAt(i2);
-          isGlob = isGlob || !quote && (c === "*" || c === "?");
-          if (esc) {
-            out += c;
-            esc = false;
-          } else if (quote) {
-            if (c === quote) {
-              quote = false;
-            } else if (quote == SQ) {
-              out += c;
-            } else {
-              if (c === BS) {
-                i2 += 1;
-                c = s.charAt(i2);
-                if (c === DQ || c === BS || c === DS) {
-                  out += c;
-                } else {
-                  out += BS + c;
-                }
-              } else if (c === DS) {
-                out += parseEnvVar();
-              } else {
-                out += c;
-              }
-            }
-          } else if (c === DQ || c === SQ) {
-            quote = c;
-          } else if (controlRE.test(c)) {
-            return { op: s };
-          } else if (hash.test(c)) {
-            commented = true;
-            var commentObj = { comment: string2.slice(match.index + i2 + 1) };
-            if (out.length) {
-              return [out, commentObj];
-            }
-            return [commentObj];
-          } else if (c === BS) {
-            esc = true;
-          } else if (c === DS) {
-            out += parseEnvVar();
-          } else {
-            out += c;
-          }
-        }
-        if (isGlob) {
-          return { op: "glob", pattern: out };
-        }
-        return out;
-      }).reduce(function(prev, arg) {
-        return typeof arg === "undefined" ? prev : prev.concat(arg);
-      }, []);
-    }
-    module2.exports = function parse(s, env, opts) {
-      var mapped = parseInternal(s, env, opts);
-      if (typeof env !== "function") {
-        return mapped;
-      }
-      return mapped.reduce(function(acc, s2) {
-        if (typeof s2 === "object") {
-          return acc.concat(s2);
-        }
-        var xs = s2.split(RegExp("(" + TOKEN + ".*?" + TOKEN + ")", "g"));
-        if (xs.length === 1) {
-          return acc.concat(xs[0]);
-        }
-        return acc.concat(xs.filter(Boolean).map(function(x) {
-          if (startsWithToken.test(x)) {
-            return JSON.parse(x.split(TOKEN)[1]);
-          }
-          return x;
-        }));
-      }, []);
-    };
-  }
-});
-
-// node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/index.js
-var require_shell_quote = __commonJS({
-  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/index.js"(exports2) {
-    "use strict";
-    exports2.quote = require_quote();
-    exports2.parse = require_parse();
-  }
-});
-
-// src/index.ts
-var src_exports = {};
-__export(src_exports, {
-  BroCliError: () => BroCliError,
-  boolean: () => boolean,
-  command: () => command2,
-  commandsInfo: () => commandsInfo,
-  getCommandNameWithParents: () => getCommandNameWithParents,
-  handler: () => handler,
-  number: () => number,
-  positional: () => positional,
-  run: () => run,
-  string: () => string,
-  test: () => test
-});
-module.exports = __toCommonJS(src_exports);
-
-// src/brocli-error.ts
-var BroCliError = class extends Error {
-  constructor(message, event) {
-    const errPrefix = "BroCli error: ";
-    super(message === void 0 ? message : `${errPrefix}${message}`);
-    this.event = event;
-  }
-};
-
-// src/command-core.ts
-var import_clone = __toESM(require_clone(), 1);
-
-// src/event-handler.ts
-var getOptionTypeText = (option) => {
-  let result = "";
-  switch (option.type) {
-    case "boolean":
-      result = "";
-      break;
-    case "number": {
-      if ((option.minVal ?? option.maxVal) !== void 0) {
-        let text = "";
-        if (option.isInt) text = text + `integer `;
-        if (option.minVal !== void 0) text = text + `[${option.minVal};`;
-        else text = text + `(\u221E;`;
-        if (option.maxVal !== void 0) text = text + `${option.maxVal}]`;
-        else text = text + `\u221E)`;
-        result = text;
-        break;
-      }
-      if (option.isInt) {
-        result = "integer";
-        break;
-      }
-      result = "number";
-      break;
-    }
-    case "string": {
-      if (option.enumVals) {
-        result = "[ " + option.enumVals.join(" | ") + " ]";
-        break;
-      }
-      result = "string";
-      break;
-    }
-    case "positional": {
-      result = `${option.isRequired ? "<" : "["}${option.enumVals ? option.enumVals.join("|") : option.name}${option.isRequired ? ">" : "]"}`;
-      break;
-    }
-  }
-  if (option.isRequired && option.type !== "positional") result = "!" + result.length ? " " : "" + result;
-  return result;
-};
-var defaultEventHandler = async (event) => {
-  switch (event.type) {
-    case "command_help": {
-      const command3 = event.command;
-      const commandName = getCommandNameWithParents(command3);
-      const cliName = event.name;
-      const desc = command3.desc ?? command3.shortDesc;
-      const subs = command3.subcommands?.filter((s) => !s.hidden);
-      const subcommands = subs && subs.length ? subs : void 0;
-      if (desc !== void 0) {
-        console.log(`
-${desc}`);
-      }
-      const opts = Object.values(command3.options ?? {}).filter(
-        (opt) => !opt.config.isHidden
-      );
-      const positionals = opts.filter((opt) => opt.config.type === "positional");
-      const options = opts.filter((opt) => opt.config.type !== "positional");
-      console.log("\nUsage:");
-      if (command3.handler) {
-        console.log(
-          `  ${cliName ? cliName + " " : ""}${commandName}${positionals.length ? " " + positionals.map(({ config: p }) => getOptionTypeText(p)).join(" ") : ""} [flags]`
-        );
-      } else console.log(`  ${cliName ? cliName + " " : ""}${commandName} [command]`);
-      if (command3.aliases) {
-        console.log(`
-Aliases:`);
-        console.log(`  ${[command3.name, ...command3.aliases].join(", ")}`);
-      }
-      if (subcommands) {
-        console.log("\nAvailable Commands:");
-        const padding = 3;
-        const maxLength = subcommands.reduce((p, e) => e.name.length > p ? e.name.length : p, 0);
-        const paddedLength = maxLength + padding;
-        const preDescPad = 2 + paddedLength;
-        const data = subcommands.map(
-          (s) => `  ${s.name.padEnd(paddedLength)}${(() => {
-            const description = s.shortDesc ?? s.desc;
-            if (!description?.length) return "";
-            const split = description.split("\n");
-            const first = split.shift();
-            const final = [first, ...split.map((s2) => "".padEnd(preDescPad) + s2)].join("\n");
-            return final;
-          })()}`
-        ).join("\n");
-        console.log(data);
-      }
-      if (options.length) {
-        const aliasLength = options.reduce((p, e) => {
-          const currentLength = e.config.aliases.reduce((pa, a) => pa + a.length, 0) + (e.config.aliases.length - 1) * 2 + 1;
-          return currentLength > p ? currentLength : p;
-        }, 0);
-        const paddedAliasLength = aliasLength > 0 ? aliasLength + 1 : 0;
-        const nameLength = options.reduce((p, e) => {
-          const typeLen = getOptionTypeText(e.config).length;
-          const length = typeLen > 0 ? e.config.name.length + 1 + typeLen : e.config.name.length;
-          return length > p ? length : p;
-        }, 0) + 3;
-        const preDescPad = paddedAliasLength + nameLength + 2;
-        const data = options.map(
-          ({ config: opt }) => `  ${`${opt.aliases.length ? opt.aliases.join(", ") + "," : ""}`.padEnd(paddedAliasLength)}${`${opt.name}${(() => {
-            const typeText = getOptionTypeText(opt);
-            return typeText.length ? " " + typeText : "";
-          })()}`.padEnd(nameLength)}${(() => {
-            if (!opt.description?.length) {
-              return opt.default !== void 0 ? `default: ${JSON.stringify(opt.default)}` : "";
-            }
-            const split = opt.description.split("\n");
-            const first = split.shift();
-            const def = opt.default !== void 0 ? ` (default: ${JSON.stringify(opt.default)})` : "";
-            const final = [first, ...split.map((s) => "".padEnd(preDescPad) + s)].join("\n") + def;
-            return final;
-          })()}`
-        ).join("\n");
-        console.log("\nFlags:");
-        console.log(data);
-      }
-      console.log("\nGlobal flags:");
-      console.log(`  -h, --help      help for ${commandName}`);
-      console.log(`  -v, --version   version${cliName ? ` for ${cliName}` : ""}`);
-      if (subcommands) {
-        console.log(
-          `
-Use "${cliName ? cliName + " " : ""}${commandName} [command] --help" for more information about a command.
-`
-        );
-      }
-      return true;
-    }
-    case "global_help": {
-      const cliName = event.name;
-      const desc = event.description;
-      const commands = event.commands.filter((c) => !c.hidden);
-      if (desc !== void 0) {
-        console.log(`${desc}
-`);
-      }
-      console.log("Usage:");
-      console.log(`  ${cliName ? cliName + " " : ""}[command]`);
-      if (commands.length) {
-        console.log("\nAvailable Commands:");
-        const padding = 3;
-        const maxLength = commands.reduce((p, e) => e.name.length > p ? e.name.length : p, 0);
-        const paddedLength = maxLength + padding;
-        const data = commands.map(
-          (c) => `  ${c.name.padEnd(paddedLength)}${(() => {
-            const desc2 = c.shortDesc ?? c.desc;
-            if (!desc2?.length) return "";
-            const split = desc2.split("\n");
-            const first = split.shift();
-            const final = [first, ...split.map((s) => "".padEnd(paddedLength + 2) + s)].join("\n");
-            return final;
-          })()}`
-        ).join("\n");
-        console.log(data);
-      } else {
-        console.log("\nNo available commands.");
-      }
-      console.log("\nFlags:");
-      console.log(`  -h, --help      help${cliName ? ` for ${cliName}` : ""}`);
-      console.log(`  -v, --version   version${cliName ? ` for ${cliName}` : ""}`);
-      console.log("\n");
-      return true;
-    }
-    case "version": {
-      return true;
-    }
-    case "error": {
-      let msg;
-      switch (event.violation) {
-        case "above_max": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          const option = event.option;
-          const max = option.maxVal;
-          msg = `Invalid value: number type argument '${matchedName}' expects maximal value of ${max} as an input, got: ${data}`;
-          break;
-        }
-        case "below_min": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          const option = event.option;
-          const min = option.minVal;
-          msg = `Invalid value: number type argument '${matchedName}' expects minimal value of ${min} as an input, got: ${data}`;
-          break;
-        }
-        case "expected_int": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          msg = `Invalid value: number type argument '${matchedName}' expects an integer as an input, got: ${data}`;
-          break;
-        }
-        case "invalid_boolean_syntax": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          msg = `Invalid syntax: boolean type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}=<value> | ${matchedName} <value> | ${matchedName}.
-Allowed values: true, false, 0, 1`;
-          break;
-        }
-        case "invalid_string_syntax": {
-          const matchedName = event.offender.namePart;
-          msg = `Invalid syntax: string type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}=<value> | ${matchedName} <value>`;
-          break;
-        }
-        case "invalid_number_syntax": {
-          const matchedName = event.offender.namePart;
-          msg = `Invalid syntax: number type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}=<value> | ${matchedName} <value>`;
-          break;
-        }
-        case "invalid_number_value": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          msg = `Invalid value: number type argument '${matchedName}' expects a number as an input, got: ${data}`;
-          break;
-        }
-        case "enum_violation": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          const option = event.option;
-          const values = option.enumVals;
-          msg = option.type === "positional" ? `Invalid value: value for the positional argument '${option.name}' must be either one of the following: ${values.join(", ")}; Received: ${data}` : `Invalid value: value for the argument '${matchedName}' must be either one of the following: ${values.join(", ")}; Received: ${data}`;
-          break;
-        }
-        case "unknown_command_error": {
-          const msg2 = `Unknown command: '${event.offender}'.
-Type '--help' to get help on the cli.`;
-          console.error(msg2);
-          return true;
-        }
-        case "unknown_subcommand_error": {
-          const cName = getCommandNameWithParents(event.command);
-          const msg2 = `Unknown command: ${cName} ${event.offender}.
-Type '${cName} --help' to get the help on command.`;
-          console.error(msg2);
-          return true;
-        }
-        case "missing_args_error": {
-          const { missing: missingOpts, command: command3 } = event;
-          msg = `Command '${command3.name}' is missing following required options: ${missingOpts.map((opt) => {
-            const name = opt.shift();
-            const aliases = opt;
-            if (aliases.length) return `${name} [${aliases.join(", ")}]`;
-            return name;
-          }).join(", ")}`;
-          break;
-        }
-        case "unrecognized_args_error": {
-          const { command: command3, unrecognized } = event;
-          msg = `Unrecognized options for command '${command3.name}': ${unrecognized.join(", ")}`;
-          break;
-        }
-        case "unknown_error": {
-          const e = event.error;
-          console.error(typeof e === "object" && e !== null && "message" in e ? e.message : e);
-          return true;
-        }
-      }
-      console.error(msg);
-      return true;
-    }
-  }
-  return false;
-};
-var eventHandlerWrapper = (customEventHandler) => async (event) => await customEventHandler(event) ? true : await defaultEventHandler(event);
-
-// src/util.ts
-var import_shell_quote = __toESM(require_shell_quote(), 1);
-function isInt(value) {
-  return value === Math.floor(value);
-}
-var shellArgs = (str) => (0, import_shell_quote.parse)(str).map((e) => e.toString());
-var executeOrLog = async (target) => typeof target === "string" ? console.log(target) : target ? await target() : void 0;
-
-// src/command-core.ts
-var generatePrefix = (name) => name.startsWith("-") ? name : name.length > 1 ? `--${name}` : `-${name}`;
-var validateOptions = (config) => {
-  const cloned = (0, import_clone.default)(config);
-  const entries = [];
-  const storedNames = [];
-  const cfgEntries = Object.entries(cloned);
-  for (const [key, value] of cfgEntries) {
-    const cfg = value._.config;
-    if (cfg.name === void 0) cfg.name = key;
-    if (cfg.type === "positional") continue;
-    if (cfg.name.includes("=")) {
-      throw new BroCliError(
-        `Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`
-      );
-    }
-    for (const alias of cfg.aliases) {
-      if (alias.includes("=")) {
-        throw new BroCliError(
-          `Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`
-        );
-      }
-    }
-    cfg.name = generatePrefix(cfg.name);
-    cfg.aliases = cfg.aliases.map((a) => generatePrefix(a));
-  }
-  for (const [key, value] of cfgEntries) {
-    const cfg = value._.config;
-    if (cfg.type === "positional") {
-      entries.push([key, { config: cfg, $output: void 0 }]);
-      continue;
-    }
-    const reservedNames = ["--help", "-h", "--version", "-v"];
-    const allNames = [cfg.name, ...cfg.aliases];
-    for (const name of allNames) {
-      const match = reservedNames.find((n) => n === name);
-      if (match) throw new BroCliError(`Can't define option '${cfg.name}' - name '${match}' is reserved!`);
-    }
-    for (const storage of storedNames) {
-      const nameOccupier = storage.find((e) => e === cfg.name);
-      if (!nameOccupier) continue;
-      throw new BroCliError(
-        `Can't define option '${cfg.name}' - name is already in use by option '${storage[0]}'!`
-      );
-    }
-    for (const alias of cfg.aliases) {
-      for (const storage of storedNames) {
-        const nameOccupier = storage.find((e) => e === alias);
-        if (!nameOccupier) continue;
-        throw new BroCliError(
-          `Can't define option '${cfg.name}' - alias '${alias}' is already in use by option '${storage[0]}'!`
-        );
-      }
-    }
-    const currentNames = [cfg.name, ...cfg.aliases];
-    storedNames.push(currentNames);
-    currentNames.forEach((name, idx) => {
-      if (currentNames.findIndex((e) => e === name) === idx) return;
-      throw new BroCliError(
-        `Can't define option '${cfg.name}' - duplicate alias '${name}'!`
-      );
-    });
-    entries.push([key, { config: cfg, $output: void 0 }]);
-  }
-  return Object.fromEntries(entries);
-};
-var assignParent = (parent, subcommands) => subcommands.forEach((e) => {
-  e.parent = parent;
-  if (e.subcommands) assignParent(e, e.subcommands);
-});
-var command2 = (command3) => {
-  const allNames = command3.aliases ? [command3.name, ...command3.aliases] : [command3.name];
-  const cmd = (0, import_clone.default)(command3);
-  if (command3.subcommands && command3.options && Object.values(command3.options).find((opt) => opt._.config.type === "positional")) {
-    throw new BroCliError(
-      `Can't define command '${cmd.name}' - command can't have subcommands and positional args at the same time!`
-    );
-  }
-  if (!command3.handler && !command3.subcommands) {
-    throw new BroCliError(
-      `Can't define command '${cmd.name}' - command without subcommands must have a handler present!`
-    );
-  }
-  const processedOptions = command3.options ? validateOptions(command3.options) : void 0;
-  cmd.options = processedOptions;
-  cmd.name = cmd.name ?? cmd.aliases?.shift();
-  if (!cmd.name) throw new BroCliError(`Can't define command without name!`);
-  cmd.aliases = cmd.aliases?.length ? cmd.aliases : void 0;
-  if (cmd.name.startsWith("-")) {
-    throw new BroCliError(`Can't define command '${cmd.name}' - command name can't start with '-'!`);
-  }
-  cmd.aliases?.forEach((a) => {
-    if (a.startsWith("-")) {
-      throw new BroCliError(`Can't define command '${cmd.name}' - command aliases can't start with '-'!`);
-    }
-  });
-  allNames.forEach((n, i) => {
-    if (n === "help") {
-      throw new BroCliError(
-        `Can't define command '${cmd.name}' - 'help' is a reserved name. If you want to redefine help message - do so in runCli's config.`
-      );
-    }
-    const lCaseName = n?.toLowerCase();
-    if (lCaseName === "0" || lCaseName === "1" || lCaseName === "true" || lCaseName === "false") {
-      throw new BroCliError(
-        `Can't define command '${cmd.name}' - '${n}' is a reserved for boolean values name!`
-      );
-    }
-    const idx = allNames.findIndex((an) => an === n);
-    if (idx !== i) throw new BroCliError(`Can't define command '${cmd.name}' - duplicate alias '${n}'!`);
-  });
-  if (cmd.subcommands) {
-    assignParent(cmd, cmd.subcommands);
-  }
-  return cmd;
-};
-var getCommandInner = (commands, candidates, args, cliName, cliDescription) => {
-  const { data: arg, originalIndex: index } = candidates.shift();
-  const command3 = commands.find((c) => {
-    const names = c.aliases ? [c.name, ...c.aliases] : [c.name];
-    const res = names.find((name) => name === arg);
-    return res;
-  });
-  if (!command3) {
-    return {
-      command: command3,
-      args
-    };
-  }
-  const newArgs = removeByIndex(args, index);
-  if (!candidates.length || !command3.subcommands) {
-    return {
-      command: command3,
-      args: newArgs
-    };
-  }
-  const newCandidates = candidates.map((c) => ({ data: c.data, originalIndex: c.originalIndex - 1 }));
-  const subcommand = getCommandInner(command3.subcommands, newCandidates, newArgs, cliName, cliDescription);
-  if (!subcommand.command) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "unknown_subcommand_error",
-      name: cliName,
-      description: cliDescription,
-      command: command3,
-      offender: candidates[0].data
-    });
-  }
-  return subcommand;
-};
-var getCommand = (commands, args, cliName, cliDescription) => {
-  const candidates = [];
-  for (let i = 0; i < args.length; ++i) {
-    const arg = args[i];
-    if (arg === "--help" || arg === "-h" || arg === "--version" || arg === "-v") {
-      const lCaseNext = args[i + 1]?.toLowerCase();
-      if (lCaseNext === "0" || lCaseNext === "1" || lCaseNext === "true" || lCaseNext === "false") ++i;
-      continue;
-    }
-    if (arg?.startsWith("-")) {
-      if (!arg.includes("=")) ++i;
-      continue;
-    }
-    candidates.push({
-      data: arg,
-      originalIndex: i
-    });
-  }
-  if (!candidates.length) {
-    return {
-      command: void 0,
-      args
-    };
-  }
-  const firstCandidate = candidates[0];
-  if (firstCandidate.data === "help") {
-    return {
-      command: "help",
-      args: removeByIndex(args, firstCandidate.originalIndex)
-    };
-  }
-  const { command: command3, args: argsRes } = getCommandInner(commands, candidates, args, cliName, cliDescription);
-  if (!command3) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "unknown_command_error",
-      commands,
-      name: cliName,
-      description: cliDescription,
-      offender: firstCandidate.data
-    });
-  }
-  return {
-    command: command3,
-    args: argsRes
-  };
-};
-var parseArg = (command3, options, positionals, arg, nextArg, cliName, cliDescription) => {
-  let data = void 0;
-  const argSplit = arg.split("=");
-  const hasEq = arg.includes("=");
-  const namePart = argSplit.shift();
-  const dataPart = hasEq ? argSplit.join("=") : nextArg;
-  let skipNext = !hasEq;
-  if (namePart === "--help" || namePart === "-h") {
-    return {
-      isHelp: true
-    };
-  }
-  if (namePart === "--version" || namePart === "-v") {
-    return {
-      isVersion: true
-    };
-  }
-  if (!arg.startsWith("-")) {
-    if (!positionals.length) return {};
-    const pos = positionals.shift();
-    if (pos[1].enumVals && !pos[1].enumVals.find((val) => val === arg)) {
-      throw new BroCliError(void 0, {
-        type: "error",
-        name: cliName,
-        description: cliDescription,
-        violation: "enum_violation",
-        command: command3,
-        option: pos[1],
-        offender: {
-          dataPart: arg
-        }
-      });
-    }
-    data = arg;
-    return {
-      data,
-      skipNext: false,
-      name: pos[0],
-      option: pos[1]
-    };
-  }
-  const option = options.find(([optKey, opt]) => {
-    const names = [opt.name, ...opt.aliases];
-    if (opt.type === "boolean") {
-      const match = names.find((name) => name === namePart);
-      if (!match) return false;
-      let lcaseData = dataPart?.toLowerCase();
-      if (!hasEq && nextArg?.startsWith("-")) {
-        data = true;
-        skipNext = false;
-        return true;
-      }
-      if (lcaseData === void 0 || lcaseData === "" || lcaseData === "true" || lcaseData === "1") {
-        data = true;
-        return true;
-      }
-      if (lcaseData === "false" || lcaseData === "0") {
-        data = false;
-        return true;
-      }
-      if (!hasEq) {
-        data = true;
-        skipNext = false;
-        return true;
-      }
-      throw new BroCliError(void 0, {
-        type: "error",
-        name: cliName,
-        description: cliDescription,
-        violation: "invalid_boolean_syntax",
-        option: opt,
-        command: command3,
-        offender: {
-          namePart,
-          dataPart
-        }
-      });
-    } else {
-      const match = names.find((name) => name === namePart);
-      if (!match) return false;
-      if (opt.type === "string") {
-        if (!hasEq && nextArg === void 0) {
-          throw new BroCliError(void 0, {
-            type: "error",
-            name: cliName,
-            description: cliDescription,
-            violation: "invalid_string_syntax",
-            option: opt,
-            command: command3,
-            offender: {
-              namePart,
-              dataPart
-            }
-          });
-        }
-        if (opt.enumVals && !opt.enumVals.find((val) => val === dataPart)) {
-          throw new BroCliError(void 0, {
-            type: "error",
-            name: cliName,
-            description: cliDescription,
-            violation: "enum_violation",
-            option: opt,
-            command: command3,
-            offender: {
-              namePart,
-              dataPart
-            }
-          });
-        }
-        data = dataPart;
-        return true;
-      }
-      if (!hasEq && nextArg === void 0) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "invalid_number_syntax",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      const numData = Number(dataPart);
-      if (isNaN(numData)) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "invalid_number_value",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      if (opt.isInt && !isInt(numData)) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "expected_int",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      if (opt.minVal !== void 0 && numData < opt.minVal) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "below_min",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      if (opt.maxVal !== void 0 && numData > opt.maxVal) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "above_max",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      data = numData;
-      return true;
-    }
-  });
-  return {
-    data,
-    skipNext,
-    name: option?.[0],
-    option: option?.[1]
-  };
-};
-var parseOptions = (command3, args, cliName, cliDescription, omitKeysOfUndefinedOptions) => {
-  const options = command3.options;
-  const optEntries = Object.entries(options ?? {}).map(
-    (opt) => [opt[0], opt[1].config]
-  );
-  const nonPositionalEntries = optEntries.filter(([key, opt]) => opt.type !== "positional");
-  const positionalEntries = optEntries.filter(([key, opt]) => opt.type === "positional");
-  const result = {};
-  const missingRequiredArr = [];
-  const unrecognizedArgsArr = [];
-  for (let i = 0; i < args.length; ++i) {
-    const arg = args[i];
-    const nextArg = args[i + 1];
-    const {
-      data,
-      name,
-      option,
-      skipNext,
-      isHelp,
-      isVersion
-    } = parseArg(command3, nonPositionalEntries, positionalEntries, arg, nextArg, cliName, cliDescription);
-    if (!option) unrecognizedArgsArr.push(arg.split("=")[0]);
-    if (skipNext) ++i;
-    if (isHelp) return "help";
-    if (isVersion) return "version";
-    result[name] = data;
-  }
-  for (const [optKey, option] of optEntries) {
-    const data = result[optKey] ?? option.default;
-    if (!omitKeysOfUndefinedOptions) {
-      result[optKey] = data;
-    } else {
-      if (data !== void 0) result[optKey] = data;
-    }
-    if (option.isRequired && result[optKey] === void 0) missingRequiredArr.push([option.name, ...option.aliases]);
-  }
-  if (missingRequiredArr.length) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "missing_args_error",
-      name: cliName,
-      description: cliDescription,
-      command: command3,
-      missing: missingRequiredArr
-    });
-  }
-  if (unrecognizedArgsArr.length) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "unrecognized_args_error",
-      name: cliName,
-      description: cliDescription,
-      command: command3,
-      unrecognized: unrecognizedArgsArr
-    });
-  }
-  return Object.keys(result).length ? result : void 0;
-};
-var getCommandNameWithParents = (command3) => command3.parent ? `${getCommandNameWithParents(command3.parent)} ${command3.name}` : command3.name;
-var validateCommands = (commands, parent) => {
-  const storedNames = {};
-  for (const cmd of commands) {
-    const storageVals = Object.values(storedNames);
-    for (const storage of storageVals) {
-      const nameOccupier = storage.find((e) => e === cmd.name);
-      if (!nameOccupier) continue;
-      throw new BroCliError(
-        `Can't define command '${getCommandNameWithParents(cmd)}': name is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`
-      );
-    }
-    if (cmd.aliases) {
-      for (const alias of cmd.aliases) {
-        for (const storage of storageVals) {
-          const nameOccupier = storage.find((e) => e === alias);
-          if (!nameOccupier) continue;
-          throw new BroCliError(
-            `Can't define command '${getCommandNameWithParents(cmd)}': alias '${alias}' is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`
-          );
-        }
-      }
-    }
-    storedNames[cmd.name] = cmd.aliases ? [cmd.name, ...cmd.aliases] : [cmd.name];
-    if (cmd.subcommands) cmd.subcommands = validateCommands(cmd.subcommands, cmd);
-  }
-  return commands;
-};
-var removeByIndex = (arr, idx) => [...arr.slice(0, idx), ...arr.slice(idx + 1, arr.length)];
-var run = async (commands, config) => {
-  const eventHandler = config?.theme ? eventHandlerWrapper(config.theme) : defaultEventHandler;
-  const argSource = config?.argSource ?? process.argv;
-  const version = config?.version;
-  const help = config?.help;
-  const omitKeysOfUndefinedOptions = config?.omitKeysOfUndefinedOptions ?? false;
-  const cliName = config?.name;
-  const cliDescription = config?.description;
-  try {
-    const processedCmds = validateCommands(commands);
-    let args = argSource.slice(2, argSource.length);
-    if (!args.length) {
-      return help !== void 0 ? await executeOrLog(help) : await eventHandler({
-        type: "global_help",
-        description: cliDescription,
-        name: cliName,
-        commands: processedCmds
-      });
-    }
-    const helpIndex = args.findIndex((arg) => arg === "--help" || arg === "-h");
-    if (helpIndex !== -1 && (helpIndex > 0 ? args[helpIndex - 1]?.startsWith("-") && !args[helpIndex - 1].includes("=") ? false : true : true)) {
-      const command4 = getCommand(processedCmds, args, cliName, cliDescription).command;
-      if (typeof command4 === "object") {
-        return command4.help !== void 0 ? await executeOrLog(command4.help) : await eventHandler({
-          type: "command_help",
-          description: cliDescription,
-          name: cliName,
-          command: command4
-        });
-      } else {
-        return help !== void 0 ? await executeOrLog(help) : await eventHandler({
-          type: "global_help",
-          description: cliDescription,
-          name: cliName,
-          commands: processedCmds
-        });
-      }
-    }
-    const versionIndex = args.findIndex((arg) => arg === "--version" || arg === "-v");
-    if (versionIndex !== -1 && (versionIndex > 0 ? args[versionIndex - 1]?.startsWith("-") ? false : true : true)) {
-      return version !== void 0 ? await executeOrLog(version) : await eventHandler({
-        type: "version",
-        name: cliName,
-        description: cliDescription
-      });
-    }
-    const { command: command3, args: newArgs } = getCommand(processedCmds, args, cliName, cliDescription);
-    if (!command3) {
-      return help !== void 0 ? await executeOrLog(help) : await eventHandler({
-        type: "global_help",
-        description: cliDescription,
-        name: cliName,
-        commands: processedCmds
-      });
-    }
-    if (command3 === "help") {
-      let helpCommand;
-      let newestArgs = newArgs;
-      do {
-        const res = getCommand(processedCmds, newestArgs, cliName, cliDescription);
-        helpCommand = res.command;
-        newestArgs = res.args;
-      } while (helpCommand === "help");
-      return helpCommand ? helpCommand.help !== void 0 ? await executeOrLog(helpCommand.help) : await eventHandler({
-        type: "command_help",
-        description: cliDescription,
-        name: cliName,
-        command: helpCommand
-      }) : help !== void 0 ? await executeOrLog(help) : await eventHandler({
-        type: "global_help",
-        description: cliDescription,
-        name: cliName,
-        commands: processedCmds
-      });
-    }
-    const optionResult = parseOptions(command3, newArgs, cliName, cliDescription, omitKeysOfUndefinedOptions);
-    if (optionResult === "help") {
-      return command3.help !== void 0 ? await executeOrLog(command3.help) : await eventHandler({
-        type: "command_help",
-        description: cliDescription,
-        name: cliName,
-        command: command3
-      });
-    }
-    if (optionResult === "version") {
-      return version !== void 0 ? await executeOrLog(version) : await eventHandler({
-        type: "version",
-        name: cliName,
-        description: cliDescription
-      });
-    }
-    if (command3.handler) {
-      if (config?.hook) await config.hook("before", command3);
-      await command3.handler(command3.transform ? await command3.transform(optionResult) : optionResult);
-      if (config?.hook) await config.hook("after", command3);
-      return;
-    } else {
-      return command3.help !== void 0 ? await executeOrLog(command3.help) : await eventHandler({
-        type: "command_help",
-        description: cliDescription,
-        name: cliName,
-        command: command3
-      });
-    }
-  } catch (e) {
-    if (e instanceof BroCliError) {
-      if (e.event) await eventHandler(e.event);
-      else {
-        if (!config?.noExit) console.error(e.message);
-        else return e.message;
-      }
-    } else {
-      await eventHandler({
-        type: "error",
-        violation: "unknown_error",
-        name: cliName,
-        description: cliDescription,
-        error: e
-      });
-    }
-    if (!config?.noExit) process.exit(1);
-    return;
-  }
-};
-var handler = (options, handler2) => handler2;
-var test = async (command3, args) => {
-  try {
-    const cliParsedArgs = shellArgs(args);
-    const options = parseOptions(command3, cliParsedArgs, void 0, void 0);
-    if (options === "help" || options === "version") {
-      return {
-        type: options
-      };
-    }
-    return {
-      options: command3.transform ? await command3.transform(options) : options,
-      type: "handler"
-    };
-  } catch (e) {
-    return {
-      type: "error",
-      error: e
-    };
-  }
-};
-var commandsInfo = (commands) => {
-  const validated = validateCommands(commands);
-  return Object.fromEntries(validated.map((c) => [c.name, {
-    name: c.name,
-    aliases: (0, import_clone.default)(c.aliases),
-    desc: c.desc,
-    shortDesc: c.shortDesc,
-    isHidden: c.hidden,
-    options: c.options ? Object.fromEntries(Object.entries(c.options).map(([key, opt]) => [key, (0, import_clone.default)(opt.config)])) : void 0,
-    metadata: (0, import_clone.default)(c.metadata),
-    subcommands: c.subcommands ? commandsInfo(c.subcommands) : void 0
-  }]));
-};
-
-// src/option-builder.ts
-var OptionBuilderBase = class _OptionBuilderBase {
-  _;
-  config = () => this._.config;
-  constructor(config) {
-    this._ = {
-      config: config ?? {
-        aliases: [],
-        type: "string"
-      },
-      $output: void 0
-    };
-  }
-  string(name) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "string", name });
-  }
-  number(name) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "number", name });
-  }
-  boolean(name) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "boolean", name });
-  }
-  positional(displayName) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "positional", name: displayName });
-  }
-  alias(...aliases) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, aliases });
-  }
-  desc(description) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, description });
-  }
-  hidden() {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, isHidden: true });
-  }
-  required() {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, isRequired: true });
-  }
-  default(value) {
-    const config = this.config();
-    const enums = config.enumVals;
-    if (enums && !enums.find((v) => value === v)) {
-      throw new Error(
-        `Option enums [ ${enums.join(", ")} ] are incompatible with default value ${value}`
-      );
-    }
-    return new _OptionBuilderBase({ ...config, default: value });
-  }
-  enum(...values) {
-    const config = this.config();
-    const defaultVal = config.default;
-    if (defaultVal !== void 0 && !values.find((v) => defaultVal === v)) {
-      throw new Error(
-        `Option enums [ ${values.join(", ")} ] are incompatible with default value ${defaultVal}`
-      );
-    }
-    return new _OptionBuilderBase({ ...config, enumVals: values });
-  }
-  min(value) {
-    const config = this.config();
-    const maxVal = config.maxVal;
-    if (maxVal !== void 0 && maxVal < value) {
-      throw new BroCliError("Unable to define option's min value to be higher than max value!");
-    }
-    return new _OptionBuilderBase({ ...config, minVal: value });
-  }
-  max(value) {
-    const config = this.config();
-    const minVal = config.minVal;
-    if (minVal !== void 0 && minVal > value) {
-      throw new BroCliError("Unable to define option's max value to be lower than min value!");
-    }
-    return new _OptionBuilderBase({ ...config, maxVal: value });
-  }
-  int() {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, isInt: true });
-  }
-};
-function string(name) {
-  return typeof name === "string" ? new OptionBuilderBase().string(name) : new OptionBuilderBase().string();
-}
-function number(name) {
-  return typeof name === "string" ? new OptionBuilderBase().number(name) : new OptionBuilderBase().number();
-}
-function boolean(name) {
-  return typeof name === "string" ? new OptionBuilderBase().boolean(name) : new OptionBuilderBase().boolean();
-}
-function positional(displayName) {
-  return typeof displayName === "string" ? new OptionBuilderBase().positional(displayName) : new OptionBuilderBase().positional();
-}
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  BroCliError,
-  boolean,
-  command,
-  commandsInfo,
-  getCommandNameWithParents,
-  handler,
-  number,
-  positional,
-  run,
-  string,
-  test
-});
-//# sourceMappingURL=index.cjs.map

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
node_modules/@drizzle-team/brocli/index.cjs.map


+ 0 - 298
node_modules/@drizzle-team/brocli/index.d.cts

@@ -1,298 +0,0 @@
-type OptionType = 'string' | 'boolean' | 'number' | 'positional';
-type OutputType = string | boolean | number | undefined;
-type BuilderConfig<TType extends OptionType = OptionType> = {
-    name?: string | undefined;
-    aliases: string[];
-    type: TType;
-    description?: string;
-    default?: OutputType;
-    isHidden?: boolean;
-    isRequired?: boolean;
-    isInt?: boolean;
-    minVal?: number;
-    maxVal?: number;
-    enumVals?: [string, ...string[]];
-};
-type ProcessedBuilderConfig = {
-    name: string;
-    aliases: string[];
-    type: OptionType;
-    description?: string;
-    default?: OutputType;
-    isHidden?: boolean;
-    isRequired?: boolean;
-    isInt?: boolean;
-    minVal?: number;
-    maxVal?: number;
-    enumVals?: [string, ...string[]];
-};
-type BuilderConfigLimited = BuilderConfig & {
-    type: Exclude<OptionType, 'positional'>;
-};
-declare class OptionBuilderBase<TBuilderConfig extends BuilderConfig = BuilderConfig, TOutput extends OutputType = string, TOmit extends string = '', TEnums extends string | undefined = undefined> {
-    _: {
-        config: TBuilderConfig;
-        /**
-         * Type-level only field
-         *
-         * Do not attempt to access at a runtime
-         */
-        $output: TOutput;
-    };
-    private config;
-    constructor(config?: TBuilderConfig);
-    string<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'int'>;
-    string(): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'int'>;
-    number<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'number'>, number | undefined, TOmit | OptionType | 'enum'>, TOmit | OptionType | 'enum'>;
-    number(): Omit<OptionBuilderBase<BuilderConfig<'number'>, string | undefined, TOmit | OptionType | 'enum'>, TOmit | OptionType | 'enum'>;
-    boolean<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>;
-    boolean(): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>;
-    positional<TName extends string>(displayName: TName): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>;
-    positional(): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>;
-    alias(...aliases: string[]): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'alias'>, TOmit | 'alias'>;
-    desc<TDescription extends string>(description: TDescription): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'desc'>, TOmit | 'desc'>;
-    hidden(): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'hidden'>, TOmit | 'hidden'>;
-    required(): Omit<OptionBuilderBase<TBuilderConfig, Exclude<TOutput, undefined>, TOmit | 'required' | 'default'>, TOmit | 'required' | 'default'>;
-    default<TDefVal extends TEnums extends undefined ? Exclude<TOutput, undefined> : TEnums>(value: TDefVal): Omit<OptionBuilderBase<TBuilderConfig, Exclude<TOutput, undefined>, TOmit | 'enum' | 'required' | 'default', TEnums>, TOmit | 'enum' | 'required' | 'default'>;
-    enum<TValues extends [string, ...string[]], TUnion extends TValues[number] = TValues[number]>(...values: TValues): Omit<OptionBuilderBase<TBuilderConfig, TUnion | (TOutput extends undefined ? undefined : never), TOmit | 'enum', TUnion>, TOmit | 'enum'>;
-    min(value: number): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'min'>, TOmit | 'min'>;
-    max(value: number): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'max'>, TOmit | 'max'>;
-    int(): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'int'>, TOmit | 'int'>;
-}
-type GenericBuilderInternalsFields = {
-    /**
-     * Type-level only field
-     *
-     * Do not attempt to access at a runtime
-     */
-    $output: OutputType;
-    config: BuilderConfig;
-};
-type GenericBuilderInternals = {
-    _: GenericBuilderInternalsFields;
-};
-type GenericBuilderInternalsFieldsLimited = {
-    /**
-     * Type-level only field
-     *
-     * Do not attempt to access at a runtime
-     */
-    $output: OutputType;
-    config: BuilderConfigLimited;
-};
-type GenericBuilderInternalsLimited = {
-    _: GenericBuilderInternalsFieldsLimited;
-};
-type ProcessedOptions<TOptionConfig extends Record<string, GenericBuilderInternals> = Record<string, GenericBuilderInternals>> = {
-    [K in keyof TOptionConfig]: K extends string ? {
-        config: ProcessedBuilderConfig;
-        /**
-         * Type-level only field
-         *
-         * Do not attempt to access at a runtime
-         */
-        $output: TOptionConfig[K]['_']['$output'];
-    } : never;
-};
-type Simplify<T> = {
-    [K in keyof T]: T[K];
-} & {};
-type TypeOf<TOptions extends Record<string, GenericBuilderInternals>> = Simplify<{
-    [K in keyof TOptions]: TOptions[K]['_']['$output'];
-}>;
-declare function string<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, OptionType | 'min' | 'max' | 'int'>, OptionType | 'min' | 'max' | 'int'>;
-declare function string(): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, OptionType | 'min' | 'max' | 'int'>, OptionType | 'min' | 'max' | 'int'>;
-declare function number<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'number'>, number | undefined, OptionType | 'enum'>, OptionType | 'enum'>;
-declare function number(): Omit<OptionBuilderBase<BuilderConfig<'number'>, number | undefined, OptionType | 'enum'>, OptionType | 'enum'>;
-declare function boolean<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, OptionType | 'min' | 'max' | 'int' | 'enum'>, OptionType | 'min' | 'max' | 'int' | 'enum'>;
-declare function boolean(): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, OptionType | 'min' | 'max' | 'int' | 'enum'>, OptionType | 'min' | 'max' | 'int' | 'enum'>;
-declare function positional<TName extends string>(displayName: TName): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, OptionType | 'min' | 'max' | 'int' | 'alias'>, OptionType | 'min' | 'max' | 'int' | 'alias'>;
-declare function positional(): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, OptionType | 'min' | 'max' | 'int' | 'alias'>, OptionType | 'min' | 'max' | 'int' | 'alias'>;
-
-type CommandHandler<TOpts extends Record<string, GenericBuilderInternals> | undefined = Record<string, GenericBuilderInternals> | undefined> = (options: TOpts extends Record<string, GenericBuilderInternals> ? TypeOf<TOpts> : undefined) => any;
-type CommandInfo = {
-    name: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: Record<string, ProcessedBuilderConfig>;
-    metadata?: any;
-    subcommands?: CommandsInfo;
-};
-type CommandsInfo = Record<string, CommandInfo>;
-type EventType = 'before' | 'after';
-type BroCliConfig = {
-    name?: string;
-    description?: string;
-    argSource?: string[];
-    help?: string | Function;
-    version?: string | Function;
-    omitKeysOfUndefinedOptions?: boolean;
-    hook?: (event: EventType, command: Command) => any;
-    theme?: EventHandler;
-};
-type GenericCommandHandler = (options?: Record<string, OutputType> | undefined) => any;
-type RawCommand<TOpts extends Record<string, GenericBuilderInternals> | undefined = Record<string, GenericBuilderInternals> | undefined, TOptsData = TOpts extends Record<string, GenericBuilderInternals> ? TypeOf<TOpts> : undefined, TTransformed = TOptsData extends undefined ? undefined : TOptsData> = {
-    name?: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: TOpts;
-    help?: string | Function;
-    transform?: (options: TOptsData) => TTransformed;
-    handler?: (options: Awaited<TTransformed>) => any;
-    subcommands?: [Command, ...Command[]];
-    metadata?: any;
-};
-type AnyRawCommand<TOpts extends Record<string, GenericBuilderInternals> | undefined = Record<string, GenericBuilderInternals> | undefined> = {
-    name?: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: TOpts;
-    help?: string | Function;
-    transform?: GenericCommandHandler;
-    handler?: GenericCommandHandler;
-    subcommands?: [Command, ...Command[]];
-    metadata?: any;
-};
-type Command<TOptsType = any, TTransformedType = any> = {
-    name: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: ProcessedOptions;
-    help?: string | Function;
-    transform?: GenericCommandHandler;
-    handler?: GenericCommandHandler;
-    subcommands?: [Command, ...Command[]];
-    parent?: Command;
-    metadata?: any;
-};
-type CommandCandidate = {
-    data: string;
-    originalIndex: number;
-};
-type InnerCommandParseRes = {
-    command: Command | undefined;
-    args: string[];
-};
-type TestResult<THandlerInput> = {
-    type: 'handler';
-    options: THandlerInput;
-} | {
-    type: 'help' | 'version';
-} | {
-    type: 'error';
-    error: unknown;
-};
-declare const command: <TOpts extends Record<string, GenericBuilderInternals> | undefined, TOptsData = TOpts extends Record<string, GenericBuilderInternals> ? { [K_1 in keyof { [K in keyof TOpts]: TOpts[K]["_"]["$output"]; }]: { [K in keyof TOpts]: TOpts[K]["_"]["$output"]; }[K_1]; } : undefined, TTransformed = TOptsData>(command: RawCommand<TOpts, TOptsData, TTransformed>) => Command<TOptsData, Awaited<TTransformed>>;
-declare const getCommandNameWithParents: (command: Command) => string;
-/**
- * Runs CLI commands
- *
- * @param commands - command collection
- *
- * @param config - additional settings
- */
-declare const run: (commands: Command[], config?: BroCliConfig) => Promise<void>;
-declare const handler: <TOpts extends Record<string, GenericBuilderInternals>>(options: TOpts, handler: CommandHandler<TOpts>) => CommandHandler<TOpts>;
-declare const test: <TOpts, THandlerInput>(command: Command<TOpts, THandlerInput>, args: string) => Promise<TestResult<THandlerInput>>;
-declare const commandsInfo: (commands: Command[]) => CommandsInfo;
-
-type CommandHelpEvent = {
-    type: 'command_help';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-};
-type GlobalHelpEvent = {
-    type: 'global_help';
-    description: string | undefined;
-    name: string | undefined;
-    commands: Command[];
-};
-type MissingArgsEvent = {
-    type: 'error';
-    violation: 'missing_args_error';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    missing: [string[], ...string[][]];
-};
-type UnrecognizedArgsEvent = {
-    type: 'error';
-    violation: 'unrecognized_args_error';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    unrecognized: [string, ...string[]];
-};
-type UnknownCommandEvent = {
-    type: 'error';
-    violation: 'unknown_command_error';
-    name: string | undefined;
-    description: string | undefined;
-    commands: Command[];
-    offender: string;
-};
-type UnknownSubcommandEvent = {
-    type: 'error';
-    violation: 'unknown_subcommand_error';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    offender: string;
-};
-type UnknownErrorEvent = {
-    type: 'error';
-    violation: 'unknown_error';
-    name: string | undefined;
-    description: string | undefined;
-    error: unknown;
-};
-type VersionEvent = {
-    type: 'version';
-    name: string | undefined;
-    description: string | undefined;
-};
-type GenericValidationViolation = 'above_max' | 'below_min' | 'expected_int' | 'invalid_boolean_syntax' | 'invalid_string_syntax' | 'invalid_number_syntax' | 'invalid_number_value' | 'enum_violation';
-type ValidationViolation = BroCliEvent extends infer Event ? Event extends {
-    violation: string;
-} ? Event['violation'] : never : never;
-type ValidationErrorEvent = {
-    type: 'error';
-    violation: GenericValidationViolation;
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    option: ProcessedBuilderConfig;
-    offender: {
-        namePart?: string;
-        dataPart?: string;
-    };
-};
-type BroCliEvent = CommandHelpEvent | GlobalHelpEvent | MissingArgsEvent | UnrecognizedArgsEvent | UnknownCommandEvent | UnknownSubcommandEvent | ValidationErrorEvent | VersionEvent | UnknownErrorEvent;
-type BroCliEventType = BroCliEvent['type'];
-/**
- * Return `true` if your handler processes the event
- *
- * Return `false` to process event with a built-in handler
- */
-type EventHandler = (event: BroCliEvent) => boolean | Promise<boolean>;
-
-/**
- * Internal error class used to bypass runCli's logging without stack trace
- *
- * Used only for malformed commands and options
- */
-declare class BroCliError extends Error {
-    event?: BroCliEvent | undefined;
-    constructor(message: string | undefined, event?: BroCliEvent | undefined);
-}
-
-export { type AnyRawCommand, type BroCliConfig, BroCliError, type BroCliEvent, type BroCliEventType, type BuilderConfig, type BuilderConfigLimited, type Command, type CommandCandidate, type CommandHandler, type CommandHelpEvent, type CommandInfo, type CommandsInfo, type EventHandler, type EventType, type GenericBuilderInternals, type GenericBuilderInternalsFields, type GenericBuilderInternalsFieldsLimited, type GenericBuilderInternalsLimited, type GenericCommandHandler, type GenericValidationViolation, type GlobalHelpEvent, type InnerCommandParseRes, type MissingArgsEvent, OptionBuilderBase, type OptionType, type OutputType, type ProcessedBuilderConfig, type ProcessedOptions, type RawCommand, type Simplify, type TestResult, type TypeOf, type UnknownCommandEvent, type UnknownErrorEvent, type UnknownSubcommandEvent, type UnrecognizedArgsEvent, type ValidationErrorEvent, type ValidationViolation, type VersionEvent, boolean, command, commandsInfo, getCommandNameWithParents, handler, number, positional, run, string, test };

+ 0 - 298
node_modules/@drizzle-team/brocli/index.d.ts

@@ -1,298 +0,0 @@
-type OptionType = 'string' | 'boolean' | 'number' | 'positional';
-type OutputType = string | boolean | number | undefined;
-type BuilderConfig<TType extends OptionType = OptionType> = {
-    name?: string | undefined;
-    aliases: string[];
-    type: TType;
-    description?: string;
-    default?: OutputType;
-    isHidden?: boolean;
-    isRequired?: boolean;
-    isInt?: boolean;
-    minVal?: number;
-    maxVal?: number;
-    enumVals?: [string, ...string[]];
-};
-type ProcessedBuilderConfig = {
-    name: string;
-    aliases: string[];
-    type: OptionType;
-    description?: string;
-    default?: OutputType;
-    isHidden?: boolean;
-    isRequired?: boolean;
-    isInt?: boolean;
-    minVal?: number;
-    maxVal?: number;
-    enumVals?: [string, ...string[]];
-};
-type BuilderConfigLimited = BuilderConfig & {
-    type: Exclude<OptionType, 'positional'>;
-};
-declare class OptionBuilderBase<TBuilderConfig extends BuilderConfig = BuilderConfig, TOutput extends OutputType = string, TOmit extends string = '', TEnums extends string | undefined = undefined> {
-    _: {
-        config: TBuilderConfig;
-        /**
-         * Type-level only field
-         *
-         * Do not attempt to access at a runtime
-         */
-        $output: TOutput;
-    };
-    private config;
-    constructor(config?: TBuilderConfig);
-    string<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'int'>;
-    string(): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'int'>;
-    number<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'number'>, number | undefined, TOmit | OptionType | 'enum'>, TOmit | OptionType | 'enum'>;
-    number(): Omit<OptionBuilderBase<BuilderConfig<'number'>, string | undefined, TOmit | OptionType | 'enum'>, TOmit | OptionType | 'enum'>;
-    boolean<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>;
-    boolean(): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>, TOmit | OptionType | 'min' | 'max' | 'enum' | 'int'>;
-    positional<TName extends string>(displayName: TName): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>;
-    positional(): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>, TOmit | OptionType | 'min' | 'max' | 'int' | 'alias'>;
-    alias(...aliases: string[]): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'alias'>, TOmit | 'alias'>;
-    desc<TDescription extends string>(description: TDescription): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'desc'>, TOmit | 'desc'>;
-    hidden(): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'hidden'>, TOmit | 'hidden'>;
-    required(): Omit<OptionBuilderBase<TBuilderConfig, Exclude<TOutput, undefined>, TOmit | 'required' | 'default'>, TOmit | 'required' | 'default'>;
-    default<TDefVal extends TEnums extends undefined ? Exclude<TOutput, undefined> : TEnums>(value: TDefVal): Omit<OptionBuilderBase<TBuilderConfig, Exclude<TOutput, undefined>, TOmit | 'enum' | 'required' | 'default', TEnums>, TOmit | 'enum' | 'required' | 'default'>;
-    enum<TValues extends [string, ...string[]], TUnion extends TValues[number] = TValues[number]>(...values: TValues): Omit<OptionBuilderBase<TBuilderConfig, TUnion | (TOutput extends undefined ? undefined : never), TOmit | 'enum', TUnion>, TOmit | 'enum'>;
-    min(value: number): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'min'>, TOmit | 'min'>;
-    max(value: number): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'max'>, TOmit | 'max'>;
-    int(): Omit<OptionBuilderBase<TBuilderConfig, TOutput, TOmit | 'int'>, TOmit | 'int'>;
-}
-type GenericBuilderInternalsFields = {
-    /**
-     * Type-level only field
-     *
-     * Do not attempt to access at a runtime
-     */
-    $output: OutputType;
-    config: BuilderConfig;
-};
-type GenericBuilderInternals = {
-    _: GenericBuilderInternalsFields;
-};
-type GenericBuilderInternalsFieldsLimited = {
-    /**
-     * Type-level only field
-     *
-     * Do not attempt to access at a runtime
-     */
-    $output: OutputType;
-    config: BuilderConfigLimited;
-};
-type GenericBuilderInternalsLimited = {
-    _: GenericBuilderInternalsFieldsLimited;
-};
-type ProcessedOptions<TOptionConfig extends Record<string, GenericBuilderInternals> = Record<string, GenericBuilderInternals>> = {
-    [K in keyof TOptionConfig]: K extends string ? {
-        config: ProcessedBuilderConfig;
-        /**
-         * Type-level only field
-         *
-         * Do not attempt to access at a runtime
-         */
-        $output: TOptionConfig[K]['_']['$output'];
-    } : never;
-};
-type Simplify<T> = {
-    [K in keyof T]: T[K];
-} & {};
-type TypeOf<TOptions extends Record<string, GenericBuilderInternals>> = Simplify<{
-    [K in keyof TOptions]: TOptions[K]['_']['$output'];
-}>;
-declare function string<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, OptionType | 'min' | 'max' | 'int'>, OptionType | 'min' | 'max' | 'int'>;
-declare function string(): Omit<OptionBuilderBase<BuilderConfig<'string'>, string | undefined, OptionType | 'min' | 'max' | 'int'>, OptionType | 'min' | 'max' | 'int'>;
-declare function number<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'number'>, number | undefined, OptionType | 'enum'>, OptionType | 'enum'>;
-declare function number(): Omit<OptionBuilderBase<BuilderConfig<'number'>, number | undefined, OptionType | 'enum'>, OptionType | 'enum'>;
-declare function boolean<TName extends string>(name: TName): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, OptionType | 'min' | 'max' | 'int' | 'enum'>, OptionType | 'min' | 'max' | 'int' | 'enum'>;
-declare function boolean(): Omit<OptionBuilderBase<BuilderConfig<'boolean'>, boolean | undefined, OptionType | 'min' | 'max' | 'int' | 'enum'>, OptionType | 'min' | 'max' | 'int' | 'enum'>;
-declare function positional<TName extends string>(displayName: TName): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, OptionType | 'min' | 'max' | 'int' | 'alias'>, OptionType | 'min' | 'max' | 'int' | 'alias'>;
-declare function positional(): Omit<OptionBuilderBase<BuilderConfig<'positional'>, string | undefined, OptionType | 'min' | 'max' | 'int' | 'alias'>, OptionType | 'min' | 'max' | 'int' | 'alias'>;
-
-type CommandHandler<TOpts extends Record<string, GenericBuilderInternals> | undefined = Record<string, GenericBuilderInternals> | undefined> = (options: TOpts extends Record<string, GenericBuilderInternals> ? TypeOf<TOpts> : undefined) => any;
-type CommandInfo = {
-    name: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: Record<string, ProcessedBuilderConfig>;
-    metadata?: any;
-    subcommands?: CommandsInfo;
-};
-type CommandsInfo = Record<string, CommandInfo>;
-type EventType = 'before' | 'after';
-type BroCliConfig = {
-    name?: string;
-    description?: string;
-    argSource?: string[];
-    help?: string | Function;
-    version?: string | Function;
-    omitKeysOfUndefinedOptions?: boolean;
-    hook?: (event: EventType, command: Command) => any;
-    theme?: EventHandler;
-};
-type GenericCommandHandler = (options?: Record<string, OutputType> | undefined) => any;
-type RawCommand<TOpts extends Record<string, GenericBuilderInternals> | undefined = Record<string, GenericBuilderInternals> | undefined, TOptsData = TOpts extends Record<string, GenericBuilderInternals> ? TypeOf<TOpts> : undefined, TTransformed = TOptsData extends undefined ? undefined : TOptsData> = {
-    name?: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: TOpts;
-    help?: string | Function;
-    transform?: (options: TOptsData) => TTransformed;
-    handler?: (options: Awaited<TTransformed>) => any;
-    subcommands?: [Command, ...Command[]];
-    metadata?: any;
-};
-type AnyRawCommand<TOpts extends Record<string, GenericBuilderInternals> | undefined = Record<string, GenericBuilderInternals> | undefined> = {
-    name?: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: TOpts;
-    help?: string | Function;
-    transform?: GenericCommandHandler;
-    handler?: GenericCommandHandler;
-    subcommands?: [Command, ...Command[]];
-    metadata?: any;
-};
-type Command<TOptsType = any, TTransformedType = any> = {
-    name: string;
-    aliases?: [string, ...string[]];
-    desc?: string;
-    shortDesc?: string;
-    hidden?: boolean;
-    options?: ProcessedOptions;
-    help?: string | Function;
-    transform?: GenericCommandHandler;
-    handler?: GenericCommandHandler;
-    subcommands?: [Command, ...Command[]];
-    parent?: Command;
-    metadata?: any;
-};
-type CommandCandidate = {
-    data: string;
-    originalIndex: number;
-};
-type InnerCommandParseRes = {
-    command: Command | undefined;
-    args: string[];
-};
-type TestResult<THandlerInput> = {
-    type: 'handler';
-    options: THandlerInput;
-} | {
-    type: 'help' | 'version';
-} | {
-    type: 'error';
-    error: unknown;
-};
-declare const command: <TOpts extends Record<string, GenericBuilderInternals> | undefined, TOptsData = TOpts extends Record<string, GenericBuilderInternals> ? { [K_1 in keyof { [K in keyof TOpts]: TOpts[K]["_"]["$output"]; }]: { [K in keyof TOpts]: TOpts[K]["_"]["$output"]; }[K_1]; } : undefined, TTransformed = TOptsData>(command: RawCommand<TOpts, TOptsData, TTransformed>) => Command<TOptsData, Awaited<TTransformed>>;
-declare const getCommandNameWithParents: (command: Command) => string;
-/**
- * Runs CLI commands
- *
- * @param commands - command collection
- *
- * @param config - additional settings
- */
-declare const run: (commands: Command[], config?: BroCliConfig) => Promise<void>;
-declare const handler: <TOpts extends Record<string, GenericBuilderInternals>>(options: TOpts, handler: CommandHandler<TOpts>) => CommandHandler<TOpts>;
-declare const test: <TOpts, THandlerInput>(command: Command<TOpts, THandlerInput>, args: string) => Promise<TestResult<THandlerInput>>;
-declare const commandsInfo: (commands: Command[]) => CommandsInfo;
-
-type CommandHelpEvent = {
-    type: 'command_help';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-};
-type GlobalHelpEvent = {
-    type: 'global_help';
-    description: string | undefined;
-    name: string | undefined;
-    commands: Command[];
-};
-type MissingArgsEvent = {
-    type: 'error';
-    violation: 'missing_args_error';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    missing: [string[], ...string[][]];
-};
-type UnrecognizedArgsEvent = {
-    type: 'error';
-    violation: 'unrecognized_args_error';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    unrecognized: [string, ...string[]];
-};
-type UnknownCommandEvent = {
-    type: 'error';
-    violation: 'unknown_command_error';
-    name: string | undefined;
-    description: string | undefined;
-    commands: Command[];
-    offender: string;
-};
-type UnknownSubcommandEvent = {
-    type: 'error';
-    violation: 'unknown_subcommand_error';
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    offender: string;
-};
-type UnknownErrorEvent = {
-    type: 'error';
-    violation: 'unknown_error';
-    name: string | undefined;
-    description: string | undefined;
-    error: unknown;
-};
-type VersionEvent = {
-    type: 'version';
-    name: string | undefined;
-    description: string | undefined;
-};
-type GenericValidationViolation = 'above_max' | 'below_min' | 'expected_int' | 'invalid_boolean_syntax' | 'invalid_string_syntax' | 'invalid_number_syntax' | 'invalid_number_value' | 'enum_violation';
-type ValidationViolation = BroCliEvent extends infer Event ? Event extends {
-    violation: string;
-} ? Event['violation'] : never : never;
-type ValidationErrorEvent = {
-    type: 'error';
-    violation: GenericValidationViolation;
-    name: string | undefined;
-    description: string | undefined;
-    command: Command;
-    option: ProcessedBuilderConfig;
-    offender: {
-        namePart?: string;
-        dataPart?: string;
-    };
-};
-type BroCliEvent = CommandHelpEvent | GlobalHelpEvent | MissingArgsEvent | UnrecognizedArgsEvent | UnknownCommandEvent | UnknownSubcommandEvent | ValidationErrorEvent | VersionEvent | UnknownErrorEvent;
-type BroCliEventType = BroCliEvent['type'];
-/**
- * Return `true` if your handler processes the event
- *
- * Return `false` to process event with a built-in handler
- */
-type EventHandler = (event: BroCliEvent) => boolean | Promise<boolean>;
-
-/**
- * Internal error class used to bypass runCli's logging without stack trace
- *
- * Used only for malformed commands and options
- */
-declare class BroCliError extends Error {
-    event?: BroCliEvent | undefined;
-    constructor(message: string | undefined, event?: BroCliEvent | undefined);
-}
-
-export { type AnyRawCommand, type BroCliConfig, BroCliError, type BroCliEvent, type BroCliEventType, type BuilderConfig, type BuilderConfigLimited, type Command, type CommandCandidate, type CommandHandler, type CommandHelpEvent, type CommandInfo, type CommandsInfo, type EventHandler, type EventType, type GenericBuilderInternals, type GenericBuilderInternalsFields, type GenericBuilderInternalsFieldsLimited, type GenericBuilderInternalsLimited, type GenericCommandHandler, type GenericValidationViolation, type GlobalHelpEvent, type InnerCommandParseRes, type MissingArgsEvent, OptionBuilderBase, type OptionType, type OutputType, type ProcessedBuilderConfig, type ProcessedOptions, type RawCommand, type Simplify, type TestResult, type TypeOf, type UnknownCommandEvent, type UnknownErrorEvent, type UnknownSubcommandEvent, type UnrecognizedArgsEvent, type ValidationErrorEvent, type ValidationViolation, type VersionEvent, boolean, command, commandsInfo, getCommandNameWithParents, handler, number, positional, run, string, test };

+ 0 - 1485
node_modules/@drizzle-team/brocli/index.js

@@ -1,1485 +0,0 @@
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __commonJS = (cb, mod) => function __require() {
-  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
-};
-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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
-  // If the importer is in node compatibility mode or this is not an ESM
-  // file that has been converted to a CommonJS file using a Babel-
-  // compatible transform (i.e. "__esModule" has not been set), then set
-  // "default" to the CommonJS "module.exports" for node compatibility.
-  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
-  mod
-));
-
-// node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js
-var require_clone = __commonJS({
-  "node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js"(exports, module) {
-    "use strict";
-    var clone2 = function() {
-      "use strict";
-      function _instanceof(obj, type) {
-        return type != null && obj instanceof type;
-      }
-      var nativeMap;
-      try {
-        nativeMap = Map;
-      } catch (_) {
-        nativeMap = function() {
-        };
-      }
-      var nativeSet;
-      try {
-        nativeSet = Set;
-      } catch (_) {
-        nativeSet = function() {
-        };
-      }
-      var nativePromise;
-      try {
-        nativePromise = Promise;
-      } catch (_) {
-        nativePromise = function() {
-        };
-      }
-      function clone3(parent, circular, depth, prototype, includeNonEnumerable) {
-        if (typeof circular === "object") {
-          depth = circular.depth;
-          prototype = circular.prototype;
-          includeNonEnumerable = circular.includeNonEnumerable;
-          circular = circular.circular;
-        }
-        var allParents = [];
-        var allChildren = [];
-        var useBuffer = typeof Buffer != "undefined";
-        if (typeof circular == "undefined")
-          circular = true;
-        if (typeof depth == "undefined")
-          depth = Infinity;
-        function _clone(parent2, depth2) {
-          if (parent2 === null)
-            return null;
-          if (depth2 === 0)
-            return parent2;
-          var child;
-          var proto;
-          if (typeof parent2 != "object") {
-            return parent2;
-          }
-          if (_instanceof(parent2, nativeMap)) {
-            child = new nativeMap();
-          } else if (_instanceof(parent2, nativeSet)) {
-            child = new nativeSet();
-          } else if (_instanceof(parent2, nativePromise)) {
-            child = new nativePromise(function(resolve, reject) {
-              parent2.then(function(value) {
-                resolve(_clone(value, depth2 - 1));
-              }, function(err) {
-                reject(_clone(err, depth2 - 1));
-              });
-            });
-          } else if (clone3.__isArray(parent2)) {
-            child = [];
-          } else if (clone3.__isRegExp(parent2)) {
-            child = new RegExp(parent2.source, __getRegExpFlags(parent2));
-            if (parent2.lastIndex) child.lastIndex = parent2.lastIndex;
-          } else if (clone3.__isDate(parent2)) {
-            child = new Date(parent2.getTime());
-          } else if (useBuffer && Buffer.isBuffer(parent2)) {
-            if (Buffer.allocUnsafe) {
-              child = Buffer.allocUnsafe(parent2.length);
-            } else {
-              child = new Buffer(parent2.length);
-            }
-            parent2.copy(child);
-            return child;
-          } else if (_instanceof(parent2, Error)) {
-            child = Object.create(parent2);
-          } else {
-            if (typeof prototype == "undefined") {
-              proto = Object.getPrototypeOf(parent2);
-              child = Object.create(proto);
-            } else {
-              child = Object.create(prototype);
-              proto = prototype;
-            }
-          }
-          if (circular) {
-            var index = allParents.indexOf(parent2);
-            if (index != -1) {
-              return allChildren[index];
-            }
-            allParents.push(parent2);
-            allChildren.push(child);
-          }
-          if (_instanceof(parent2, nativeMap)) {
-            parent2.forEach(function(value, key) {
-              var keyChild = _clone(key, depth2 - 1);
-              var valueChild = _clone(value, depth2 - 1);
-              child.set(keyChild, valueChild);
-            });
-          }
-          if (_instanceof(parent2, nativeSet)) {
-            parent2.forEach(function(value) {
-              var entryChild = _clone(value, depth2 - 1);
-              child.add(entryChild);
-            });
-          }
-          for (var i in parent2) {
-            var attrs;
-            if (proto) {
-              attrs = Object.getOwnPropertyDescriptor(proto, i);
-            }
-            if (attrs && attrs.set == null) {
-              continue;
-            }
-            child[i] = _clone(parent2[i], depth2 - 1);
-          }
-          if (Object.getOwnPropertySymbols) {
-            var symbols = Object.getOwnPropertySymbols(parent2);
-            for (var i = 0; i < symbols.length; i++) {
-              var symbol = symbols[i];
-              var descriptor = Object.getOwnPropertyDescriptor(parent2, symbol);
-              if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
-                continue;
-              }
-              child[symbol] = _clone(parent2[symbol], depth2 - 1);
-              if (!descriptor.enumerable) {
-                Object.defineProperty(child, symbol, {
-                  enumerable: false
-                });
-              }
-            }
-          }
-          if (includeNonEnumerable) {
-            var allPropertyNames = Object.getOwnPropertyNames(parent2);
-            for (var i = 0; i < allPropertyNames.length; i++) {
-              var propertyName = allPropertyNames[i];
-              var descriptor = Object.getOwnPropertyDescriptor(parent2, propertyName);
-              if (descriptor && descriptor.enumerable) {
-                continue;
-              }
-              child[propertyName] = _clone(parent2[propertyName], depth2 - 1);
-              Object.defineProperty(child, propertyName, {
-                enumerable: false
-              });
-            }
-          }
-          return child;
-        }
-        return _clone(parent, depth);
-      }
-      clone3.clonePrototype = function clonePrototype(parent) {
-        if (parent === null)
-          return null;
-        var c = function() {
-        };
-        c.prototype = parent;
-        return new c();
-      };
-      function __objToStr(o) {
-        return Object.prototype.toString.call(o);
-      }
-      clone3.__objToStr = __objToStr;
-      function __isDate(o) {
-        return typeof o === "object" && __objToStr(o) === "[object Date]";
-      }
-      clone3.__isDate = __isDate;
-      function __isArray(o) {
-        return typeof o === "object" && __objToStr(o) === "[object Array]";
-      }
-      clone3.__isArray = __isArray;
-      function __isRegExp(o) {
-        return typeof o === "object" && __objToStr(o) === "[object RegExp]";
-      }
-      clone3.__isRegExp = __isRegExp;
-      function __getRegExpFlags(re) {
-        var flags = "";
-        if (re.global) flags += "g";
-        if (re.ignoreCase) flags += "i";
-        if (re.multiline) flags += "m";
-        return flags;
-      }
-      clone3.__getRegExpFlags = __getRegExpFlags;
-      return clone3;
-    }();
-    if (typeof module === "object" && module.exports) {
-      module.exports = clone2;
-    }
-  }
-});
-
-// node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/quote.js
-var require_quote = __commonJS({
-  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/quote.js"(exports, module) {
-    "use strict";
-    module.exports = function quote(xs) {
-      return xs.map(function(s) {
-        if (s && typeof s === "object") {
-          return s.op.replace(/(.)/g, "\\$1");
-        }
-        if (/["\s]/.test(s) && !/'/.test(s)) {
-          return "'" + s.replace(/(['\\])/g, "\\$1") + "'";
-        }
-        if (/["'\s]/.test(s)) {
-          return '"' + s.replace(/(["\\$`!])/g, "\\$1") + '"';
-        }
-        return String(s).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g, "$1\\$2");
-      }).join(" ");
-    };
-  }
-});
-
-// node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/parse.js
-var require_parse = __commonJS({
-  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/parse.js"(exports, module) {
-    "use strict";
-    var CONTROL = "(?:" + [
-      "\\|\\|",
-      "\\&\\&",
-      ";;",
-      "\\|\\&",
-      "\\<\\(",
-      "\\<\\<\\<",
-      ">>",
-      ">\\&",
-      "<\\&",
-      "[&;()|<>]"
-    ].join("|") + ")";
-    var controlRE = new RegExp("^" + CONTROL + "$");
-    var META = "|&;()<> \\t";
-    var SINGLE_QUOTE = '"((\\\\"|[^"])*?)"';
-    var DOUBLE_QUOTE = "'((\\\\'|[^'])*?)'";
-    var hash = /^#$/;
-    var SQ = "'";
-    var DQ = '"';
-    var DS = "$";
-    var TOKEN = "";
-    var mult = 4294967296;
-    for (i = 0; i < 4; i++) {
-      TOKEN += (mult * Math.random()).toString(16);
-    }
-    var i;
-    var startsWithToken = new RegExp("^" + TOKEN);
-    function matchAll(s, r) {
-      var origIndex = r.lastIndex;
-      var matches = [];
-      var matchObj;
-      while (matchObj = r.exec(s)) {
-        matches.push(matchObj);
-        if (r.lastIndex === matchObj.index) {
-          r.lastIndex += 1;
-        }
-      }
-      r.lastIndex = origIndex;
-      return matches;
-    }
-    function getVar(env, pre, key) {
-      var r = typeof env === "function" ? env(key) : env[key];
-      if (typeof r === "undefined" && key != "") {
-        r = "";
-      } else if (typeof r === "undefined") {
-        r = "$";
-      }
-      if (typeof r === "object") {
-        return pre + TOKEN + JSON.stringify(r) + TOKEN;
-      }
-      return pre + r;
-    }
-    function parseInternal(string2, env, opts) {
-      if (!opts) {
-        opts = {};
-      }
-      var BS = opts.escape || "\\";
-      var BAREWORD = "(\\" + BS + `['"` + META + `]|[^\\s'"` + META + "])+";
-      var chunker = new RegExp([
-        "(" + CONTROL + ")",
-        // control chars
-        "(" + BAREWORD + "|" + SINGLE_QUOTE + "|" + DOUBLE_QUOTE + ")+"
-      ].join("|"), "g");
-      var matches = matchAll(string2, chunker);
-      if (matches.length === 0) {
-        return [];
-      }
-      if (!env) {
-        env = {};
-      }
-      var commented = false;
-      return matches.map(function(match) {
-        var s = match[0];
-        if (!s || commented) {
-          return void 0;
-        }
-        if (controlRE.test(s)) {
-          return { op: s };
-        }
-        var quote = false;
-        var esc = false;
-        var out = "";
-        var isGlob = false;
-        var i2;
-        function parseEnvVar() {
-          i2 += 1;
-          var varend;
-          var varname;
-          var char = s.charAt(i2);
-          if (char === "{") {
-            i2 += 1;
-            if (s.charAt(i2) === "}") {
-              throw new Error("Bad substitution: " + s.slice(i2 - 2, i2 + 1));
-            }
-            varend = s.indexOf("}", i2);
-            if (varend < 0) {
-              throw new Error("Bad substitution: " + s.slice(i2));
-            }
-            varname = s.slice(i2, varend);
-            i2 = varend;
-          } else if (/[*@#?$!_-]/.test(char)) {
-            varname = char;
-            i2 += 1;
-          } else {
-            var slicedFromI = s.slice(i2);
-            varend = slicedFromI.match(/[^\w\d_]/);
-            if (!varend) {
-              varname = slicedFromI;
-              i2 = s.length;
-            } else {
-              varname = slicedFromI.slice(0, varend.index);
-              i2 += varend.index - 1;
-            }
-          }
-          return getVar(env, "", varname);
-        }
-        for (i2 = 0; i2 < s.length; i2++) {
-          var c = s.charAt(i2);
-          isGlob = isGlob || !quote && (c === "*" || c === "?");
-          if (esc) {
-            out += c;
-            esc = false;
-          } else if (quote) {
-            if (c === quote) {
-              quote = false;
-            } else if (quote == SQ) {
-              out += c;
-            } else {
-              if (c === BS) {
-                i2 += 1;
-                c = s.charAt(i2);
-                if (c === DQ || c === BS || c === DS) {
-                  out += c;
-                } else {
-                  out += BS + c;
-                }
-              } else if (c === DS) {
-                out += parseEnvVar();
-              } else {
-                out += c;
-              }
-            }
-          } else if (c === DQ || c === SQ) {
-            quote = c;
-          } else if (controlRE.test(c)) {
-            return { op: s };
-          } else if (hash.test(c)) {
-            commented = true;
-            var commentObj = { comment: string2.slice(match.index + i2 + 1) };
-            if (out.length) {
-              return [out, commentObj];
-            }
-            return [commentObj];
-          } else if (c === BS) {
-            esc = true;
-          } else if (c === DS) {
-            out += parseEnvVar();
-          } else {
-            out += c;
-          }
-        }
-        if (isGlob) {
-          return { op: "glob", pattern: out };
-        }
-        return out;
-      }).reduce(function(prev, arg) {
-        return typeof arg === "undefined" ? prev : prev.concat(arg);
-      }, []);
-    }
-    module.exports = function parse(s, env, opts) {
-      var mapped = parseInternal(s, env, opts);
-      if (typeof env !== "function") {
-        return mapped;
-      }
-      return mapped.reduce(function(acc, s2) {
-        if (typeof s2 === "object") {
-          return acc.concat(s2);
-        }
-        var xs = s2.split(RegExp("(" + TOKEN + ".*?" + TOKEN + ")", "g"));
-        if (xs.length === 1) {
-          return acc.concat(xs[0]);
-        }
-        return acc.concat(xs.filter(Boolean).map(function(x) {
-          if (startsWithToken.test(x)) {
-            return JSON.parse(x.split(TOKEN)[1]);
-          }
-          return x;
-        }));
-      }, []);
-    };
-  }
-});
-
-// node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/index.js
-var require_shell_quote = __commonJS({
-  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/index.js"(exports) {
-    "use strict";
-    exports.quote = require_quote();
-    exports.parse = require_parse();
-  }
-});
-
-// src/brocli-error.ts
-var BroCliError = class extends Error {
-  constructor(message, event) {
-    const errPrefix = "BroCli error: ";
-    super(message === void 0 ? message : `${errPrefix}${message}`);
-    this.event = event;
-  }
-};
-
-// src/command-core.ts
-var import_clone = __toESM(require_clone(), 1);
-
-// src/event-handler.ts
-var getOptionTypeText = (option) => {
-  let result = "";
-  switch (option.type) {
-    case "boolean":
-      result = "";
-      break;
-    case "number": {
-      if ((option.minVal ?? option.maxVal) !== void 0) {
-        let text = "";
-        if (option.isInt) text = text + `integer `;
-        if (option.minVal !== void 0) text = text + `[${option.minVal};`;
-        else text = text + `(\u221E;`;
-        if (option.maxVal !== void 0) text = text + `${option.maxVal}]`;
-        else text = text + `\u221E)`;
-        result = text;
-        break;
-      }
-      if (option.isInt) {
-        result = "integer";
-        break;
-      }
-      result = "number";
-      break;
-    }
-    case "string": {
-      if (option.enumVals) {
-        result = "[ " + option.enumVals.join(" | ") + " ]";
-        break;
-      }
-      result = "string";
-      break;
-    }
-    case "positional": {
-      result = `${option.isRequired ? "<" : "["}${option.enumVals ? option.enumVals.join("|") : option.name}${option.isRequired ? ">" : "]"}`;
-      break;
-    }
-  }
-  if (option.isRequired && option.type !== "positional") result = "!" + result.length ? " " : "" + result;
-  return result;
-};
-var defaultEventHandler = async (event) => {
-  switch (event.type) {
-    case "command_help": {
-      const command3 = event.command;
-      const commandName = getCommandNameWithParents(command3);
-      const cliName = event.name;
-      const desc = command3.desc ?? command3.shortDesc;
-      const subs = command3.subcommands?.filter((s) => !s.hidden);
-      const subcommands = subs && subs.length ? subs : void 0;
-      if (desc !== void 0) {
-        console.log(`
-${desc}`);
-      }
-      const opts = Object.values(command3.options ?? {}).filter(
-        (opt) => !opt.config.isHidden
-      );
-      const positionals = opts.filter((opt) => opt.config.type === "positional");
-      const options = opts.filter((opt) => opt.config.type !== "positional");
-      console.log("\nUsage:");
-      if (command3.handler) {
-        console.log(
-          `  ${cliName ? cliName + " " : ""}${commandName}${positionals.length ? " " + positionals.map(({ config: p }) => getOptionTypeText(p)).join(" ") : ""} [flags]`
-        );
-      } else console.log(`  ${cliName ? cliName + " " : ""}${commandName} [command]`);
-      if (command3.aliases) {
-        console.log(`
-Aliases:`);
-        console.log(`  ${[command3.name, ...command3.aliases].join(", ")}`);
-      }
-      if (subcommands) {
-        console.log("\nAvailable Commands:");
-        const padding = 3;
-        const maxLength = subcommands.reduce((p, e) => e.name.length > p ? e.name.length : p, 0);
-        const paddedLength = maxLength + padding;
-        const preDescPad = 2 + paddedLength;
-        const data = subcommands.map(
-          (s) => `  ${s.name.padEnd(paddedLength)}${(() => {
-            const description = s.shortDesc ?? s.desc;
-            if (!description?.length) return "";
-            const split = description.split("\n");
-            const first = split.shift();
-            const final = [first, ...split.map((s2) => "".padEnd(preDescPad) + s2)].join("\n");
-            return final;
-          })()}`
-        ).join("\n");
-        console.log(data);
-      }
-      if (options.length) {
-        const aliasLength = options.reduce((p, e) => {
-          const currentLength = e.config.aliases.reduce((pa, a) => pa + a.length, 0) + (e.config.aliases.length - 1) * 2 + 1;
-          return currentLength > p ? currentLength : p;
-        }, 0);
-        const paddedAliasLength = aliasLength > 0 ? aliasLength + 1 : 0;
-        const nameLength = options.reduce((p, e) => {
-          const typeLen = getOptionTypeText(e.config).length;
-          const length = typeLen > 0 ? e.config.name.length + 1 + typeLen : e.config.name.length;
-          return length > p ? length : p;
-        }, 0) + 3;
-        const preDescPad = paddedAliasLength + nameLength + 2;
-        const data = options.map(
-          ({ config: opt }) => `  ${`${opt.aliases.length ? opt.aliases.join(", ") + "," : ""}`.padEnd(paddedAliasLength)}${`${opt.name}${(() => {
-            const typeText = getOptionTypeText(opt);
-            return typeText.length ? " " + typeText : "";
-          })()}`.padEnd(nameLength)}${(() => {
-            if (!opt.description?.length) {
-              return opt.default !== void 0 ? `default: ${JSON.stringify(opt.default)}` : "";
-            }
-            const split = opt.description.split("\n");
-            const first = split.shift();
-            const def = opt.default !== void 0 ? ` (default: ${JSON.stringify(opt.default)})` : "";
-            const final = [first, ...split.map((s) => "".padEnd(preDescPad) + s)].join("\n") + def;
-            return final;
-          })()}`
-        ).join("\n");
-        console.log("\nFlags:");
-        console.log(data);
-      }
-      console.log("\nGlobal flags:");
-      console.log(`  -h, --help      help for ${commandName}`);
-      console.log(`  -v, --version   version${cliName ? ` for ${cliName}` : ""}`);
-      if (subcommands) {
-        console.log(
-          `
-Use "${cliName ? cliName + " " : ""}${commandName} [command] --help" for more information about a command.
-`
-        );
-      }
-      return true;
-    }
-    case "global_help": {
-      const cliName = event.name;
-      const desc = event.description;
-      const commands = event.commands.filter((c) => !c.hidden);
-      if (desc !== void 0) {
-        console.log(`${desc}
-`);
-      }
-      console.log("Usage:");
-      console.log(`  ${cliName ? cliName + " " : ""}[command]`);
-      if (commands.length) {
-        console.log("\nAvailable Commands:");
-        const padding = 3;
-        const maxLength = commands.reduce((p, e) => e.name.length > p ? e.name.length : p, 0);
-        const paddedLength = maxLength + padding;
-        const data = commands.map(
-          (c) => `  ${c.name.padEnd(paddedLength)}${(() => {
-            const desc2 = c.shortDesc ?? c.desc;
-            if (!desc2?.length) return "";
-            const split = desc2.split("\n");
-            const first = split.shift();
-            const final = [first, ...split.map((s) => "".padEnd(paddedLength + 2) + s)].join("\n");
-            return final;
-          })()}`
-        ).join("\n");
-        console.log(data);
-      } else {
-        console.log("\nNo available commands.");
-      }
-      console.log("\nFlags:");
-      console.log(`  -h, --help      help${cliName ? ` for ${cliName}` : ""}`);
-      console.log(`  -v, --version   version${cliName ? ` for ${cliName}` : ""}`);
-      console.log("\n");
-      return true;
-    }
-    case "version": {
-      return true;
-    }
-    case "error": {
-      let msg;
-      switch (event.violation) {
-        case "above_max": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          const option = event.option;
-          const max = option.maxVal;
-          msg = `Invalid value: number type argument '${matchedName}' expects maximal value of ${max} as an input, got: ${data}`;
-          break;
-        }
-        case "below_min": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          const option = event.option;
-          const min = option.minVal;
-          msg = `Invalid value: number type argument '${matchedName}' expects minimal value of ${min} as an input, got: ${data}`;
-          break;
-        }
-        case "expected_int": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          msg = `Invalid value: number type argument '${matchedName}' expects an integer as an input, got: ${data}`;
-          break;
-        }
-        case "invalid_boolean_syntax": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          msg = `Invalid syntax: boolean type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}=<value> | ${matchedName} <value> | ${matchedName}.
-Allowed values: true, false, 0, 1`;
-          break;
-        }
-        case "invalid_string_syntax": {
-          const matchedName = event.offender.namePart;
-          msg = `Invalid syntax: string type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}=<value> | ${matchedName} <value>`;
-          break;
-        }
-        case "invalid_number_syntax": {
-          const matchedName = event.offender.namePart;
-          msg = `Invalid syntax: number type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}=<value> | ${matchedName} <value>`;
-          break;
-        }
-        case "invalid_number_value": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          msg = `Invalid value: number type argument '${matchedName}' expects a number as an input, got: ${data}`;
-          break;
-        }
-        case "enum_violation": {
-          const matchedName = event.offender.namePart;
-          const data = event.offender.dataPart;
-          const option = event.option;
-          const values = option.enumVals;
-          msg = option.type === "positional" ? `Invalid value: value for the positional argument '${option.name}' must be either one of the following: ${values.join(", ")}; Received: ${data}` : `Invalid value: value for the argument '${matchedName}' must be either one of the following: ${values.join(", ")}; Received: ${data}`;
-          break;
-        }
-        case "unknown_command_error": {
-          const msg2 = `Unknown command: '${event.offender}'.
-Type '--help' to get help on the cli.`;
-          console.error(msg2);
-          return true;
-        }
-        case "unknown_subcommand_error": {
-          const cName = getCommandNameWithParents(event.command);
-          const msg2 = `Unknown command: ${cName} ${event.offender}.
-Type '${cName} --help' to get the help on command.`;
-          console.error(msg2);
-          return true;
-        }
-        case "missing_args_error": {
-          const { missing: missingOpts, command: command3 } = event;
-          msg = `Command '${command3.name}' is missing following required options: ${missingOpts.map((opt) => {
-            const name = opt.shift();
-            const aliases = opt;
-            if (aliases.length) return `${name} [${aliases.join(", ")}]`;
-            return name;
-          }).join(", ")}`;
-          break;
-        }
-        case "unrecognized_args_error": {
-          const { command: command3, unrecognized } = event;
-          msg = `Unrecognized options for command '${command3.name}': ${unrecognized.join(", ")}`;
-          break;
-        }
-        case "unknown_error": {
-          const e = event.error;
-          console.error(typeof e === "object" && e !== null && "message" in e ? e.message : e);
-          return true;
-        }
-      }
-      console.error(msg);
-      return true;
-    }
-  }
-  return false;
-};
-var eventHandlerWrapper = (customEventHandler) => async (event) => await customEventHandler(event) ? true : await defaultEventHandler(event);
-
-// src/util.ts
-var import_shell_quote = __toESM(require_shell_quote(), 1);
-function isInt(value) {
-  return value === Math.floor(value);
-}
-var shellArgs = (str) => (0, import_shell_quote.parse)(str).map((e) => e.toString());
-var executeOrLog = async (target) => typeof target === "string" ? console.log(target) : target ? await target() : void 0;
-
-// src/command-core.ts
-var generatePrefix = (name) => name.startsWith("-") ? name : name.length > 1 ? `--${name}` : `-${name}`;
-var validateOptions = (config) => {
-  const cloned = (0, import_clone.default)(config);
-  const entries = [];
-  const storedNames = [];
-  const cfgEntries = Object.entries(cloned);
-  for (const [key, value] of cfgEntries) {
-    const cfg = value._.config;
-    if (cfg.name === void 0) cfg.name = key;
-    if (cfg.type === "positional") continue;
-    if (cfg.name.includes("=")) {
-      throw new BroCliError(
-        `Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`
-      );
-    }
-    for (const alias of cfg.aliases) {
-      if (alias.includes("=")) {
-        throw new BroCliError(
-          `Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`
-        );
-      }
-    }
-    cfg.name = generatePrefix(cfg.name);
-    cfg.aliases = cfg.aliases.map((a) => generatePrefix(a));
-  }
-  for (const [key, value] of cfgEntries) {
-    const cfg = value._.config;
-    if (cfg.type === "positional") {
-      entries.push([key, { config: cfg, $output: void 0 }]);
-      continue;
-    }
-    const reservedNames = ["--help", "-h", "--version", "-v"];
-    const allNames = [cfg.name, ...cfg.aliases];
-    for (const name of allNames) {
-      const match = reservedNames.find((n) => n === name);
-      if (match) throw new BroCliError(`Can't define option '${cfg.name}' - name '${match}' is reserved!`);
-    }
-    for (const storage of storedNames) {
-      const nameOccupier = storage.find((e) => e === cfg.name);
-      if (!nameOccupier) continue;
-      throw new BroCliError(
-        `Can't define option '${cfg.name}' - name is already in use by option '${storage[0]}'!`
-      );
-    }
-    for (const alias of cfg.aliases) {
-      for (const storage of storedNames) {
-        const nameOccupier = storage.find((e) => e === alias);
-        if (!nameOccupier) continue;
-        throw new BroCliError(
-          `Can't define option '${cfg.name}' - alias '${alias}' is already in use by option '${storage[0]}'!`
-        );
-      }
-    }
-    const currentNames = [cfg.name, ...cfg.aliases];
-    storedNames.push(currentNames);
-    currentNames.forEach((name, idx) => {
-      if (currentNames.findIndex((e) => e === name) === idx) return;
-      throw new BroCliError(
-        `Can't define option '${cfg.name}' - duplicate alias '${name}'!`
-      );
-    });
-    entries.push([key, { config: cfg, $output: void 0 }]);
-  }
-  return Object.fromEntries(entries);
-};
-var assignParent = (parent, subcommands) => subcommands.forEach((e) => {
-  e.parent = parent;
-  if (e.subcommands) assignParent(e, e.subcommands);
-});
-var command2 = (command3) => {
-  const allNames = command3.aliases ? [command3.name, ...command3.aliases] : [command3.name];
-  const cmd = (0, import_clone.default)(command3);
-  if (command3.subcommands && command3.options && Object.values(command3.options).find((opt) => opt._.config.type === "positional")) {
-    throw new BroCliError(
-      `Can't define command '${cmd.name}' - command can't have subcommands and positional args at the same time!`
-    );
-  }
-  if (!command3.handler && !command3.subcommands) {
-    throw new BroCliError(
-      `Can't define command '${cmd.name}' - command without subcommands must have a handler present!`
-    );
-  }
-  const processedOptions = command3.options ? validateOptions(command3.options) : void 0;
-  cmd.options = processedOptions;
-  cmd.name = cmd.name ?? cmd.aliases?.shift();
-  if (!cmd.name) throw new BroCliError(`Can't define command without name!`);
-  cmd.aliases = cmd.aliases?.length ? cmd.aliases : void 0;
-  if (cmd.name.startsWith("-")) {
-    throw new BroCliError(`Can't define command '${cmd.name}' - command name can't start with '-'!`);
-  }
-  cmd.aliases?.forEach((a) => {
-    if (a.startsWith("-")) {
-      throw new BroCliError(`Can't define command '${cmd.name}' - command aliases can't start with '-'!`);
-    }
-  });
-  allNames.forEach((n, i) => {
-    if (n === "help") {
-      throw new BroCliError(
-        `Can't define command '${cmd.name}' - 'help' is a reserved name. If you want to redefine help message - do so in runCli's config.`
-      );
-    }
-    const lCaseName = n?.toLowerCase();
-    if (lCaseName === "0" || lCaseName === "1" || lCaseName === "true" || lCaseName === "false") {
-      throw new BroCliError(
-        `Can't define command '${cmd.name}' - '${n}' is a reserved for boolean values name!`
-      );
-    }
-    const idx = allNames.findIndex((an) => an === n);
-    if (idx !== i) throw new BroCliError(`Can't define command '${cmd.name}' - duplicate alias '${n}'!`);
-  });
-  if (cmd.subcommands) {
-    assignParent(cmd, cmd.subcommands);
-  }
-  return cmd;
-};
-var getCommandInner = (commands, candidates, args, cliName, cliDescription) => {
-  const { data: arg, originalIndex: index } = candidates.shift();
-  const command3 = commands.find((c) => {
-    const names = c.aliases ? [c.name, ...c.aliases] : [c.name];
-    const res = names.find((name) => name === arg);
-    return res;
-  });
-  if (!command3) {
-    return {
-      command: command3,
-      args
-    };
-  }
-  const newArgs = removeByIndex(args, index);
-  if (!candidates.length || !command3.subcommands) {
-    return {
-      command: command3,
-      args: newArgs
-    };
-  }
-  const newCandidates = candidates.map((c) => ({ data: c.data, originalIndex: c.originalIndex - 1 }));
-  const subcommand = getCommandInner(command3.subcommands, newCandidates, newArgs, cliName, cliDescription);
-  if (!subcommand.command) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "unknown_subcommand_error",
-      name: cliName,
-      description: cliDescription,
-      command: command3,
-      offender: candidates[0].data
-    });
-  }
-  return subcommand;
-};
-var getCommand = (commands, args, cliName, cliDescription) => {
-  const candidates = [];
-  for (let i = 0; i < args.length; ++i) {
-    const arg = args[i];
-    if (arg === "--help" || arg === "-h" || arg === "--version" || arg === "-v") {
-      const lCaseNext = args[i + 1]?.toLowerCase();
-      if (lCaseNext === "0" || lCaseNext === "1" || lCaseNext === "true" || lCaseNext === "false") ++i;
-      continue;
-    }
-    if (arg?.startsWith("-")) {
-      if (!arg.includes("=")) ++i;
-      continue;
-    }
-    candidates.push({
-      data: arg,
-      originalIndex: i
-    });
-  }
-  if (!candidates.length) {
-    return {
-      command: void 0,
-      args
-    };
-  }
-  const firstCandidate = candidates[0];
-  if (firstCandidate.data === "help") {
-    return {
-      command: "help",
-      args: removeByIndex(args, firstCandidate.originalIndex)
-    };
-  }
-  const { command: command3, args: argsRes } = getCommandInner(commands, candidates, args, cliName, cliDescription);
-  if (!command3) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "unknown_command_error",
-      commands,
-      name: cliName,
-      description: cliDescription,
-      offender: firstCandidate.data
-    });
-  }
-  return {
-    command: command3,
-    args: argsRes
-  };
-};
-var parseArg = (command3, options, positionals, arg, nextArg, cliName, cliDescription) => {
-  let data = void 0;
-  const argSplit = arg.split("=");
-  const hasEq = arg.includes("=");
-  const namePart = argSplit.shift();
-  const dataPart = hasEq ? argSplit.join("=") : nextArg;
-  let skipNext = !hasEq;
-  if (namePart === "--help" || namePart === "-h") {
-    return {
-      isHelp: true
-    };
-  }
-  if (namePart === "--version" || namePart === "-v") {
-    return {
-      isVersion: true
-    };
-  }
-  if (!arg.startsWith("-")) {
-    if (!positionals.length) return {};
-    const pos = positionals.shift();
-    if (pos[1].enumVals && !pos[1].enumVals.find((val) => val === arg)) {
-      throw new BroCliError(void 0, {
-        type: "error",
-        name: cliName,
-        description: cliDescription,
-        violation: "enum_violation",
-        command: command3,
-        option: pos[1],
-        offender: {
-          dataPart: arg
-        }
-      });
-    }
-    data = arg;
-    return {
-      data,
-      skipNext: false,
-      name: pos[0],
-      option: pos[1]
-    };
-  }
-  const option = options.find(([optKey, opt]) => {
-    const names = [opt.name, ...opt.aliases];
-    if (opt.type === "boolean") {
-      const match = names.find((name) => name === namePart);
-      if (!match) return false;
-      let lcaseData = dataPart?.toLowerCase();
-      if (!hasEq && nextArg?.startsWith("-")) {
-        data = true;
-        skipNext = false;
-        return true;
-      }
-      if (lcaseData === void 0 || lcaseData === "" || lcaseData === "true" || lcaseData === "1") {
-        data = true;
-        return true;
-      }
-      if (lcaseData === "false" || lcaseData === "0") {
-        data = false;
-        return true;
-      }
-      if (!hasEq) {
-        data = true;
-        skipNext = false;
-        return true;
-      }
-      throw new BroCliError(void 0, {
-        type: "error",
-        name: cliName,
-        description: cliDescription,
-        violation: "invalid_boolean_syntax",
-        option: opt,
-        command: command3,
-        offender: {
-          namePart,
-          dataPart
-        }
-      });
-    } else {
-      const match = names.find((name) => name === namePart);
-      if (!match) return false;
-      if (opt.type === "string") {
-        if (!hasEq && nextArg === void 0) {
-          throw new BroCliError(void 0, {
-            type: "error",
-            name: cliName,
-            description: cliDescription,
-            violation: "invalid_string_syntax",
-            option: opt,
-            command: command3,
-            offender: {
-              namePart,
-              dataPart
-            }
-          });
-        }
-        if (opt.enumVals && !opt.enumVals.find((val) => val === dataPart)) {
-          throw new BroCliError(void 0, {
-            type: "error",
-            name: cliName,
-            description: cliDescription,
-            violation: "enum_violation",
-            option: opt,
-            command: command3,
-            offender: {
-              namePart,
-              dataPart
-            }
-          });
-        }
-        data = dataPart;
-        return true;
-      }
-      if (!hasEq && nextArg === void 0) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "invalid_number_syntax",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      const numData = Number(dataPart);
-      if (isNaN(numData)) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "invalid_number_value",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      if (opt.isInt && !isInt(numData)) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "expected_int",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      if (opt.minVal !== void 0 && numData < opt.minVal) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "below_min",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      if (opt.maxVal !== void 0 && numData > opt.maxVal) {
-        throw new BroCliError(void 0, {
-          type: "error",
-          name: cliName,
-          description: cliDescription,
-          violation: "above_max",
-          option: opt,
-          command: command3,
-          offender: {
-            namePart,
-            dataPart
-          }
-        });
-      }
-      data = numData;
-      return true;
-    }
-  });
-  return {
-    data,
-    skipNext,
-    name: option?.[0],
-    option: option?.[1]
-  };
-};
-var parseOptions = (command3, args, cliName, cliDescription, omitKeysOfUndefinedOptions) => {
-  const options = command3.options;
-  const optEntries = Object.entries(options ?? {}).map(
-    (opt) => [opt[0], opt[1].config]
-  );
-  const nonPositionalEntries = optEntries.filter(([key, opt]) => opt.type !== "positional");
-  const positionalEntries = optEntries.filter(([key, opt]) => opt.type === "positional");
-  const result = {};
-  const missingRequiredArr = [];
-  const unrecognizedArgsArr = [];
-  for (let i = 0; i < args.length; ++i) {
-    const arg = args[i];
-    const nextArg = args[i + 1];
-    const {
-      data,
-      name,
-      option,
-      skipNext,
-      isHelp,
-      isVersion
-    } = parseArg(command3, nonPositionalEntries, positionalEntries, arg, nextArg, cliName, cliDescription);
-    if (!option) unrecognizedArgsArr.push(arg.split("=")[0]);
-    if (skipNext) ++i;
-    if (isHelp) return "help";
-    if (isVersion) return "version";
-    result[name] = data;
-  }
-  for (const [optKey, option] of optEntries) {
-    const data = result[optKey] ?? option.default;
-    if (!omitKeysOfUndefinedOptions) {
-      result[optKey] = data;
-    } else {
-      if (data !== void 0) result[optKey] = data;
-    }
-    if (option.isRequired && result[optKey] === void 0) missingRequiredArr.push([option.name, ...option.aliases]);
-  }
-  if (missingRequiredArr.length) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "missing_args_error",
-      name: cliName,
-      description: cliDescription,
-      command: command3,
-      missing: missingRequiredArr
-    });
-  }
-  if (unrecognizedArgsArr.length) {
-    throw new BroCliError(void 0, {
-      type: "error",
-      violation: "unrecognized_args_error",
-      name: cliName,
-      description: cliDescription,
-      command: command3,
-      unrecognized: unrecognizedArgsArr
-    });
-  }
-  return Object.keys(result).length ? result : void 0;
-};
-var getCommandNameWithParents = (command3) => command3.parent ? `${getCommandNameWithParents(command3.parent)} ${command3.name}` : command3.name;
-var validateCommands = (commands, parent) => {
-  const storedNames = {};
-  for (const cmd of commands) {
-    const storageVals = Object.values(storedNames);
-    for (const storage of storageVals) {
-      const nameOccupier = storage.find((e) => e === cmd.name);
-      if (!nameOccupier) continue;
-      throw new BroCliError(
-        `Can't define command '${getCommandNameWithParents(cmd)}': name is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`
-      );
-    }
-    if (cmd.aliases) {
-      for (const alias of cmd.aliases) {
-        for (const storage of storageVals) {
-          const nameOccupier = storage.find((e) => e === alias);
-          if (!nameOccupier) continue;
-          throw new BroCliError(
-            `Can't define command '${getCommandNameWithParents(cmd)}': alias '${alias}' is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`
-          );
-        }
-      }
-    }
-    storedNames[cmd.name] = cmd.aliases ? [cmd.name, ...cmd.aliases] : [cmd.name];
-    if (cmd.subcommands) cmd.subcommands = validateCommands(cmd.subcommands, cmd);
-  }
-  return commands;
-};
-var removeByIndex = (arr, idx) => [...arr.slice(0, idx), ...arr.slice(idx + 1, arr.length)];
-var run = async (commands, config) => {
-  const eventHandler = config?.theme ? eventHandlerWrapper(config.theme) : defaultEventHandler;
-  const argSource = config?.argSource ?? process.argv;
-  const version = config?.version;
-  const help = config?.help;
-  const omitKeysOfUndefinedOptions = config?.omitKeysOfUndefinedOptions ?? false;
-  const cliName = config?.name;
-  const cliDescription = config?.description;
-  try {
-    const processedCmds = validateCommands(commands);
-    let args = argSource.slice(2, argSource.length);
-    if (!args.length) {
-      return help !== void 0 ? await executeOrLog(help) : await eventHandler({
-        type: "global_help",
-        description: cliDescription,
-        name: cliName,
-        commands: processedCmds
-      });
-    }
-    const helpIndex = args.findIndex((arg) => arg === "--help" || arg === "-h");
-    if (helpIndex !== -1 && (helpIndex > 0 ? args[helpIndex - 1]?.startsWith("-") && !args[helpIndex - 1].includes("=") ? false : true : true)) {
-      const command4 = getCommand(processedCmds, args, cliName, cliDescription).command;
-      if (typeof command4 === "object") {
-        return command4.help !== void 0 ? await executeOrLog(command4.help) : await eventHandler({
-          type: "command_help",
-          description: cliDescription,
-          name: cliName,
-          command: command4
-        });
-      } else {
-        return help !== void 0 ? await executeOrLog(help) : await eventHandler({
-          type: "global_help",
-          description: cliDescription,
-          name: cliName,
-          commands: processedCmds
-        });
-      }
-    }
-    const versionIndex = args.findIndex((arg) => arg === "--version" || arg === "-v");
-    if (versionIndex !== -1 && (versionIndex > 0 ? args[versionIndex - 1]?.startsWith("-") ? false : true : true)) {
-      return version !== void 0 ? await executeOrLog(version) : await eventHandler({
-        type: "version",
-        name: cliName,
-        description: cliDescription
-      });
-    }
-    const { command: command3, args: newArgs } = getCommand(processedCmds, args, cliName, cliDescription);
-    if (!command3) {
-      return help !== void 0 ? await executeOrLog(help) : await eventHandler({
-        type: "global_help",
-        description: cliDescription,
-        name: cliName,
-        commands: processedCmds
-      });
-    }
-    if (command3 === "help") {
-      let helpCommand;
-      let newestArgs = newArgs;
-      do {
-        const res = getCommand(processedCmds, newestArgs, cliName, cliDescription);
-        helpCommand = res.command;
-        newestArgs = res.args;
-      } while (helpCommand === "help");
-      return helpCommand ? helpCommand.help !== void 0 ? await executeOrLog(helpCommand.help) : await eventHandler({
-        type: "command_help",
-        description: cliDescription,
-        name: cliName,
-        command: helpCommand
-      }) : help !== void 0 ? await executeOrLog(help) : await eventHandler({
-        type: "global_help",
-        description: cliDescription,
-        name: cliName,
-        commands: processedCmds
-      });
-    }
-    const optionResult = parseOptions(command3, newArgs, cliName, cliDescription, omitKeysOfUndefinedOptions);
-    if (optionResult === "help") {
-      return command3.help !== void 0 ? await executeOrLog(command3.help) : await eventHandler({
-        type: "command_help",
-        description: cliDescription,
-        name: cliName,
-        command: command3
-      });
-    }
-    if (optionResult === "version") {
-      return version !== void 0 ? await executeOrLog(version) : await eventHandler({
-        type: "version",
-        name: cliName,
-        description: cliDescription
-      });
-    }
-    if (command3.handler) {
-      if (config?.hook) await config.hook("before", command3);
-      await command3.handler(command3.transform ? await command3.transform(optionResult) : optionResult);
-      if (config?.hook) await config.hook("after", command3);
-      return;
-    } else {
-      return command3.help !== void 0 ? await executeOrLog(command3.help) : await eventHandler({
-        type: "command_help",
-        description: cliDescription,
-        name: cliName,
-        command: command3
-      });
-    }
-  } catch (e) {
-    if (e instanceof BroCliError) {
-      if (e.event) await eventHandler(e.event);
-      else {
-        if (!config?.noExit) console.error(e.message);
-        else return e.message;
-      }
-    } else {
-      await eventHandler({
-        type: "error",
-        violation: "unknown_error",
-        name: cliName,
-        description: cliDescription,
-        error: e
-      });
-    }
-    if (!config?.noExit) process.exit(1);
-    return;
-  }
-};
-var handler = (options, handler2) => handler2;
-var test = async (command3, args) => {
-  try {
-    const cliParsedArgs = shellArgs(args);
-    const options = parseOptions(command3, cliParsedArgs, void 0, void 0);
-    if (options === "help" || options === "version") {
-      return {
-        type: options
-      };
-    }
-    return {
-      options: command3.transform ? await command3.transform(options) : options,
-      type: "handler"
-    };
-  } catch (e) {
-    return {
-      type: "error",
-      error: e
-    };
-  }
-};
-var commandsInfo = (commands) => {
-  const validated = validateCommands(commands);
-  return Object.fromEntries(validated.map((c) => [c.name, {
-    name: c.name,
-    aliases: (0, import_clone.default)(c.aliases),
-    desc: c.desc,
-    shortDesc: c.shortDesc,
-    isHidden: c.hidden,
-    options: c.options ? Object.fromEntries(Object.entries(c.options).map(([key, opt]) => [key, (0, import_clone.default)(opt.config)])) : void 0,
-    metadata: (0, import_clone.default)(c.metadata),
-    subcommands: c.subcommands ? commandsInfo(c.subcommands) : void 0
-  }]));
-};
-
-// src/option-builder.ts
-var OptionBuilderBase = class _OptionBuilderBase {
-  _;
-  config = () => this._.config;
-  constructor(config) {
-    this._ = {
-      config: config ?? {
-        aliases: [],
-        type: "string"
-      },
-      $output: void 0
-    };
-  }
-  string(name) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "string", name });
-  }
-  number(name) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "number", name });
-  }
-  boolean(name) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "boolean", name });
-  }
-  positional(displayName) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, type: "positional", name: displayName });
-  }
-  alias(...aliases) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, aliases });
-  }
-  desc(description) {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, description });
-  }
-  hidden() {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, isHidden: true });
-  }
-  required() {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, isRequired: true });
-  }
-  default(value) {
-    const config = this.config();
-    const enums = config.enumVals;
-    if (enums && !enums.find((v) => value === v)) {
-      throw new Error(
-        `Option enums [ ${enums.join(", ")} ] are incompatible with default value ${value}`
-      );
-    }
-    return new _OptionBuilderBase({ ...config, default: value });
-  }
-  enum(...values) {
-    const config = this.config();
-    const defaultVal = config.default;
-    if (defaultVal !== void 0 && !values.find((v) => defaultVal === v)) {
-      throw new Error(
-        `Option enums [ ${values.join(", ")} ] are incompatible with default value ${defaultVal}`
-      );
-    }
-    return new _OptionBuilderBase({ ...config, enumVals: values });
-  }
-  min(value) {
-    const config = this.config();
-    const maxVal = config.maxVal;
-    if (maxVal !== void 0 && maxVal < value) {
-      throw new BroCliError("Unable to define option's min value to be higher than max value!");
-    }
-    return new _OptionBuilderBase({ ...config, minVal: value });
-  }
-  max(value) {
-    const config = this.config();
-    const minVal = config.minVal;
-    if (minVal !== void 0 && minVal > value) {
-      throw new BroCliError("Unable to define option's max value to be lower than min value!");
-    }
-    return new _OptionBuilderBase({ ...config, maxVal: value });
-  }
-  int() {
-    const config = this.config();
-    return new _OptionBuilderBase({ ...config, isInt: true });
-  }
-};
-function string(name) {
-  return typeof name === "string" ? new OptionBuilderBase().string(name) : new OptionBuilderBase().string();
-}
-function number(name) {
-  return typeof name === "string" ? new OptionBuilderBase().number(name) : new OptionBuilderBase().number();
-}
-function boolean(name) {
-  return typeof name === "string" ? new OptionBuilderBase().boolean(name) : new OptionBuilderBase().boolean();
-}
-function positional(displayName) {
-  return typeof displayName === "string" ? new OptionBuilderBase().positional(displayName) : new OptionBuilderBase().positional();
-}
-export {
-  BroCliError,
-  boolean,
-  command2 as command,
-  commandsInfo,
-  getCommandNameWithParents,
-  handler,
-  number,
-  positional,
-  run,
-  string,
-  test
-};
-//# sourceMappingURL=index.js.map

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
node_modules/@drizzle-team/brocli/index.js.map


+ 0 - 59
node_modules/@drizzle-team/brocli/package.json

@@ -1,59 +0,0 @@
-{
-	"name": "@drizzle-team/brocli",
-	"type": "module",
-	"author": "Drizzle Team",
-	"version": "0.10.2",
-	"description": "Modern type-safe way of building CLIs",
-	"license": "Apache-2.0",
-	"sideEffects": false,
-	"publishConfig": {
-		"provenance": true
-	},
-	"repository": {
-		"type": "git",
-		"url": "git+https://github.com/drizzle-team/brocli.git"
-	},
-	"homepage": "https://github.com/drizzle-team/brocli",
-	"scripts": {
-		"build": "pnpm tsx scripts/build.ts",
-		"b": "pnpm build",
-		"pack": "(cd dist && npm pack --pack-destination ..) && rm -f package.tgz && mv *.tgz package.tgz",
-		"publish": "npm publish package.tgz",
-		"test": "vitest run && npx tsc --noEmit",
-		"mtest": "npx tsx tests/manual.ts",
-		"lint": "dprint check --list-different"
-	},
-	"devDependencies": {
-		"@arethetypeswrong/cli": "^0.15.3",
-		"@originjs/vite-plugin-commonjs": "^1.0.3",
-		"@types/clone": "^2.1.4",
-		"@types/node": "^20.12.13",
-		"@types/shell-quote": "^1.7.5",
-		"clone": "^2.1.2",
-		"dprint": "^0.46.2",
-		"shell-quote": "^1.8.1",
-		"tsup": "^8.1.0",
-		"tsx": "^4.7.0",
-		"typescript": "latest",
-		"vite-tsconfig-paths": "^4.3.2",
-		"vitest": "^1.6.0",
-		"zx": "^8.1.2"
-	},
-	"main": "./index.cjs",
-	"module": "./index.js",
-	"types": "./index.d.ts",
-	"exports": {
-		".": {
-			"import": {
-				"types": "./index.d.ts",
-				"default": "./index.js"
-			},
-			"require": {
-				"types": "./index.d.cjs",
-				"default": "./index.cjs"
-			},
-			"types": "./index.d.ts",
-			"default": "./index.js"
-		}
-	}
-}

+ 0 - 21
node_modules/@esbuild-kit/core-utils/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Hiroki Osame <hiroki.osame@gmail.com>
-
-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.

+ 0 - 11
node_modules/@esbuild-kit/core-utils/README.md

@@ -1,11 +0,0 @@
-# @esbuild-kit/core-utils
-
-Core utility functions used by [@esbuild-kit/cjs-loader](https://github.com/esbuild-kit/cjs-loader) and [@esbuild-kit/esm-loader](https://github.com/esbuild-kit/esm-loader).
-
-## Library
-
-### esbuild
-Transform defaults, caching, and source-map handling.
-
-### Source map support
-Uses [native source-map](https://nodejs.org/api/process.html#processsetsourcemapsenabledval) if available, fallsback to [source-map-support](https://www.npmjs.com/package/source-map-support).

+ 0 - 32
node_modules/@esbuild-kit/core-utils/dist/index.d.ts

@@ -1,32 +0,0 @@
-import { MessagePort } from 'node:worker_threads';
-import { UrlAndMap } from 'source-map-support';
-import { TransformOptions } from 'esbuild';
-
-type Transformed = {
-    code: string;
-    map: RawSourceMap;
-    warnings?: unknown[];
-};
-
-type RawSourceMap = UrlAndMap['map'];
-declare function installSourceMapSupport(
-/**
- * To support Node v20 where loaders are executed in its own thread
- * https://nodejs.org/docs/latest-v20.x/api/esm.html#globalpreload
- */
-loaderPort?: MessagePort): ({ code, map }: Transformed, filePath: string, mainThreadPort?: MessagePort) => string;
-
-declare function transformDynamicImport(filePath: string, code: string): {
-    code: string;
-    map: any;
-} | undefined;
-
-declare function transformSync(code: string, filePath: string, extendOptions?: TransformOptions): Transformed;
-declare function transform(code: string, filePath: string, extendOptions?: TransformOptions): Promise<Transformed>;
-
-declare const resolveTsPath: (filePath: string) => string | undefined;
-
-type Version = [number, number, number];
-declare const compareNodeVersion: (version: Version) => number;
-
-export { RawSourceMap, compareNodeVersion, installSourceMapSupport, resolveTsPath, transform, transformDynamicImport, transformSync };

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 1
node_modules/@esbuild-kit/core-utils/dist/index.js


+ 0 - 16
node_modules/@esbuild-kit/core-utils/node_modules/.bin/esbuild

@@ -1,16 +0,0 @@
-#!/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/../esbuild/bin/esbuild" "$@"
-else 
-  exec node  "$basedir/../esbuild/bin/esbuild" "$@"
-fi

+ 0 - 17
node_modules/@esbuild-kit/core-utils/node_modules/.bin/esbuild.cmd

@@ -1,17 +0,0 @@
-@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%\..\esbuild\bin\esbuild" %*

+ 0 - 28
node_modules/@esbuild-kit/core-utils/node_modules/.bin/esbuild.ps1

@@ -1,28 +0,0 @@
-#!/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/../esbuild/bin/esbuild" $args
-  } else {
-    & "$basedir/node$exe"  "$basedir/../esbuild/bin/esbuild" $args
-  }
-  $ret=$LASTEXITCODE
-} else {
-  # Support pipeline input
-  if ($MyInvocation.ExpectingInput) {
-    $input | & "node$exe"  "$basedir/../esbuild/bin/esbuild" $args
-  } else {
-    & "node$exe"  "$basedir/../esbuild/bin/esbuild" $args
-  }
-  $ret=$LASTEXITCODE
-}
-exit $ret

+ 0 - 3
node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64/README.md

@@ -1,3 +0,0 @@
-# esbuild
-
-This is the Windows 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.

BIN
node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64/esbuild.exe


+ 0 - 17
node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64/package.json

@@ -1,17 +0,0 @@
-{
-  "name": "@esbuild/win32-x64",
-  "version": "0.18.20",
-  "description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
-  "repository": "https://github.com/evanw/esbuild",
-  "license": "MIT",
-  "preferUnplugged": true,
-  "engines": {
-    "node": ">=12"
-  },
-  "os": [
-    "win32"
-  ],
-  "cpu": [
-    "x64"
-  ]
-}

+ 0 - 21
node_modules/@esbuild-kit/core-utils/node_modules/esbuild/LICENSE.md

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 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.

+ 0 - 3
node_modules/@esbuild-kit/core-utils/node_modules/esbuild/README.md

@@ -1,3 +0,0 @@
-# esbuild
-
-This is a JavaScript bundler and minifier. See https://github.com/evanw/esbuild and the [JavaScript API documentation](https://esbuild.github.io/api/) for details.

+ 0 - 221
node_modules/@esbuild-kit/core-utils/node_modules/esbuild/bin/esbuild

@@ -1,221 +0,0 @@
-#!/usr/bin/env node
-"use strict";
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
-  // If the importer is in node compatibility mode or this is not an ESM
-  // file that has been converted to a CommonJS file using a Babel-
-  // compatible transform (i.e. "__esModule" has not been set), then set
-  // "default" to the CommonJS "module.exports" for node compatibility.
-  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
-  mod
-));
-
-// lib/npm/node-platform.ts
-var fs = require("fs");
-var os = require("os");
-var path = require("path");
-var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;
-var isValidBinaryPath = (x) => !!x && x !== "/usr/bin/esbuild";
-var packageDarwin_arm64 = "@esbuild/darwin-arm64";
-var packageDarwin_x64 = "@esbuild/darwin-x64";
-var knownWindowsPackages = {
-  "win32 arm64 LE": "@esbuild/win32-arm64",
-  "win32 ia32 LE": "@esbuild/win32-ia32",
-  "win32 x64 LE": "@esbuild/win32-x64"
-};
-var knownUnixlikePackages = {
-  "android arm64 LE": "@esbuild/android-arm64",
-  "darwin arm64 LE": "@esbuild/darwin-arm64",
-  "darwin x64 LE": "@esbuild/darwin-x64",
-  "freebsd arm64 LE": "@esbuild/freebsd-arm64",
-  "freebsd x64 LE": "@esbuild/freebsd-x64",
-  "linux arm LE": "@esbuild/linux-arm",
-  "linux arm64 LE": "@esbuild/linux-arm64",
-  "linux ia32 LE": "@esbuild/linux-ia32",
-  "linux mips64el LE": "@esbuild/linux-mips64el",
-  "linux ppc64 LE": "@esbuild/linux-ppc64",
-  "linux riscv64 LE": "@esbuild/linux-riscv64",
-  "linux s390x BE": "@esbuild/linux-s390x",
-  "linux x64 LE": "@esbuild/linux-x64",
-  "linux loong64 LE": "@esbuild/linux-loong64",
-  "netbsd x64 LE": "@esbuild/netbsd-x64",
-  "openbsd x64 LE": "@esbuild/openbsd-x64",
-  "sunos x64 LE": "@esbuild/sunos-x64"
-};
-var knownWebAssemblyFallbackPackages = {
-  "android arm LE": "@esbuild/android-arm",
-  "android x64 LE": "@esbuild/android-x64"
-};
-function pkgAndSubpathForCurrentPlatform() {
-  let pkg;
-  let subpath;
-  let isWASM2 = false;
-  let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
-  if (platformKey in knownWindowsPackages) {
-    pkg = knownWindowsPackages[platformKey];
-    subpath = "esbuild.exe";
-  } else if (platformKey in knownUnixlikePackages) {
-    pkg = knownUnixlikePackages[platformKey];
-    subpath = "bin/esbuild";
-  } else if (platformKey in knownWebAssemblyFallbackPackages) {
-    pkg = knownWebAssemblyFallbackPackages[platformKey];
-    subpath = "bin/esbuild";
-    isWASM2 = true;
-  } else {
-    throw new Error(`Unsupported platform: ${platformKey}`);
-  }
-  return { pkg, subpath, isWASM: isWASM2 };
-}
-function pkgForSomeOtherPlatform() {
-  const libMainJS = require.resolve("esbuild");
-  const nodeModulesDirectory = path.dirname(path.dirname(path.dirname(libMainJS)));
-  if (path.basename(nodeModulesDirectory) === "node_modules") {
-    for (const unixKey in knownUnixlikePackages) {
-      try {
-        const pkg = knownUnixlikePackages[unixKey];
-        if (fs.existsSync(path.join(nodeModulesDirectory, pkg)))
-          return pkg;
-      } catch {
-      }
-    }
-    for (const windowsKey in knownWindowsPackages) {
-      try {
-        const pkg = knownWindowsPackages[windowsKey];
-        if (fs.existsSync(path.join(nodeModulesDirectory, pkg)))
-          return pkg;
-      } catch {
-      }
-    }
-  }
-  return null;
-}
-function downloadedBinPath(pkg, subpath) {
-  const esbuildLibDir = path.dirname(require.resolve("esbuild"));
-  return path.join(esbuildLibDir, `downloaded-${pkg.replace("/", "-")}-${path.basename(subpath)}`);
-}
-function generateBinPath() {
-  if (isValidBinaryPath(ESBUILD_BINARY_PATH)) {
-    if (!fs.existsSync(ESBUILD_BINARY_PATH)) {
-      console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`);
-    } else {
-      return { binPath: ESBUILD_BINARY_PATH, isWASM: false };
-    }
-  }
-  const { pkg, subpath, isWASM: isWASM2 } = pkgAndSubpathForCurrentPlatform();
-  let binPath2;
-  try {
-    binPath2 = require.resolve(`${pkg}/${subpath}`);
-  } catch (e) {
-    binPath2 = downloadedBinPath(pkg, subpath);
-    if (!fs.existsSync(binPath2)) {
-      try {
-        require.resolve(pkg);
-      } catch {
-        const otherPkg = pkgForSomeOtherPlatform();
-        if (otherPkg) {
-          let suggestions = `
-Specifically the "${otherPkg}" package is present but this platform
-needs the "${pkg}" package instead. People often get into this
-situation by installing esbuild on Windows or macOS and copying "node_modules"
-into a Docker image that runs Linux, or by copying "node_modules" between
-Windows and WSL environments.
-
-If you are installing with npm, you can try not copying the "node_modules"
-directory when you copy the files over, and running "npm ci" or "npm install"
-on the destination platform after the copy. Or you could consider using yarn
-instead of npm which has built-in support for installing a package on multiple
-platforms simultaneously.
-
-If you are installing with yarn, you can try listing both this platform and the
-other platform in your ".yarnrc.yml" file using the "supportedArchitectures"
-feature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
-Keep in mind that this means multiple copies of esbuild will be present.
-`;
-          if (pkg === packageDarwin_x64 && otherPkg === packageDarwin_arm64 || pkg === packageDarwin_arm64 && otherPkg === packageDarwin_x64) {
-            suggestions = `
-Specifically the "${otherPkg}" package is present but this platform
-needs the "${pkg}" package instead. People often get into this
-situation by installing esbuild with npm running inside of Rosetta 2 and then
-trying to use it with node running outside of Rosetta 2, or vice versa (Rosetta
-2 is Apple's on-the-fly x86_64-to-arm64 translation service).
-
-If you are installing with npm, you can try ensuring that both npm and node are
-not running under Rosetta 2 and then reinstalling esbuild. This likely involves
-changing how you installed npm and/or node. For example, installing node with
-the universal installer here should work: https://nodejs.org/en/download/. Or
-you could consider using yarn instead of npm which has built-in support for
-installing a package on multiple platforms simultaneously.
-
-If you are installing with yarn, you can try listing both "arm64" and "x64"
-in your ".yarnrc.yml" file using the "supportedArchitectures" feature:
-https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
-Keep in mind that this means multiple copies of esbuild will be present.
-`;
-          }
-          throw new Error(`
-You installed esbuild for another platform than the one you're currently using.
-This won't work because esbuild is written with native code and needs to
-install a platform-specific binary executable.
-${suggestions}
-Another alternative is to use the "esbuild-wasm" package instead, which works
-the same way on all platforms. But it comes with a heavy performance cost and
-can sometimes be 10x slower than the "esbuild" package, so you may also not
-want to do that.
-`);
-        }
-        throw new Error(`The package "${pkg}" could not be found, and is needed by esbuild.
-
-If you are installing esbuild with npm, make sure that you don't specify the
-"--no-optional" or "--omit=optional" flags. The "optionalDependencies" feature
-of "package.json" is used by esbuild to install the correct binary executable
-for your current platform.`);
-      }
-      throw e;
-    }
-  }
-  if (/\.zip\//.test(binPath2)) {
-    let pnpapi;
-    try {
-      pnpapi = require("pnpapi");
-    } catch (e) {
-    }
-    if (pnpapi) {
-      const root = pnpapi.getPackageInformation(pnpapi.topLevel).packageLocation;
-      const binTargetPath = path.join(
-        root,
-        "node_modules",
-        ".cache",
-        "esbuild",
-        `pnpapi-${pkg.replace("/", "-")}-${"0.18.20"}-${path.basename(subpath)}`
-      );
-      if (!fs.existsSync(binTargetPath)) {
-        fs.mkdirSync(path.dirname(binTargetPath), { recursive: true });
-        fs.copyFileSync(binPath2, binTargetPath);
-        fs.chmodSync(binTargetPath, 493);
-      }
-      return { binPath: binTargetPath, isWASM: isWASM2 };
-    }
-  }
-  return { binPath: binPath2, isWASM: isWASM2 };
-}
-
-// lib/npm/node-shim.ts
-var { binPath, isWASM } = generateBinPath();
-if (isWASM) {
-  require("child_process").execFileSync("node", [binPath].concat(process.argv.slice(2)), { stdio: "inherit" });
-} else {
-  require("child_process").execFileSync(binPath, process.argv.slice(2), { stdio: "inherit" });
-}

+ 0 - 287
node_modules/@esbuild-kit/core-utils/node_modules/esbuild/install.js

@@ -1,287 +0,0 @@
-"use strict";
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
-  // If the importer is in node compatibility mode or this is not an ESM
-  // file that has been converted to a CommonJS file using a Babel-
-  // compatible transform (i.e. "__esModule" has not been set), then set
-  // "default" to the CommonJS "module.exports" for node compatibility.
-  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
-  mod
-));
-
-// lib/npm/node-platform.ts
-var fs = require("fs");
-var os = require("os");
-var path = require("path");
-var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;
-var isValidBinaryPath = (x) => !!x && x !== "/usr/bin/esbuild";
-var knownWindowsPackages = {
-  "win32 arm64 LE": "@esbuild/win32-arm64",
-  "win32 ia32 LE": "@esbuild/win32-ia32",
-  "win32 x64 LE": "@esbuild/win32-x64"
-};
-var knownUnixlikePackages = {
-  "android arm64 LE": "@esbuild/android-arm64",
-  "darwin arm64 LE": "@esbuild/darwin-arm64",
-  "darwin x64 LE": "@esbuild/darwin-x64",
-  "freebsd arm64 LE": "@esbuild/freebsd-arm64",
-  "freebsd x64 LE": "@esbuild/freebsd-x64",
-  "linux arm LE": "@esbuild/linux-arm",
-  "linux arm64 LE": "@esbuild/linux-arm64",
-  "linux ia32 LE": "@esbuild/linux-ia32",
-  "linux mips64el LE": "@esbuild/linux-mips64el",
-  "linux ppc64 LE": "@esbuild/linux-ppc64",
-  "linux riscv64 LE": "@esbuild/linux-riscv64",
-  "linux s390x BE": "@esbuild/linux-s390x",
-  "linux x64 LE": "@esbuild/linux-x64",
-  "linux loong64 LE": "@esbuild/linux-loong64",
-  "netbsd x64 LE": "@esbuild/netbsd-x64",
-  "openbsd x64 LE": "@esbuild/openbsd-x64",
-  "sunos x64 LE": "@esbuild/sunos-x64"
-};
-var knownWebAssemblyFallbackPackages = {
-  "android arm LE": "@esbuild/android-arm",
-  "android x64 LE": "@esbuild/android-x64"
-};
-function pkgAndSubpathForCurrentPlatform() {
-  let pkg;
-  let subpath;
-  let isWASM = false;
-  let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
-  if (platformKey in knownWindowsPackages) {
-    pkg = knownWindowsPackages[platformKey];
-    subpath = "esbuild.exe";
-  } else if (platformKey in knownUnixlikePackages) {
-    pkg = knownUnixlikePackages[platformKey];
-    subpath = "bin/esbuild";
-  } else if (platformKey in knownWebAssemblyFallbackPackages) {
-    pkg = knownWebAssemblyFallbackPackages[platformKey];
-    subpath = "bin/esbuild";
-    isWASM = true;
-  } else {
-    throw new Error(`Unsupported platform: ${platformKey}`);
-  }
-  return { pkg, subpath, isWASM };
-}
-function downloadedBinPath(pkg, subpath) {
-  const esbuildLibDir = path.dirname(require.resolve("esbuild"));
-  return path.join(esbuildLibDir, `downloaded-${pkg.replace("/", "-")}-${path.basename(subpath)}`);
-}
-
-// lib/npm/node-install.ts
-var fs2 = require("fs");
-var os2 = require("os");
-var path2 = require("path");
-var zlib = require("zlib");
-var https = require("https");
-var child_process = require("child_process");
-var versionFromPackageJSON = require(path2.join(__dirname, "package.json")).version;
-var toPath = path2.join(__dirname, "bin", "esbuild");
-var isToPathJS = true;
-function validateBinaryVersion(...command) {
-  command.push("--version");
-  let stdout;
-  try {
-    stdout = child_process.execFileSync(command.shift(), command, {
-      // Without this, this install script strangely crashes with the error
-      // "EACCES: permission denied, write" but only on Ubuntu Linux when node is
-      // installed from the Snap Store. This is not a problem when you download
-      // the official version of node. The problem appears to be that stderr
-      // (i.e. file descriptor 2) isn't writable?
-      //
-      // More info:
-      // - https://snapcraft.io/ (what the Snap Store is)
-      // - https://nodejs.org/dist/ (download the official version of node)
-      // - https://github.com/evanw/esbuild/issues/1711#issuecomment-1027554035
-      //
-      stdio: "pipe"
-    }).toString().trim();
-  } catch (err) {
-    if (os2.platform() === "darwin" && /_SecTrustEvaluateWithError/.test(err + "")) {
-      let os3 = "this version of macOS";
-      try {
-        os3 = "macOS " + child_process.execFileSync("sw_vers", ["-productVersion"]).toString().trim();
-      } catch {
-      }
-      throw new Error(`The "esbuild" package cannot be installed because ${os3} is too outdated.
-
-The Go compiler (which esbuild relies on) no longer supports ${os3},
-which means the "esbuild" binary executable can't be run. You can either:
-
-  * Update your version of macOS to one that the Go compiler supports
-  * Use the "esbuild-wasm" package instead of the "esbuild" package
-  * Build esbuild yourself using an older version of the Go compiler
-`);
-    }
-    throw err;
-  }
-  if (stdout !== versionFromPackageJSON) {
-    throw new Error(`Expected ${JSON.stringify(versionFromPackageJSON)} but got ${JSON.stringify(stdout)}`);
-  }
-}
-function isYarn() {
-  const { npm_config_user_agent } = process.env;
-  if (npm_config_user_agent) {
-    return /\byarn\//.test(npm_config_user_agent);
-  }
-  return false;
-}
-function fetch(url) {
-  return new Promise((resolve, reject) => {
-    https.get(url, (res) => {
-      if ((res.statusCode === 301 || res.statusCode === 302) && res.headers.location)
-        return fetch(res.headers.location).then(resolve, reject);
-      if (res.statusCode !== 200)
-        return reject(new Error(`Server responded with ${res.statusCode}`));
-      let chunks = [];
-      res.on("data", (chunk) => chunks.push(chunk));
-      res.on("end", () => resolve(Buffer.concat(chunks)));
-    }).on("error", reject);
-  });
-}
-function extractFileFromTarGzip(buffer, subpath) {
-  try {
-    buffer = zlib.unzipSync(buffer);
-  } catch (err) {
-    throw new Error(`Invalid gzip data in archive: ${err && err.message || err}`);
-  }
-  let str = (i, n) => String.fromCharCode(...buffer.subarray(i, i + n)).replace(/\0.*$/, "");
-  let offset = 0;
-  subpath = `package/${subpath}`;
-  while (offset < buffer.length) {
-    let name = str(offset, 100);
-    let size = parseInt(str(offset + 124, 12), 8);
-    offset += 512;
-    if (!isNaN(size)) {
-      if (name === subpath)
-        return buffer.subarray(offset, offset + size);
-      offset += size + 511 & ~511;
-    }
-  }
-  throw new Error(`Could not find ${JSON.stringify(subpath)} in archive`);
-}
-function installUsingNPM(pkg, subpath, binPath) {
-  const env = { ...process.env, npm_config_global: void 0 };
-  const esbuildLibDir = path2.dirname(require.resolve("esbuild"));
-  const installDir = path2.join(esbuildLibDir, "npm-install");
-  fs2.mkdirSync(installDir);
-  try {
-    fs2.writeFileSync(path2.join(installDir, "package.json"), "{}");
-    child_process.execSync(
-      `npm install --loglevel=error --prefer-offline --no-audit --progress=false ${pkg}@${versionFromPackageJSON}`,
-      { cwd: installDir, stdio: "pipe", env }
-    );
-    const installedBinPath = path2.join(installDir, "node_modules", pkg, subpath);
-    fs2.renameSync(installedBinPath, binPath);
-  } finally {
-    try {
-      removeRecursive(installDir);
-    } catch {
-    }
-  }
-}
-function removeRecursive(dir) {
-  for (const entry of fs2.readdirSync(dir)) {
-    const entryPath = path2.join(dir, entry);
-    let stats;
-    try {
-      stats = fs2.lstatSync(entryPath);
-    } catch {
-      continue;
-    }
-    if (stats.isDirectory())
-      removeRecursive(entryPath);
-    else
-      fs2.unlinkSync(entryPath);
-  }
-  fs2.rmdirSync(dir);
-}
-function applyManualBinaryPathOverride(overridePath) {
-  const pathString = JSON.stringify(overridePath);
-  fs2.writeFileSync(toPath, `#!/usr/bin/env node
-require('child_process').execFileSync(${pathString}, process.argv.slice(2), { stdio: 'inherit' });
-`);
-  const libMain = path2.join(__dirname, "lib", "main.js");
-  const code = fs2.readFileSync(libMain, "utf8");
-  fs2.writeFileSync(libMain, `var ESBUILD_BINARY_PATH = ${pathString};
-${code}`);
-}
-function maybeOptimizePackage(binPath) {
-  if (os2.platform() !== "win32" && !isYarn()) {
-    const tempPath = path2.join(__dirname, "bin-esbuild");
-    try {
-      fs2.linkSync(binPath, tempPath);
-      fs2.renameSync(tempPath, toPath);
-      isToPathJS = false;
-      fs2.unlinkSync(tempPath);
-    } catch {
-    }
-  }
-}
-async function downloadDirectlyFromNPM(pkg, subpath, binPath) {
-  const url = `https://registry.npmjs.org/${pkg}/-/${pkg.replace("@esbuild/", "")}-${versionFromPackageJSON}.tgz`;
-  console.error(`[esbuild] Trying to download ${JSON.stringify(url)}`);
-  try {
-    fs2.writeFileSync(binPath, extractFileFromTarGzip(await fetch(url), subpath));
-    fs2.chmodSync(binPath, 493);
-  } catch (e) {
-    console.error(`[esbuild] Failed to download ${JSON.stringify(url)}: ${e && e.message || e}`);
-    throw e;
-  }
-}
-async function checkAndPreparePackage() {
-  if (isValidBinaryPath(ESBUILD_BINARY_PATH)) {
-    if (!fs2.existsSync(ESBUILD_BINARY_PATH)) {
-      console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`);
-    } else {
-      applyManualBinaryPathOverride(ESBUILD_BINARY_PATH);
-      return;
-    }
-  }
-  const { pkg, subpath } = pkgAndSubpathForCurrentPlatform();
-  let binPath;
-  try {
-    binPath = require.resolve(`${pkg}/${subpath}`);
-  } catch (e) {
-    console.error(`[esbuild] Failed to find package "${pkg}" on the file system
-
-This can happen if you use the "--no-optional" flag. The "optionalDependencies"
-package.json feature is used by esbuild to install the correct binary executable
-for your current platform. This install script will now attempt to work around
-this. If that fails, you need to remove the "--no-optional" flag to use esbuild.
-`);
-    binPath = downloadedBinPath(pkg, subpath);
-    try {
-      console.error(`[esbuild] Trying to install package "${pkg}" using npm`);
-      installUsingNPM(pkg, subpath, binPath);
-    } catch (e2) {
-      console.error(`[esbuild] Failed to install package "${pkg}" using npm: ${e2 && e2.message || e2}`);
-      try {
-        await downloadDirectlyFromNPM(pkg, subpath, binPath);
-      } catch (e3) {
-        throw new Error(`Failed to install package "${pkg}"`);
-      }
-    }
-  }
-  maybeOptimizePackage(binPath);
-}
-checkAndPreparePackage().then(() => {
-  if (isToPathJS) {
-    validateBinaryVersion(process.execPath, toPath);
-  } else {
-    validateBinaryVersion(toPath);
-  }
-});

+ 0 - 660
node_modules/@esbuild-kit/core-utils/node_modules/esbuild/lib/main.d.ts

@@ -1,660 +0,0 @@
-export type Platform = 'browser' | 'node' | 'neutral'
-export type Format = 'iife' | 'cjs' | 'esm'
-export type Loader = 'base64' | 'binary' | 'copy' | 'css' | 'dataurl' | 'default' | 'empty' | 'file' | 'js' | 'json' | 'jsx' | 'local-css' | 'text' | 'ts' | 'tsx'
-export type LogLevel = 'verbose' | 'debug' | 'info' | 'warning' | 'error' | 'silent'
-export type Charset = 'ascii' | 'utf8'
-export type Drop = 'console' | 'debugger'
-
-interface CommonOptions {
-  /** Documentation: https://esbuild.github.io/api/#sourcemap */
-  sourcemap?: boolean | 'linked' | 'inline' | 'external' | 'both'
-  /** Documentation: https://esbuild.github.io/api/#legal-comments */
-  legalComments?: 'none' | 'inline' | 'eof' | 'linked' | 'external'
-  /** Documentation: https://esbuild.github.io/api/#source-root */
-  sourceRoot?: string
-  /** Documentation: https://esbuild.github.io/api/#sources-content */
-  sourcesContent?: boolean
-
-  /** Documentation: https://esbuild.github.io/api/#format */
-  format?: Format
-  /** Documentation: https://esbuild.github.io/api/#global-name */
-  globalName?: string
-  /** Documentation: https://esbuild.github.io/api/#target */
-  target?: string | string[]
-  /** Documentation: https://esbuild.github.io/api/#supported */
-  supported?: Record<string, boolean>
-  /** Documentation: https://esbuild.github.io/api/#platform */
-  platform?: Platform
-
-  /** Documentation: https://esbuild.github.io/api/#mangle-props */
-  mangleProps?: RegExp
-  /** Documentation: https://esbuild.github.io/api/#mangle-props */
-  reserveProps?: RegExp
-  /** Documentation: https://esbuild.github.io/api/#mangle-props */
-  mangleQuoted?: boolean
-  /** Documentation: https://esbuild.github.io/api/#mangle-props */
-  mangleCache?: Record<string, string | false>
-  /** Documentation: https://esbuild.github.io/api/#drop */
-  drop?: Drop[]
-  /** Documentation: https://esbuild.github.io/api/#drop-labels */
-  dropLabels?: string[]
-  /** Documentation: https://esbuild.github.io/api/#minify */
-  minify?: boolean
-  /** Documentation: https://esbuild.github.io/api/#minify */
-  minifyWhitespace?: boolean
-  /** Documentation: https://esbuild.github.io/api/#minify */
-  minifyIdentifiers?: boolean
-  /** Documentation: https://esbuild.github.io/api/#minify */
-  minifySyntax?: boolean
-  /** Documentation: https://esbuild.github.io/api/#line-limit */
-  lineLimit?: number
-  /** Documentation: https://esbuild.github.io/api/#charset */
-  charset?: Charset
-  /** Documentation: https://esbuild.github.io/api/#tree-shaking */
-  treeShaking?: boolean
-  /** Documentation: https://esbuild.github.io/api/#ignore-annotations */
-  ignoreAnnotations?: boolean
-
-  /** Documentation: https://esbuild.github.io/api/#jsx */
-  jsx?: 'transform' | 'preserve' | 'automatic'
-  /** Documentation: https://esbuild.github.io/api/#jsx-factory */
-  jsxFactory?: string
-  /** Documentation: https://esbuild.github.io/api/#jsx-fragment */
-  jsxFragment?: string
-  /** Documentation: https://esbuild.github.io/api/#jsx-import-source */
-  jsxImportSource?: string
-  /** Documentation: https://esbuild.github.io/api/#jsx-development */
-  jsxDev?: boolean
-  /** Documentation: https://esbuild.github.io/api/#jsx-side-effects */
-  jsxSideEffects?: boolean
-
-  /** Documentation: https://esbuild.github.io/api/#define */
-  define?: { [key: string]: string }
-  /** Documentation: https://esbuild.github.io/api/#pure */
-  pure?: string[]
-  /** Documentation: https://esbuild.github.io/api/#keep-names */
-  keepNames?: boolean
-
-  /** Documentation: https://esbuild.github.io/api/#color */
-  color?: boolean
-  /** Documentation: https://esbuild.github.io/api/#log-level */
-  logLevel?: LogLevel
-  /** Documentation: https://esbuild.github.io/api/#log-limit */
-  logLimit?: number
-  /** Documentation: https://esbuild.github.io/api/#log-override */
-  logOverride?: Record<string, LogLevel>
-
-  /** Documentation: https://esbuild.github.io/api/#tsconfig-raw */
-  tsconfigRaw?: string | TsconfigRaw
-}
-
-export interface TsconfigRaw {
-  compilerOptions?: {
-    alwaysStrict?: boolean
-    baseUrl?: boolean
-    experimentalDecorators?: boolean
-    importsNotUsedAsValues?: 'remove' | 'preserve' | 'error'
-    jsx?: 'preserve' | 'react-native' | 'react' | 'react-jsx' | 'react-jsxdev'
-    jsxFactory?: string
-    jsxFragmentFactory?: string
-    jsxImportSource?: string
-    paths?: Record<string, string[]>
-    preserveValueImports?: boolean
-    strict?: boolean
-    target?: string
-    useDefineForClassFields?: boolean
-    verbatimModuleSyntax?: boolean
-  }
-}
-
-export interface BuildOptions extends CommonOptions {
-  /** Documentation: https://esbuild.github.io/api/#bundle */
-  bundle?: boolean
-  /** Documentation: https://esbuild.github.io/api/#splitting */
-  splitting?: boolean
-  /** Documentation: https://esbuild.github.io/api/#preserve-symlinks */
-  preserveSymlinks?: boolean
-  /** Documentation: https://esbuild.github.io/api/#outfile */
-  outfile?: string
-  /** Documentation: https://esbuild.github.io/api/#metafile */
-  metafile?: boolean
-  /** Documentation: https://esbuild.github.io/api/#outdir */
-  outdir?: string
-  /** Documentation: https://esbuild.github.io/api/#outbase */
-  outbase?: string
-  /** Documentation: https://esbuild.github.io/api/#external */
-  external?: string[]
-  /** Documentation: https://esbuild.github.io/api/#packages */
-  packages?: 'external'
-  /** Documentation: https://esbuild.github.io/api/#alias */
-  alias?: Record<string, string>
-  /** Documentation: https://esbuild.github.io/api/#loader */
-  loader?: { [ext: string]: Loader }
-  /** Documentation: https://esbuild.github.io/api/#resolve-extensions */
-  resolveExtensions?: string[]
-  /** Documentation: https://esbuild.github.io/api/#main-fields */
-  mainFields?: string[]
-  /** Documentation: https://esbuild.github.io/api/#conditions */
-  conditions?: string[]
-  /** Documentation: https://esbuild.github.io/api/#write */
-  write?: boolean
-  /** Documentation: https://esbuild.github.io/api/#allow-overwrite */
-  allowOverwrite?: boolean
-  /** Documentation: https://esbuild.github.io/api/#tsconfig */
-  tsconfig?: string
-  /** Documentation: https://esbuild.github.io/api/#out-extension */
-  outExtension?: { [ext: string]: string }
-  /** Documentation: https://esbuild.github.io/api/#public-path */
-  publicPath?: string
-  /** Documentation: https://esbuild.github.io/api/#entry-names */
-  entryNames?: string
-  /** Documentation: https://esbuild.github.io/api/#chunk-names */
-  chunkNames?: string
-  /** Documentation: https://esbuild.github.io/api/#asset-names */
-  assetNames?: string
-  /** Documentation: https://esbuild.github.io/api/#inject */
-  inject?: string[]
-  /** Documentation: https://esbuild.github.io/api/#banner */
-  banner?: { [type: string]: string }
-  /** Documentation: https://esbuild.github.io/api/#footer */
-  footer?: { [type: string]: string }
-  /** Documentation: https://esbuild.github.io/api/#entry-points */
-  entryPoints?: string[] | Record<string, string> | { in: string, out: string }[]
-  /** Documentation: https://esbuild.github.io/api/#stdin */
-  stdin?: StdinOptions
-  /** Documentation: https://esbuild.github.io/plugins/ */
-  plugins?: Plugin[]
-  /** Documentation: https://esbuild.github.io/api/#working-directory */
-  absWorkingDir?: string
-  /** Documentation: https://esbuild.github.io/api/#node-paths */
-  nodePaths?: string[]; // The "NODE_PATH" variable from Node.js
-}
-
-export interface StdinOptions {
-  contents: string | Uint8Array
-  resolveDir?: string
-  sourcefile?: string
-  loader?: Loader
-}
-
-export interface Message {
-  id: string
-  pluginName: string
-  text: string
-  location: Location | null
-  notes: Note[]
-
-  /**
-   * Optional user-specified data that is passed through unmodified. You can
-   * use this to stash the original error, for example.
-   */
-  detail: any
-}
-
-export interface Note {
-  text: string
-  location: Location | null
-}
-
-export interface Location {
-  file: string
-  namespace: string
-  /** 1-based */
-  line: number
-  /** 0-based, in bytes */
-  column: number
-  /** in bytes */
-  length: number
-  lineText: string
-  suggestion: string
-}
-
-export interface OutputFile {
-  path: string
-  contents: Uint8Array
-  hash: string
-  /** "contents" as text (changes automatically with "contents") */
-  readonly text: string
-}
-
-export interface BuildResult<ProvidedOptions extends BuildOptions = BuildOptions> {
-  errors: Message[]
-  warnings: Message[]
-  /** Only when "write: false" */
-  outputFiles: OutputFile[] | (ProvidedOptions['write'] extends false ? never : undefined)
-  /** Only when "metafile: true" */
-  metafile: Metafile | (ProvidedOptions['metafile'] extends true ? never : undefined)
-  /** Only when "mangleCache" is present */
-  mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
-}
-
-export interface BuildFailure extends Error {
-  errors: Message[]
-  warnings: Message[]
-}
-
-/** Documentation: https://esbuild.github.io/api/#serve-arguments */
-export interface ServeOptions {
-  port?: number
-  host?: string
-  servedir?: string
-  keyfile?: string
-  certfile?: string
-  fallback?: string
-  onRequest?: (args: ServeOnRequestArgs) => void
-}
-
-export interface ServeOnRequestArgs {
-  remoteAddress: string
-  method: string
-  path: string
-  status: number
-  /** The time to generate the response, not to send it */
-  timeInMS: number
-}
-
-/** Documentation: https://esbuild.github.io/api/#serve-return-values */
-export interface ServeResult {
-  port: number
-  host: string
-}
-
-export interface TransformOptions extends CommonOptions {
-  /** Documentation: https://esbuild.github.io/api/#sourcefile */
-  sourcefile?: string
-  /** Documentation: https://esbuild.github.io/api/#loader */
-  loader?: Loader
-  /** Documentation: https://esbuild.github.io/api/#banner */
-  banner?: string
-  /** Documentation: https://esbuild.github.io/api/#footer */
-  footer?: string
-}
-
-export interface TransformResult<ProvidedOptions extends TransformOptions = TransformOptions> {
-  code: string
-  map: string
-  warnings: Message[]
-  /** Only when "mangleCache" is present */
-  mangleCache: Record<string, string | false> | (ProvidedOptions['mangleCache'] extends Object ? never : undefined)
-  /** Only when "legalComments" is "external" */
-  legalComments: string | (ProvidedOptions['legalComments'] extends 'external' ? never : undefined)
-}
-
-export interface TransformFailure extends Error {
-  errors: Message[]
-  warnings: Message[]
-}
-
-export interface Plugin {
-  name: string
-  setup: (build: PluginBuild) => (void | Promise<void>)
-}
-
-export interface PluginBuild {
-  /** Documentation: https://esbuild.github.io/plugins/#build-options */
-  initialOptions: BuildOptions
-
-  /** Documentation: https://esbuild.github.io/plugins/#resolve */
-  resolve(path: string, options?: ResolveOptions): Promise<ResolveResult>
-
-  /** Documentation: https://esbuild.github.io/plugins/#on-start */
-  onStart(callback: () =>
-    (OnStartResult | null | void | Promise<OnStartResult | null | void>)): void
-
-  /** Documentation: https://esbuild.github.io/plugins/#on-end */
-  onEnd(callback: (result: BuildResult) =>
-    (OnEndResult | null | void | Promise<OnEndResult | null | void>)): void
-
-  /** Documentation: https://esbuild.github.io/plugins/#on-resolve */
-  onResolve(options: OnResolveOptions, callback: (args: OnResolveArgs) =>
-    (OnResolveResult | null | undefined | Promise<OnResolveResult | null | undefined>)): void
-
-  /** Documentation: https://esbuild.github.io/plugins/#on-load */
-  onLoad(options: OnLoadOptions, callback: (args: OnLoadArgs) =>
-    (OnLoadResult | null | undefined | Promise<OnLoadResult | null | undefined>)): void
-
-  /** Documentation: https://esbuild.github.io/plugins/#on-dispose */
-  onDispose(callback: () => void): void
-
-  // This is a full copy of the esbuild library in case you need it
-  esbuild: {
-    context: typeof context,
-    build: typeof build,
-    buildSync: typeof buildSync,
-    transform: typeof transform,
-    transformSync: typeof transformSync,
-    formatMessages: typeof formatMessages,
-    formatMessagesSync: typeof formatMessagesSync,
-    analyzeMetafile: typeof analyzeMetafile,
-    analyzeMetafileSync: typeof analyzeMetafileSync,
-    initialize: typeof initialize,
-    version: typeof version,
-  }
-}
-
-/** Documentation: https://esbuild.github.io/plugins/#resolve-options */
-export interface ResolveOptions {
-  pluginName?: string
-  importer?: string
-  namespace?: string
-  resolveDir?: string
-  kind?: ImportKind
-  pluginData?: any
-}
-
-/** Documentation: https://esbuild.github.io/plugins/#resolve-results */
-export interface ResolveResult {
-  errors: Message[]
-  warnings: Message[]
-
-  path: string
-  external: boolean
-  sideEffects: boolean
-  namespace: string
-  suffix: string
-  pluginData: any
-}
-
-export interface OnStartResult {
-  errors?: PartialMessage[]
-  warnings?: PartialMessage[]
-}
-
-export interface OnEndResult {
-  errors?: PartialMessage[]
-  warnings?: PartialMessage[]
-}
-
-/** Documentation: https://esbuild.github.io/plugins/#on-resolve-options */
-export interface OnResolveOptions {
-  filter: RegExp
-  namespace?: string
-}
-
-/** Documentation: https://esbuild.github.io/plugins/#on-resolve-arguments */
-export interface OnResolveArgs {
-  path: string
-  importer: string
-  namespace: string
-  resolveDir: string
-  kind: ImportKind
-  pluginData: any
-}
-
-export type ImportKind =
-  | 'entry-point'
-
-  // JS
-  | 'import-statement'
-  | 'require-call'
-  | 'dynamic-import'
-  | 'require-resolve'
-
-  // CSS
-  | 'import-rule'
-  | 'composes-from'
-  | 'url-token'
-
-/** Documentation: https://esbuild.github.io/plugins/#on-resolve-results */
-export interface OnResolveResult {
-  pluginName?: string
-
-  errors?: PartialMessage[]
-  warnings?: PartialMessage[]
-
-  path?: string
-  external?: boolean
-  sideEffects?: boolean
-  namespace?: string
-  suffix?: string
-  pluginData?: any
-
-  watchFiles?: string[]
-  watchDirs?: string[]
-}
-
-/** Documentation: https://esbuild.github.io/plugins/#on-load-options */
-export interface OnLoadOptions {
-  filter: RegExp
-  namespace?: string
-}
-
-/** Documentation: https://esbuild.github.io/plugins/#on-load-arguments */
-export interface OnLoadArgs {
-  path: string
-  namespace: string
-  suffix: string
-  pluginData: any
-}
-
-/** Documentation: https://esbuild.github.io/plugins/#on-load-results */
-export interface OnLoadResult {
-  pluginName?: string
-
-  errors?: PartialMessage[]
-  warnings?: PartialMessage[]
-
-  contents?: string | Uint8Array
-  resolveDir?: string
-  loader?: Loader
-  pluginData?: any
-
-  watchFiles?: string[]
-  watchDirs?: string[]
-}
-
-export interface PartialMessage {
-  id?: string
-  pluginName?: string
-  text?: string
-  location?: Partial<Location> | null
-  notes?: PartialNote[]
-  detail?: any
-}
-
-export interface PartialNote {
-  text?: string
-  location?: Partial<Location> | null
-}
-
-/** Documentation: https://esbuild.github.io/api/#metafile */
-export interface Metafile {
-  inputs: {
-    [path: string]: {
-      bytes: number
-      imports: {
-        path: string
-        kind: ImportKind
-        external?: boolean
-        original?: string
-      }[]
-      format?: 'cjs' | 'esm'
-    }
-  }
-  outputs: {
-    [path: string]: {
-      bytes: number
-      inputs: {
-        [path: string]: {
-          bytesInOutput: number
-        }
-      }
-      imports: {
-        path: string
-        kind: ImportKind | 'file-loader'
-        external?: boolean
-      }[]
-      exports: string[]
-      entryPoint?: string
-      cssBundle?: string
-    }
-  }
-}
-
-export interface FormatMessagesOptions {
-  kind: 'error' | 'warning'
-  color?: boolean
-  terminalWidth?: number
-}
-
-export interface AnalyzeMetafileOptions {
-  color?: boolean
-  verbose?: boolean
-}
-
-export interface WatchOptions {
-}
-
-export interface BuildContext<ProvidedOptions extends BuildOptions = BuildOptions> {
-  /** Documentation: https://esbuild.github.io/api/#rebuild */
-  rebuild(): Promise<BuildResult<ProvidedOptions>>
-
-  /** Documentation: https://esbuild.github.io/api/#watch */
-  watch(options?: WatchOptions): Promise<void>
-
-  /** Documentation: https://esbuild.github.io/api/#serve */
-  serve(options?: ServeOptions): Promise<ServeResult>
-
-  cancel(): Promise<void>
-  dispose(): Promise<void>
-}
-
-// This is a TypeScript type-level function which replaces any keys in "In"
-// that aren't in "Out" with "never". We use this to reject properties with
-// typos in object literals. See: https://stackoverflow.com/questions/49580725
-type SameShape<Out, In extends Out> = In & { [Key in Exclude<keyof In, keyof Out>]: never }
-
-/**
- * This function invokes the "esbuild" command-line tool for you. It returns a
- * promise that either resolves with a "BuildResult" object or rejects with a
- * "BuildFailure" object.
- *
- * - Works in node: yes
- * - Works in browser: yes
- *
- * Documentation: https://esbuild.github.io/api/#build
- */
-export declare function build<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildResult<T>>
-
-/**
- * This is the advanced long-running form of "build" that supports additional
- * features such as watch mode and a local development server.
- *
- * - Works in node: yes
- * - Works in browser: no
- *
- * Documentation: https://esbuild.github.io/api/#build
- */
-export declare function context<T extends BuildOptions>(options: SameShape<BuildOptions, T>): Promise<BuildContext<T>>
-
-/**
- * This function transforms a single JavaScript file. It can be used to minify
- * JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript
- * to older JavaScript. It returns a promise that is either resolved with a
- * "TransformResult" object or rejected with a "TransformFailure" object.
- *
- * - Works in node: yes
- * - Works in browser: yes
- *
- * Documentation: https://esbuild.github.io/api/#transform
- */
-export declare function transform<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): Promise<TransformResult<T>>
-
-/**
- * Converts log messages to formatted message strings suitable for printing in
- * the terminal. This allows you to reuse the built-in behavior of esbuild's
- * log message formatter. This is a batch-oriented API for efficiency.
- *
- * - Works in node: yes
- * - Works in browser: yes
- */
-export declare function formatMessages(messages: PartialMessage[], options: FormatMessagesOptions): Promise<string[]>
-
-/**
- * Pretty-prints an analysis of the metafile JSON to a string. This is just for
- * convenience to be able to match esbuild's pretty-printing exactly. If you want
- * to customize it, you can just inspect the data in the metafile yourself.
- *
- * - Works in node: yes
- * - Works in browser: yes
- *
- * Documentation: https://esbuild.github.io/api/#analyze
- */
-export declare function analyzeMetafile(metafile: Metafile | string, options?: AnalyzeMetafileOptions): Promise<string>
-
-/**
- * A synchronous version of "build".
- *
- * - Works in node: yes
- * - Works in browser: no
- *
- * Documentation: https://esbuild.github.io/api/#build
- */
-export declare function buildSync<T extends BuildOptions>(options: SameShape<BuildOptions, T>): BuildResult<T>
-
-/**
- * A synchronous version of "transform".
- *
- * - Works in node: yes
- * - Works in browser: no
- *
- * Documentation: https://esbuild.github.io/api/#transform
- */
-export declare function transformSync<T extends TransformOptions>(input: string | Uint8Array, options?: SameShape<TransformOptions, T>): TransformResult<T>
-
-/**
- * A synchronous version of "formatMessages".
- *
- * - Works in node: yes
- * - Works in browser: no
- */
-export declare function formatMessagesSync(messages: PartialMessage[], options: FormatMessagesOptions): string[]
-
-/**
- * A synchronous version of "analyzeMetafile".
- *
- * - Works in node: yes
- * - Works in browser: no
- *
- * Documentation: https://esbuild.github.io/api/#analyze
- */
-export declare function analyzeMetafileSync(metafile: Metafile | string, options?: AnalyzeMetafileOptions): string
-
-/**
- * This configures the browser-based version of esbuild. It is necessary to
- * call this first and wait for the returned promise to be resolved before
- * making other API calls when using esbuild in the browser.
- *
- * - Works in node: yes
- * - Works in browser: yes ("options" is required)
- *
- * Documentation: https://esbuild.github.io/api/#browser
- */
-export declare function initialize(options: InitializeOptions): Promise<void>
-
-export interface InitializeOptions {
-  /**
-   * The URL of the "esbuild.wasm" file. This must be provided when running
-   * esbuild in the browser.
-   */
-  wasmURL?: string | URL
-
-  /**
-   * The result of calling "new WebAssembly.Module(buffer)" where "buffer"
-   * is a typed array or ArrayBuffer containing the binary code of the
-   * "esbuild.wasm" file.
-   *
-   * You can use this as an alternative to "wasmURL" for environments where it's
-   * not possible to download the WebAssembly module.
-   */
-  wasmModule?: WebAssembly.Module
-
-  /**
-   * By default esbuild runs the WebAssembly-based browser API in a web worker
-   * to avoid blocking the UI thread. This can be disabled by setting "worker"
-   * to false.
-   */
-  worker?: boolean
-}
-
-export let version: string

+ 0 - 2393
node_modules/@esbuild-kit/core-utils/node_modules/esbuild/lib/main.js

@@ -1,2393 +0,0 @@
-"use strict";
-var __create = Object.create;
-var __defProp = Object.defineProperty;
-var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
-var __getOwnPropNames = Object.getOwnPropertyNames;
-var __getProtoOf = Object.getPrototypeOf;
-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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
-  // If the importer is in node compatibility mode or this is not an ESM
-  // file that has been converted to a CommonJS file using a Babel-
-  // compatible transform (i.e. "__esModule" has not been set), then set
-  // "default" to the CommonJS "module.exports" for node compatibility.
-  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
-  mod
-));
-var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-
-// lib/npm/node.ts
-var node_exports = {};
-__export(node_exports, {
-  analyzeMetafile: () => analyzeMetafile,
-  analyzeMetafileSync: () => analyzeMetafileSync,
-  build: () => build,
-  buildSync: () => buildSync,
-  context: () => context,
-  default: () => node_default,
-  formatMessages: () => formatMessages,
-  formatMessagesSync: () => formatMessagesSync,
-  initialize: () => initialize,
-  transform: () => transform,
-  transformSync: () => transformSync,
-  version: () => version
-});
-module.exports = __toCommonJS(node_exports);
-
-// lib/shared/stdio_protocol.ts
-function encodePacket(packet) {
-  let visit = (value) => {
-    if (value === null) {
-      bb.write8(0);
-    } else if (typeof value === "boolean") {
-      bb.write8(1);
-      bb.write8(+value);
-    } else if (typeof value === "number") {
-      bb.write8(2);
-      bb.write32(value | 0);
-    } else if (typeof value === "string") {
-      bb.write8(3);
-      bb.write(encodeUTF8(value));
-    } else if (value instanceof Uint8Array) {
-      bb.write8(4);
-      bb.write(value);
-    } else if (value instanceof Array) {
-      bb.write8(5);
-      bb.write32(value.length);
-      for (let item of value) {
-        visit(item);
-      }
-    } else {
-      let keys = Object.keys(value);
-      bb.write8(6);
-      bb.write32(keys.length);
-      for (let key of keys) {
-        bb.write(encodeUTF8(key));
-        visit(value[key]);
-      }
-    }
-  };
-  let bb = new ByteBuffer();
-  bb.write32(0);
-  bb.write32(packet.id << 1 | +!packet.isRequest);
-  visit(packet.value);
-  writeUInt32LE(bb.buf, bb.len - 4, 0);
-  return bb.buf.subarray(0, bb.len);
-}
-function decodePacket(bytes) {
-  let visit = () => {
-    switch (bb.read8()) {
-      case 0:
-        return null;
-      case 1:
-        return !!bb.read8();
-      case 2:
-        return bb.read32();
-      case 3:
-        return decodeUTF8(bb.read());
-      case 4:
-        return bb.read();
-      case 5: {
-        let count = bb.read32();
-        let value2 = [];
-        for (let i = 0; i < count; i++) {
-          value2.push(visit());
-        }
-        return value2;
-      }
-      case 6: {
-        let count = bb.read32();
-        let value2 = {};
-        for (let i = 0; i < count; i++) {
-          value2[decodeUTF8(bb.read())] = visit();
-        }
-        return value2;
-      }
-      default:
-        throw new Error("Invalid packet");
-    }
-  };
-  let bb = new ByteBuffer(bytes);
-  let id = bb.read32();
-  let isRequest = (id & 1) === 0;
-  id >>>= 1;
-  let value = visit();
-  if (bb.ptr !== bytes.length) {
-    throw new Error("Invalid packet");
-  }
-  return { id, isRequest, value };
-}
-var ByteBuffer = class {
-  constructor(buf = new Uint8Array(1024)) {
-    this.buf = buf;
-    this.len = 0;
-    this.ptr = 0;
-  }
-  _write(delta) {
-    if (this.len + delta > this.buf.length) {
-      let clone = new Uint8Array((this.len + delta) * 2);
-      clone.set(this.buf);
-      this.buf = clone;
-    }
-    this.len += delta;
-    return this.len - delta;
-  }
-  write8(value) {
-    let offset = this._write(1);
-    this.buf[offset] = value;
-  }
-  write32(value) {
-    let offset = this._write(4);
-    writeUInt32LE(this.buf, value, offset);
-  }
-  write(bytes) {
-    let offset = this._write(4 + bytes.length);
-    writeUInt32LE(this.buf, bytes.length, offset);
-    this.buf.set(bytes, offset + 4);
-  }
-  _read(delta) {
-    if (this.ptr + delta > this.buf.length) {
-      throw new Error("Invalid packet");
-    }
-    this.ptr += delta;
-    return this.ptr - delta;
-  }
-  read8() {
-    return this.buf[this._read(1)];
-  }
-  read32() {
-    return readUInt32LE(this.buf, this._read(4));
-  }
-  read() {
-    let length = this.read32();
-    let bytes = new Uint8Array(length);
-    let ptr = this._read(bytes.length);
-    bytes.set(this.buf.subarray(ptr, ptr + length));
-    return bytes;
-  }
-};
-var encodeUTF8;
-var decodeUTF8;
-var encodeInvariant;
-if (typeof TextEncoder !== "undefined" && typeof TextDecoder !== "undefined") {
-  let encoder = new TextEncoder();
-  let decoder = new TextDecoder();
-  encodeUTF8 = (text) => encoder.encode(text);
-  decodeUTF8 = (bytes) => decoder.decode(bytes);
-  encodeInvariant = 'new TextEncoder().encode("")';
-} else if (typeof Buffer !== "undefined") {
-  encodeUTF8 = (text) => Buffer.from(text);
-  decodeUTF8 = (bytes) => {
-    let { buffer, byteOffset, byteLength } = bytes;
-    return Buffer.from(buffer, byteOffset, byteLength).toString();
-  };
-  encodeInvariant = 'Buffer.from("")';
-} else {
-  throw new Error("No UTF-8 codec found");
-}
-if (!(encodeUTF8("") instanceof Uint8Array))
-  throw new Error(`Invariant violation: "${encodeInvariant} instanceof Uint8Array" is incorrectly false
-
-This indicates that your JavaScript environment is broken. You cannot use
-esbuild in this environment because esbuild relies on this invariant. This
-is not a problem with esbuild. You need to fix your environment instead.
-`);
-function readUInt32LE(buffer, offset) {
-  return buffer[offset++] | buffer[offset++] << 8 | buffer[offset++] << 16 | buffer[offset++] << 24;
-}
-function writeUInt32LE(buffer, value, offset) {
-  buffer[offset++] = value;
-  buffer[offset++] = value >> 8;
-  buffer[offset++] = value >> 16;
-  buffer[offset++] = value >> 24;
-}
-
-// lib/shared/common.ts
-var quote = JSON.stringify;
-var buildLogLevelDefault = "warning";
-var transformLogLevelDefault = "silent";
-function validateTarget(target) {
-  validateStringValue(target, "target");
-  if (target.indexOf(",") >= 0)
-    throw new Error(`Invalid target: ${target}`);
-  return target;
-}
-var canBeAnything = () => null;
-var mustBeBoolean = (value) => typeof value === "boolean" ? null : "a boolean";
-var mustBeString = (value) => typeof value === "string" ? null : "a string";
-var mustBeRegExp = (value) => value instanceof RegExp ? null : "a RegExp object";
-var mustBeInteger = (value) => typeof value === "number" && value === (value | 0) ? null : "an integer";
-var mustBeFunction = (value) => typeof value === "function" ? null : "a function";
-var mustBeArray = (value) => Array.isArray(value) ? null : "an array";
-var mustBeObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? null : "an object";
-var mustBeEntryPoints = (value) => typeof value === "object" && value !== null ? null : "an array or an object";
-var mustBeWebAssemblyModule = (value) => value instanceof WebAssembly.Module ? null : "a WebAssembly.Module";
-var mustBeObjectOrNull = (value) => typeof value === "object" && !Array.isArray(value) ? null : "an object or null";
-var mustBeStringOrBoolean = (value) => typeof value === "string" || typeof value === "boolean" ? null : "a string or a boolean";
-var mustBeStringOrObject = (value) => typeof value === "string" || typeof value === "object" && value !== null && !Array.isArray(value) ? null : "a string or an object";
-var mustBeStringOrArray = (value) => typeof value === "string" || Array.isArray(value) ? null : "a string or an array";
-var mustBeStringOrUint8Array = (value) => typeof value === "string" || value instanceof Uint8Array ? null : "a string or a Uint8Array";
-var mustBeStringOrURL = (value) => typeof value === "string" || value instanceof URL ? null : "a string or a URL";
-function getFlag(object, keys, key, mustBeFn) {
-  let value = object[key];
-  keys[key + ""] = true;
-  if (value === void 0)
-    return void 0;
-  let mustBe = mustBeFn(value);
-  if (mustBe !== null)
-    throw new Error(`${quote(key)} must be ${mustBe}`);
-  return value;
-}
-function checkForInvalidFlags(object, keys, where) {
-  for (let key in object) {
-    if (!(key in keys)) {
-      throw new Error(`Invalid option ${where}: ${quote(key)}`);
-    }
-  }
-}
-function validateInitializeOptions(options) {
-  let keys = /* @__PURE__ */ Object.create(null);
-  let wasmURL = getFlag(options, keys, "wasmURL", mustBeStringOrURL);
-  let wasmModule = getFlag(options, keys, "wasmModule", mustBeWebAssemblyModule);
-  let worker = getFlag(options, keys, "worker", mustBeBoolean);
-  checkForInvalidFlags(options, keys, "in initialize() call");
-  return {
-    wasmURL,
-    wasmModule,
-    worker
-  };
-}
-function validateMangleCache(mangleCache) {
-  let validated;
-  if (mangleCache !== void 0) {
-    validated = /* @__PURE__ */ Object.create(null);
-    for (let key in mangleCache) {
-      let value = mangleCache[key];
-      if (typeof value === "string" || value === false) {
-        validated[key] = value;
-      } else {
-        throw new Error(`Expected ${quote(key)} in mangle cache to map to either a string or false`);
-      }
-    }
-  }
-  return validated;
-}
-function pushLogFlags(flags, options, keys, isTTY2, logLevelDefault) {
-  let color = getFlag(options, keys, "color", mustBeBoolean);
-  let logLevel = getFlag(options, keys, "logLevel", mustBeString);
-  let logLimit = getFlag(options, keys, "logLimit", mustBeInteger);
-  if (color !== void 0)
-    flags.push(`--color=${color}`);
-  else if (isTTY2)
-    flags.push(`--color=true`);
-  flags.push(`--log-level=${logLevel || logLevelDefault}`);
-  flags.push(`--log-limit=${logLimit || 0}`);
-}
-function validateStringValue(value, what, key) {
-  if (typeof value !== "string") {
-    throw new Error(`Expected value for ${what}${key !== void 0 ? " " + quote(key) : ""} to be a string, got ${typeof value} instead`);
-  }
-  return value;
-}
-function pushCommonFlags(flags, options, keys) {
-  let legalComments = getFlag(options, keys, "legalComments", mustBeString);
-  let sourceRoot = getFlag(options, keys, "sourceRoot", mustBeString);
-  let sourcesContent = getFlag(options, keys, "sourcesContent", mustBeBoolean);
-  let target = getFlag(options, keys, "target", mustBeStringOrArray);
-  let format = getFlag(options, keys, "format", mustBeString);
-  let globalName = getFlag(options, keys, "globalName", mustBeString);
-  let mangleProps = getFlag(options, keys, "mangleProps", mustBeRegExp);
-  let reserveProps = getFlag(options, keys, "reserveProps", mustBeRegExp);
-  let mangleQuoted = getFlag(options, keys, "mangleQuoted", mustBeBoolean);
-  let minify = getFlag(options, keys, "minify", mustBeBoolean);
-  let minifySyntax = getFlag(options, keys, "minifySyntax", mustBeBoolean);
-  let minifyWhitespace = getFlag(options, keys, "minifyWhitespace", mustBeBoolean);
-  let minifyIdentifiers = getFlag(options, keys, "minifyIdentifiers", mustBeBoolean);
-  let lineLimit = getFlag(options, keys, "lineLimit", mustBeInteger);
-  let drop = getFlag(options, keys, "drop", mustBeArray);
-  let dropLabels = getFlag(options, keys, "dropLabels", mustBeArray);
-  let charset = getFlag(options, keys, "charset", mustBeString);
-  let treeShaking = getFlag(options, keys, "treeShaking", mustBeBoolean);
-  let ignoreAnnotations = getFlag(options, keys, "ignoreAnnotations", mustBeBoolean);
-  let jsx = getFlag(options, keys, "jsx", mustBeString);
-  let jsxFactory = getFlag(options, keys, "jsxFactory", mustBeString);
-  let jsxFragment = getFlag(options, keys, "jsxFragment", mustBeString);
-  let jsxImportSource = getFlag(options, keys, "jsxImportSource", mustBeString);
-  let jsxDev = getFlag(options, keys, "jsxDev", mustBeBoolean);
-  let jsxSideEffects = getFlag(options, keys, "jsxSideEffects", mustBeBoolean);
-  let define = getFlag(options, keys, "define", mustBeObject);
-  let logOverride = getFlag(options, keys, "logOverride", mustBeObject);
-  let supported = getFlag(options, keys, "supported", mustBeObject);
-  let pure = getFlag(options, keys, "pure", mustBeArray);
-  let keepNames = getFlag(options, keys, "keepNames", mustBeBoolean);
-  let platform = getFlag(options, keys, "platform", mustBeString);
-  let tsconfigRaw = getFlag(options, keys, "tsconfigRaw", mustBeStringOrObject);
-  if (legalComments)
-    flags.push(`--legal-comments=${legalComments}`);
-  if (sourceRoot !== void 0)
-    flags.push(`--source-root=${sourceRoot}`);
-  if (sourcesContent !== void 0)
-    flags.push(`--sources-content=${sourcesContent}`);
-  if (target) {
-    if (Array.isArray(target))
-      flags.push(`--target=${Array.from(target).map(validateTarget).join(",")}`);
-    else
-      flags.push(`--target=${validateTarget(target)}`);
-  }
-  if (format)
-    flags.push(`--format=${format}`);
-  if (globalName)
-    flags.push(`--global-name=${globalName}`);
-  if (platform)
-    flags.push(`--platform=${platform}`);
-  if (tsconfigRaw)
-    flags.push(`--tsconfig-raw=${typeof tsconfigRaw === "string" ? tsconfigRaw : JSON.stringify(tsconfigRaw)}`);
-  if (minify)
-    flags.push("--minify");
-  if (minifySyntax)
-    flags.push("--minify-syntax");
-  if (minifyWhitespace)
-    flags.push("--minify-whitespace");
-  if (minifyIdentifiers)
-    flags.push("--minify-identifiers");
-  if (lineLimit)
-    flags.push(`--line-limit=${lineLimit}`);
-  if (charset)
-    flags.push(`--charset=${charset}`);
-  if (treeShaking !== void 0)
-    flags.push(`--tree-shaking=${treeShaking}`);
-  if (ignoreAnnotations)
-    flags.push(`--ignore-annotations`);
-  if (drop)
-    for (let what of drop)
-      flags.push(`--drop:${validateStringValue(what, "drop")}`);
-  if (dropLabels)
-    flags.push(`--drop-labels=${Array.from(dropLabels).map((what) => validateStringValue(what, "dropLabels")).join(",")}`);
-  if (mangleProps)
-    flags.push(`--mangle-props=${mangleProps.source}`);
-  if (reserveProps)
-    flags.push(`--reserve-props=${reserveProps.source}`);
-  if (mangleQuoted !== void 0)
-    flags.push(`--mangle-quoted=${mangleQuoted}`);
-  if (jsx)
-    flags.push(`--jsx=${jsx}`);
-  if (jsxFactory)
-    flags.push(`--jsx-factory=${jsxFactory}`);
-  if (jsxFragment)
-    flags.push(`--jsx-fragment=${jsxFragment}`);
-  if (jsxImportSource)
-    flags.push(`--jsx-import-source=${jsxImportSource}`);
-  if (jsxDev)
-    flags.push(`--jsx-dev`);
-  if (jsxSideEffects)
-    flags.push(`--jsx-side-effects`);
-  if (define) {
-    for (let key in define) {
-      if (key.indexOf("=") >= 0)
-        throw new Error(`Invalid define: ${key}`);
-      flags.push(`--define:${key}=${validateStringValue(define[key], "define", key)}`);
-    }
-  }
-  if (logOverride) {
-    for (let key in logOverride) {
-      if (key.indexOf("=") >= 0)
-        throw new Error(`Invalid log override: ${key}`);
-      flags.push(`--log-override:${key}=${validateStringValue(logOverride[key], "log override", key)}`);
-    }
-  }
-  if (supported) {
-    for (let key in supported) {
-      if (key.indexOf("=") >= 0)
-        throw new Error(`Invalid supported: ${key}`);
-      const value = supported[key];
-      if (typeof value !== "boolean")
-        throw new Error(`Expected value for supported ${quote(key)} to be a boolean, got ${typeof value} instead`);
-      flags.push(`--supported:${key}=${value}`);
-    }
-  }
-  if (pure)
-    for (let fn of pure)
-      flags.push(`--pure:${validateStringValue(fn, "pure")}`);
-  if (keepNames)
-    flags.push(`--keep-names`);
-}
-function flagsForBuildOptions(callName, options, isTTY2, logLevelDefault, writeDefault) {
-  var _a2;
-  let flags = [];
-  let entries = [];
-  let keys = /* @__PURE__ */ Object.create(null);
-  let stdinContents = null;
-  let stdinResolveDir = null;
-  pushLogFlags(flags, options, keys, isTTY2, logLevelDefault);
-  pushCommonFlags(flags, options, keys);
-  let sourcemap = getFlag(options, keys, "sourcemap", mustBeStringOrBoolean);
-  let bundle = getFlag(options, keys, "bundle", mustBeBoolean);
-  let splitting = getFlag(options, keys, "splitting", mustBeBoolean);
-  let preserveSymlinks = getFlag(options, keys, "preserveSymlinks", mustBeBoolean);
-  let metafile = getFlag(options, keys, "metafile", mustBeBoolean);
-  let outfile = getFlag(options, keys, "outfile", mustBeString);
-  let outdir = getFlag(options, keys, "outdir", mustBeString);
-  let outbase = getFlag(options, keys, "outbase", mustBeString);
-  let tsconfig = getFlag(options, keys, "tsconfig", mustBeString);
-  let resolveExtensions = getFlag(options, keys, "resolveExtensions", mustBeArray);
-  let nodePathsInput = getFlag(options, keys, "nodePaths", mustBeArray);
-  let mainFields = getFlag(options, keys, "mainFields", mustBeArray);
-  let conditions = getFlag(options, keys, "conditions", mustBeArray);
-  let external = getFlag(options, keys, "external", mustBeArray);
-  let packages = getFlag(options, keys, "packages", mustBeString);
-  let alias = getFlag(options, keys, "alias", mustBeObject);
-  let loader = getFlag(options, keys, "loader", mustBeObject);
-  let outExtension = getFlag(options, keys, "outExtension", mustBeObject);
-  let publicPath = getFlag(options, keys, "publicPath", mustBeString);
-  let entryNames = getFlag(options, keys, "entryNames", mustBeString);
-  let chunkNames = getFlag(options, keys, "chunkNames", mustBeString);
-  let assetNames = getFlag(options, keys, "assetNames", mustBeString);
-  let inject = getFlag(options, keys, "inject", mustBeArray);
-  let banner = getFlag(options, keys, "banner", mustBeObject);
-  let footer = getFlag(options, keys, "footer", mustBeObject);
-  let entryPoints = getFlag(options, keys, "entryPoints", mustBeEntryPoints);
-  let absWorkingDir = getFlag(options, keys, "absWorkingDir", mustBeString);
-  let stdin = getFlag(options, keys, "stdin", mustBeObject);
-  let write = (_a2 = getFlag(options, keys, "write", mustBeBoolean)) != null ? _a2 : writeDefault;
-  let allowOverwrite = getFlag(options, keys, "allowOverwrite", mustBeBoolean);
-  let mangleCache = getFlag(options, keys, "mangleCache", mustBeObject);
-  keys.plugins = true;
-  checkForInvalidFlags(options, keys, `in ${callName}() call`);
-  if (sourcemap)
-    flags.push(`--sourcemap${sourcemap === true ? "" : `=${sourcemap}`}`);
-  if (bundle)
-    flags.push("--bundle");
-  if (allowOverwrite)
-    flags.push("--allow-overwrite");
-  if (splitting)
-    flags.push("--splitting");
-  if (preserveSymlinks)
-    flags.push("--preserve-symlinks");
-  if (metafile)
-    flags.push(`--metafile`);
-  if (outfile)
-    flags.push(`--outfile=${outfile}`);
-  if (outdir)
-    flags.push(`--outdir=${outdir}`);
-  if (outbase)
-    flags.push(`--outbase=${outbase}`);
-  if (tsconfig)
-    flags.push(`--tsconfig=${tsconfig}`);
-  if (packages)
-    flags.push(`--packages=${packages}`);
-  if (resolveExtensions) {
-    let values = [];
-    for (let value of resolveExtensions) {
-      validateStringValue(value, "resolve extension");
-      if (value.indexOf(",") >= 0)
-        throw new Error(`Invalid resolve extension: ${value}`);
-      values.push(value);
-    }
-    flags.push(`--resolve-extensions=${values.join(",")}`);
-  }
-  if (publicPath)
-    flags.push(`--public-path=${publicPath}`);
-  if (entryNames)
-    flags.push(`--entry-names=${entryNames}`);
-  if (chunkNames)
-    flags.push(`--chunk-names=${chunkNames}`);
-  if (assetNames)
-    flags.push(`--asset-names=${assetNames}`);
-  if (mainFields) {
-    let values = [];
-    for (let value of mainFields) {
-      validateStringValue(value, "main field");
-      if (value.indexOf(",") >= 0)
-        throw new Error(`Invalid main field: ${value}`);
-      values.push(value);
-    }
-    flags.push(`--main-fields=${values.join(",")}`);
-  }
-  if (conditions) {
-    let values = [];
-    for (let value of conditions) {
-      validateStringValue(value, "condition");
-      if (value.indexOf(",") >= 0)
-        throw new Error(`Invalid condition: ${value}`);
-      values.push(value);
-    }
-    flags.push(`--conditions=${values.join(",")}`);
-  }
-  if (external)
-    for (let name of external)
-      flags.push(`--external:${validateStringValue(name, "external")}`);
-  if (alias) {
-    for (let old in alias) {
-      if (old.indexOf("=") >= 0)
-        throw new Error(`Invalid package name in alias: ${old}`);
-      flags.push(`--alias:${old}=${validateStringValue(alias[old], "alias", old)}`);
-    }
-  }
-  if (banner) {
-    for (let type in banner) {
-      if (type.indexOf("=") >= 0)
-        throw new Error(`Invalid banner file type: ${type}`);
-      flags.push(`--banner:${type}=${validateStringValue(banner[type], "banner", type)}`);
-    }
-  }
-  if (footer) {
-    for (let type in footer) {
-      if (type.indexOf("=") >= 0)
-        throw new Error(`Invalid footer file type: ${type}`);
-      flags.push(`--footer:${type}=${validateStringValue(footer[type], "footer", type)}`);
-    }
-  }
-  if (inject)
-    for (let path3 of inject)
-      flags.push(`--inject:${validateStringValue(path3, "inject")}`);
-  if (loader) {
-    for (let ext in loader) {
-      if (ext.indexOf("=") >= 0)
-        throw new Error(`Invalid loader extension: ${ext}`);
-      flags.push(`--loader:${ext}=${validateStringValue(loader[ext], "loader", ext)}`);
-    }
-  }
-  if (outExtension) {
-    for (let ext in outExtension) {
-      if (ext.indexOf("=") >= 0)
-        throw new Error(`Invalid out extension: ${ext}`);
-      flags.push(`--out-extension:${ext}=${validateStringValue(outExtension[ext], "out extension", ext)}`);
-    }
-  }
-  if (entryPoints) {
-    if (Array.isArray(entryPoints)) {
-      for (let i = 0, n = entryPoints.length; i < n; i++) {
-        let entryPoint = entryPoints[i];
-        if (typeof entryPoint === "object" && entryPoint !== null) {
-          let entryPointKeys = /* @__PURE__ */ Object.create(null);
-          let input = getFlag(entryPoint, entryPointKeys, "in", mustBeString);
-          let output = getFlag(entryPoint, entryPointKeys, "out", mustBeString);
-          checkForInvalidFlags(entryPoint, entryPointKeys, "in entry point at index " + i);
-          if (input === void 0)
-            throw new Error('Missing property "in" for entry point at index ' + i);
-          if (output === void 0)
-            throw new Error('Missing property "out" for entry point at index ' + i);
-          entries.push([output, input]);
-        } else {
-          entries.push(["", validateStringValue(entryPoint, "entry point at index " + i)]);
-        }
-      }
-    } else {
-      for (let key in entryPoints) {
-        entries.push([key, validateStringValue(entryPoints[key], "entry point", key)]);
-      }
-    }
-  }
-  if (stdin) {
-    let stdinKeys = /* @__PURE__ */ Object.create(null);
-    let contents = getFlag(stdin, stdinKeys, "contents", mustBeStringOrUint8Array);
-    let resolveDir = getFlag(stdin, stdinKeys, "resolveDir", mustBeString);
-    let sourcefile = getFlag(stdin, stdinKeys, "sourcefile", mustBeString);
-    let loader2 = getFlag(stdin, stdinKeys, "loader", mustBeString);
-    checkForInvalidFlags(stdin, stdinKeys, 'in "stdin" object');
-    if (sourcefile)
-      flags.push(`--sourcefile=${sourcefile}`);
-    if (loader2)
-      flags.push(`--loader=${loader2}`);
-    if (resolveDir)
-      stdinResolveDir = resolveDir;
-    if (typeof contents === "string")
-      stdinContents = encodeUTF8(contents);
-    else if (contents instanceof Uint8Array)
-      stdinContents = contents;
-  }
-  let nodePaths = [];
-  if (nodePathsInput) {
-    for (let value of nodePathsInput) {
-      value += "";
-      nodePaths.push(value);
-    }
-  }
-  return {
-    entries,
-    flags,
-    write,
-    stdinContents,
-    stdinResolveDir,
-    absWorkingDir,
-    nodePaths,
-    mangleCache: validateMangleCache(mangleCache)
-  };
-}
-function flagsForTransformOptions(callName, options, isTTY2, logLevelDefault) {
-  let flags = [];
-  let keys = /* @__PURE__ */ Object.create(null);
-  pushLogFlags(flags, options, keys, isTTY2, logLevelDefault);
-  pushCommonFlags(flags, options, keys);
-  let sourcemap = getFlag(options, keys, "sourcemap", mustBeStringOrBoolean);
-  let sourcefile = getFlag(options, keys, "sourcefile", mustBeString);
-  let loader = getFlag(options, keys, "loader", mustBeString);
-  let banner = getFlag(options, keys, "banner", mustBeString);
-  let footer = getFlag(options, keys, "footer", mustBeString);
-  let mangleCache = getFlag(options, keys, "mangleCache", mustBeObject);
-  checkForInvalidFlags(options, keys, `in ${callName}() call`);
-  if (sourcemap)
-    flags.push(`--sourcemap=${sourcemap === true ? "external" : sourcemap}`);
-  if (sourcefile)
-    flags.push(`--sourcefile=${sourcefile}`);
-  if (loader)
-    flags.push(`--loader=${loader}`);
-  if (banner)
-    flags.push(`--banner=${banner}`);
-  if (footer)
-    flags.push(`--footer=${footer}`);
-  return {
-    flags,
-    mangleCache: validateMangleCache(mangleCache)
-  };
-}
-function createChannel(streamIn) {
-  const requestCallbacksByKey = {};
-  const closeData = { didClose: false, reason: "" };
-  let responseCallbacks = {};
-  let nextRequestID = 0;
-  let nextBuildKey = 0;
-  let stdout = new Uint8Array(16 * 1024);
-  let stdoutUsed = 0;
-  let readFromStdout = (chunk) => {
-    let limit = stdoutUsed + chunk.length;
-    if (limit > stdout.length) {
-      let swap = new Uint8Array(limit * 2);
-      swap.set(stdout);
-      stdout = swap;
-    }
-    stdout.set(chunk, stdoutUsed);
-    stdoutUsed += chunk.length;
-    let offset = 0;
-    while (offset + 4 <= stdoutUsed) {
-      let length = readUInt32LE(stdout, offset);
-      if (offset + 4 + length > stdoutUsed) {
-        break;
-      }
-      offset += 4;
-      handleIncomingPacket(stdout.subarray(offset, offset + length));
-      offset += length;
-    }
-    if (offset > 0) {
-      stdout.copyWithin(0, offset, stdoutUsed);
-      stdoutUsed -= offset;
-    }
-  };
-  let afterClose = (error) => {
-    closeData.didClose = true;
-    if (error)
-      closeData.reason = ": " + (error.message || error);
-    const text = "The service was stopped" + closeData.reason;
-    for (let id in responseCallbacks) {
-      responseCallbacks[id](text, null);
-    }
-    responseCallbacks = {};
-  };
-  let sendRequest = (refs, value, callback) => {
-    if (closeData.didClose)
-      return callback("The service is no longer running" + closeData.reason, null);
-    let id = nextRequestID++;
-    responseCallbacks[id] = (error, response) => {
-      try {
-        callback(error, response);
-      } finally {
-        if (refs)
-          refs.unref();
-      }
-    };
-    if (refs)
-      refs.ref();
-    streamIn.writeToStdin(encodePacket({ id, isRequest: true, value }));
-  };
-  let sendResponse = (id, value) => {
-    if (closeData.didClose)
-      throw new Error("The service is no longer running" + closeData.reason);
-    streamIn.writeToStdin(encodePacket({ id, isRequest: false, value }));
-  };
-  let handleRequest = async (id, request) => {
-    try {
-      if (request.command === "ping") {
-        sendResponse(id, {});
-        return;
-      }
-      if (typeof request.key === "number") {
-        const requestCallbacks = requestCallbacksByKey[request.key];
-        if (requestCallbacks) {
-          const callback = requestCallbacks[request.command];
-          if (callback) {
-            await callback(id, request);
-            return;
-          }
-        }
-      }
-      throw new Error(`Invalid command: ` + request.command);
-    } catch (e) {
-      const errors = [extractErrorMessageV8(e, streamIn, null, void 0, "")];
-      try {
-        sendResponse(id, { errors });
-      } catch {
-      }
-    }
-  };
-  let isFirstPacket = true;
-  let handleIncomingPacket = (bytes) => {
-    if (isFirstPacket) {
-      isFirstPacket = false;
-      let binaryVersion = String.fromCharCode(...bytes);
-      if (binaryVersion !== "0.18.20") {
-        throw new Error(`Cannot start service: Host version "${"0.18.20"}" does not match binary version ${quote(binaryVersion)}`);
-      }
-      return;
-    }
-    let packet = decodePacket(bytes);
-    if (packet.isRequest) {
-      handleRequest(packet.id, packet.value);
-    } else {
-      let callback = responseCallbacks[packet.id];
-      delete responseCallbacks[packet.id];
-      if (packet.value.error)
-        callback(packet.value.error, {});
-      else
-        callback(null, packet.value);
-    }
-  };
-  let buildOrContext = ({ callName, refs, options, isTTY: isTTY2, defaultWD: defaultWD2, callback }) => {
-    let refCount = 0;
-    const buildKey = nextBuildKey++;
-    const requestCallbacks = {};
-    const buildRefs = {
-      ref() {
-        if (++refCount === 1) {
-          if (refs)
-            refs.ref();
-        }
-      },
-      unref() {
-        if (--refCount === 0) {
-          delete requestCallbacksByKey[buildKey];
-          if (refs)
-            refs.unref();
-        }
-      }
-    };
-    requestCallbacksByKey[buildKey] = requestCallbacks;
-    buildRefs.ref();
-    buildOrContextImpl(
-      callName,
-      buildKey,
-      sendRequest,
-      sendResponse,
-      buildRefs,
-      streamIn,
-      requestCallbacks,
-      options,
-      isTTY2,
-      defaultWD2,
-      (err, res) => {
-        try {
-          callback(err, res);
-        } finally {
-          buildRefs.unref();
-        }
-      }
-    );
-  };
-  let transform2 = ({ callName, refs, input, options, isTTY: isTTY2, fs: fs3, callback }) => {
-    const details = createObjectStash();
-    let start = (inputPath) => {
-      try {
-        if (typeof input !== "string" && !(input instanceof Uint8Array))
-          throw new Error('The input to "transform" must be a string or a Uint8Array');
-        let {
-          flags,
-          mangleCache
-        } = flagsForTransformOptions(callName, options, isTTY2, transformLogLevelDefault);
-        let request = {
-          command: "transform",
-          flags,
-          inputFS: inputPath !== null,
-          input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === "string" ? encodeUTF8(input) : input
-        };
-        if (mangleCache)
-          request.mangleCache = mangleCache;
-        sendRequest(refs, request, (error, response) => {
-          if (error)
-            return callback(new Error(error), null);
-          let errors = replaceDetailsInMessages(response.errors, details);
-          let warnings = replaceDetailsInMessages(response.warnings, details);
-          let outstanding = 1;
-          let next = () => {
-            if (--outstanding === 0) {
-              let result = {
-                warnings,
-                code: response.code,
-                map: response.map,
-                mangleCache: void 0,
-                legalComments: void 0
-              };
-              if ("legalComments" in response)
-                result.legalComments = response == null ? void 0 : response.legalComments;
-              if (response.mangleCache)
-                result.mangleCache = response == null ? void 0 : response.mangleCache;
-              callback(null, result);
-            }
-          };
-          if (errors.length > 0)
-            return callback(failureErrorWithLog("Transform failed", errors, warnings), null);
-          if (response.codeFS) {
-            outstanding++;
-            fs3.readFile(response.code, (err, contents) => {
-              if (err !== null) {
-                callback(err, null);
-              } else {
-                response.code = contents;
-                next();
-              }
-            });
-          }
-          if (response.mapFS) {
-            outstanding++;
-            fs3.readFile(response.map, (err, contents) => {
-              if (err !== null) {
-                callback(err, null);
-              } else {
-                response.map = contents;
-                next();
-              }
-            });
-          }
-          next();
-        });
-      } catch (e) {
-        let flags = [];
-        try {
-          pushLogFlags(flags, options, {}, isTTY2, transformLogLevelDefault);
-        } catch {
-        }
-        const error = extractErrorMessageV8(e, streamIn, details, void 0, "");
-        sendRequest(refs, { command: "error", flags, error }, () => {
-          error.detail = details.load(error.detail);
-          callback(failureErrorWithLog("Transform failed", [error], []), null);
-        });
-      }
-    };
-    if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) {
-      let next = start;
-      start = () => fs3.writeFile(input, next);
-    }
-    start(null);
-  };
-  let formatMessages2 = ({ callName, refs, messages, options, callback }) => {
-    let result = sanitizeMessages(messages, "messages", null, "");
-    if (!options)
-      throw new Error(`Missing second argument in ${callName}() call`);
-    let keys = {};
-    let kind = getFlag(options, keys, "kind", mustBeString);
-    let color = getFlag(options, keys, "color", mustBeBoolean);
-    let terminalWidth = getFlag(options, keys, "terminalWidth", mustBeInteger);
-    checkForInvalidFlags(options, keys, `in ${callName}() call`);
-    if (kind === void 0)
-      throw new Error(`Missing "kind" in ${callName}() call`);
-    if (kind !== "error" && kind !== "warning")
-      throw new Error(`Expected "kind" to be "error" or "warning" in ${callName}() call`);
-    let request = {
-      command: "format-msgs",
-      messages: result,
-      isWarning: kind === "warning"
-    };
-    if (color !== void 0)
-      request.color = color;
-    if (terminalWidth !== void 0)
-      request.terminalWidth = terminalWidth;
-    sendRequest(refs, request, (error, response) => {
-      if (error)
-        return callback(new Error(error), null);
-      callback(null, response.messages);
-    });
-  };
-  let analyzeMetafile2 = ({ callName, refs, metafile, options, callback }) => {
-    if (options === void 0)
-      options = {};
-    let keys = {};
-    let color = getFlag(options, keys, "color", mustBeBoolean);
-    let verbose = getFlag(options, keys, "verbose", mustBeBoolean);
-    checkForInvalidFlags(options, keys, `in ${callName}() call`);
-    let request = {
-      command: "analyze-metafile",
-      metafile
-    };
-    if (color !== void 0)
-      request.color = color;
-    if (verbose !== void 0)
-      request.verbose = verbose;
-    sendRequest(refs, request, (error, response) => {
-      if (error)
-        return callback(new Error(error), null);
-      callback(null, response.result);
-    });
-  };
-  return {
-    readFromStdout,
-    afterClose,
-    service: {
-      buildOrContext,
-      transform: transform2,
-      formatMessages: formatMessages2,
-      analyzeMetafile: analyzeMetafile2
-    }
-  };
-}
-function buildOrContextImpl(callName, buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, options, isTTY2, defaultWD2, callback) {
-  const details = createObjectStash();
-  const isContext = callName === "context";
-  const handleError = (e, pluginName) => {
-    const flags = [];
-    try {
-      pushLogFlags(flags, options, {}, isTTY2, buildLogLevelDefault);
-    } catch {
-    }
-    const message = extractErrorMessageV8(e, streamIn, details, void 0, pluginName);
-    sendRequest(refs, { command: "error", flags, error: message }, () => {
-      message.detail = details.load(message.detail);
-      callback(failureErrorWithLog(isContext ? "Context failed" : "Build failed", [message], []), null);
-    });
-  };
-  let plugins;
-  if (typeof options === "object") {
-    const value = options.plugins;
-    if (value !== void 0) {
-      if (!Array.isArray(value))
-        return handleError(new Error(`"plugins" must be an array`), "");
-      plugins = value;
-    }
-  }
-  if (plugins && plugins.length > 0) {
-    if (streamIn.isSync)
-      return handleError(new Error("Cannot use plugins in synchronous API calls"), "");
-    handlePlugins(
-      buildKey,
-      sendRequest,
-      sendResponse,
-      refs,
-      streamIn,
-      requestCallbacks,
-      options,
-      plugins,
-      details
-    ).then(
-      (result) => {
-        if (!result.ok)
-          return handleError(result.error, result.pluginName);
-        try {
-          buildOrContextContinue(result.requestPlugins, result.runOnEndCallbacks, result.scheduleOnDisposeCallbacks);
-        } catch (e) {
-          handleError(e, "");
-        }
-      },
-      (e) => handleError(e, "")
-    );
-    return;
-  }
-  try {
-    buildOrContextContinue(null, (result, done) => done([], []), () => {
-    });
-  } catch (e) {
-    handleError(e, "");
-  }
-  function buildOrContextContinue(requestPlugins, runOnEndCallbacks, scheduleOnDisposeCallbacks) {
-    const writeDefault = streamIn.hasFS;
-    const {
-      entries,
-      flags,
-      write,
-      stdinContents,
-      stdinResolveDir,
-      absWorkingDir,
-      nodePaths,
-      mangleCache
-    } = flagsForBuildOptions(callName, options, isTTY2, buildLogLevelDefault, writeDefault);
-    if (write && !streamIn.hasFS)
-      throw new Error(`The "write" option is unavailable in this environment`);
-    const request = {
-      command: "build",
-      key: buildKey,
-      entries,
-      flags,
-      write,
-      stdinContents,
-      stdinResolveDir,
-      absWorkingDir: absWorkingDir || defaultWD2,
-      nodePaths,
-      context: isContext
-    };
-    if (requestPlugins)
-      request.plugins = requestPlugins;
-    if (mangleCache)
-      request.mangleCache = mangleCache;
-    const buildResponseToResult = (response, callback2) => {
-      const result = {
-        errors: replaceDetailsInMessages(response.errors, details),
-        warnings: replaceDetailsInMessages(response.warnings, details),
-        outputFiles: void 0,
-        metafile: void 0,
-        mangleCache: void 0
-      };
-      const originalErrors = result.errors.slice();
-      const originalWarnings = result.warnings.slice();
-      if (response.outputFiles)
-        result.outputFiles = response.outputFiles.map(convertOutputFiles);
-      if (response.metafile)
-        result.metafile = JSON.parse(response.metafile);
-      if (response.mangleCache)
-        result.mangleCache = response.mangleCache;
-      if (response.writeToStdout !== void 0)
-        console.log(decodeUTF8(response.writeToStdout).replace(/\n$/, ""));
-      runOnEndCallbacks(result, (onEndErrors, onEndWarnings) => {
-        if (originalErrors.length > 0 || onEndErrors.length > 0) {
-          const error = failureErrorWithLog("Build failed", originalErrors.concat(onEndErrors), originalWarnings.concat(onEndWarnings));
-          return callback2(error, null, onEndErrors, onEndWarnings);
-        }
-        callback2(null, result, onEndErrors, onEndWarnings);
-      });
-    };
-    let latestResultPromise;
-    let provideLatestResult;
-    if (isContext)
-      requestCallbacks["on-end"] = (id, request2) => new Promise((resolve) => {
-        buildResponseToResult(request2, (err, result, onEndErrors, onEndWarnings) => {
-          const response = {
-            errors: onEndErrors,
-            warnings: onEndWarnings
-          };
-          if (provideLatestResult)
-            provideLatestResult(err, result);
-          latestResultPromise = void 0;
-          provideLatestResult = void 0;
-          sendResponse(id, response);
-          resolve();
-        });
-      });
-    sendRequest(refs, request, (error, response) => {
-      if (error)
-        return callback(new Error(error), null);
-      if (!isContext) {
-        return buildResponseToResult(response, (err, res) => {
-          scheduleOnDisposeCallbacks();
-          return callback(err, res);
-        });
-      }
-      if (response.errors.length > 0) {
-        return callback(failureErrorWithLog("Context failed", response.errors, response.warnings), null);
-      }
-      let didDispose = false;
-      const result = {
-        rebuild: () => {
-          if (!latestResultPromise)
-            latestResultPromise = new Promise((resolve, reject) => {
-              let settlePromise;
-              provideLatestResult = (err, result2) => {
-                if (!settlePromise)
-                  settlePromise = () => err ? reject(err) : resolve(result2);
-              };
-              const triggerAnotherBuild = () => {
-                const request2 = {
-                  command: "rebuild",
-                  key: buildKey
-                };
-                sendRequest(refs, request2, (error2, response2) => {
-                  if (error2) {
-                    reject(new Error(error2));
-                  } else if (settlePromise) {
-                    settlePromise();
-                  } else {
-                    triggerAnotherBuild();
-                  }
-                });
-              };
-              triggerAnotherBuild();
-            });
-          return latestResultPromise;
-        },
-        watch: (options2 = {}) => new Promise((resolve, reject) => {
-          if (!streamIn.hasFS)
-            throw new Error(`Cannot use the "watch" API in this environment`);
-          const keys = {};
-          checkForInvalidFlags(options2, keys, `in watch() call`);
-          const request2 = {
-            command: "watch",
-            key: buildKey
-          };
-          sendRequest(refs, request2, (error2) => {
-            if (error2)
-              reject(new Error(error2));
-            else
-              resolve(void 0);
-          });
-        }),
-        serve: (options2 = {}) => new Promise((resolve, reject) => {
-          if (!streamIn.hasFS)
-            throw new Error(`Cannot use the "serve" API in this environment`);
-          const keys = {};
-          const port = getFlag(options2, keys, "port", mustBeInteger);
-          const host = getFlag(options2, keys, "host", mustBeString);
-          const servedir = getFlag(options2, keys, "servedir", mustBeString);
-          const keyfile = getFlag(options2, keys, "keyfile", mustBeString);
-          const certfile = getFlag(options2, keys, "certfile", mustBeString);
-          const fallback = getFlag(options2, keys, "fallback", mustBeString);
-          const onRequest = getFlag(options2, keys, "onRequest", mustBeFunction);
-          checkForInvalidFlags(options2, keys, `in serve() call`);
-          const request2 = {
-            command: "serve",
-            key: buildKey,
-            onRequest: !!onRequest
-          };
-          if (port !== void 0)
-            request2.port = port;
-          if (host !== void 0)
-            request2.host = host;
-          if (servedir !== void 0)
-            request2.servedir = servedir;
-          if (keyfile !== void 0)
-            request2.keyfile = keyfile;
-          if (certfile !== void 0)
-            request2.certfile = certfile;
-          if (fallback !== void 0)
-            request2.fallback = fallback;
-          sendRequest(refs, request2, (error2, response2) => {
-            if (error2)
-              return reject(new Error(error2));
-            if (onRequest) {
-              requestCallbacks["serve-request"] = (id, request3) => {
-                onRequest(request3.args);
-                sendResponse(id, {});
-              };
-            }
-            resolve(response2);
-          });
-        }),
-        cancel: () => new Promise((resolve) => {
-          if (didDispose)
-            return resolve();
-          const request2 = {
-            command: "cancel",
-            key: buildKey
-          };
-          sendRequest(refs, request2, () => {
-            resolve();
-          });
-        }),
-        dispose: () => new Promise((resolve) => {
-          if (didDispose)
-            return resolve();
-          didDispose = true;
-          const request2 = {
-            command: "dispose",
-            key: buildKey
-          };
-          sendRequest(refs, request2, () => {
-            resolve();
-            scheduleOnDisposeCallbacks();
-            refs.unref();
-          });
-        })
-      };
-      refs.ref();
-      callback(null, result);
-    });
-  }
-}
-var handlePlugins = async (buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, initialOptions, plugins, details) => {
-  let onStartCallbacks = [];
-  let onEndCallbacks = [];
-  let onResolveCallbacks = {};
-  let onLoadCallbacks = {};
-  let onDisposeCallbacks = [];
-  let nextCallbackID = 0;
-  let i = 0;
-  let requestPlugins = [];
-  let isSetupDone = false;
-  plugins = [...plugins];
-  for (let item of plugins) {
-    let keys = {};
-    if (typeof item !== "object")
-      throw new Error(`Plugin at index ${i} must be an object`);
-    const name = getFlag(item, keys, "name", mustBeString);
-    if (typeof name !== "string" || name === "")
-      throw new Error(`Plugin at index ${i} is missing a name`);
-    try {
-      let setup = getFlag(item, keys, "setup", mustBeFunction);
-      if (typeof setup !== "function")
-        throw new Error(`Plugin is missing a setup function`);
-      checkForInvalidFlags(item, keys, `on plugin ${quote(name)}`);
-      let plugin = {
-        name,
-        onStart: false,
-        onEnd: false,
-        onResolve: [],
-        onLoad: []
-      };
-      i++;
-      let resolve = (path3, options = {}) => {
-        if (!isSetupDone)
-          throw new Error('Cannot call "resolve" before plugin setup has completed');
-        if (typeof path3 !== "string")
-          throw new Error(`The path to resolve must be a string`);
-        let keys2 = /* @__PURE__ */ Object.create(null);
-        let pluginName = getFlag(options, keys2, "pluginName", mustBeString);
-        let importer = getFlag(options, keys2, "importer", mustBeString);
-        let namespace = getFlag(options, keys2, "namespace", mustBeString);
-        let resolveDir = getFlag(options, keys2, "resolveDir", mustBeString);
-        let kind = getFlag(options, keys2, "kind", mustBeString);
-        let pluginData = getFlag(options, keys2, "pluginData", canBeAnything);
-        checkForInvalidFlags(options, keys2, "in resolve() call");
-        return new Promise((resolve2, reject) => {
-          const request = {
-            command: "resolve",
-            path: path3,
-            key: buildKey,
-            pluginName: name
-          };
-          if (pluginName != null)
-            request.pluginName = pluginName;
-          if (importer != null)
-            request.importer = importer;
-          if (namespace != null)
-            request.namespace = namespace;
-          if (resolveDir != null)
-            request.resolveDir = resolveDir;
-          if (kind != null)
-            request.kind = kind;
-          else
-            throw new Error(`Must specify "kind" when calling "resolve"`);
-          if (pluginData != null)
-            request.pluginData = details.store(pluginData);
-          sendRequest(refs, request, (error, response) => {
-            if (error !== null)
-              reject(new Error(error));
-            else
-              resolve2({
-                errors: replaceDetailsInMessages(response.errors, details),
-                warnings: replaceDetailsInMessages(response.warnings, details),
-                path: response.path,
-                external: response.external,
-                sideEffects: response.sideEffects,
-                namespace: response.namespace,
-                suffix: response.suffix,
-                pluginData: details.load(response.pluginData)
-              });
-          });
-        });
-      };
-      let promise = setup({
-        initialOptions,
-        resolve,
-        onStart(callback) {
-          let registeredText = `This error came from the "onStart" callback registered here:`;
-          let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart");
-          onStartCallbacks.push({ name, callback, note: registeredNote });
-          plugin.onStart = true;
-        },
-        onEnd(callback) {
-          let registeredText = `This error came from the "onEnd" callback registered here:`;
-          let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onEnd");
-          onEndCallbacks.push({ name, callback, note: registeredNote });
-          plugin.onEnd = true;
-        },
-        onResolve(options, callback) {
-          let registeredText = `This error came from the "onResolve" callback registered here:`;
-          let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve");
-          let keys2 = {};
-          let filter = getFlag(options, keys2, "filter", mustBeRegExp);
-          let namespace = getFlag(options, keys2, "namespace", mustBeString);
-          checkForInvalidFlags(options, keys2, `in onResolve() call for plugin ${quote(name)}`);
-          if (filter == null)
-            throw new Error(`onResolve() call is missing a filter`);
-          let id = nextCallbackID++;
-          onResolveCallbacks[id] = { name, callback, note: registeredNote };
-          plugin.onResolve.push({ id, filter: filter.source, namespace: namespace || "" });
-        },
-        onLoad(options, callback) {
-          let registeredText = `This error came from the "onLoad" callback registered here:`;
-          let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad");
-          let keys2 = {};
-          let filter = getFlag(options, keys2, "filter", mustBeRegExp);
-          let namespace = getFlag(options, keys2, "namespace", mustBeString);
-          checkForInvalidFlags(options, keys2, `in onLoad() call for plugin ${quote(name)}`);
-          if (filter == null)
-            throw new Error(`onLoad() call is missing a filter`);
-          let id = nextCallbackID++;
-          onLoadCallbacks[id] = { name, callback, note: registeredNote };
-          plugin.onLoad.push({ id, filter: filter.source, namespace: namespace || "" });
-        },
-        onDispose(callback) {
-          onDisposeCallbacks.push(callback);
-        },
-        esbuild: streamIn.esbuild
-      });
-      if (promise)
-        await promise;
-      requestPlugins.push(plugin);
-    } catch (e) {
-      return { ok: false, error: e, pluginName: name };
-    }
-  }
-  requestCallbacks["on-start"] = async (id, request) => {
-    let response = { errors: [], warnings: [] };
-    await Promise.all(onStartCallbacks.map(async ({ name, callback, note }) => {
-      try {
-        let result = await callback();
-        if (result != null) {
-          if (typeof result !== "object")
-            throw new Error(`Expected onStart() callback in plugin ${quote(name)} to return an object`);
-          let keys = {};
-          let errors = getFlag(result, keys, "errors", mustBeArray);
-          let warnings = getFlag(result, keys, "warnings", mustBeArray);
-          checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${quote(name)}`);
-          if (errors != null)
-            response.errors.push(...sanitizeMessages(errors, "errors", details, name));
-          if (warnings != null)
-            response.warnings.push(...sanitizeMessages(warnings, "warnings", details, name));
-        }
-      } catch (e) {
-        response.errors.push(extractErrorMessageV8(e, streamIn, details, note && note(), name));
-      }
-    }));
-    sendResponse(id, response);
-  };
-  requestCallbacks["on-resolve"] = async (id, request) => {
-    let response = {}, name = "", callback, note;
-    for (let id2 of request.ids) {
-      try {
-        ({ name, callback, note } = onResolveCallbacks[id2]);
-        let result = await callback({
-          path: request.path,
-          importer: request.importer,
-          namespace: request.namespace,
-          resolveDir: request.resolveDir,
-          kind: request.kind,
-          pluginData: details.load(request.pluginData)
-        });
-        if (result != null) {
-          if (typeof result !== "object")
-            throw new Error(`Expected onResolve() callback in plugin ${quote(name)} to return an object`);
-          let keys = {};
-          let pluginName = getFlag(result, keys, "pluginName", mustBeString);
-          let path3 = getFlag(result, keys, "path", mustBeString);
-          let namespace = getFlag(result, keys, "namespace", mustBeString);
-          let suffix = getFlag(result, keys, "suffix", mustBeString);
-          let external = getFlag(result, keys, "external", mustBeBoolean);
-          let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean);
-          let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
-          let errors = getFlag(result, keys, "errors", mustBeArray);
-          let warnings = getFlag(result, keys, "warnings", mustBeArray);
-          let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
-          let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
-          checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${quote(name)}`);
-          response.id = id2;
-          if (pluginName != null)
-            response.pluginName = pluginName;
-          if (path3 != null)
-            response.path = path3;
-          if (namespace != null)
-            response.namespace = namespace;
-          if (suffix != null)
-            response.suffix = suffix;
-          if (external != null)
-            response.external = external;
-          if (sideEffects != null)
-            response.sideEffects = sideEffects;
-          if (pluginData != null)
-            response.pluginData = details.store(pluginData);
-          if (errors != null)
-            response.errors = sanitizeMessages(errors, "errors", details, name);
-          if (warnings != null)
-            response.warnings = sanitizeMessages(warnings, "warnings", details, name);
-          if (watchFiles != null)
-            response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
-          if (watchDirs != null)
-            response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
-          break;
-        }
-      } catch (e) {
-        response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
-        break;
-      }
-    }
-    sendResponse(id, response);
-  };
-  requestCallbacks["on-load"] = async (id, request) => {
-    let response = {}, name = "", callback, note;
-    for (let id2 of request.ids) {
-      try {
-        ({ name, callback, note } = onLoadCallbacks[id2]);
-        let result = await callback({
-          path: request.path,
-          namespace: request.namespace,
-          suffix: request.suffix,
-          pluginData: details.load(request.pluginData)
-        });
-        if (result != null) {
-          if (typeof result !== "object")
-            throw new Error(`Expected onLoad() callback in plugin ${quote(name)} to return an object`);
-          let keys = {};
-          let pluginName = getFlag(result, keys, "pluginName", mustBeString);
-          let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array);
-          let resolveDir = getFlag(result, keys, "resolveDir", mustBeString);
-          let pluginData = getFlag(result, keys, "pluginData", canBeAnything);
-          let loader = getFlag(result, keys, "loader", mustBeString);
-          let errors = getFlag(result, keys, "errors", mustBeArray);
-          let warnings = getFlag(result, keys, "warnings", mustBeArray);
-          let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray);
-          let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray);
-          checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${quote(name)}`);
-          response.id = id2;
-          if (pluginName != null)
-            response.pluginName = pluginName;
-          if (contents instanceof Uint8Array)
-            response.contents = contents;
-          else if (contents != null)
-            response.contents = encodeUTF8(contents);
-          if (resolveDir != null)
-            response.resolveDir = resolveDir;
-          if (pluginData != null)
-            response.pluginData = details.store(pluginData);
-          if (loader != null)
-            response.loader = loader;
-          if (errors != null)
-            response.errors = sanitizeMessages(errors, "errors", details, name);
-          if (warnings != null)
-            response.warnings = sanitizeMessages(warnings, "warnings", details, name);
-          if (watchFiles != null)
-            response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles");
-          if (watchDirs != null)
-            response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs");
-          break;
-        }
-      } catch (e) {
-        response = { id: id2, errors: [extractErrorMessageV8(e, streamIn, details, note && note(), name)] };
-        break;
-      }
-    }
-    sendResponse(id, response);
-  };
-  let runOnEndCallbacks = (result, done) => done([], []);
-  if (onEndCallbacks.length > 0) {
-    runOnEndCallbacks = (result, done) => {
-      (async () => {
-        const onEndErrors = [];
-        const onEndWarnings = [];
-        for (const { name, callback, note } of onEndCallbacks) {
-          let newErrors;
-          let newWarnings;
-          try {
-            const value = await callback(result);
-            if (value != null) {
-              if (typeof value !== "object")
-                throw new Error(`Expected onEnd() callback in plugin ${quote(name)} to return an object`);
-              let keys = {};
-              let errors = getFlag(value, keys, "errors", mustBeArray);
-              let warnings = getFlag(value, keys, "warnings", mustBeArray);
-              checkForInvalidFlags(value, keys, `from onEnd() callback in plugin ${quote(name)}`);
-              if (errors != null)
-                newErrors = sanitizeMessages(errors, "errors", details, name);
-              if (warnings != null)
-                newWarnings = sanitizeMessages(warnings, "warnings", details, name);
-            }
-          } catch (e) {
-            newErrors = [extractErrorMessageV8(e, streamIn, details, note && note(), name)];
-          }
-          if (newErrors) {
-            onEndErrors.push(...newErrors);
-            try {
-              result.errors.push(...newErrors);
-            } catch {
-            }
-          }
-          if (newWarnings) {
-            onEndWarnings.push(...newWarnings);
-            try {
-              result.warnings.push(...newWarnings);
-            } catch {
-            }
-          }
-        }
-        done(onEndErrors, onEndWarnings);
-      })();
-    };
-  }
-  let scheduleOnDisposeCallbacks = () => {
-    for (const cb of onDisposeCallbacks) {
-      setTimeout(() => cb(), 0);
-    }
-  };
-  isSetupDone = true;
-  return {
-    ok: true,
-    requestPlugins,
-    runOnEndCallbacks,
-    scheduleOnDisposeCallbacks
-  };
-};
-function createObjectStash() {
-  const map = /* @__PURE__ */ new Map();
-  let nextID = 0;
-  return {
-    load(id) {
-      return map.get(id);
-    },
-    store(value) {
-      if (value === void 0)
-        return -1;
-      const id = nextID++;
-      map.set(id, value);
-      return id;
-    }
-  };
-}
-function extractCallerV8(e, streamIn, ident) {
-  let note;
-  let tried = false;
-  return () => {
-    if (tried)
-      return note;
-    tried = true;
-    try {
-      let lines = (e.stack + "").split("\n");
-      lines.splice(1, 1);
-      let location = parseStackLinesV8(streamIn, lines, ident);
-      if (location) {
-        note = { text: e.message, location };
-        return note;
-      }
-    } catch {
-    }
-  };
-}
-function extractErrorMessageV8(e, streamIn, stash, note, pluginName) {
-  let text = "Internal error";
-  let location = null;
-  try {
-    text = (e && e.message || e) + "";
-  } catch {
-  }
-  try {
-    location = parseStackLinesV8(streamIn, (e.stack + "").split("\n"), "");
-  } catch {
-  }
-  return { id: "", pluginName, text, location, notes: note ? [note] : [], detail: stash ? stash.store(e) : -1 };
-}
-function parseStackLinesV8(streamIn, lines, ident) {
-  let at = "    at ";
-  if (streamIn.readFileSync && !lines[0].startsWith(at) && lines[1].startsWith(at)) {
-    for (let i = 1; i < lines.length; i++) {
-      let line = lines[i];
-      if (!line.startsWith(at))
-        continue;
-      line = line.slice(at.length);
-      while (true) {
-        let match = /^(?:new |async )?\S+ \((.*)\)$/.exec(line);
-        if (match) {
-          line = match[1];
-          continue;
-        }
-        match = /^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(line);
-        if (match) {
-          line = match[1];
-          continue;
-        }
-        match = /^(\S+):(\d+):(\d+)$/.exec(line);
-        if (match) {
-          let contents;
-          try {
-            contents = streamIn.readFileSync(match[1], "utf8");
-          } catch {
-            break;
-          }
-          let lineText = contents.split(/\r\n|\r|\n|\u2028|\u2029/)[+match[2] - 1] || "";
-          let column = +match[3] - 1;
-          let length = lineText.slice(column, column + ident.length) === ident ? ident.length : 0;
-          return {
-            file: match[1],
-            namespace: "file",
-            line: +match[2],
-            column: encodeUTF8(lineText.slice(0, column)).length,
-            length: encodeUTF8(lineText.slice(column, column + length)).length,
-            lineText: lineText + "\n" + lines.slice(1).join("\n"),
-            suggestion: ""
-          };
-        }
-        break;
-      }
-    }
-  }
-  return null;
-}
-function failureErrorWithLog(text, errors, warnings) {
-  let limit = 5;
-  let summary = errors.length < 1 ? "" : ` with ${errors.length} error${errors.length < 2 ? "" : "s"}:` + errors.slice(0, limit + 1).map((e, i) => {
-    if (i === limit)
-      return "\n...";
-    if (!e.location)
-      return `
-error: ${e.text}`;
-    let { file, line, column } = e.location;
-    let pluginText = e.pluginName ? `[plugin: ${e.pluginName}] ` : "";
-    return `
-${file}:${line}:${column}: ERROR: ${pluginText}${e.text}`;
-  }).join("");
-  let error = new Error(`${text}${summary}`);
-  error.errors = errors;
-  error.warnings = warnings;
-  return error;
-}
-function replaceDetailsInMessages(messages, stash) {
-  for (const message of messages) {
-    message.detail = stash.load(message.detail);
-  }
-  return messages;
-}
-function sanitizeLocation(location, where) {
-  if (location == null)
-    return null;
-  let keys = {};
-  let file = getFlag(location, keys, "file", mustBeString);
-  let namespace = getFlag(location, keys, "namespace", mustBeString);
-  let line = getFlag(location, keys, "line", mustBeInteger);
-  let column = getFlag(location, keys, "column", mustBeInteger);
-  let length = getFlag(location, keys, "length", mustBeInteger);
-  let lineText = getFlag(location, keys, "lineText", mustBeString);
-  let suggestion = getFlag(location, keys, "suggestion", mustBeString);
-  checkForInvalidFlags(location, keys, where);
-  return {
-    file: file || "",
-    namespace: namespace || "",
-    line: line || 0,
-    column: column || 0,
-    length: length || 0,
-    lineText: lineText || "",
-    suggestion: suggestion || ""
-  };
-}
-function sanitizeMessages(messages, property, stash, fallbackPluginName) {
-  let messagesClone = [];
-  let index = 0;
-  for (const message of messages) {
-    let keys = {};
-    let id = getFlag(message, keys, "id", mustBeString);
-    let pluginName = getFlag(message, keys, "pluginName", mustBeString);
-    let text = getFlag(message, keys, "text", mustBeString);
-    let location = getFlag(message, keys, "location", mustBeObjectOrNull);
-    let notes = getFlag(message, keys, "notes", mustBeArray);
-    let detail = getFlag(message, keys, "detail", canBeAnything);
-    let where = `in element ${index} of "${property}"`;
-    checkForInvalidFlags(message, keys, where);
-    let notesClone = [];
-    if (notes) {
-      for (const note of notes) {
-        let noteKeys = {};
-        let noteText = getFlag(note, noteKeys, "text", mustBeString);
-        let noteLocation = getFlag(note, noteKeys, "location", mustBeObjectOrNull);
-        checkForInvalidFlags(note, noteKeys, where);
-        notesClone.push({
-          text: noteText || "",
-          location: sanitizeLocation(noteLocation, where)
-        });
-      }
-    }
-    messagesClone.push({
-      id: id || "",
-      pluginName: pluginName || fallbackPluginName,
-      text: text || "",
-      location: sanitizeLocation(location, where),
-      notes: notesClone,
-      detail: stash ? stash.store(detail) : -1
-    });
-    index++;
-  }
-  return messagesClone;
-}
-function sanitizeStringArray(values, property) {
-  const result = [];
-  for (const value of values) {
-    if (typeof value !== "string")
-      throw new Error(`${quote(property)} must be an array of strings`);
-    result.push(value);
-  }
-  return result;
-}
-function convertOutputFiles({ path: path3, contents, hash }) {
-  let text = null;
-  return {
-    path: path3,
-    contents,
-    hash,
-    get text() {
-      const binary = this.contents;
-      if (text === null || binary !== contents) {
-        contents = binary;
-        text = decodeUTF8(binary);
-      }
-      return text;
-    }
-  };
-}
-
-// lib/npm/node-platform.ts
-var fs = require("fs");
-var os = require("os");
-var path = require("path");
-var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH;
-var isValidBinaryPath = (x) => !!x && x !== "/usr/bin/esbuild";
-var packageDarwin_arm64 = "@esbuild/darwin-arm64";
-var packageDarwin_x64 = "@esbuild/darwin-x64";
-var knownWindowsPackages = {
-  "win32 arm64 LE": "@esbuild/win32-arm64",
-  "win32 ia32 LE": "@esbuild/win32-ia32",
-  "win32 x64 LE": "@esbuild/win32-x64"
-};
-var knownUnixlikePackages = {
-  "android arm64 LE": "@esbuild/android-arm64",
-  "darwin arm64 LE": "@esbuild/darwin-arm64",
-  "darwin x64 LE": "@esbuild/darwin-x64",
-  "freebsd arm64 LE": "@esbuild/freebsd-arm64",
-  "freebsd x64 LE": "@esbuild/freebsd-x64",
-  "linux arm LE": "@esbuild/linux-arm",
-  "linux arm64 LE": "@esbuild/linux-arm64",
-  "linux ia32 LE": "@esbuild/linux-ia32",
-  "linux mips64el LE": "@esbuild/linux-mips64el",
-  "linux ppc64 LE": "@esbuild/linux-ppc64",
-  "linux riscv64 LE": "@esbuild/linux-riscv64",
-  "linux s390x BE": "@esbuild/linux-s390x",
-  "linux x64 LE": "@esbuild/linux-x64",
-  "linux loong64 LE": "@esbuild/linux-loong64",
-  "netbsd x64 LE": "@esbuild/netbsd-x64",
-  "openbsd x64 LE": "@esbuild/openbsd-x64",
-  "sunos x64 LE": "@esbuild/sunos-x64"
-};
-var knownWebAssemblyFallbackPackages = {
-  "android arm LE": "@esbuild/android-arm",
-  "android x64 LE": "@esbuild/android-x64"
-};
-function pkgAndSubpathForCurrentPlatform() {
-  let pkg;
-  let subpath;
-  let isWASM = false;
-  let platformKey = `${process.platform} ${os.arch()} ${os.endianness()}`;
-  if (platformKey in knownWindowsPackages) {
-    pkg = knownWindowsPackages[platformKey];
-    subpath = "esbuild.exe";
-  } else if (platformKey in knownUnixlikePackages) {
-    pkg = knownUnixlikePackages[platformKey];
-    subpath = "bin/esbuild";
-  } else if (platformKey in knownWebAssemblyFallbackPackages) {
-    pkg = knownWebAssemblyFallbackPackages[platformKey];
-    subpath = "bin/esbuild";
-    isWASM = true;
-  } else {
-    throw new Error(`Unsupported platform: ${platformKey}`);
-  }
-  return { pkg, subpath, isWASM };
-}
-function pkgForSomeOtherPlatform() {
-  const libMainJS = require.resolve("esbuild");
-  const nodeModulesDirectory = path.dirname(path.dirname(path.dirname(libMainJS)));
-  if (path.basename(nodeModulesDirectory) === "node_modules") {
-    for (const unixKey in knownUnixlikePackages) {
-      try {
-        const pkg = knownUnixlikePackages[unixKey];
-        if (fs.existsSync(path.join(nodeModulesDirectory, pkg)))
-          return pkg;
-      } catch {
-      }
-    }
-    for (const windowsKey in knownWindowsPackages) {
-      try {
-        const pkg = knownWindowsPackages[windowsKey];
-        if (fs.existsSync(path.join(nodeModulesDirectory, pkg)))
-          return pkg;
-      } catch {
-      }
-    }
-  }
-  return null;
-}
-function downloadedBinPath(pkg, subpath) {
-  const esbuildLibDir = path.dirname(require.resolve("esbuild"));
-  return path.join(esbuildLibDir, `downloaded-${pkg.replace("/", "-")}-${path.basename(subpath)}`);
-}
-function generateBinPath() {
-  if (isValidBinaryPath(ESBUILD_BINARY_PATH)) {
-    if (!fs.existsSync(ESBUILD_BINARY_PATH)) {
-      console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`);
-    } else {
-      return { binPath: ESBUILD_BINARY_PATH, isWASM: false };
-    }
-  }
-  const { pkg, subpath, isWASM } = pkgAndSubpathForCurrentPlatform();
-  let binPath;
-  try {
-    binPath = require.resolve(`${pkg}/${subpath}`);
-  } catch (e) {
-    binPath = downloadedBinPath(pkg, subpath);
-    if (!fs.existsSync(binPath)) {
-      try {
-        require.resolve(pkg);
-      } catch {
-        const otherPkg = pkgForSomeOtherPlatform();
-        if (otherPkg) {
-          let suggestions = `
-Specifically the "${otherPkg}" package is present but this platform
-needs the "${pkg}" package instead. People often get into this
-situation by installing esbuild on Windows or macOS and copying "node_modules"
-into a Docker image that runs Linux, or by copying "node_modules" between
-Windows and WSL environments.
-
-If you are installing with npm, you can try not copying the "node_modules"
-directory when you copy the files over, and running "npm ci" or "npm install"
-on the destination platform after the copy. Or you could consider using yarn
-instead of npm which has built-in support for installing a package on multiple
-platforms simultaneously.
-
-If you are installing with yarn, you can try listing both this platform and the
-other platform in your ".yarnrc.yml" file using the "supportedArchitectures"
-feature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
-Keep in mind that this means multiple copies of esbuild will be present.
-`;
-          if (pkg === packageDarwin_x64 && otherPkg === packageDarwin_arm64 || pkg === packageDarwin_arm64 && otherPkg === packageDarwin_x64) {
-            suggestions = `
-Specifically the "${otherPkg}" package is present but this platform
-needs the "${pkg}" package instead. People often get into this
-situation by installing esbuild with npm running inside of Rosetta 2 and then
-trying to use it with node running outside of Rosetta 2, or vice versa (Rosetta
-2 is Apple's on-the-fly x86_64-to-arm64 translation service).
-
-If you are installing with npm, you can try ensuring that both npm and node are
-not running under Rosetta 2 and then reinstalling esbuild. This likely involves
-changing how you installed npm and/or node. For example, installing node with
-the universal installer here should work: https://nodejs.org/en/download/. Or
-you could consider using yarn instead of npm which has built-in support for
-installing a package on multiple platforms simultaneously.
-
-If you are installing with yarn, you can try listing both "arm64" and "x64"
-in your ".yarnrc.yml" file using the "supportedArchitectures" feature:
-https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures
-Keep in mind that this means multiple copies of esbuild will be present.
-`;
-          }
-          throw new Error(`
-You installed esbuild for another platform than the one you're currently using.
-This won't work because esbuild is written with native code and needs to
-install a platform-specific binary executable.
-${suggestions}
-Another alternative is to use the "esbuild-wasm" package instead, which works
-the same way on all platforms. But it comes with a heavy performance cost and
-can sometimes be 10x slower than the "esbuild" package, so you may also not
-want to do that.
-`);
-        }
-        throw new Error(`The package "${pkg}" could not be found, and is needed by esbuild.
-
-If you are installing esbuild with npm, make sure that you don't specify the
-"--no-optional" or "--omit=optional" flags. The "optionalDependencies" feature
-of "package.json" is used by esbuild to install the correct binary executable
-for your current platform.`);
-      }
-      throw e;
-    }
-  }
-  if (/\.zip\//.test(binPath)) {
-    let pnpapi;
-    try {
-      pnpapi = require("pnpapi");
-    } catch (e) {
-    }
-    if (pnpapi) {
-      const root = pnpapi.getPackageInformation(pnpapi.topLevel).packageLocation;
-      const binTargetPath = path.join(
-        root,
-        "node_modules",
-        ".cache",
-        "esbuild",
-        `pnpapi-${pkg.replace("/", "-")}-${"0.18.20"}-${path.basename(subpath)}`
-      );
-      if (!fs.existsSync(binTargetPath)) {
-        fs.mkdirSync(path.dirname(binTargetPath), { recursive: true });
-        fs.copyFileSync(binPath, binTargetPath);
-        fs.chmodSync(binTargetPath, 493);
-      }
-      return { binPath: binTargetPath, isWASM };
-    }
-  }
-  return { binPath, isWASM };
-}
-
-// lib/npm/node.ts
-var child_process = require("child_process");
-var crypto = require("crypto");
-var path2 = require("path");
-var fs2 = require("fs");
-var os2 = require("os");
-var tty = require("tty");
-var worker_threads;
-if (process.env.ESBUILD_WORKER_THREADS !== "0") {
-  try {
-    worker_threads = require("worker_threads");
-  } catch {
-  }
-  let [major, minor] = process.versions.node.split(".");
-  if (
-    // <v12.17.0 does not work
-    +major < 12 || +major === 12 && +minor < 17 || +major === 13 && +minor < 13
-  ) {
-    worker_threads = void 0;
-  }
-}
-var _a;
-var isInternalWorkerThread = ((_a = worker_threads == null ? void 0 : worker_threads.workerData) == null ? void 0 : _a.esbuildVersion) === "0.18.20";
-var esbuildCommandAndArgs = () => {
-  if ((!ESBUILD_BINARY_PATH || false) && (path2.basename(__filename) !== "main.js" || path2.basename(__dirname) !== "lib")) {
-    throw new Error(
-      `The esbuild JavaScript API cannot be bundled. Please mark the "esbuild" package as external so it's not included in the bundle.
-
-More information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.`
-    );
-  }
-  if (false) {
-    return ["node", [path2.join(__dirname, "..", "bin", "esbuild")]];
-  } else {
-    const { binPath, isWASM } = generateBinPath();
-    if (isWASM) {
-      return ["node", [binPath]];
-    } else {
-      return [binPath, []];
-    }
-  }
-};
-var isTTY = () => tty.isatty(2);
-var fsSync = {
-  readFile(tempFile, callback) {
-    try {
-      let contents = fs2.readFileSync(tempFile, "utf8");
-      try {
-        fs2.unlinkSync(tempFile);
-      } catch {
-      }
-      callback(null, contents);
-    } catch (err) {
-      callback(err, null);
-    }
-  },
-  writeFile(contents, callback) {
-    try {
-      let tempFile = randomFileName();
-      fs2.writeFileSync(tempFile, contents);
-      callback(tempFile);
-    } catch {
-      callback(null);
-    }
-  }
-};
-var fsAsync = {
-  readFile(tempFile, callback) {
-    try {
-      fs2.readFile(tempFile, "utf8", (err, contents) => {
-        try {
-          fs2.unlink(tempFile, () => callback(err, contents));
-        } catch {
-          callback(err, contents);
-        }
-      });
-    } catch (err) {
-      callback(err, null);
-    }
-  },
-  writeFile(contents, callback) {
-    try {
-      let tempFile = randomFileName();
-      fs2.writeFile(tempFile, contents, (err) => err !== null ? callback(null) : callback(tempFile));
-    } catch {
-      callback(null);
-    }
-  }
-};
-var version = "0.18.20";
-var build = (options) => ensureServiceIsRunning().build(options);
-var context = (buildOptions) => ensureServiceIsRunning().context(buildOptions);
-var transform = (input, options) => ensureServiceIsRunning().transform(input, options);
-var formatMessages = (messages, options) => ensureServiceIsRunning().formatMessages(messages, options);
-var analyzeMetafile = (messages, options) => ensureServiceIsRunning().analyzeMetafile(messages, options);
-var buildSync = (options) => {
-  if (worker_threads && !isInternalWorkerThread) {
-    if (!workerThreadService)
-      workerThreadService = startWorkerThreadService(worker_threads);
-    return workerThreadService.buildSync(options);
-  }
-  let result;
-  runServiceSync((service) => service.buildOrContext({
-    callName: "buildSync",
-    refs: null,
-    options,
-    isTTY: isTTY(),
-    defaultWD,
-    callback: (err, res) => {
-      if (err)
-        throw err;
-      result = res;
-    }
-  }));
-  return result;
-};
-var transformSync = (input, options) => {
-  if (worker_threads && !isInternalWorkerThread) {
-    if (!workerThreadService)
-      workerThreadService = startWorkerThreadService(worker_threads);
-    return workerThreadService.transformSync(input, options);
-  }
-  let result;
-  runServiceSync((service) => service.transform({
-    callName: "transformSync",
-    refs: null,
-    input,
-    options: options || {},
-    isTTY: isTTY(),
-    fs: fsSync,
-    callback: (err, res) => {
-      if (err)
-        throw err;
-      result = res;
-    }
-  }));
-  return result;
-};
-var formatMessagesSync = (messages, options) => {
-  if (worker_threads && !isInternalWorkerThread) {
-    if (!workerThreadService)
-      workerThreadService = startWorkerThreadService(worker_threads);
-    return workerThreadService.formatMessagesSync(messages, options);
-  }
-  let result;
-  runServiceSync((service) => service.formatMessages({
-    callName: "formatMessagesSync",
-    refs: null,
-    messages,
-    options,
-    callback: (err, res) => {
-      if (err)
-        throw err;
-      result = res;
-    }
-  }));
-  return result;
-};
-var analyzeMetafileSync = (metafile, options) => {
-  if (worker_threads && !isInternalWorkerThread) {
-    if (!workerThreadService)
-      workerThreadService = startWorkerThreadService(worker_threads);
-    return workerThreadService.analyzeMetafileSync(metafile, options);
-  }
-  let result;
-  runServiceSync((service) => service.analyzeMetafile({
-    callName: "analyzeMetafileSync",
-    refs: null,
-    metafile: typeof metafile === "string" ? metafile : JSON.stringify(metafile),
-    options,
-    callback: (err, res) => {
-      if (err)
-        throw err;
-      result = res;
-    }
-  }));
-  return result;
-};
-var initializeWasCalled = false;
-var initialize = (options) => {
-  options = validateInitializeOptions(options || {});
-  if (options.wasmURL)
-    throw new Error(`The "wasmURL" option only works in the browser`);
-  if (options.wasmModule)
-    throw new Error(`The "wasmModule" option only works in the browser`);
-  if (options.worker)
-    throw new Error(`The "worker" option only works in the browser`);
-  if (initializeWasCalled)
-    throw new Error('Cannot call "initialize" more than once');
-  ensureServiceIsRunning();
-  initializeWasCalled = true;
-  return Promise.resolve();
-};
-var defaultWD = process.cwd();
-var longLivedService;
-var ensureServiceIsRunning = () => {
-  if (longLivedService)
-    return longLivedService;
-  let [command, args] = esbuildCommandAndArgs();
-  let child = child_process.spawn(command, args.concat(`--service=${"0.18.20"}`, "--ping"), {
-    windowsHide: true,
-    stdio: ["pipe", "pipe", "inherit"],
-    cwd: defaultWD
-  });
-  let { readFromStdout, afterClose, service } = createChannel({
-    writeToStdin(bytes) {
-      child.stdin.write(bytes, (err) => {
-        if (err)
-          afterClose(err);
-      });
-    },
-    readFileSync: fs2.readFileSync,
-    isSync: false,
-    hasFS: true,
-    esbuild: node_exports
-  });
-  child.stdin.on("error", afterClose);
-  child.on("error", afterClose);
-  const stdin = child.stdin;
-  const stdout = child.stdout;
-  stdout.on("data", readFromStdout);
-  stdout.on("end", afterClose);
-  let refCount = 0;
-  child.unref();
-  if (stdin.unref) {
-    stdin.unref();
-  }
-  if (stdout.unref) {
-    stdout.unref();
-  }
-  const refs = {
-    ref() {
-      if (++refCount === 1)
-        child.ref();
-    },
-    unref() {
-      if (--refCount === 0)
-        child.unref();
-    }
-  };
-  longLivedService = {
-    build: (options) => new Promise((resolve, reject) => {
-      service.buildOrContext({
-        callName: "build",
-        refs,
-        options,
-        isTTY: isTTY(),
-        defaultWD,
-        callback: (err, res) => err ? reject(err) : resolve(res)
-      });
-    }),
-    context: (options) => new Promise((resolve, reject) => service.buildOrContext({
-      callName: "context",
-      refs,
-      options,
-      isTTY: isTTY(),
-      defaultWD,
-      callback: (err, res) => err ? reject(err) : resolve(res)
-    })),
-    transform: (input, options) => new Promise((resolve, reject) => service.transform({
-      callName: "transform",
-      refs,
-      input,
-      options: options || {},
-      isTTY: isTTY(),
-      fs: fsAsync,
-      callback: (err, res) => err ? reject(err) : resolve(res)
-    })),
-    formatMessages: (messages, options) => new Promise((resolve, reject) => service.formatMessages({
-      callName: "formatMessages",
-      refs,
-      messages,
-      options,
-      callback: (err, res) => err ? reject(err) : resolve(res)
-    })),
-    analyzeMetafile: (metafile, options) => new Promise((resolve, reject) => service.analyzeMetafile({
-      callName: "analyzeMetafile",
-      refs,
-      metafile: typeof metafile === "string" ? metafile : JSON.stringify(metafile),
-      options,
-      callback: (err, res) => err ? reject(err) : resolve(res)
-    }))
-  };
-  return longLivedService;
-};
-var runServiceSync = (callback) => {
-  let [command, args] = esbuildCommandAndArgs();
-  let stdin = new Uint8Array();
-  let { readFromStdout, afterClose, service } = createChannel({
-    writeToStdin(bytes) {
-      if (stdin.length !== 0)
-        throw new Error("Must run at most one command");
-      stdin = bytes;
-    },
-    isSync: true,
-    hasFS: true,
-    esbuild: node_exports
-  });
-  callback(service);
-  let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.18.20"}`), {
-    cwd: defaultWD,
-    windowsHide: true,
-    input: stdin,
-    // We don't know how large the output could be. If it's too large, the
-    // command will fail with ENOBUFS. Reserve 16mb for now since that feels
-    // like it should be enough. Also allow overriding this with an environment
-    // variable.
-    maxBuffer: +process.env.ESBUILD_MAX_BUFFER || 16 * 1024 * 1024
-  });
-  readFromStdout(stdout);
-  afterClose(null);
-};
-var randomFileName = () => {
-  return path2.join(os2.tmpdir(), `esbuild-${crypto.randomBytes(32).toString("hex")}`);
-};
-var workerThreadService = null;
-var startWorkerThreadService = (worker_threads2) => {
-  let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel();
-  let worker = new worker_threads2.Worker(__filename, {
-    workerData: { workerPort, defaultWD, esbuildVersion: "0.18.20" },
-    transferList: [workerPort],
-    // From node's documentation: https://nodejs.org/api/worker_threads.html
-    //
-    //   Take care when launching worker threads from preload scripts (scripts loaded
-    //   and run using the `-r` command line flag). Unless the `execArgv` option is
-    //   explicitly set, new Worker threads automatically inherit the command line flags
-    //   from the running process and will preload the same preload scripts as the main
-    //   thread. If the preload script unconditionally launches a worker thread, every
-    //   thread spawned will spawn another until the application crashes.
-    //
-    execArgv: []
-  });
-  let nextID = 0;
-  let fakeBuildError = (text) => {
-    let error = new Error(`Build failed with 1 error:
-error: ${text}`);
-    let errors = [{ id: "", pluginName: "", text, location: null, notes: [], detail: void 0 }];
-    error.errors = errors;
-    error.warnings = [];
-    return error;
-  };
-  let validateBuildSyncOptions = (options) => {
-    if (!options)
-      return;
-    let plugins = options.plugins;
-    if (plugins && plugins.length > 0)
-      throw fakeBuildError(`Cannot use plugins in synchronous API calls`);
-  };
-  let applyProperties = (object, properties) => {
-    for (let key in properties) {
-      object[key] = properties[key];
-    }
-  };
-  let runCallSync = (command, args) => {
-    let id = nextID++;
-    let sharedBuffer = new SharedArrayBuffer(8);
-    let sharedBufferView = new Int32Array(sharedBuffer);
-    let msg = { sharedBuffer, id, command, args };
-    worker.postMessage(msg);
-    let status = Atomics.wait(sharedBufferView, 0, 0);
-    if (status !== "ok" && status !== "not-equal")
-      throw new Error("Internal error: Atomics.wait() failed: " + status);
-    let { message: { id: id2, resolve, reject, properties } } = worker_threads2.receiveMessageOnPort(mainPort);
-    if (id !== id2)
-      throw new Error(`Internal error: Expected id ${id} but got id ${id2}`);
-    if (reject) {
-      applyProperties(reject, properties);
-      throw reject;
-    }
-    return resolve;
-  };
-  worker.unref();
-  return {
-    buildSync(options) {
-      validateBuildSyncOptions(options);
-      return runCallSync("build", [options]);
-    },
-    transformSync(input, options) {
-      return runCallSync("transform", [input, options]);
-    },
-    formatMessagesSync(messages, options) {
-      return runCallSync("formatMessages", [messages, options]);
-    },
-    analyzeMetafileSync(metafile, options) {
-      return runCallSync("analyzeMetafile", [metafile, options]);
-    }
-  };
-};
-var startSyncServiceWorker = () => {
-  let workerPort = worker_threads.workerData.workerPort;
-  let parentPort = worker_threads.parentPort;
-  let extractProperties = (object) => {
-    let properties = {};
-    if (object && typeof object === "object") {
-      for (let key in object) {
-        properties[key] = object[key];
-      }
-    }
-    return properties;
-  };
-  try {
-    let service = ensureServiceIsRunning();
-    defaultWD = worker_threads.workerData.defaultWD;
-    parentPort.on("message", (msg) => {
-      (async () => {
-        let { sharedBuffer, id, command, args } = msg;
-        let sharedBufferView = new Int32Array(sharedBuffer);
-        try {
-          switch (command) {
-            case "build":
-              workerPort.postMessage({ id, resolve: await service.build(args[0]) });
-              break;
-            case "transform":
-              workerPort.postMessage({ id, resolve: await service.transform(args[0], args[1]) });
-              break;
-            case "formatMessages":
-              workerPort.postMessage({ id, resolve: await service.formatMessages(args[0], args[1]) });
-              break;
-            case "analyzeMetafile":
-              workerPort.postMessage({ id, resolve: await service.analyzeMetafile(args[0], args[1]) });
-              break;
-            default:
-              throw new Error(`Invalid command: ${command}`);
-          }
-        } catch (reject) {
-          workerPort.postMessage({ id, reject, properties: extractProperties(reject) });
-        }
-        Atomics.add(sharedBufferView, 0, 1);
-        Atomics.notify(sharedBufferView, 0, Infinity);
-      })();
-    });
-  } catch (reject) {
-    parentPort.on("message", (msg) => {
-      let { sharedBuffer, id } = msg;
-      let sharedBufferView = new Int32Array(sharedBuffer);
-      workerPort.postMessage({ id, reject, properties: extractProperties(reject) });
-      Atomics.add(sharedBufferView, 0, 1);
-      Atomics.notify(sharedBufferView, 0, Infinity);
-    });
-  }
-};
-if (isInternalWorkerThread) {
-  startSyncServiceWorker();
-}
-var node_default = node_exports;
-// Annotate the CommonJS export names for ESM import in node:
-0 && (module.exports = {
-  analyzeMetafile,
-  analyzeMetafileSync,
-  build,
-  buildSync,
-  context,
-  formatMessages,
-  formatMessagesSync,
-  initialize,
-  transform,
-  transformSync,
-  version
-});

+ 0 - 42
node_modules/@esbuild-kit/core-utils/node_modules/esbuild/package.json

@@ -1,42 +0,0 @@
-{
-  "name": "esbuild",
-  "version": "0.18.20",
-  "description": "An extremely fast JavaScript and CSS bundler and minifier.",
-  "repository": "https://github.com/evanw/esbuild",
-  "scripts": {
-    "postinstall": "node install.js"
-  },
-  "main": "lib/main.js",
-  "types": "lib/main.d.ts",
-  "engines": {
-    "node": ">=12"
-  },
-  "bin": {
-    "esbuild": "bin/esbuild"
-  },
-  "optionalDependencies": {
-    "@esbuild/android-arm": "0.18.20",
-    "@esbuild/android-arm64": "0.18.20",
-    "@esbuild/android-x64": "0.18.20",
-    "@esbuild/darwin-arm64": "0.18.20",
-    "@esbuild/darwin-x64": "0.18.20",
-    "@esbuild/freebsd-arm64": "0.18.20",
-    "@esbuild/freebsd-x64": "0.18.20",
-    "@esbuild/linux-arm": "0.18.20",
-    "@esbuild/linux-arm64": "0.18.20",
-    "@esbuild/linux-ia32": "0.18.20",
-    "@esbuild/linux-loong64": "0.18.20",
-    "@esbuild/linux-mips64el": "0.18.20",
-    "@esbuild/linux-ppc64": "0.18.20",
-    "@esbuild/linux-riscv64": "0.18.20",
-    "@esbuild/linux-s390x": "0.18.20",
-    "@esbuild/linux-x64": "0.18.20",
-    "@esbuild/netbsd-x64": "0.18.20",
-    "@esbuild/openbsd-x64": "0.18.20",
-    "@esbuild/sunos-x64": "0.18.20",
-    "@esbuild/win32-arm64": "0.18.20",
-    "@esbuild/win32-ia32": "0.18.20",
-    "@esbuild/win32-x64": "0.18.20"
-  },
-  "license": "MIT"
-}

+ 0 - 33
node_modules/@esbuild-kit/core-utils/package.json

@@ -1,33 +0,0 @@
-{
-  "name": "@esbuild-kit/core-utils",
-  "version": "3.3.2",
-  "publishConfig": {
-    "access": "public"
-  },
-  "license": "MIT",
-  "repository": "esbuild-kit/core-utils",
-  "author": {
-    "name": "Hiroki Osame",
-    "email": "hiroki.osame@gmail.com"
-  },
-  "files": [
-    "dist"
-  ],
-  "main": "./dist/index.js",
-  "types": "./dist/index.d.ts",
-  "exports": {
-    "types": "./dist/index.d.ts",
-    "default": "./dist/index.js"
-  },
-  "imports": {
-    "#esbuild-kit/core-utils": {
-      "types": "./src/index.ts",
-      "development": "./src/index.ts",
-      "default": "./dist/index.js"
-    }
-  },
-  "dependencies": {
-    "esbuild": "~0.18.20",
-    "source-map-support": "^0.5.21"
-  }
-}

+ 0 - 21
node_modules/@esbuild-kit/esm-loader/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) Hiroki Osame <hiroki.osame@gmail.com>
-
-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.

+ 0 - 155
node_modules/@esbuild-kit/esm-loader/README.md

@@ -1,155 +0,0 @@
-# esm-loader
-
-[Node.js loader](https://nodejs.org/api/esm.html#loaders) for loading TypeScript files.
-
-### Features
-- Transforms TypeScript to ESM on demand
-- Classic Node.js resolution (extensionless & directory imports)
-- Cached for performance boost
-- Supports Node.js v12.20.0+
-- Handles `node:` import prefixes
-- Resolves `tsconfig.json` [`paths`](https://www.typescriptlang.org/tsconfig#paths)
-- Named imports from JSON modules
-
-> **Protip: use with _cjs-loader_ or _tsx_**
->
-> _esm-loader_ only transforms ES modules (`.mjs`/`.mts` extensions or `.js` files in `module` type packages).
->
-> To transform CommonJS files (`.cjs`/`.cts` extensions or `.js` files in `commonjs` type packages), use this with [_cjs-loader_](https://github.com/esbuild-kit/cjs-loader).
->
-> Alternatively, use [tsx](https://github.com/esbuild-kit/tsx) to handle them both automatically.
-
-<br>
-
-<p align="center">
-	<a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum">
-		<picture>
-			<source width="830" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image=dark">
-			<source width="830" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image">
-			<img width="830" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=platinum&image" alt="Premium sponsor banner">
-		</picture>
-	</a>
-</p>
-
-## Install
-
-```sh
-npm install --save-dev @esbuild-kit/esm-loader
-```
-
-## Usage
-
-Pass `@esbuild-kit/esm-loader` into the [`--loader`](https://nodejs.org/api/cli.html#--experimental-loadermodule) flag.
-```sh
-node --loader @esbuild-kit/esm-loader ./file.ts
-```
-
-### TypeScript configuration
-The following properties are used from `tsconfig.json` in the working directory:
-- [`strict`](https://www.typescriptlang.org/tsconfig#strict): Whether to transform to strict mode
-- [`jsx`](https://esbuild.github.io/api/#jsx): Whether to transform JSX
-	> **Warning:** When set to `preserve`, the JSX syntax will remain untransformed. To prevent Node.js from throwing a syntax error, chain another Node.js loader that can transform JSX to JS.
-- [`jsxFactory`](https://esbuild.github.io/api/#jsx-factory): How to transform JSX
-- [`jsxFragmentFactory`](https://esbuild.github.io/api/#jsx-fragment): How to transform JSX Fragments
-- [`jsxImportSource`](https://www.typescriptlang.org/tsconfig#jsxImportSource): Where to import JSX functions from
-- [`allowJs`](https://www.typescriptlang.org/tsconfig#allowJs): Whether to apply the tsconfig to JS files
-- [`paths`](https://www.typescriptlang.org/tsconfig#paths): For resolving aliases
-
-#### Custom `tsconfig.json` path
-By default, `tsconfig.json` will be detected from the current working directory.
-
-To set a custom path, use the `ESBK_TSCONFIG_PATH` environment variable:
-
-```sh
-ESBK_TSCONFIG_PATH=./path/to/tsconfig.custom.json node --loader @esbuild-kit/esm-loader ./file.ts
-```
-
-### Cache
-Modules transformations are cached in the system cache directory ([`TMPDIR`](https://en.wikipedia.org/wiki/TMPDIR)). Transforms are cached by content hash so duplicate dependencies are not re-transformed.
-
-Set environment variable `ESBK_DISABLE_CACHE` to a truthy value to disable the cache:
-
-```sh
-ESBK_DISABLE_CACHE=1 node --loader @esbuild-kit/esm-loader ./file.ts
-```
-
-<br>
-
-<p align="center">
-	<a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold">
-		<picture>
-			<source width="830" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image=dark">
-			<source width="830" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image">
-			<img width="830" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=gold&image" alt="Premium sponsor banner">
-		</picture>
-	</a>
-</p>
-
-## FAQ
-
-### Can it import JSON modules?
-Yes. This loader transpiles JSON modules so it's also compatible with named imports.
-
-### Can it import ESM modules over network?
-
-Node.js has built-in support for network imports [behind the `--experimental-network-imports` flag](https://nodejs.org/api/esm.html#network-based-loading-is-not-enabled-by-default).
-
-You can pass it in with `esm-loader`:
-
-```sh
-node --loader @esbuild-kit/esm-loader --experimental-network-imports ./file.ts
-```
-
-### Can it resolve files without an extension?
-
-In ESM, import paths must be explicit (must include file name and extension).
-
-For backwards compatibility, this loader adds support for classic Node resolution for extensions: `.js`, `.json`, `.ts`, `.tsx`, `.jsx`. Resolving a `index` file by the directory name works too.
-
-```js
-import file from './file' // -> ./file.js
-import directory from './directory' // -> ./directory/index.js
-```
-
-### Can it use Node.js's CommonJS resolution algorithm?
-
-ESM import resolution expects explicit import paths, whereas CommonJS resolution expects implicit imports (eg. extensionless & directory imports).
-
-As a result of this change, Node.js changes how it imports a path that matches both a file and directory. In ESM, the directory would be imported, but in CJS, the file would be imported.
-
-To use to the CommonJS resolution algorithm, use the [`--experimental-specifier-resolution=node`](https://nodejs.org/api/cli.html#--experimental-specifier-resolutionmode) flag.
-
-```sh
-node --loader @esbuild-kit/esm-loader --experimental-specifier-resolution=node ./file.ts
-```
-
-## Related
-
-- [tsx](https://github.com/esbuild-kit/tsx) - Node.js runtime powered by esbuild using [`@esbuild-kit/cjs-loader`](https://github.com/esbuild-kit/cjs-loader) and [`@esbuild-kit/esm-loader`](https://github.com/esbuild-kit/esm-loader).
-
-- [@esbuild-kit/cjs-loader](https://github.com/esbuild-kit/cjs-loader) - TypeScript & ESM to CJS transpiler using the Node.js loader API.
-
-## Sponsors
-
-<p align="center">
-	<a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1">
-		<picture>
-			<source width="410" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image=dark">
-			<source width="410" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image">
-			<img width="410" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver1&image" alt="Premium sponsor banner">
-		</picture>
-	</a>
-	<a href="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2">
-		<picture>
-			<source width="410" media="(prefers-color-scheme: dark)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image=dark">
-			<source width="410" media="(prefers-color-scheme: light)" srcset="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image">
-			<img width="410" src="https://privatenumber-sponsors.vercel.app/api/sponsor?tier=silver2&image" alt="Premium sponsor banner">
-		</picture>
-	</a>
-</p>
-
-<p align="center">
-	<a href="https://github.com/sponsors/privatenumber">
-		<img src="https://cdn.jsdelivr.net/gh/privatenumber/sponsors/sponsorkit/sponsors.svg">
-	</a>
-</p>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 11
node_modules/@esbuild-kit/esm-loader/dist/index.js


+ 0 - 31
node_modules/@esbuild-kit/esm-loader/package.json

@@ -1,31 +0,0 @@
-{
-  "name": "@esbuild-kit/esm-loader",
-  "version": "2.6.5",
-  "publishConfig": {
-    "access": "public"
-  },
-  "description": "Node.js loader for compiling TypeScript modules to ESM",
-  "keywords": [
-    "esbuild",
-    "loader",
-    "node",
-    "esm",
-    "typescript"
-  ],
-  "license": "MIT",
-  "repository": "esbuild-kit/esm-loader",
-  "author": {
-    "name": "Hiroki Osame",
-    "email": "hiroki.osame@gmail.com"
-  },
-  "type": "module",
-  "files": [
-    "dist"
-  ],
-  "main": "./dist/index.js",
-  "exports": "./dist/index.js",
-  "dependencies": {
-    "@esbuild-kit/core-utils": "^3.3.2",
-    "get-tsconfig": "^4.7.0"
-  }
-}

+ 0 - 3
node_modules/@esbuild/win32-x64/README.md

@@ -1,3 +0,0 @@
-# esbuild
-
-This is the Windows 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.

BIN
node_modules/@esbuild/win32-x64/esbuild.exe


+ 0 - 20
node_modules/@esbuild/win32-x64/package.json

@@ -1,20 +0,0 @@
-{
-  "name": "@esbuild/win32-x64",
-  "version": "0.25.12",
-  "description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/evanw/esbuild.git"
-  },
-  "license": "MIT",
-  "preferUnplugged": true,
-  "engines": {
-    "node": ">=18"
-  },
-  "os": [
-    "win32"
-  ],
-  "cpu": [
-    "x64"
-  ]
-}

+ 0 - 23
node_modules/@ioredis/commands/LICENSE

@@ -1,23 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2022 Zihua Li
-Copyright (c) 2015 NodeRedis
-
-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.
-

+ 0 - 43
node_modules/@ioredis/commands/README.md

@@ -1,43 +0,0 @@
-# Redis Commands
-
-This module exports all the commands that Redis supports.
-
-## Install
-
-```shell
-$ npm install @ioredis/commands
-```
-
-## Usage
-
-```js
-const commands = require('@ioredis/commands');
-```
-
-`.list` is an array contains all the lowercased commands:
-
-```js
-commands.list.forEach((command) => {
-  console.log(command);
-});
-```
-
-`.exists()` is used to check if the command exists:
-
-```js
-commands.exists('set') // true
-commands.exists('other-command') // false
-```
-
-`.hasFlag()` is used to check if the command has the flag:
-
-```js
-commands.hasFlag('set', 'readonly') // false
-```
-
-`.getKeyIndexes()` is used to get the indexes of keys in the command arguments:
-
-```js
-commands.getKeyIndexes('set', ['key', 'value']) // [0]
-commands.getKeyIndexes('mget', ['key1', 'key2']) // [0, 1]
-```

+ 0 - 2578
node_modules/@ioredis/commands/built/commands.json

@@ -1,2578 +0,0 @@
-{
-    "acl": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "append": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "asking": {
-        "arity": 1,
-        "flags": [
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "auth": {
-        "arity": -2,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "no_auth",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "bgrewriteaof": {
-        "arity": 1,
-        "flags": [
-            "admin",
-            "noscript",
-            "no_async_loading"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "bgsave": {
-        "arity": -1,
-        "flags": [
-            "admin",
-            "noscript",
-            "no_async_loading"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "bitcount": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "bitfield": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "bitfield_ro": {
-        "arity": -2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "bitop": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 2,
-        "keyStop": -1,
-        "step": 1
-    },
-    "bitpos": {
-        "arity": -3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "blmove": {
-        "arity": 6,
-        "flags": [
-            "write",
-            "denyoom",
-            "noscript",
-            "blocking"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "blmpop": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "blocking",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "blpop": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "noscript",
-            "blocking"
-        ],
-        "keyStart": 1,
-        "keyStop": -2,
-        "step": 1
-    },
-    "brpop": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "noscript",
-            "blocking"
-        ],
-        "keyStart": 1,
-        "keyStop": -2,
-        "step": 1
-    },
-    "brpoplpush": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom",
-            "noscript",
-            "blocking"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "bzmpop": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "blocking",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "bzpopmax": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "noscript",
-            "blocking",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": -2,
-        "step": 1
-    },
-    "bzpopmin": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "noscript",
-            "blocking",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": -2,
-        "step": 1
-    },
-    "client": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "cluster": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "command": {
-        "arity": -1,
-        "flags": [
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "config": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "copy": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "dbsize": {
-        "arity": 1,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "debug": {
-        "arity": -2,
-        "flags": [
-            "admin",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "decr": {
-        "arity": 2,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "decrby": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "del": {
-        "arity": -2,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "discard": {
-        "arity": 1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "dump": {
-        "arity": 2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "echo": {
-        "arity": 2,
-        "flags": [
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "eval": {
-        "arity": -3,
-        "flags": [
-            "noscript",
-            "stale",
-            "skip_monitor",
-            "no_mandatory_keys",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "eval_ro": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "noscript",
-            "stale",
-            "skip_monitor",
-            "no_mandatory_keys",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "evalsha": {
-        "arity": -3,
-        "flags": [
-            "noscript",
-            "stale",
-            "skip_monitor",
-            "no_mandatory_keys",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "evalsha_ro": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "noscript",
-            "stale",
-            "skip_monitor",
-            "no_mandatory_keys",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "exec": {
-        "arity": 1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "skip_slowlog"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "exists": {
-        "arity": -2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "expire": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "expireat": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "expiretime": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "failover": {
-        "arity": -1,
-        "flags": [
-            "admin",
-            "noscript",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "fcall": {
-        "arity": -3,
-        "flags": [
-            "noscript",
-            "stale",
-            "skip_monitor",
-            "no_mandatory_keys",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "fcall_ro": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "noscript",
-            "stale",
-            "skip_monitor",
-            "no_mandatory_keys",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "flushall": {
-        "arity": -1,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "flushdb": {
-        "arity": -1,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "function": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "geoadd": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "geodist": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "geohash": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "geopos": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "georadius": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "denyoom",
-            "movablekeys"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "georadius_ro": {
-        "arity": -6,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "georadiusbymember": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "denyoom",
-            "movablekeys"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "georadiusbymember_ro": {
-        "arity": -5,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "geosearch": {
-        "arity": -7,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "geosearchstore": {
-        "arity": -8,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "get": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "getbit": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "getdel": {
-        "arity": 2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "getex": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "getrange": {
-        "arity": 4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "getset": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hdel": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hello": {
-        "arity": -1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "no_auth",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "hexists": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hexpire": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hexpireat": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hexpiretime": {
-        "arity": -5,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hget": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hgetall": {
-        "arity": 2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hgetdel": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hgetex": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hincrby": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hincrbyfloat": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hkeys": {
-        "arity": 2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hlen": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hmget": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hmset": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hpersist": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hpexpire": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hpexpireat": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hpexpiretime": {
-        "arity": -5,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hpttl": {
-        "arity": -5,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hrandfield": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hscan": {
-        "arity": -3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hset": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hsetex": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hsetnx": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hstrlen": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "httl": {
-        "arity": -5,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "hvals": {
-        "arity": 2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "incr": {
-        "arity": 2,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "incrby": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "incrbyfloat": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "info": {
-        "arity": -1,
-        "flags": [
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "keys": {
-        "arity": 2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "lastsave": {
-        "arity": 1,
-        "flags": [
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "latency": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "lcs": {
-        "arity": -3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "lindex": {
-        "arity": 3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "linsert": {
-        "arity": 5,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "llen": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "lmove": {
-        "arity": 5,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "lmpop": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "lolwut": {
-        "arity": -1,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "lpop": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "lpos": {
-        "arity": -3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "lpush": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "lpushx": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "lrange": {
-        "arity": 4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "lrem": {
-        "arity": 4,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "lset": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "ltrim": {
-        "arity": 4,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "memory": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "mget": {
-        "arity": -2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "migrate": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "movablekeys"
-        ],
-        "keyStart": 3,
-        "keyStop": 3,
-        "step": 1
-    },
-    "module": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "monitor": {
-        "arity": 1,
-        "flags": [
-            "admin",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "move": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "mset": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 2
-    },
-    "msetnx": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 2
-    },
-    "multi": {
-        "arity": 1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "object": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "persist": {
-        "arity": 2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "pexpire": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "pexpireat": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "pexpiretime": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "pfadd": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "pfcount": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "pfdebug": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom",
-            "admin"
-        ],
-        "keyStart": 2,
-        "keyStop": 2,
-        "step": 1
-    },
-    "pfmerge": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "pfselftest": {
-        "arity": 1,
-        "flags": [
-            "admin"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "ping": {
-        "arity": -1,
-        "flags": [
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "psetex": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "psubscribe": {
-        "arity": -2,
-        "flags": [
-            "pubsub",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "psync": {
-        "arity": -3,
-        "flags": [
-            "admin",
-            "noscript",
-            "no_async_loading",
-            "no_multi"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "pttl": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "publish": {
-        "arity": 3,
-        "flags": [
-            "pubsub",
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "pubsub": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "punsubscribe": {
-        "arity": -1,
-        "flags": [
-            "pubsub",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "quit": {
-        "arity": -1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "no_auth",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "randomkey": {
-        "arity": 1,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "readonly": {
-        "arity": 1,
-        "flags": [
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "readwrite": {
-        "arity": 1,
-        "flags": [
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "rename": {
-        "arity": 3,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "renamenx": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "replconf": {
-        "arity": -1,
-        "flags": [
-            "admin",
-            "noscript",
-            "loading",
-            "stale",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "replicaof": {
-        "arity": 3,
-        "flags": [
-            "admin",
-            "noscript",
-            "stale",
-            "no_async_loading"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "reset": {
-        "arity": 1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "no_auth",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "restore": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "restore-asking": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom",
-            "asking"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "role": {
-        "arity": 1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "rpop": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "rpoplpush": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "rpush": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "rpushx": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "sadd": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "save": {
-        "arity": 1,
-        "flags": [
-            "admin",
-            "noscript",
-            "no_async_loading",
-            "no_multi"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "scan": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "scard": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "script": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "sdiff": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "sdiffstore": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "select": {
-        "arity": 2,
-        "flags": [
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "set": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "setbit": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "setex": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "setnx": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "setrange": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "shutdown": {
-        "arity": -1,
-        "flags": [
-            "admin",
-            "noscript",
-            "loading",
-            "stale",
-            "no_multi",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "sinter": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "sintercard": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "sinterstore": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "sismember": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "slaveof": {
-        "arity": 3,
-        "flags": [
-            "admin",
-            "noscript",
-            "stale",
-            "no_async_loading"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "slowlog": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "smembers": {
-        "arity": 2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "smismember": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "smove": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "sort": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "denyoom",
-            "movablekeys"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "sort_ro": {
-        "arity": -2,
-        "flags": [
-            "readonly",
-            "movablekeys"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "spop": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "spublish": {
-        "arity": 3,
-        "flags": [
-            "pubsub",
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "srandmember": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "srem": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "sscan": {
-        "arity": -3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "ssubscribe": {
-        "arity": -2,
-        "flags": [
-            "pubsub",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "strlen": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "subscribe": {
-        "arity": -2,
-        "flags": [
-            "pubsub",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "substr": {
-        "arity": 4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "sunion": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "sunionstore": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "sunsubscribe": {
-        "arity": -1,
-        "flags": [
-            "pubsub",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "swapdb": {
-        "arity": 3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "sync": {
-        "arity": 1,
-        "flags": [
-            "admin",
-            "noscript",
-            "no_async_loading",
-            "no_multi"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "time": {
-        "arity": 1,
-        "flags": [
-            "loading",
-            "stale",
-            "fast"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "touch": {
-        "arity": -2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "ttl": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "type": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "unlink": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "unsubscribe": {
-        "arity": -1,
-        "flags": [
-            "pubsub",
-            "noscript",
-            "loading",
-            "stale"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "unwatch": {
-        "arity": 1,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "allow_busy"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "wait": {
-        "arity": 3,
-        "flags": [
-            "noscript"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "watch": {
-        "arity": -2,
-        "flags": [
-            "noscript",
-            "loading",
-            "stale",
-            "fast",
-            "allow_busy"
-        ],
-        "keyStart": 1,
-        "keyStop": -1,
-        "step": 1
-    },
-    "xack": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xadd": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xautoclaim": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xclaim": {
-        "arity": -6,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xdel": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xdelex": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xgroup": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "xinfo": {
-        "arity": -2,
-        "flags": [],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "xlen": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xpending": {
-        "arity": -3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xrange": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xread": {
-        "arity": -4,
-        "flags": [
-            "readonly",
-            "blocking",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "xreadgroup": {
-        "arity": -7,
-        "flags": [
-            "write",
-            "blocking",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "xrevrange": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xsetid": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "xtrim": {
-        "arity": -4,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zadd": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zcard": {
-        "arity": 2,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zcount": {
-        "arity": 4,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zdiff": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "zdiffstore": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom",
-            "movablekeys"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zincrby": {
-        "arity": 4,
-        "flags": [
-            "write",
-            "denyoom",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zinter": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "zintercard": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "zinterstore": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom",
-            "movablekeys"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zlexcount": {
-        "arity": 4,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zmpop": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "zmscore": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zpopmax": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zpopmin": {
-        "arity": -2,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrandmember": {
-        "arity": -2,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrange": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrangebylex": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrangebyscore": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrangestore": {
-        "arity": -5,
-        "flags": [
-            "write",
-            "denyoom"
-        ],
-        "keyStart": 1,
-        "keyStop": 2,
-        "step": 1
-    },
-    "zrank": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrem": {
-        "arity": -3,
-        "flags": [
-            "write",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zremrangebylex": {
-        "arity": 4,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zremrangebyrank": {
-        "arity": 4,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zremrangebyscore": {
-        "arity": 4,
-        "flags": [
-            "write"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrevrange": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrevrangebylex": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrevrangebyscore": {
-        "arity": -4,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zrevrank": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zscan": {
-        "arity": -3,
-        "flags": [
-            "readonly"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zscore": {
-        "arity": 3,
-        "flags": [
-            "readonly",
-            "fast"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    },
-    "zunion": {
-        "arity": -3,
-        "flags": [
-            "readonly",
-            "movablekeys"
-        ],
-        "keyStart": 0,
-        "keyStop": 0,
-        "step": 0
-    },
-    "zunionstore": {
-        "arity": -4,
-        "flags": [
-            "write",
-            "denyoom",
-            "movablekeys"
-        ],
-        "keyStart": 1,
-        "keyStop": 1,
-        "step": 1
-    }
-}

+ 0 - 34
node_modules/@ioredis/commands/built/index.d.ts

@@ -1,34 +0,0 @@
-/// <reference types="node" />
-/**
- * Redis command list
- *
- * All commands are lowercased.
- */
-export declare const list: string[];
-/**
- * Check if the command exists
- */
-export declare function exists(commandName: string, options?: {
-    caseInsensitive?: boolean;
-}): boolean;
-/**
- * Check if the command has the flag
- *
- * Some of possible flags: readonly, noscript, loading
- */
-export declare function hasFlag(commandName: string, flag: string, options?: {
-    nameCaseInsensitive?: boolean;
-}): boolean;
-/**
- * Get indexes of keys in the command arguments
- *
- * @example
- * ```javascript
- * getKeyIndexes('set', ['key', 'value']) // [0]
- * getKeyIndexes('mget', ['key1', 'key2']) // [0, 1]
- * ```
- */
-export declare function getKeyIndexes(commandName: string, args: (string | Buffer | number)[], options?: {
-    parseExternalKey?: boolean;
-    nameCaseInsensitive?: boolean;
-}): number[];

+ 0 - 217
node_modules/@ioredis/commands/built/index.js

@@ -1,217 +0,0 @@
-"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getKeyIndexes = exports.hasFlag = exports.exists = exports.list = void 0;
-const commands_json_1 = __importDefault(require("./commands.json"));
-/**
- * Redis command list
- *
- * All commands are lowercased.
- */
-exports.list = Object.keys(commands_json_1.default);
-const flags = {};
-exports.list.forEach((commandName) => {
-    flags[commandName] = commands_json_1.default[commandName].flags.reduce(function (flags, flag) {
-        flags[flag] = true;
-        return flags;
-    }, {});
-});
-/**
- * Check if the command exists
- */
-function exists(commandName, options) {
-    commandName = (options === null || options === void 0 ? void 0 : options.caseInsensitive)
-        ? String(commandName).toLowerCase()
-        : commandName;
-    return Boolean(commands_json_1.default[commandName]);
-}
-exports.exists = exists;
-/**
- * Check if the command has the flag
- *
- * Some of possible flags: readonly, noscript, loading
- */
-function hasFlag(commandName, flag, options) {
-    commandName = (options === null || options === void 0 ? void 0 : options.nameCaseInsensitive)
-        ? String(commandName).toLowerCase()
-        : commandName;
-    if (!flags[commandName]) {
-        throw new Error("Unknown command " + commandName);
-    }
-    return Boolean(flags[commandName][flag]);
-}
-exports.hasFlag = hasFlag;
-/**
- * Get indexes of keys in the command arguments
- *
- * @example
- * ```javascript
- * getKeyIndexes('set', ['key', 'value']) // [0]
- * getKeyIndexes('mget', ['key1', 'key2']) // [0, 1]
- * ```
- */
-function getKeyIndexes(commandName, args, options) {
-    commandName = (options === null || options === void 0 ? void 0 : options.nameCaseInsensitive)
-        ? String(commandName).toLowerCase()
-        : commandName;
-    const command = commands_json_1.default[commandName];
-    if (!command) {
-        throw new Error("Unknown command " + commandName);
-    }
-    if (!Array.isArray(args)) {
-        throw new Error("Expect args to be an array");
-    }
-    const keys = [];
-    const parseExternalKey = Boolean(options && options.parseExternalKey);
-    const takeDynamicKeys = (args, startIndex) => {
-        const keys = [];
-        const keyStop = Number(args[startIndex]);
-        for (let i = 0; i < keyStop; i++) {
-            keys.push(i + startIndex + 1);
-        }
-        return keys;
-    };
-    const takeKeyAfterToken = (args, startIndex, token) => {
-        for (let i = startIndex; i < args.length - 1; i += 1) {
-            if (String(args[i]).toLowerCase() === token.toLowerCase()) {
-                return i + 1;
-            }
-        }
-        return null;
-    };
-    switch (commandName) {
-        case "zunionstore":
-        case "zinterstore":
-        case "zdiffstore":
-            keys.push(0, ...takeDynamicKeys(args, 1));
-            break;
-        case "eval":
-        case "evalsha":
-        case "eval_ro":
-        case "evalsha_ro":
-        case "fcall":
-        case "fcall_ro":
-        case "blmpop":
-        case "bzmpop":
-            keys.push(...takeDynamicKeys(args, 1));
-            break;
-        case "sintercard":
-        case "lmpop":
-        case "zunion":
-        case "zinter":
-        case "zmpop":
-        case "zintercard":
-        case "zdiff": {
-            keys.push(...takeDynamicKeys(args, 0));
-            break;
-        }
-        case "georadius": {
-            keys.push(0);
-            const storeKey = takeKeyAfterToken(args, 5, "STORE");
-            if (storeKey)
-                keys.push(storeKey);
-            const distKey = takeKeyAfterToken(args, 5, "STOREDIST");
-            if (distKey)
-                keys.push(distKey);
-            break;
-        }
-        case "georadiusbymember": {
-            keys.push(0);
-            const storeKey = takeKeyAfterToken(args, 4, "STORE");
-            if (storeKey)
-                keys.push(storeKey);
-            const distKey = takeKeyAfterToken(args, 4, "STOREDIST");
-            if (distKey)
-                keys.push(distKey);
-            break;
-        }
-        case "sort":
-        case "sort_ro":
-            keys.push(0);
-            for (let i = 1; i < args.length - 1; i++) {
-                let arg = args[i];
-                if (typeof arg !== "string") {
-                    continue;
-                }
-                const directive = arg.toUpperCase();
-                if (directive === "GET") {
-                    i += 1;
-                    arg = args[i];
-                    if (arg !== "#") {
-                        if (parseExternalKey) {
-                            keys.push([i, getExternalKeyNameLength(arg)]);
-                        }
-                        else {
-                            keys.push(i);
-                        }
-                    }
-                }
-                else if (directive === "BY") {
-                    i += 1;
-                    if (parseExternalKey) {
-                        keys.push([i, getExternalKeyNameLength(args[i])]);
-                    }
-                    else {
-                        keys.push(i);
-                    }
-                }
-                else if (directive === "STORE") {
-                    i += 1;
-                    keys.push(i);
-                }
-            }
-            break;
-        case "migrate":
-            if (args[2] === "") {
-                for (let i = 5; i < args.length - 1; i++) {
-                    const arg = args[i];
-                    if (typeof arg === "string" && arg.toUpperCase() === "KEYS") {
-                        for (let j = i + 1; j < args.length; j++) {
-                            keys.push(j);
-                        }
-                        break;
-                    }
-                }
-            }
-            else {
-                keys.push(2);
-            }
-            break;
-        case "xreadgroup":
-        case "xread":
-            // Keys are 1st half of the args after STREAMS argument.
-            for (let i = commandName === "xread" ? 0 : 3; i < args.length - 1; i++) {
-                if (String(args[i]).toUpperCase() === "STREAMS") {
-                    for (let j = i + 1; j <= i + (args.length - 1 - i) / 2; j++) {
-                        keys.push(j);
-                    }
-                    break;
-                }
-            }
-            break;
-        default:
-            // Step has to be at least one in this case, otherwise the command does
-            // not contain a key.
-            if (command.step > 0) {
-                const keyStart = command.keyStart - 1;
-                const keyStop = command.keyStop > 0
-                    ? command.keyStop
-                    : args.length + command.keyStop + 1;
-                for (let i = keyStart; i < keyStop; i += command.step) {
-                    keys.push(i);
-                }
-            }
-            break;
-    }
-    return keys;
-}
-exports.getKeyIndexes = getKeyIndexes;
-function getExternalKeyNameLength(key) {
-    if (typeof key !== "string") {
-        key = String(key);
-    }
-    const hashPos = key.indexOf("->");
-    return hashPos === -1 ? key.length : hashPos;
-}

+ 0 - 52
node_modules/@ioredis/commands/package.json

@@ -1,52 +0,0 @@
-{
-  "name": "@ioredis/commands",
-  "version": "1.5.1",
-  "description": "Redis commands",
-  "main": "built/index.js",
-  "files": [
-    "built/",
-    "commands.json"
-  ],
-  "scripts": {
-    "pretest": "npm run lint",
-    "test": "mocha",
-    "build": "rm -rf built && tsc",
-    "gen": "node tools/build",
-    "lint": "standard --fix --verbose | snazzy",
-    "release": "release-it"
-  },
-  "publishConfig": {
-    "access": "public",
-    "registry": "https://registry.npmjs.org/"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/ioredis/commands.git"
-  },
-  "keywords": [
-    "redis",
-    "commands",
-    "prefix"
-  ],
-  "author": "Zihua Li <i@zihua.li> (http://zihua.li)",
-  "license": "MIT",
-  "bugs": {
-    "url": "https://github.com/ioredis/commands/issues"
-  },
-  "homepage": "https://github.com/ioredis/commands",
-  "devDependencies": {
-    "@release-it/conventional-changelog": "^4.2.0",
-    "@semantic-release/changelog": "^6.0.1",
-    "@semantic-release/commit-analyzer": "^9.0.2",
-    "@semantic-release/git": "^10.0.1",
-    "chai": "^4.3.6",
-    "ioredis": "^5.0.6",
-    "mocha": "^9.2.1",
-    "release-it": "^14.12.5",
-    "safe-stable-stringify": "^2.3.1",
-    "semantic-release": "^19.0.2",
-    "snazzy": "^9.0.0",
-    "standard": "^16.0.4",
-    "typescript": "^4.6.2"
-  }
-}

+ 0 - 1
node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/README.md

@@ -1 +0,0 @@
-Platform specific binary for msgpackr-extract on win32 OS with x64 architecture

+ 0 - 0
node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/index.js


BIN
node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/node.abi115.node


BIN
node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/node.napi.node


+ 0 - 17
node_modules/@msgpackr-extract/msgpackr-extract-win32-x64/package.json

@@ -1,17 +0,0 @@
-{
-  "name": "@msgpackr-extract/msgpackr-extract-win32-x64",
-  "version": "3.0.3",
-  "os": [
-    "win32"
-  ],
-  "cpu": [
-    "x64"
-  ],
-  "license": "MIT",
-  "author": "Kris Zyp",
-  "repository": {
-    "type": "git",
-    "url": "http://github.com/kriszyp/msgpackr-extract"
-  },
-  "description": "Platform specific binary for msgpackr-extract on win32 OS with x64 architecture"
-}

+ 0 - 41
node_modules/@nodable/entities/README.md

@@ -1,41 +0,0 @@
-# @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 & <stuff>');
-// → 'Hello &copy; 2024 &amp; &lt;stuff&gt;'
-
-// Decode: entity references → plain text
-const dec = new EntityDecoder({ namedEntities: ALL_ENTITIES });
-dec.decode('Hello &copy; 2024 &amp; &lt;stuff&gt;');
-// → 'Hello © 2024 & <stuff>'
-```
-
-## 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

+ 0 - 54
node_modules/@nodable/entities/package.json

@@ -1,54 +0,0 @@
-{
-  "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)"
-    ]
-  }
-}

+ 0 - 543
node_modules/@nodable/entities/src/EntityDecoder.js

@@ -1,543 +0,0 @@
-// ---------------------------------------------------------------------------
-// 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<string, string>}
- */
-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<string>}
- */
-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; / &#xHH;) 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; &lt;'); // '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<string, string>} */
-    this._externalMap = Object.create(null);
-
-    // Input / runtime entities — current document only, wiped on reset().
-    /** @type {Record<string, string>} */
-    this._inputMap = Object.create(null);
-
-    // Per-document counters
-    this._totalExpansions = 0;
-    this._expandedLength = 0;
-
-    // --- New: remove / leave sets ---
-    /** @type {Set<string>} */
-    this._removeSet = new Set(options.remove && Array.isArray(options.remove) ? options.remove : []);
-    /** @type {Set<string>} */
-    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<string, string | { regex?: RegExp, val: string }>} 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<string, string | { regx?: RegExp, regex?: RegExp, val: string }>} 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 <?xml?>)
-  // -------------------------------------------------------------------------
-
-  /**
-   * Update the XML version used for NCR classification.
-   * Call this as soon as the document's `<?xml version="...">` 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);
-  }
-}

+ 0 - 194
node_modules/@nodable/entities/src/EntityEncoder.js

@@ -1,194 +0,0 @@
-// 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] = '&amp;';   // &
-XML_UNSAFE_REPLACEMENT[60] = '&lt;';    // <
-XML_UNSAFE_REPLACEMENT[62] = '&gt;';    // >
-XML_UNSAFE_REPLACEMENT[34] = '&quot;';  // "
-XML_UNSAFE_REPLACEMENT[39] = '&apos;';  // '
-
-// 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;
-  }
-}

+ 0 - 1177
node_modules/@nodable/entities/src/entities.js

@@ -1,1177 +0,0 @@
-// ---------------------------------------------------------------------------
-// Complete HTML5 named entity reference
-// Organized by logical categories for easy maintenance and selective importing
-// ---------------------------------------------------------------------------
-
-/**
- * Basic Latin & Special Characters
- * @type {Record<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-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<string, string>}
- */
-export const CURRENCY = {
-  cent: '¢',
-  pound: '£',
-  curren: '¤',
-  yen: '¥',
-  euro: '€',
-  dollar: '$',
-  euro: '€',
-  fnof: 'ƒ',
-  inr: '₹',
-  af: '؋',
-  birr: 'ብር',
-  peso: '₱',
-  rub: '₽',
-  won: '₩',
-  yuan: '¥',
-  cedil: '¸',
-};
-
-/**
- * Fractions
- * @type {Record<string, string>}
- */
-export const FRACTIONS = {
-  frac12: '½',
-  half: '½',
-  frac13: '⅓',
-  frac14: '¼',
-  frac15: '⅕',
-  frac16: '⅙',
-  frac18: '⅛',
-  frac23: '⅔',
-  frac25: '⅖',
-  frac34: '¾',
-  frac35: '⅗',
-  frac38: '⅜',
-  frac45: '⅘',
-  frac56: '⅚',
-  frac58: '⅝',
-  frac78: '⅞',
-  frasl: '⁄',
-};
-
-/**
- * Miscellaneous Symbols
- * @type {Record<string, string>}
- */
-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<string, string>}
- */
-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; / &#xHH;) are handled by the scanner directly
-// via String.fromCodePoint() without any map lookup.
-// ---------------------------------------------------------------------------

+ 0 - 49
node_modules/@nodable/entities/src/entityTries.js

@@ -1,49 +0,0 @@
-// 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<code0, entity>
-// trie2: Map<code0, Map<code1, entity>>
-// trie3: Map<code0, Map<code1, Map<code2, entity>>>
-
-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
-}

+ 0 - 264
node_modules/@nodable/entities/src/index.d.ts

@@ -1,264 +0,0 @@
-// ---------------------------------------------------------------------------
-// @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. `é` → `&eacute;`) 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>');   // "&lt;foo&gt;"
- * encoder.encode('© 2025');  // "&copy; 2025"
- *
- * // With limit
- * const limited = new EntityEncoder({ maxReplacements: 2 });
- * limited.encode('<>&');     // "&lt;&gt;&"  (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<string, string | { regex: RegExp; val: string | EntityValFn }> | 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;`, `&#xHH;`) 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;`, `&#xHH;`) 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; &lt;'); // 'Acme v1.0 <'
- *
- * decoder.reset(); // clears input entities + counters, keeps external entities
- */
-export default class EntityDecoder {
-  constructor(options?: EntityDecoderOptions);
-
-  setExternalEntities(
-    map: Record<string, string | { regex: RegExp; val: string | EntityValFn }>
-  ): 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<string, string>;
-export const ALL_ENTITIES: Record<string, string>;
-export const XML: Record<string, string>;
-export const BASIC_LATIN: Record<string, string>;
-export const LATIN_ACCENTS: Record<string, string>;
-export const LATIN_EXTENDED: Record<string, string>;
-export const GREEK: Record<string, string>;
-export const CYRILLIC: Record<string, string>;
-export const MATH: Record<string, string>;
-export const MATH_ADVANCED: Record<string, string>;
-export const ARROWS: Record<string, string>;
-export const SHAPES: Record<string, string>;
-export const PUNCTUATION: Record<string, string>;
-export const CURRENCY: Record<string, string>;
-export const FRACTIONS: Record<string, string>;
-export const MISC_SYMBOLS: Record<string, string>;

+ 0 - 29
node_modules/@nodable/entities/src/index.js

@@ -1,29 +0,0 @@
-/**
- * @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';

+ 0 - 21
node_modules/@types/fluent-ffmpeg/LICENSE

@@ -1,21 +0,0 @@
-    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

+ 0 - 15
node_modules/@types/fluent-ffmpeg/README.md

@@ -1,15 +0,0 @@
-# Installation
-> `npm install --save @types/fluent-ffmpeg`
-
-# Summary
-This package contains type definitions for fluent-ffmpeg (https://github.com/fluent-ffmpeg/node-fluent-ffmpeg).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fluent-ffmpeg.
-
-### Additional Details
- * Last updated: Fri, 24 Oct 2025 04:02:41 GMT
- * Dependencies: [@types/node](https://npmjs.com/package/@types/node)
-
-# Credits
-These definitions were written by [KIM Jaesuck a.k.a. gim tcaesvk](https://github.com/tcaesvk), [DingWeizhe](https://github.com/DingWeizhe), [Mounir Abid](https://github.com/mabidina), [Doyoung Ha](https://github.com/hados99), and [Prasad Nayak](https://github.com/buzzertech).

+ 0 - 508
node_modules/@types/fluent-ffmpeg/index.d.ts

@@ -1,508 +0,0 @@
-/// <reference types="node" />
-
-import events = require("events");
-import stream = require("stream");
-
-declare namespace Ffmpeg {
-    interface FfmpegCommandLogger {
-        error(...data: any[]): void;
-        warn(...data: any[]): void;
-        info(...data: any[]): void;
-        debug(...data: any[]): void;
-    }
-
-    interface FfmpegCommandOptions {
-        logger?: FfmpegCommandLogger | undefined;
-        niceness?: number | undefined;
-        priority?: number | undefined;
-        presets?: string | undefined;
-        preset?: string | undefined;
-        stdoutLines?: number | undefined;
-        timeout?: number | undefined;
-        source?: string | stream.Readable | undefined;
-        cwd?: string | undefined;
-    }
-
-    interface FilterSpecification {
-        filter: string;
-        inputs?: string | string[] | undefined;
-        outputs?: string | string[] | undefined;
-        options?: any | string | any[] | undefined;
-    }
-
-    type PresetFunction = (command: FfmpegCommand) => void;
-
-    interface Filter {
-        description: string;
-        input: string;
-        multipleInputs: boolean;
-        output: string;
-        multipleOutputs: boolean;
-    }
-    interface Filters {
-        [key: string]: Filter;
-    }
-    type FiltersCallback = (err: Error, filters: Filters) => void;
-
-    interface Codec {
-        type: string;
-        description: string;
-        canDecode: boolean;
-        canEncode: boolean;
-        drawHorizBand?: boolean | undefined;
-        directRendering?: boolean | undefined;
-        weirdFrameTruncation?: boolean | undefined;
-        intraFrameOnly?: boolean | undefined;
-        isLossy?: boolean | undefined;
-        isLossless?: boolean | undefined;
-    }
-    interface Codecs {
-        [key: string]: Codec;
-    }
-    type CodecsCallback = (err: Error, codecs: Codecs) => void;
-
-    interface Encoder {
-        type: string;
-        description: string;
-        frameMT: boolean;
-        sliceMT: boolean;
-        experimental: boolean;
-        drawHorizBand: boolean;
-        directRendering: boolean;
-    }
-    interface Encoders {
-        [key: string]: Encoder;
-    }
-    type EncodersCallback = (err: Error, encoders: Encoders) => void;
-
-    interface Format {
-        description: string;
-        canDemux: boolean;
-        canMux: boolean;
-    }
-    interface Formats {
-        [key: string]: Format;
-    }
-    type FormatsCallback = (err: Error, formats: Formats) => void;
-
-    interface FfprobeData {
-        streams: FfprobeStream[];
-        format: FfprobeFormat;
-        chapters: any[];
-    }
-
-    interface FfprobeStream {
-        [key: string]: any;
-        index: number;
-        codec_name?: string | undefined;
-        codec_long_name?: string | undefined;
-        profile?: number | undefined;
-        codec_type?: string | undefined;
-        codec_time_base?: string | undefined;
-        codec_tag_string?: string | undefined;
-        codec_tag?: string | undefined;
-        width?: number | undefined;
-        height?: number | undefined;
-        coded_width?: number | undefined;
-        coded_height?: number | undefined;
-        has_b_frames?: number | undefined;
-        sample_aspect_ratio?: string | undefined;
-        display_aspect_ratio?: string | undefined;
-        pix_fmt?: string | undefined;
-        level?: string | undefined;
-        color_range?: string | undefined;
-        color_space?: string | undefined;
-        color_transfer?: string | undefined;
-        color_primaries?: string | undefined;
-        chroma_location?: string | undefined;
-        field_order?: string | undefined;
-        timecode?: string | undefined;
-        refs?: number | undefined;
-        id?: string | undefined;
-        r_frame_rate?: string | undefined;
-        avg_frame_rate?: string | undefined;
-        time_base?: string | undefined;
-        start_pts?: number | undefined;
-        start_time?: number | undefined;
-        duration_ts?: string | undefined;
-        duration?: string | undefined;
-        bit_rate?: string | undefined;
-        max_bit_rate?: string | undefined;
-        bits_per_raw_sample?: string | undefined;
-        nb_frames?: string | undefined;
-        nb_read_frames?: string | undefined;
-        nb_read_packets?: string | undefined;
-        sample_fmt?: string | undefined;
-        sample_rate?: number | undefined;
-        channels?: number | undefined;
-        channel_layout?: string | undefined;
-        bits_per_sample?: number | undefined;
-        disposition?: FfprobeStreamDisposition | undefined;
-        rotation?: string | number | undefined;
-    }
-
-    interface FfprobeStreamDisposition {
-        [key: string]: any;
-        default?: number | undefined;
-        dub?: number | undefined;
-        original?: number | undefined;
-        comment?: number | undefined;
-        lyrics?: number | undefined;
-        karaoke?: number | undefined;
-        forced?: number | undefined;
-        hearing_impaired?: number | undefined;
-        visual_impaired?: number | undefined;
-        clean_effects?: number | undefined;
-        attached_pic?: number | undefined;
-        timed_thumbnails?: number | undefined;
-    }
-
-    interface FfprobeFormat {
-        [key: string]: any;
-        filename?: string | undefined;
-        nb_streams?: number | undefined;
-        nb_programs?: number | undefined;
-        format_name?: string | undefined;
-        format_long_name?: string | undefined;
-        start_time?: number | undefined;
-        duration?: number | undefined;
-        size?: number | undefined;
-        bit_rate?: number | undefined;
-        probe_score?: number | undefined;
-        tags?: Record<string, string | number> | undefined;
-    }
-
-    interface ScreenshotsConfig {
-        count?: number | undefined;
-        folder?: string | undefined;
-        filename?: string | undefined;
-        timemarks?: number[] | string[] | undefined;
-        timestamps?: number[] | string[] | undefined;
-        fastSeek?: boolean | undefined;
-        size?: string | undefined;
-    }
-
-    interface AudioVideoFilter {
-        filter: string;
-        options: string | string[] | {};
-    }
-
-    // static methods
-    function setFfmpegPath(path: string): FfmpegCommand;
-    function setFfprobePath(path: string): FfmpegCommand;
-    function setFlvtoolPath(path: string): FfmpegCommand;
-    function availableFilters(callback: FiltersCallback): void;
-    function getAvailableFilters(callback: FiltersCallback): void;
-    function availableCodecs(callback: CodecsCallback): void;
-    function getAvailableCodecs(callback: CodecsCallback): void;
-    function availableEncoders(callback: EncodersCallback): void;
-    function getAvailableEncoders(callback: EncodersCallback): void;
-    function availableFormats(callback: FormatsCallback): void;
-    function getAvailableFormats(callback: FormatsCallback): void;
-
-    class FfmpegCommand extends events.EventEmitter {
-        constructor(options?: FfmpegCommandOptions);
-        constructor(input?: string | stream.Readable, options?: FfmpegCommandOptions);
-
-        // options/inputs
-        mergeAdd(source: string | stream.Readable): FfmpegCommand;
-        addInput(source: string | stream.Readable): FfmpegCommand;
-        input(source: string | stream.Readable): FfmpegCommand;
-        withInputFormat(format: string): FfmpegCommand;
-        inputFormat(format: string): FfmpegCommand;
-        fromFormat(format: string): FfmpegCommand;
-        withInputFps(fps: number): FfmpegCommand;
-        withInputFPS(fps: number): FfmpegCommand;
-        withFpsInput(fps: number): FfmpegCommand;
-        withFPSInput(fps: number): FfmpegCommand;
-        inputFPS(fps: number): FfmpegCommand;
-        inputFps(fps: number): FfmpegCommand;
-        fpsInput(fps: number): FfmpegCommand;
-        FPSInput(fps: number): FfmpegCommand;
-        nativeFramerate(): FfmpegCommand;
-        withNativeFramerate(): FfmpegCommand;
-        native(): FfmpegCommand;
-        setStartTime(seek: string | number): FfmpegCommand;
-        seekInput(seek: string | number): FfmpegCommand;
-        loop(duration?: string | number): FfmpegCommand;
-
-        // options/audio
-        withNoAudio(): FfmpegCommand;
-        noAudio(): FfmpegCommand;
-        withAudioCodec(codec: string): FfmpegCommand;
-        audioCodec(codec: string): FfmpegCommand;
-        withAudioBitrate(bitrate: string | number): FfmpegCommand;
-        audioBitrate(bitrate: string | number): FfmpegCommand;
-        withAudioChannels(channels: number): FfmpegCommand;
-        audioChannels(channels: number): FfmpegCommand;
-        withAudioFrequency(freq: number): FfmpegCommand;
-        audioFrequency(freq: number): FfmpegCommand;
-        withAudioQuality(quality: number): FfmpegCommand;
-        audioQuality(quality: number): FfmpegCommand;
-        withAudioFilter(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-        withAudioFilters(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-        audioFilter(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-        audioFilters(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-
-        // options/video;
-        withNoVideo(): FfmpegCommand;
-        noVideo(): FfmpegCommand;
-        withVideoCodec(codec: string): FfmpegCommand;
-        videoCodec(codec: string): FfmpegCommand;
-        withVideoBitrate(bitrate: string | number, constant?: boolean): FfmpegCommand;
-        videoBitrate(bitrate: string | number, constant?: boolean): FfmpegCommand;
-        withVideoFilter(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-        withVideoFilters(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-        videoFilter(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-        videoFilters(filters: string | string[] | AudioVideoFilter[]): FfmpegCommand;
-        withOutputFps(fps: number): FfmpegCommand;
-        withOutputFPS(fps: number): FfmpegCommand;
-        withFpsOutput(fps: number): FfmpegCommand;
-        withFPSOutput(fps: number): FfmpegCommand;
-        withFps(fps: number): FfmpegCommand;
-        withFPS(fps: number): FfmpegCommand;
-        outputFPS(fps: number): FfmpegCommand;
-        outputFps(fps: number): FfmpegCommand;
-        fpsOutput(fps: number): FfmpegCommand;
-        FPSOutput(fps: number): FfmpegCommand;
-        fps(fps: number): FfmpegCommand;
-        FPS(fps: number): FfmpegCommand;
-        takeFrames(frames: number): FfmpegCommand;
-        withFrames(frames: number): FfmpegCommand;
-        frames(frames: number): FfmpegCommand;
-
-        // options/videosize
-        keepPixelAspect(): FfmpegCommand;
-        keepDisplayAspect(): FfmpegCommand;
-        keepDisplayAspectRatio(): FfmpegCommand;
-        keepDAR(): FfmpegCommand;
-        withSize(size: string): FfmpegCommand;
-        setSize(size: string): FfmpegCommand;
-        size(size: string): FfmpegCommand;
-        withAspect(aspect: string | number): FfmpegCommand;
-        withAspectRatio(aspect: string | number): FfmpegCommand;
-        setAspect(aspect: string | number): FfmpegCommand;
-        setAspectRatio(aspect: string | number): FfmpegCommand;
-        aspect(aspect: string | number): FfmpegCommand;
-        aspectRatio(aspect: string | number): FfmpegCommand;
-        applyAutopadding(pad?: boolean, color?: string): FfmpegCommand;
-        applyAutoPadding(pad?: boolean, color?: string): FfmpegCommand;
-        applyAutopad(pad?: boolean, color?: string): FfmpegCommand;
-        applyAutoPad(pad?: boolean, color?: string): FfmpegCommand;
-        withAutopadding(pad?: boolean, color?: string): FfmpegCommand;
-        withAutoPadding(pad?: boolean, color?: string): FfmpegCommand;
-        withAutopad(pad?: boolean, color?: string): FfmpegCommand;
-        withAutoPad(pad?: boolean, color?: string): FfmpegCommand;
-        autoPad(pad?: boolean, color?: string): FfmpegCommand;
-        autopad(pad?: boolean, color?: string): FfmpegCommand;
-
-        // options/output
-        addOutput(target: string | stream.Writable, pipeopts?: { end?: boolean | undefined }): FfmpegCommand;
-        output(target: string | stream.Writable, pipeopts?: { end?: boolean | undefined }): FfmpegCommand;
-        seekOutput(seek: string | number): FfmpegCommand;
-        seek(seek: string | number): FfmpegCommand;
-        withDuration(duration: string | number): FfmpegCommand;
-        setDuration(duration: string | number): FfmpegCommand;
-        duration(duration: string | number): FfmpegCommand;
-        toFormat(format: string): FfmpegCommand;
-        withOutputFormat(format: string): FfmpegCommand;
-        outputFormat(format: string): FfmpegCommand;
-        format(format: string): FfmpegCommand;
-        map(spec: string): FfmpegCommand;
-        updateFlvMetadata(): FfmpegCommand;
-        flvmeta(): FfmpegCommand;
-
-        // options/custom
-        addInputOption(options: string[]): FfmpegCommand;
-        addInputOption(...options: string[]): FfmpegCommand;
-        addInputOptions(options: string[]): FfmpegCommand;
-        addInputOptions(...options: string[]): FfmpegCommand;
-        withInputOption(options: string[]): FfmpegCommand;
-        withInputOption(...options: string[]): FfmpegCommand;
-        withInputOptions(options: string[]): FfmpegCommand;
-        withInputOptions(...options: string[]): FfmpegCommand;
-        inputOption(options: string[]): FfmpegCommand;
-        inputOption(...options: string[]): FfmpegCommand;
-        inputOptions(options: string[]): FfmpegCommand;
-        inputOptions(...options: string[]): FfmpegCommand;
-        addOutputOption(options: string[]): FfmpegCommand;
-        addOutputOption(...options: string[]): FfmpegCommand;
-        addOutputOptions(options: string[]): FfmpegCommand;
-        addOutputOptions(...options: string[]): FfmpegCommand;
-        addOption(options: string[]): FfmpegCommand;
-        addOption(...options: string[]): FfmpegCommand;
-        addOptions(options: string[]): FfmpegCommand;
-        addOptions(...options: string[]): FfmpegCommand;
-        withOutputOption(options: string[]): FfmpegCommand;
-        withOutputOption(...options: string[]): FfmpegCommand;
-        withOutputOptions(options: string[]): FfmpegCommand;
-        withOutputOptions(...options: string[]): FfmpegCommand;
-        withOption(options: string[]): FfmpegCommand;
-        withOption(...options: string[]): FfmpegCommand;
-        withOptions(options: string[]): FfmpegCommand;
-        withOptions(...options: string[]): FfmpegCommand;
-        outputOption(options: string[]): FfmpegCommand;
-        outputOption(...options: string[]): FfmpegCommand;
-        outputOptions(options: string[]): FfmpegCommand;
-        outputOptions(...options: string[]): FfmpegCommand;
-        filterGraph(
-            spec: string | FilterSpecification | Array<string | FilterSpecification>,
-            map?: string[] | string,
-        ): FfmpegCommand;
-        complexFilter(
-            spec: string | FilterSpecification | Array<string | FilterSpecification>,
-            map?: string[] | string,
-        ): FfmpegCommand;
-
-        // options/misc
-        usingPreset(preset: string | PresetFunction): FfmpegCommand;
-        preset(preset: string | PresetFunction): FfmpegCommand;
-
-        // processor
-        renice(niceness: number): FfmpegCommand;
-        kill(signal: string): FfmpegCommand;
-        _getArguments(): string[];
-
-        // capabilities
-        setFfmpegPath(path: string): FfmpegCommand;
-        setFfprobePath(path: string): FfmpegCommand;
-        setFlvtoolPath(path: string): FfmpegCommand;
-        availableFilters(callback: FiltersCallback): void;
-        getAvailableFilters(callback: FiltersCallback): void;
-        availableCodecs(callback: CodecsCallback): void;
-        getAvailableCodecs(callback: CodecsCallback): void;
-        availableEncoders(callback: EncodersCallback): void;
-        getAvailableEncoders(callback: EncodersCallback): void;
-        availableFormats(callback: FormatsCallback): void;
-        getAvailableFormats(callback: FormatsCallback): void;
-
-        // ffprobe
-        ffprobe(callback: (err: any, data: FfprobeData) => void): void;
-        ffprobe(index: number, callback: (err: any, data: FfprobeData) => void): void;
-        ffprobe(options: string[], callback: (err: any, data: FfprobeData) => void): void; // tslint:disable-line unified-signatures
-        ffprobe(index: number, options: string[], callback: (err: any, data: FfprobeData) => void): void;
-
-        // event listeners
-        /**
-         * Emitted just after ffmpeg has been spawned.
-         *
-         * @event FfmpegCommand#start
-         * @param command ffmpeg command line
-         */
-        on(event: "start", listener: (command: string) => void): this;
-
-        /**
-         * Emitted when ffmpeg reports progress information
-         *
-         * @event FfmpegCommand#progress
-         * @param progress progress object
-         * @param progress.frames number of frames transcoded
-         * @param progress.currentFps current processing speed in frames per second
-         * @param progress.currentKbps current output generation speed in kilobytes per second
-         * @param progress.targetSize current output file size
-         * @param progress.timemark current video timemark
-         * @param [progress.percent] processing progress (may not be available depending on input)
-         */
-        on(
-            event: "progress",
-            listener: (progress: {
-                frames: number;
-                currentFps: number;
-                currentKbps: number;
-                targetSize: number;
-                timemark: string;
-                percent?: number | undefined;
-            }) => void,
-        ): this;
-
-        /**
-         * Emitted when ffmpeg outputs to stderr
-         *
-         * @event FfmpegCommand#stderr
-         * @param line stderr output line
-         */
-        on(event: "stderr", listener: (line: string) => void): this;
-
-        /**
-         * Emitted when ffmpeg reports input codec data
-         *
-         * @event FfmpegCommand#codecData
-         * @param codecData codec data object
-         * @param codecData.format input format name
-         * @param codecData.audio input audio codec name
-         * @param codecData.audio_details input audio codec parameters
-         * @param codecData.video input video codec name
-         * @param codecData.video_details input video codec parameters
-         * @param codecData.duration input video duration
-         */
-        on(
-            event: "codecData",
-            listener: (codecData: {
-                format: string;
-                audio: string;
-                audio_details: string[];
-                video: string;
-                video_details: string[];
-                duration: string;
-            }) => void,
-        ): this;
-
-        /**
-         * Emitted when an error happens when preparing or running a command
-         *
-         * @event FfmpegCommand#error
-         * @param error error object, with optional properties 'inputStreamError' / 'outputStreamError' for errors on their respective streams
-         * @param stdout ffmpeg stdout, unless outputting to a stream
-         * @param stderr ffmpeg stderr
-         */
-        on(event: "error", listener: (error: Error, stdout: string | null, stderr: string | null) => void): this;
-
-        /**
-         * Emitted when a taking screenshots
-         *
-         * @event FfmpegCommand#filenames
-         * @param filenames generated filenames when taking screenshots
-         */
-        on(event: "filenames", listener: (filenames: string[]) => void): this;
-
-        /**
-         * Emitted when a command finishes processing
-         *
-         * @event FfmpegCommand#end
-         * @param stdout ffmpeg stdout when not outputting to a stream, null otherwise
-         * @param stderr ffmpeg stderr
-         */
-        on(event: "end", listener: (stdout: string | null, stderr: string | null) => void): this;
-
-        // recipes
-        saveToFile(output: string): FfmpegCommand;
-        save(output: string): FfmpegCommand;
-        writeToStream(stream: stream.Writable, options?: { end?: boolean | undefined }): stream.Writable;
-        pipe(stream?: stream.Writable, options?: { end?: boolean | undefined }): stream.Writable | stream.PassThrough;
-        stream(stream: stream.Writable, options?: { end?: boolean | undefined }): stream.Writable;
-        takeScreenshots(config: number | ScreenshotsConfig, folder?: string): FfmpegCommand;
-        thumbnail(config: number | ScreenshotsConfig, folder?: string): FfmpegCommand;
-        thumbnails(config: number | ScreenshotsConfig, folder?: string): FfmpegCommand;
-        screenshot(config: number | ScreenshotsConfig, folder?: string): FfmpegCommand;
-        screenshots(config: number | ScreenshotsConfig, folder?: string): FfmpegCommand;
-        mergeToFile(target: string | stream.Writable, tmpFolder: string): FfmpegCommand;
-        concatenate(target: string | stream.Writable, options?: { end?: boolean | undefined }): FfmpegCommand;
-        concat(target: string | stream.Writable, options?: { end?: boolean | undefined }): FfmpegCommand;
-        clone(): FfmpegCommand;
-        run(): void;
-    }
-
-    function ffprobe(file: string, callback: (err: any, data: FfprobeData) => void): void;
-    function ffprobe(file: string, index: number, callback: (err: any, data: FfprobeData) => void): void;
-    function ffprobe(file: string, options: string[], callback: (err: any, data: FfprobeData) => void): void; // tslint:disable-line unified-signatures
-    function ffprobe(
-        file: string,
-        index: number,
-        options: string[],
-        callback: (err: any, data: FfprobeData) => void,
-    ): void;
-}
-declare function Ffmpeg(options?: Ffmpeg.FfmpegCommandOptions): Ffmpeg.FfmpegCommand;
-declare function Ffmpeg(input?: string | stream.Readable, options?: Ffmpeg.FfmpegCommandOptions): Ffmpeg.FfmpegCommand;
-
-export = Ffmpeg;

+ 0 - 48
node_modules/@types/fluent-ffmpeg/package.json

@@ -1,48 +0,0 @@
-{
-    "name": "@types/fluent-ffmpeg",
-    "version": "2.1.28",
-    "description": "TypeScript definitions for fluent-ffmpeg",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fluent-ffmpeg",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "KIM Jaesuck a.k.a. gim tcaesvk",
-            "githubUsername": "tcaesvk",
-            "url": "https://github.com/tcaesvk"
-        },
-        {
-            "name": "DingWeizhe",
-            "githubUsername": "DingWeizhe",
-            "url": "https://github.com/DingWeizhe"
-        },
-        {
-            "name": "Mounir Abid",
-            "githubUsername": "mabidina",
-            "url": "https://github.com/mabidina"
-        },
-        {
-            "name": "Doyoung Ha",
-            "githubUsername": "hados99",
-            "url": "https://github.com/hados99"
-        },
-        {
-            "name": "Prasad Nayak",
-            "githubUsername": "buzzertech",
-            "url": "https://github.com/buzzertech"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/fluent-ffmpeg"
-    },
-    "scripts": {},
-    "dependencies": {
-        "@types/node": "*"
-    },
-    "peerDependencies": {},
-    "typesPublisherContentHash": "d770823cf768b5d8039c3d5f48a887aa6b2706c0832ce6a4d939cd03ede9430d",
-    "typeScriptVersion": "5.2"
-}

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio